Commit 451dc18f authored by Richard Levitte's avatar Richard Levitte
Browse files

Add support for DJGPP.

PR: 75
parent 127dca46
Loading
Loading
Loading
Loading
+22 −7
Original line number Diff line number Diff line
@@ -513,6 +513,9 @@ my %table=(
"Cygwin-pre1.3", "gcc:-DTERMIOS -DL_ENDIAN -fomit-frame-pointer -O3 -m486 -Wall::(unknown):CYGWIN32::BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}::::::::::win32",
"Cygwin", "gcc:-DTERMIOS -DL_ENDIAN -fomit-frame-pointer -O3 -m486 -Wall:::CYGWIN32::BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_out_asm}:win32:cygwin-shared:::.dll",

# DJGPP
"DJGPP", "gcc:-I/dev/env/DJDIR/watt32/inc -DTERMIOS -DL_ENDIAN -fomit-frame-pointer -O2 -Wall:::MSDOS:-L$ENV{DJDIR}/watt32/lib -lwatt:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}::::::::::",

# Ultrix from Bernhard Simon <simon@zid.tuwien.ac.at>
"ultrix-cc","cc:-std1 -O -Olimit 1000 -DL_ENDIAN::(unknown):::::::",
"ultrix-gcc","gcc:-O3 -DL_ENDIAN::(unknown):::::::",
@@ -637,6 +640,7 @@ my $libs;
my $target;
my $options;
my $symlink;
my $make_depend=0;
my %withargs=();

my @argvcopy=@ARGV;
@@ -902,6 +906,7 @@ print "Configuring for $target\n";
my $IsWindows=scalar grep /^$target$/,@WinTargets;

$exe_ext=".exe" if ($target eq "Cygwin");
$exe_ext=".exe" if ($target eq "DJGPP");
$openssldir="/usr/local/ssl" if ($openssldir eq "" and $prefix eq "");
$prefix=$openssldir if $prefix eq "";

@@ -909,7 +914,7 @@ chop $openssldir if $openssldir =~ /\/$/;
chop $prefix if $prefix =~ /\/$/;

$openssldir=$prefix . "/ssl" if $openssldir eq "";
$openssldir=$prefix . "/" . $openssldir if $openssldir !~ /^\//;
$openssldir=$prefix . "/" . $openssldir if $openssldir !~ /(^\/|^[a-zA-Z]:[\\\/])/;


print "IsWindows=$IsWindows\n";
@@ -1436,11 +1441,12 @@ if($IsWindows) {
EOF
	close(OUT);
} else {
	(system "make -f Makefile.ssl PERL=\'$perl\' links") == 0 or exit $?
		if $symlink;
	### (system 'make depend') == 0 or exit $? if $depflags ne "";
	# Run "make depend" manually if you want to be able to delete
	# the source code files of ciphers you left out.
	my $make_command = "make -f Makefile.ssl PERL=\'$perl\'";
	my $make_targets = "";
	$make_targets .= " links" if $symlink;
	$make_targets .= " depend" if $depflags ne "" && $make_depend;
	(system $make_command.$make_targets) == 0 or exit $?
		if $make_targets ne "";
	if ( $perl =~ m@^/@) {
	    &dofile("tools/c_rehash",$perl,'^#!/', '#!%s','^my \$dir;$', 'my $dir = "' . $openssldir . '";');
	    &dofile("apps/der_chop",$perl,'^#!/', '#!%s');
@@ -1451,6 +1457,15 @@ EOF
	    &dofile("apps/der_chop",'/usr/local/bin/perl','^#!/', '#!%s');
	    &dofile("apps/CA.pl",'/usr/local/bin/perl','^#!/', '#!%s');
	}
	if ($depflags ne "" && !$make_depend) {
		print <<EOF;

Since you've disabled at least one algorithm, you need to do the following
before building:

	make depend
EOF
	}
}

print <<EOF;

INSTALL.DJGPP

0 → 100644
+32 −0
Original line number Diff line number Diff line

 
 INSTALLATION ON THE DOS PLATFORM WITH DJGPP
 -------------------------------------------

 Openssl has been ported to DOS, but only with long filename support. If
 you wish to compile on native DOS with 8+3 filenames, you will have to
 tweak the installation yourself, including renaming files with illegal
 or duplicate names.

 You should have a full DJGPP environment installed, including the
 latest versions of DJGPP, GCC, BINUTILS, BASH, etc. This package
 requires that PERL and BC also be installed.

 All of these can be obtained from the usual DJGPP mirror sites, such as
 "ftp://ftp.simtel.net/pub/simtelnet/gnu/djgpp". You also need to have
 the WATT-32 networking package installed before you try to compile
 openssl. This can be obtained from "http://www.bgnett.no/~giva/". The
 Makefile assumes that the WATT-32 code is in directory "watt32" under
 /dev/env/DJDIR.

 To compile openssl, start your BASH shell. Then configure for DOS by
 running "./Configure" with appropriate arguments. The basic syntax for
 DOS is:
 ./Configure no-threads --prefix=/dev/env/DJDIR DJGPP
 
 You may run out of DPMI selectors when running in a DOS box under
 Windows. If so, just close the BASH shell, go back to Windows, and
 restart BASH. Then run "make" again.

 Building openssl under DJGPP has been tested with DJGPP 2.03,
 GCC 2.952, GCC 2.953, perl 5.005_02 and perl 5.006_01.
+5 −4
Original line number Diff line number Diff line
@@ -353,10 +353,11 @@ asn1_err.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
asn1_err.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
asn1_err.o: ../../include/openssl/symhacks.h asn1_err.c
asn1_lib.o: ../../e_os.h ../../include/openssl/asn1.h
asn1_lib.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
asn1_lib.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
asn1_lib.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
asn1_lib.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
asn1_lib.o: ../../include/openssl/asn1_mac.h ../../include/openssl/bio.h
asn1_lib.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
asn1_lib.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
asn1_lib.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
asn1_lib.o: ../../include/openssl/opensslconf.h
asn1_lib.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
asn1_lib.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
asn1_lib.o: ../../include/openssl/symhacks.h ../cryptlib.h asn1_lib.c
+4 −0
Original line number Diff line number Diff line
@@ -484,7 +484,11 @@ int BIO_socket_ioctl(int fd, long type, unsigned long *arg)
	{
	int i;

#ifdef __DJGPP__
	i=ioctlsocket(fd,type,(char *)arg);
#else
	i=ioctlsocket(fd,type,arg);
#endif /* __DJGPP__ */
	if (i < 0)
		SYSerr(SYS_F_IOCTLSOCKET,get_last_socket_error());
	return(i);
+1 −1
Original line number Diff line number Diff line
@@ -66,7 +66,7 @@
#include "cryptlib.h"
#include "bn_lcl.h"

#if defined(OPENSSL_NO_ASM) || !(defined(__i386) || defined(__i386__))/* Assembler implementation exists only for x86 */
#if defined(OPENSSL_NO_ASM) || !(defined(__i386) || defined(__i386__)) || defined(__DJGPP__) /* Assembler implementation exists only for x86 */
/* Here follows specialised variants of bn_add_words() and
   bn_sub_words().  They have the property performing operations on
   arrays of different sizes.  The sizes of those arrays is expressed through
Loading