diff options
Diffstat (limited to 'src/lib/libcrypto/util')
| -rw-r--r-- | src/lib/libcrypto/util/checkhash.pl | 222 | ||||
| -rw-r--r-- | src/lib/libcrypto/util/copy.pl | 70 | ||||
| -rw-r--r-- | src/lib/libcrypto/util/extract-section.pl | 12 | ||||
| -rw-r--r-- | src/lib/libcrypto/util/pl/BC-16.pl | 151 | ||||
| -rw-r--r-- | src/lib/libcrypto/util/pl/VC-16.pl | 177 | ||||
| -rw-r--r-- | src/lib/libcrypto/util/pl/VC-32-GMAKE.pl | 222 | ||||
| -rw-r--r-- | src/lib/libcrypto/util/pl/VC-CE.pl | 116 | ||||
| -rw-r--r-- | src/lib/libcrypto/util/pl/netware.pl | 526 |
8 files changed, 608 insertions, 888 deletions
diff --git a/src/lib/libcrypto/util/checkhash.pl b/src/lib/libcrypto/util/checkhash.pl deleted file mode 100644 index c61fa72178..0000000000 --- a/src/lib/libcrypto/util/checkhash.pl +++ /dev/null | |||
| @@ -1,222 +0,0 @@ | |||
| 1 | #!/usr/bin/env perl -w | ||
| 2 | |||
| 3 | my $package = caller; | ||
| 4 | |||
| 5 | if (!(defined $package)) | ||
| 6 | { | ||
| 7 | my $retval = check_hashes(@ARGV); | ||
| 8 | exit $retval; | ||
| 9 | } | ||
| 10 | |||
| 11 | 1; | ||
| 12 | |||
| 13 | sub check_hashes | ||
| 14 | { | ||
| 15 | |||
| 16 | my @args = @_; | ||
| 17 | |||
| 18 | my $change_dir = ""; | ||
| 19 | my $check_program = "sha/fips_standalone_sha1"; | ||
| 20 | |||
| 21 | my $verbose = 0; | ||
| 22 | my $badfiles = 0; | ||
| 23 | my $rebuild = 0; | ||
| 24 | my $force_rewrite = 0; | ||
| 25 | my $hash_file = "fipshashes.c"; | ||
| 26 | my $recurse = 0; | ||
| 27 | |||
| 28 | my @fingerprint_files; | ||
| 29 | |||
| 30 | while (@args) | ||
| 31 | { | ||
| 32 | my $arg = $args[0]; | ||
| 33 | if ($arg eq "-chdir") | ||
| 34 | { | ||
| 35 | shift @args; | ||
| 36 | $change_dir = shift @args; | ||
| 37 | } | ||
| 38 | elsif ($arg eq "-rebuild") | ||
| 39 | { | ||
| 40 | shift @args; | ||
| 41 | $rebuild = 1; | ||
| 42 | } | ||
| 43 | elsif ($arg eq "-verbose") | ||
| 44 | { | ||
| 45 | shift @args; | ||
| 46 | $verbose = 1; | ||
| 47 | } | ||
| 48 | elsif ($arg eq "-force-rewrite") | ||
| 49 | { | ||
| 50 | shift @args; | ||
| 51 | $force_rewrite = 1; | ||
| 52 | } | ||
| 53 | elsif ($arg eq "-hash_file") | ||
| 54 | { | ||
| 55 | shift @args; | ||
| 56 | $hash_file = shift @args; | ||
| 57 | } | ||
| 58 | elsif ($arg eq "-recurse") | ||
| 59 | { | ||
| 60 | shift @args; | ||
| 61 | $recurse = 1; | ||
| 62 | } | ||
| 63 | elsif ($arg eq "-program_path") | ||
| 64 | { | ||
| 65 | shift @args; | ||
| 66 | $check_program = shift @args; | ||
| 67 | } | ||
| 68 | else | ||
| 69 | { | ||
| 70 | print STDERR "Unknown Option $arg"; | ||
| 71 | return 1; | ||
| 72 | } | ||
| 73 | |||
| 74 | } | ||
| 75 | |||
| 76 | chdir $change_dir if $change_dir ne ""; | ||
| 77 | |||
| 78 | if ($recurse) | ||
| 79 | { | ||
| 80 | @fingerprint_files = ("fingerprint.sha1", | ||
| 81 | <*/fingerprint.sha1>); | ||
| 82 | } | ||
| 83 | else | ||
| 84 | { | ||
| 85 | push @fingerprint_files, $hash_file; | ||
| 86 | } | ||
| 87 | |||
| 88 | foreach $fp (@fingerprint_files) | ||
| 89 | { | ||
| 90 | if (!open(IN, "$fp")) | ||
| 91 | { | ||
| 92 | print STDERR "Can't open file $fp"; | ||
| 93 | return 1; | ||
| 94 | } | ||
| 95 | print STDERR "Opening Fingerprint file $fp\n" if $verbose; | ||
| 96 | my $dir = $fp; | ||
| 97 | $dir =~ s/[^\/]*$//; | ||
| 98 | while (<IN>) | ||
| 99 | { | ||
| 100 | chomp; | ||
| 101 | if (!(($file, $hash) = /^\"HMAC-SHA1\((.*)\)\s*=\s*(\w*)\",$/)) | ||
| 102 | { | ||
| 103 | /^\"/ || next; | ||
| 104 | print STDERR "FATAL: Invalid syntax in file $fp\n"; | ||
| 105 | print STDERR "Line:\n$_\n"; | ||
| 106 | fatal_error(); | ||
| 107 | return 1; | ||
| 108 | } | ||
| 109 | if (!$rebuild && length($hash) != 40) | ||
| 110 | { | ||
| 111 | print STDERR "FATAL: Invalid hash length in $fp for file $file\n"; | ||
| 112 | fatal_error(); | ||
| 113 | return 1; | ||
| 114 | } | ||
| 115 | push @hashed_files, "$dir$file"; | ||
| 116 | if (exists $hashes{"$dir$file"}) | ||
| 117 | { | ||
| 118 | print STDERR "FATAL: Duplicate Hash file $dir$file\n"; | ||
| 119 | fatal_error(); | ||
| 120 | return 1; | ||
| 121 | } | ||
| 122 | if (! -r "$dir$file") | ||
| 123 | { | ||
| 124 | print STDERR "FATAL: Can't access $dir$file\n"; | ||
| 125 | fatal_error(); | ||
| 126 | return 1; | ||
| 127 | } | ||
| 128 | $hashes{"$dir$file"} = $hash; | ||
| 129 | } | ||
| 130 | close IN; | ||
| 131 | } | ||
| 132 | |||
| 133 | @checked_hashes = `$check_program @hashed_files`; | ||
| 134 | |||
| 135 | if ($? != 0) | ||
| 136 | { | ||
| 137 | print STDERR "Error running hash program $check_program\n"; | ||
| 138 | fatal_error(); | ||
| 139 | return 1; | ||
| 140 | } | ||
| 141 | |||
| 142 | if (@checked_hashes != @hashed_files) | ||
| 143 | { | ||
| 144 | print STDERR "FATAL: hash count incorrect\n"; | ||
| 145 | fatal_error(); | ||
| 146 | return 1; | ||
| 147 | } | ||
| 148 | |||
| 149 | foreach (@checked_hashes) | ||
| 150 | { | ||
| 151 | chomp; | ||
| 152 | if (!(($file, $hash) = /^HMAC-SHA1\((.*)\)\s*=\s*(\w*)$/)) | ||
| 153 | { | ||
| 154 | print STDERR "FATAL: Invalid syntax in file $fp\n"; | ||
| 155 | print STDERR "Line:\n$_\n"; | ||
| 156 | fatal_error(); | ||
| 157 | return 1; | ||
| 158 | } | ||
| 159 | if (length($hash) != 40) | ||
| 160 | { | ||
| 161 | print STDERR "FATAL: Invalid hash length for file $file\n"; | ||
| 162 | fatal_error(); | ||
| 163 | return 1; | ||
| 164 | } | ||
| 165 | if ($hash ne $hashes{$file}) | ||
| 166 | { | ||
| 167 | if ($rebuild) | ||
| 168 | { | ||
| 169 | print STDERR "Updating hash on file $file\n"; | ||
| 170 | $hashes{$file} = $hash; | ||
| 171 | } | ||
| 172 | else | ||
| 173 | { | ||
| 174 | print STDERR "Hash check failed for file $file\n"; | ||
| 175 | } | ||
| 176 | $badfiles++; | ||
| 177 | } | ||
| 178 | elsif ($verbose) | ||
| 179 | { print "Hash Check OK for $file\n";} | ||
| 180 | } | ||
| 181 | |||
| 182 | |||
| 183 | if ($badfiles && !$rebuild) | ||
| 184 | { | ||
| 185 | print STDERR "FATAL: hash mismatch on $badfiles files\n"; | ||
| 186 | fatal_error(); | ||
| 187 | return 1; | ||
| 188 | } | ||
| 189 | |||
| 190 | if ($badfiles || $force_rewrite) | ||
| 191 | { | ||
| 192 | print "Updating Hash file $hash_file\n"; | ||
| 193 | if (!open(OUT, ">$hash_file")) | ||
| 194 | { | ||
| 195 | print STDERR "Error rewriting $hash_file"; | ||
| 196 | return 1; | ||
| 197 | } | ||
| 198 | print OUT "const char * const FIPS_source_hashes[] = {\n"; | ||
| 199 | foreach (@hashed_files) | ||
| 200 | { | ||
| 201 | print OUT "\"HMAC-SHA1($_)= $hashes{$_}\",\n"; | ||
| 202 | } | ||
| 203 | print OUT "};\n"; | ||
| 204 | close OUT; | ||
| 205 | } | ||
| 206 | |||
| 207 | if (!$badfiles) | ||
| 208 | { | ||
| 209 | print "FIPS hash check successful\n"; | ||
| 210 | } | ||
| 211 | |||
| 212 | return 0; | ||
| 213 | |||
| 214 | } | ||
| 215 | |||
| 216 | |||
| 217 | sub fatal_error | ||
| 218 | { | ||
| 219 | print STDERR "*** Your source code does not match the FIPS validated source ***\n"; | ||
| 220 | } | ||
| 221 | |||
| 222 | |||
diff --git a/src/lib/libcrypto/util/copy.pl b/src/lib/libcrypto/util/copy.pl new file mode 100644 index 0000000000..eba6d5815e --- /dev/null +++ b/src/lib/libcrypto/util/copy.pl | |||
| @@ -0,0 +1,70 @@ | |||
| 1 | #!/usr/local/bin/perl | ||
| 2 | |||
| 3 | use Fcntl; | ||
| 4 | |||
| 5 | |||
| 6 | # copy.pl | ||
| 7 | |||
| 8 | # Perl script 'copy' comment. On Windows the built in "copy" command also | ||
| 9 | # copies timestamps: this messes up Makefile dependencies. | ||
| 10 | |||
| 11 | my $stripcr = 0; | ||
| 12 | |||
| 13 | my $arg; | ||
| 14 | |||
| 15 | foreach $arg (@ARGV) { | ||
| 16 | if ($arg eq "-stripcr") | ||
| 17 | { | ||
| 18 | $stripcr = 1; | ||
| 19 | next; | ||
| 20 | } | ||
| 21 | $arg =~ s|\\|/|g; # compensate for bug/feature in cygwin glob... | ||
| 22 | foreach (glob $arg) | ||
| 23 | { | ||
| 24 | push @filelist, $_; | ||
| 25 | } | ||
| 26 | } | ||
| 27 | |||
| 28 | $fnum = @filelist; | ||
| 29 | |||
| 30 | if ($fnum <= 1) | ||
| 31 | { | ||
| 32 | die "Need at least two filenames"; | ||
| 33 | } | ||
| 34 | |||
| 35 | $dest = pop @filelist; | ||
| 36 | |||
| 37 | if ($fnum > 2 && ! -d $dest) | ||
| 38 | { | ||
| 39 | die "Destination must be a directory"; | ||
| 40 | } | ||
| 41 | |||
| 42 | foreach (@filelist) | ||
| 43 | { | ||
| 44 | if (-d $dest) | ||
| 45 | { | ||
| 46 | $dfile = $_; | ||
| 47 | $dfile =~ s|^.*[/\\]([^/\\]*)$|$1|; | ||
| 48 | $dfile = "$dest/$dfile"; | ||
| 49 | } | ||
| 50 | else | ||
| 51 | { | ||
| 52 | $dfile = $dest; | ||
| 53 | } | ||
| 54 | sysopen(IN, $_, O_RDONLY|O_BINARY) || die "Can't Open $_"; | ||
| 55 | sysopen(OUT, $dfile, O_WRONLY|O_CREAT|O_TRUNC|O_BINARY) | ||
| 56 | || die "Can't Open $dfile"; | ||
| 57 | while (sysread IN, $buf, 10240) | ||
| 58 | { | ||
| 59 | if ($stripcr) | ||
| 60 | { | ||
| 61 | $buf =~ tr/\015//d; | ||
| 62 | } | ||
| 63 | syswrite(OUT, $buf, length($buf)); | ||
| 64 | } | ||
| 65 | close(IN); | ||
| 66 | close(OUT); | ||
| 67 | print "Copying: $_ to $dfile\n"; | ||
| 68 | } | ||
| 69 | |||
| 70 | |||
diff --git a/src/lib/libcrypto/util/extract-section.pl b/src/lib/libcrypto/util/extract-section.pl new file mode 100644 index 0000000000..7a0ba4f69a --- /dev/null +++ b/src/lib/libcrypto/util/extract-section.pl | |||
| @@ -0,0 +1,12 @@ | |||
| 1 | #!/usr/bin/perl | ||
| 2 | |||
| 3 | while(<STDIN>) { | ||
| 4 | if (/=for\s+comment\s+openssl_manual_section:(\S+)/) | ||
| 5 | { | ||
| 6 | print "$1\n"; | ||
| 7 | exit 0; | ||
| 8 | } | ||
| 9 | } | ||
| 10 | |||
| 11 | print "$ARGV[0]\n"; | ||
| 12 | |||
diff --git a/src/lib/libcrypto/util/pl/BC-16.pl b/src/lib/libcrypto/util/pl/BC-16.pl deleted file mode 100644 index 8030653daa..0000000000 --- a/src/lib/libcrypto/util/pl/BC-16.pl +++ /dev/null | |||
| @@ -1,151 +0,0 @@ | |||
| 1 | #!/usr/local/bin/perl | ||
| 2 | # VCw16lib.pl - the file for Visual C++ 1.52b for windows, static libraries | ||
| 3 | # | ||
| 4 | |||
| 5 | $o='\\'; | ||
| 6 | $cp='copy'; | ||
| 7 | $rm='del'; | ||
| 8 | |||
| 9 | # C compiler stuff | ||
| 10 | $cc='bcc'; | ||
| 11 | |||
| 12 | if ($debug) | ||
| 13 | { $op="-v "; } | ||
| 14 | else { $op="-O "; } | ||
| 15 | |||
| 16 | $cflags="-d -ml $op -DL_ENDIAN"; | ||
| 17 | # I add the stack opt | ||
| 18 | $base_lflags="/c /C"; | ||
| 19 | $lflags="$base_lflags"; | ||
| 20 | |||
| 21 | if ($win16) | ||
| 22 | { | ||
| 23 | $shlib=1; | ||
| 24 | $cflags.=" -DOPENSSL_SYSNAME_WIN16"; | ||
| 25 | $app_cflag="-W"; | ||
| 26 | $lib_cflag="-WD"; | ||
| 27 | $lflags.="/Twe"; | ||
| 28 | } | ||
| 29 | else | ||
| 30 | { | ||
| 31 | $cflags.=" -DOENSSL_SYSNAME_MSDOS"; | ||
| 32 | $lflags.=" /Tde"; | ||
| 33 | } | ||
| 34 | |||
| 35 | if ($shlib) | ||
| 36 | { | ||
| 37 | $mlflags=" /Twd $base_lflags"; # stack if defined in .def file | ||
| 38 | $libs="libw ldllcew"; | ||
| 39 | $no_asm=1; | ||
| 40 | } | ||
| 41 | else | ||
| 42 | { $mlflags=''; } | ||
| 43 | |||
| 44 | $obj='.obj'; | ||
| 45 | $ofile="-o"; | ||
| 46 | |||
| 47 | # EXE linking stuff | ||
| 48 | $link="tlink"; | ||
| 49 | $efile=""; | ||
| 50 | $exep='.exe'; | ||
| 51 | $ex_libs="CL"; | ||
| 52 | $ex_libs.=$no_sock?"":" winsock.lib"; | ||
| 53 | |||
| 54 | $app_ex_obj="C0L.obj "; | ||
| 55 | $shlib_ex_obj="" if ($shlib); | ||
| 56 | |||
| 57 | # static library stuff | ||
| 58 | $mklib='tlib'; | ||
| 59 | $ranlib='echo no ranlib'; | ||
| 60 | $plib=""; | ||
| 61 | $libp=".lib"; | ||
| 62 | $shlibp=($shlib)?".dll":".lib"; | ||
| 63 | $lfile=''; | ||
| 64 | |||
| 65 | $asm='bcc -c -B -Tml'; | ||
| 66 | $afile='/o'; | ||
| 67 | if ($no_asm || $fips) | ||
| 68 | { | ||
| 69 | $bn_asm_obj=''; | ||
| 70 | $bn_asm_src=''; | ||
| 71 | } | ||
| 72 | elsif ($asmbits == 32) | ||
| 73 | { | ||
| 74 | $bn_asm_obj='crypto\bn\asm\x86w32.obj'; | ||
| 75 | $bn_asm_src='crypto\bn\asm\x86w32.asm'; | ||
| 76 | } | ||
| 77 | else | ||
| 78 | { | ||
| 79 | $bn_asm_obj='crypto\bn\asm\x86w16.obj'; | ||
| 80 | $bn_asm_src='crypto\bn\asm\x86w16.asm'; | ||
| 81 | } | ||
| 82 | |||
| 83 | sub do_lib_rule | ||
| 84 | { | ||
| 85 | local($target,$name,$shlib)=@_; | ||
| 86 | local($ret,$Name); | ||
| 87 | |||
| 88 | $taget =~ s/\//$o/g if $o ne '/'; | ||
| 89 | ($Name=$name) =~ tr/a-z/A-Z/; | ||
| 90 | |||
| 91 | $ret.="$target: \$(${Name}OBJ)\n"; | ||
| 92 | $ret.="\t\$(RM) \$(O_$Name)\n"; | ||
| 93 | |||
| 94 | # Due to a pathetic line length limit, I unwrap the args. | ||
| 95 | local($lib_names)=""; | ||
| 96 | local($dll_names)=""; | ||
| 97 | foreach $_ (sort split(/\s+/,$Vars{"${Name}OBJ"})) | ||
| 98 | { | ||
| 99 | $lib_names.=" +$_ &\n"; | ||
| 100 | $dll_names.=" $_\n"; | ||
| 101 | } | ||
| 102 | |||
| 103 | if (!$shlib) | ||
| 104 | { | ||
| 105 | $ret.="\t\$(MKLIB) $target & <<|\n$lib_names\n,\n|\n"; | ||
| 106 | } | ||
| 107 | else | ||
| 108 | { | ||
| 109 | local($ex)=($Name eq "SSL")?' $(L_CRYPTO) winsock':""; | ||
| 110 | $ret.="\t\$(LINK) \$(MLFLAGS) @&&|\n"; | ||
| 111 | $ret.=$dll_names; | ||
| 112 | $ret.="\n $target\n\n $ex $libs\nms$o${name}16.def;\n|\n"; | ||
| 113 | ($out_lib=$target) =~ s/O_/L_/; | ||
| 114 | $ret.="\timplib /nowep $out_lib $target\n\n"; | ||
| 115 | } | ||
| 116 | $ret.="\n"; | ||
| 117 | return($ret); | ||
| 118 | } | ||
| 119 | |||
| 120 | sub do_link_rule | ||
| 121 | { | ||
| 122 | local($target,$files,$dep_libs,$libs,$sha1file,$openssl)=@_; | ||
| 123 | local($ret,$f,$_,@f); | ||
| 124 | |||
| 125 | $file =~ s/\//$o/g if $o ne '/'; | ||
| 126 | $n=&bname($target); | ||
| 127 | $ret.="$target: $files $dep_libs\n"; | ||
| 128 | $ret.=" \$(LINK) @&&|"; | ||
| 129 | |||
| 130 | # Due to a pathetic line length limit, I have to unwrap the args. | ||
| 131 | $ret.=" \$(LFLAGS) "; | ||
| 132 | if ($files =~ /\(([^)]*)\)$/) | ||
| 133 | { | ||
| 134 | $ret.=" \$(APP_EX_OBJ)"; | ||
| 135 | foreach $_ (sort split(/\s+/,$Vars{$1})) | ||
| 136 | { $ret.="\n $r $_ +"; } | ||
| 137 | chop($ret); | ||
| 138 | $ret.="\n"; | ||
| 139 | } | ||
| 140 | else | ||
| 141 | { $ret.="\n $r \$(APP_EX_OBJ) $files\n"; } | ||
| 142 | $ret.=" $target\n\n $libs\n\n|\n"; | ||
| 143 | if (defined $sha1file) | ||
| 144 | { | ||
| 145 | $ret.=" $openssl sha1 -hmac etaonrishdlcupfm -binary $target > $sha1file"; | ||
| 146 | } | ||
| 147 | $ret.="\n"; | ||
| 148 | return($ret); | ||
| 149 | } | ||
| 150 | |||
| 151 | 1; | ||
diff --git a/src/lib/libcrypto/util/pl/VC-16.pl b/src/lib/libcrypto/util/pl/VC-16.pl deleted file mode 100644 index 564ba3fd08..0000000000 --- a/src/lib/libcrypto/util/pl/VC-16.pl +++ /dev/null | |||
| @@ -1,177 +0,0 @@ | |||
| 1 | #!/usr/local/bin/perl | ||
| 2 | # VCw16lib.pl - the file for Visual C++ 1.52b for windows, static libraries | ||
| 3 | # | ||
| 4 | |||
| 5 | $ssl= "ssleay16"; | ||
| 6 | $crypto="libeay16"; | ||
| 7 | |||
| 8 | $o='\\'; | ||
| 9 | $cp='copy'; | ||
| 10 | $rm='del'; | ||
| 11 | |||
| 12 | # C compiler stuff | ||
| 13 | $cc='cl'; | ||
| 14 | |||
| 15 | $out_def="out16"; | ||
| 16 | $tmp_def="tmp16"; | ||
| 17 | $inc_def="inc16"; | ||
| 18 | |||
| 19 | if ($debug) | ||
| 20 | { | ||
| 21 | $op="/Od /Zi /Zd"; | ||
| 22 | $base_lflags="/CO"; | ||
| 23 | } | ||
| 24 | else { | ||
| 25 | $op="/G2 /f- /Ocgnotb2"; | ||
| 26 | } | ||
| 27 | $base_lflags.=" /FARCALL /NOLOGO /NOD /SEG:1024 /ONERROR:NOEXE /NOE /PACKC:60000"; | ||
| 28 | if ($win16) { $base_lflags.=" /PACKD:60000"; } | ||
| 29 | |||
| 30 | $cflags="/ALw /Gx- /Gt256 /Gf $op /W3 /WX -DL_ENDIAN /nologo"; | ||
| 31 | # I add the stack opt | ||
| 32 | $lflags="$base_lflags /STACK:20000"; | ||
| 33 | |||
| 34 | if ($win16) | ||
| 35 | { | ||
| 36 | $cflags.=" -DOPENSSL_SYSNAME_WIN16"; | ||
| 37 | $app_cflag="/Gw /FPi87"; | ||
| 38 | $lib_cflag="/Gw"; | ||
| 39 | $lib_cflag.=" -D_WINDLL -D_DLL" if $shlib; | ||
| 40 | $lib_cflag.=" -DWIN16TTY" if !$shlib; | ||
| 41 | $lflags.=" /ALIGN:256"; | ||
| 42 | $ex_libs.="oldnames llibcewq libw"; | ||
| 43 | } | ||
| 44 | else | ||
| 45 | { | ||
| 46 | $no_sock=1; | ||
| 47 | $cflags.=" -DMSDOS"; | ||
| 48 | $lflags.=" /EXEPACK"; | ||
| 49 | $ex_libs.="oldnames.lib llibce.lib"; | ||
| 50 | } | ||
| 51 | |||
| 52 | if ($shlib) | ||
| 53 | { | ||
| 54 | $mlflags="$base_lflags"; | ||
| 55 | $libs="oldnames ldllcew libw"; | ||
| 56 | $shlib_ex_obj=""; | ||
| 57 | # $no_asm=1; | ||
| 58 | $out_def="out16dll"; | ||
| 59 | $tmp_def="tmp16dll"; | ||
| 60 | } | ||
| 61 | else | ||
| 62 | { $mlflags=''; } | ||
| 63 | |||
| 64 | $app_ex_obj=""; | ||
| 65 | |||
| 66 | $obj='.obj'; | ||
| 67 | $ofile="/Fo"; | ||
| 68 | |||
| 69 | # EXE linking stuff | ||
| 70 | $link="link"; | ||
| 71 | $efile=""; | ||
| 72 | $exep='.exe'; | ||
| 73 | $ex_libs.=$no_sock?"":" winsock"; | ||
| 74 | |||
| 75 | # static library stuff | ||
| 76 | $mklib='lib /PAGESIZE:1024'; | ||
| 77 | $ranlib=''; | ||
| 78 | $plib=""; | ||
| 79 | $libp=".lib"; | ||
| 80 | $shlibp=($shlib)?".dll":".lib"; | ||
| 81 | $lfile=''; | ||
| 82 | |||
| 83 | $asm='ml /Cp /c /Cx'; | ||
| 84 | $afile='/Fo'; | ||
| 85 | |||
| 86 | $bn_asm_obj=''; | ||
| 87 | $bn_asm_src=''; | ||
| 88 | $des_enc_obj=''; | ||
| 89 | $des_enc_src=''; | ||
| 90 | $bf_enc_obj=''; | ||
| 91 | $bf_enc_src=''; | ||
| 92 | |||
| 93 | if (!$no_asm && !$fips) | ||
| 94 | { | ||
| 95 | if ($asmbits == 32) | ||
| 96 | { | ||
| 97 | $bn_asm_obj='crypto\bn\asm\x86w32.obj'; | ||
| 98 | $bn_asm_src='crypto\bn\asm\x86w32.asm'; | ||
| 99 | } | ||
| 100 | else | ||
| 101 | { | ||
| 102 | $bn_asm_obj='crypto\bn\asm\x86w16.obj'; | ||
| 103 | $bn_asm_src='crypto\bn\asm\x86w16.asm'; | ||
| 104 | } | ||
| 105 | } | ||
| 106 | |||
| 107 | sub do_lib_rule | ||
| 108 | { | ||
| 109 | local($objs,$target,$name,$shlib)=@_; | ||
| 110 | local($ret,$Name); | ||
| 111 | |||
| 112 | $taget =~ s/\//$o/g if $o ne '/'; | ||
| 113 | ($Name=$name) =~ tr/a-z/A-Z/; | ||
| 114 | |||
| 115 | # $target="\$(LIB_D)$o$target"; | ||
| 116 | $ret.="$target: $objs\n"; | ||
| 117 | # $ret.="\t\$(RM) \$(O_$Name)\n"; | ||
| 118 | |||
| 119 | # Due to a pathetic line length limit, I unwrap the args. | ||
| 120 | local($lib_names)=""; | ||
| 121 | local($dll_names)=" \$(SHLIB_EX_OBJ) +\n"; | ||
| 122 | ($obj)= ($objs =~ /\((.*)\)/); | ||
| 123 | foreach $_ (sort split(/\s+/,$Vars{$obj})) | ||
| 124 | { | ||
| 125 | $lib_names.="+$_ &\n"; | ||
| 126 | $dll_names.=" $_ +\n"; | ||
| 127 | } | ||
| 128 | |||
| 129 | if (!$shlib) | ||
| 130 | { | ||
| 131 | $ret.="\tdel $target\n"; | ||
| 132 | $ret.="\t\$(MKLIB) @<<\n$target\ny\n$lib_names\n\n<<\n"; | ||
| 133 | } | ||
| 134 | else | ||
| 135 | { | ||
| 136 | local($ex)=($target =~ /O_SSL/)?'$(L_CRYPTO)':""; | ||
| 137 | $ex.=' winsock'; | ||
| 138 | $ret.="\t\$(LINK) \$(MLFLAGS) @<<\n"; | ||
| 139 | $ret.=$dll_names; | ||
| 140 | $ret.="\n $target\n\n $ex $libs\nms$o${name}.def;\n<<\n"; | ||
| 141 | ($out_lib=$target) =~ s/O_/L_/; | ||
| 142 | $ret.="\timplib /noignorecase /nowep $out_lib $target\n"; | ||
| 143 | } | ||
| 144 | $ret.="\n"; | ||
| 145 | return($ret); | ||
| 146 | } | ||
| 147 | |||
| 148 | sub do_link_rule | ||
| 149 | { | ||
| 150 | local($target,$files,$dep_libs,$libs,$sha1file,$openssl)=@_; | ||
| 151 | local($ret,$f,$_,@f); | ||
| 152 | |||
| 153 | $file =~ s/\//$o/g if $o ne '/'; | ||
| 154 | $n=&bname($targer); | ||
| 155 | $ret.="$target: $files $dep_libs\n"; | ||
| 156 | $ret.=" \$(LINK) \$(LFLAGS) @<<\n"; | ||
| 157 | |||
| 158 | # Due to a pathetic line length limit, I have to unwrap the args. | ||
| 159 | if ($files =~ /\(([^)]*)\)$/) | ||
| 160 | { | ||
| 161 | @a=('$(APP_EX_OBJ)'); | ||
| 162 | push(@a,sort split(/\s+/,$Vars{$1})); | ||
| 163 | for $_ (@a) | ||
| 164 | { $ret.=" $_ +\n"; } | ||
| 165 | } | ||
| 166 | else | ||
| 167 | { $ret.=" \$(APP_EX_OBJ) $files"; } | ||
| 168 | $ret.="\n $target\n\n $libs\n\n<<\n"; | ||
| 169 | if (defined $sha1file) | ||
| 170 | { | ||
| 171 | $ret.=" $openssl sha1 -hmac etaonrishdlcupfm -binary $target > $sha1file"; | ||
| 172 | } | ||
| 173 | $ret.="\n"; | ||
| 174 | return($ret); | ||
| 175 | } | ||
| 176 | |||
| 177 | 1; | ||
diff --git a/src/lib/libcrypto/util/pl/VC-32-GMAKE.pl b/src/lib/libcrypto/util/pl/VC-32-GMAKE.pl deleted file mode 100644 index b5bbcac6c2..0000000000 --- a/src/lib/libcrypto/util/pl/VC-32-GMAKE.pl +++ /dev/null | |||
| @@ -1,222 +0,0 @@ | |||
| 1 | #!/usr/local/bin/perl | ||
| 2 | # VCw32lib.pl - the file for Visual C++ 4.[01] for windows NT, static libraries | ||
| 3 | # | ||
| 4 | |||
| 5 | |||
| 6 | if ($fips && !$shlib) | ||
| 7 | { | ||
| 8 | $crypto="libeayfips32"; | ||
| 9 | $crypto_compat = "libeaycompat32.lib"; | ||
| 10 | } | ||
| 11 | else | ||
| 12 | { | ||
| 13 | $crypto="libeay32"; | ||
| 14 | } | ||
| 15 | $ssl= "ssleay32"; | ||
| 16 | |||
| 17 | $o='/'; | ||
| 18 | #$cp='copy nul+'; # Timestamps get stuffed otherwise | ||
| 19 | #$rm='del'; | ||
| 20 | |||
| 21 | $cp='cp'; | ||
| 22 | $rm='rm'; | ||
| 23 | |||
| 24 | $zlib_lib="zlib1.lib"; | ||
| 25 | |||
| 26 | # C compiler stuff | ||
| 27 | $cc='cl'; | ||
| 28 | $cflags=' -MD -W3 -WX -Ox -O2 -Ob2 -Gs0 -GF -Gy -nologo -DOPENSSL_SYSNAME_WIN32 -DWIN32_LEAN_AND_MEAN -DL_ENDIAN -DDSO_WIN32'; | ||
| 29 | $cflags.=' -D_CRT_SECURE_NO_DEPRECATE'; # shut up VC8 | ||
| 30 | $cflags.=' -D_CRT_NONSTDC_NO_DEPRECATE'; # shut up VC8 | ||
| 31 | $lflags="-nologo -subsystem:console -machine:I386 -opt:ref"; | ||
| 32 | $mlflags=''; | ||
| 33 | |||
| 34 | $out_def="gmout32"; | ||
| 35 | $tmp_def="gmtmp32"; | ||
| 36 | $inc_def="gminc32"; | ||
| 37 | |||
| 38 | if ($debug) | ||
| 39 | { | ||
| 40 | $cflags=" -MDd -W3 -WX -Zi -Yd -Od -nologo -DOPENSSL_SYSNAME_WIN32 -D_DEBUG -DL_ENDIAN -DWIN32_LEAN_AND_MEAN -DDEBUG -DDSO_WIN32"; | ||
| 41 | $lflags.=" -debug"; | ||
| 42 | $mlflags.=' -debug'; | ||
| 43 | } | ||
| 44 | $cflags .= " -DOPENSSL_SYSNAME_WINNT" if $NT == 1; | ||
| 45 | |||
| 46 | $obj='.obj'; | ||
| 47 | $ofile="-Fo"; | ||
| 48 | |||
| 49 | # EXE linking stuff | ||
| 50 | $link="link"; | ||
| 51 | $efile="-out:"; | ||
| 52 | $exep='.exe'; | ||
| 53 | if ($no_sock) | ||
| 54 | { $ex_libs=""; } | ||
| 55 | else { $ex_libs="wsock32.lib user32.lib gdi32.lib"; } | ||
| 56 | |||
| 57 | # static library stuff | ||
| 58 | $mklib='lib'; | ||
| 59 | $ranlib=''; | ||
| 60 | $plib=""; | ||
| 61 | $libp=".lib"; | ||
| 62 | $shlibp=($shlib)?".dll":".lib"; | ||
| 63 | $lfile='-out:'; | ||
| 64 | |||
| 65 | $shlib_ex_obj=""; | ||
| 66 | $app_ex_obj="setargv.obj"; | ||
| 67 | if ($nasm) { | ||
| 68 | $asm='nasmw -f win32'; | ||
| 69 | $afile='-o '; | ||
| 70 | } else { | ||
| 71 | $asm='ml -Cp -coff -c -Cx'; | ||
| 72 | $asm.=" -Zi" if $debug; | ||
| 73 | $afile='-Fo'; | ||
| 74 | } | ||
| 75 | |||
| 76 | $bn_asm_obj=''; | ||
| 77 | $bn_asm_src=''; | ||
| 78 | $des_enc_obj=''; | ||
| 79 | $des_enc_src=''; | ||
| 80 | $bf_enc_obj=''; | ||
| 81 | $bf_enc_src=''; | ||
| 82 | |||
| 83 | if (!$no_asm && !$fips) | ||
| 84 | { | ||
| 85 | $bn_asm_obj='crypto/bn/asm/bn_win32.obj'; | ||
| 86 | $bn_asm_src='crypto/bn/asm/bn_win32.asm'; | ||
| 87 | $des_enc_obj='crypto/des/asm/d_win32.obj crypto/des/asm/y_win32.obj'; | ||
| 88 | $des_enc_src='crypto/des/asm/d_win32.asm crypto/des/asm/y_win32.asm'; | ||
| 89 | $bf_enc_obj='crypto/bf/asm/b_win32.obj'; | ||
| 90 | $bf_enc_src='crypto/bf/asm/b_win32.asm'; | ||
| 91 | $cast_enc_obj='crypto/cast/asm/c_win32.obj'; | ||
| 92 | $cast_enc_src='crypto/cast/asm/c_win32.asm'; | ||
| 93 | $rc4_enc_obj='crypto/rc4/asm/r4_win32.obj'; | ||
| 94 | $rc4_enc_src='crypto/rc4/asm/r4_win32.asm'; | ||
| 95 | $rc5_enc_obj='crypto/rc5/asm/r5_win32.obj'; | ||
| 96 | $rc5_enc_src='crypto/rc5/asm/r5_win32.asm'; | ||
| 97 | $md5_asm_obj='crypto/md5/asm/m5_win32.obj'; | ||
| 98 | $md5_asm_src='crypto/md5/asm/m5_win32.asm'; | ||
| 99 | $sha1_asm_obj='crypto/sha/asm/s1_win32.obj'; | ||
| 100 | $sha1_asm_src='crypto/sha/asm/s1_win32.asm'; | ||
| 101 | $rmd160_asm_obj='crypto/ripemd/asm/rm_win32.obj'; | ||
| 102 | $rmd160_asm_src='crypto/ripemd/asm/rm_win32.asm'; | ||
| 103 | $cflags.=" -DBN_ASM -DMD5_ASM -DSHA1_ASM -DRMD160_ASM"; | ||
| 104 | } | ||
| 105 | |||
| 106 | if ($shlib) | ||
| 107 | { | ||
| 108 | $mlflags.=" $lflags -dll"; | ||
| 109 | # $cflags =~ s| -MD| -MT|; | ||
| 110 | $lib_cflag=" -D_WINDLL"; | ||
| 111 | $out_def="gmout32dll"; | ||
| 112 | $tmp_def="gmtmp32dll"; | ||
| 113 | } | ||
| 114 | |||
| 115 | $cflags.=" -Fd$out_def"; | ||
| 116 | |||
| 117 | sub do_lib_rule | ||
| 118 | { | ||
| 119 | local($objs,$target,$name,$shlib,$ign,$base_addr, $fips_get_sig, $fips_premain_src)=@_; | ||
| 120 | local($ret,$Name); | ||
| 121 | |||
| 122 | $taget =~ s/\//$o/g if $o ne '/'; | ||
| 123 | ($Name=$name) =~ tr/a-z/A-Z/; | ||
| 124 | my $base_arg; | ||
| 125 | if ($base_addr ne "") | ||
| 126 | { | ||
| 127 | $base_arg= " -base:$base_addr"; | ||
| 128 | } | ||
| 129 | else | ||
| 130 | { | ||
| 131 | $base_arg = ""; | ||
| 132 | } | ||
| 133 | |||
| 134 | |||
| 135 | # $target="\$(LIB_D)$o$target"; | ||
| 136 | if (!$shlib) | ||
| 137 | { | ||
| 138 | # $ret.="\t\$(RM) \$(O_$Name)\n"; | ||
| 139 | $ret.="$target: $objs\n"; | ||
| 140 | $ex =' advapi32.lib'; | ||
| 141 | $ret.="\t\$(MKLIB) $lfile$target $objs $ex\n\n"; | ||
| 142 | } | ||
| 143 | else | ||
| 144 | { | ||
| 145 | local($ex)=($target =~ /O_SSL/)?' $(L_CRYPTO)':''; | ||
| 146 | $ex.=' wsock32.lib gdi32.lib advapi32.lib user32.lib'; | ||
| 147 | $ex.=" $zlib_lib" if $zlib_opt == 1 && $target =~ /O_CRYPTO/; | ||
| 148 | if (defined $fips_get_sig) | ||
| 149 | { | ||
| 150 | $ret.="$target: \$(O_FIPSCANISTER) $objs $fips_get_sig\n"; | ||
| 151 | $ret.="\tFIPS_LINK=\$(LINK) "; | ||
| 152 | $ret.="FIPS_CC=\$(CC) "; | ||
| 153 | $ret.="FIPS_CC_ARGS=\"-Fo\$(OBJ_D)${o}fips_premain.obj \$(SHLIB_CFLAGS) -c\" "; | ||
| 154 | $ret.="FIPS_PREMAIN_DSO=$fips_get_sig "; | ||
| 155 | $ret.="FIPS_TARGET=$target "; | ||
| 156 | $ret.="FIPS_LIBDIR=\$(FIPSLIB_D) "; | ||
| 157 | $ret.="\$(FIPSLINK) \$(MLFLAGS) $base_arg $efile$target "; | ||
| 158 | $ret.="-def:ms/${Name}.def \$(SHLIB_EX_OBJ) $objs "; | ||
| 159 | $ret.="\$(OBJ_D)${o}fips_premain.obj $ex\n\n"; | ||
| 160 | } | ||
| 161 | else | ||
| 162 | { | ||
| 163 | $ret.="$target: $objs\n"; | ||
| 164 | $ret.="\t\$(LINK) \$(MLFLAGS) $base_arg $efile$target /def:ms/${Name}.def \$(SHLIB_EX_OBJ) $objs $ex\n\n"; | ||
| 165 | } | ||
| 166 | } | ||
| 167 | $ret.="\n"; | ||
| 168 | return($ret); | ||
| 169 | } | ||
| 170 | |||
| 171 | sub do_link_rule | ||
| 172 | { | ||
| 173 | local($target,$files,$dep_libs,$libs,$standalone)=@_; | ||
| 174 | local($ret,$_); | ||
| 175 | $file =~ s/\//$o/g if $o ne '/'; | ||
| 176 | $n=&bname($targer); | ||
| 177 | if ($standalone) | ||
| 178 | { | ||
| 179 | $ret.="$target: $files $dep_libs\n"; | ||
| 180 | $ret.="\t\$(LINK) \$(LFLAGS) $efile$target "; | ||
| 181 | $ret.="$files $libs\n\n"; | ||
| 182 | } | ||
| 183 | elsif ($fips && !$shlib) | ||
| 184 | { | ||
| 185 | $ret.="$target: \$(O_FIPSCANISTER) $files $dep_libs\n"; | ||
| 186 | $ret.="\tFIPS_LINK=\$(LINK) "; | ||
| 187 | $ret.="FIPS_CC=\$(CC) "; | ||
| 188 | $ret.="FIPS_CC_ARGS=\"-Fo\$(OBJ_D)${o}fips_premain.obj \$(SHLIB_CFLAGS) -c\" "; | ||
| 189 | $ret.="FIPS_PREMAIN_DSO= "; | ||
| 190 | $ret.="FIPS_TARGET=$target "; | ||
| 191 | $ret.="FIPS_LIBDIR=\$(FIPSLIB_D) "; | ||
| 192 | $ret.=" \$(FIPSLINK) \$(LFLAGS) $efile$target "; | ||
| 193 | $ret.="\$(APP_EX_OBJ) $files \$(OBJ_D)${o}fips_premain.obj $libs\n\n"; | ||
| 194 | } | ||
| 195 | else | ||
| 196 | { | ||
| 197 | $ret.="$target: $files $dep_libs\n"; | ||
| 198 | $ret.="\t\$(LINK) \$(LFLAGS) $efile$target "; | ||
| 199 | $ret.="\$(APP_EX_OBJ) $files $libs\n\n"; | ||
| 200 | } | ||
| 201 | $ret.="\n"; | ||
| 202 | return($ret); | ||
| 203 | } | ||
| 204 | |||
| 205 | sub do_rlink_rule | ||
| 206 | { | ||
| 207 | local($target,$files,$check_hash, $deps)=@_; | ||
| 208 | local($ret,$_); | ||
| 209 | |||
| 210 | $file =~ s/\//$o/g if $o ne '/'; | ||
| 211 | $n=&bname($targer); | ||
| 212 | $ret.="$target: $check_hash $files $deps\n"; | ||
| 213 | $ret.="\t\$(PERL) util${o}checkhash.pl -chdir fips-1.0 -program_path ..$o$check_hash\n"; | ||
| 214 | $ret.="\t\$(MKCANISTER) $target $files\n"; | ||
| 215 | $ret.="\t$check_hash $target > $target.sha1\n"; | ||
| 216 | $ret.="\t\$(CP) fips-1.0${o}fips_premain.c \$(FIPSLIB_D)\n"; | ||
| 217 | $ret.="\t$check_hash \$(FIPSLIB_D)${o}fips_premain.c > \$(FIPSLIB_D)${o}fips_premain.c.sha1\n\n"; | ||
| 218 | return($ret); | ||
| 219 | } | ||
| 220 | |||
| 221 | |||
| 222 | 1; | ||
diff --git a/src/lib/libcrypto/util/pl/VC-CE.pl b/src/lib/libcrypto/util/pl/VC-CE.pl deleted file mode 100644 index 2fd0c4dd32..0000000000 --- a/src/lib/libcrypto/util/pl/VC-CE.pl +++ /dev/null | |||
| @@ -1,116 +0,0 @@ | |||
| 1 | #!/usr/local/bin/perl | ||
| 2 | # VC-CE.pl - the file for eMbedded Visual C++ 3.0 for windows CE, static libraries | ||
| 3 | # | ||
| 4 | |||
| 5 | $ssl= "ssleay32"; | ||
| 6 | $crypto="libeay32"; | ||
| 7 | $RSAref="RSAref32"; | ||
| 8 | |||
| 9 | $o='\\'; | ||
| 10 | $cp='copy nul+'; # Timestamps get stuffed otherwise | ||
| 11 | $rm='del'; | ||
| 12 | |||
| 13 | # C compiler stuff | ||
| 14 | $cc='$(CC)'; | ||
| 15 | $cflags=' /W3 /WX /Ox /O2 /Ob2 /Gs0 /GF /Gy /nologo $(WCETARGETDEFS) -DUNICODE -D_UNICODE -DWIN32 -DWIN32_LEAN_AND_MEAN -DL_ENDIAN -DDSO_WIN32 -DNO_CHMOD -I$(WCECOMPAT)/include'; | ||
| 16 | $lflags='/nologo /subsystem:windowsce,$(WCELDVERSION) /machine:$(WCELDMACHINE) /opt:ref'; | ||
| 17 | $mlflags=''; | ||
| 18 | |||
| 19 | $out_def='out32_$(TARGETCPU)'; | ||
| 20 | $tmp_def='tmp32_$(TARGETCPU)'; | ||
| 21 | $inc_def="inc32"; | ||
| 22 | |||
| 23 | if ($debug) | ||
| 24 | { | ||
| 25 | $cflags=" /MDd /W3 /WX /Zi /Yd /Od /nologo -DWIN32 -D_DEBUG -DL_ENDIAN -DWIN32_LEAN_AND_MEAN -DDEBUG -DDSO_WIN32"; | ||
| 26 | $lflags.=" /debug"; | ||
| 27 | $mlflags.=' /debug'; | ||
| 28 | } | ||
| 29 | |||
| 30 | $obj='.obj'; | ||
| 31 | $ofile="/Fo"; | ||
| 32 | |||
| 33 | # EXE linking stuff | ||
| 34 | $link="link"; | ||
| 35 | $efile="/out:"; | ||
| 36 | $exep='.exe'; | ||
| 37 | if ($no_sock) | ||
| 38 | { $ex_libs=""; } | ||
| 39 | else { $ex_libs='winsock.lib $(WCECOMPAT)/lib/wcecompatex.lib $(WCELDFLAGS)'; } | ||
| 40 | |||
| 41 | # static library stuff | ||
| 42 | $mklib='lib'; | ||
| 43 | $ranlib=''; | ||
| 44 | $plib=""; | ||
| 45 | $libp=".lib"; | ||
| 46 | $shlibp=($shlib)?".dll":".lib"; | ||
| 47 | $lfile='/out:'; | ||
| 48 | |||
| 49 | $shlib_ex_obj=""; | ||
| 50 | $app_ex_obj=""; | ||
| 51 | $app_ex_obj=""; | ||
| 52 | |||
| 53 | $bn_asm_obj=''; | ||
| 54 | $bn_asm_src=''; | ||
| 55 | $des_enc_obj=''; | ||
| 56 | $des_enc_src=''; | ||
| 57 | $bf_enc_obj=''; | ||
| 58 | $bf_enc_src=''; | ||
| 59 | |||
| 60 | if ($shlib) | ||
| 61 | { | ||
| 62 | $mlflags.=" $lflags /dll"; | ||
| 63 | # $cflags =~ s| /MD| /MT|; | ||
| 64 | $lib_cflag=" -D_WINDLL -D_DLL"; | ||
| 65 | $out_def='out32dll_$(TARGETCPU)'; | ||
| 66 | $tmp_def='tmp32dll_$(TARGETCPU)'; | ||
| 67 | } | ||
| 68 | |||
| 69 | $cflags.=" /Fd$out_def"; | ||
| 70 | |||
| 71 | sub do_lib_rule | ||
| 72 | { | ||
| 73 | local($objs,$target,$name,$shlib)=@_; | ||
| 74 | local($ret,$Name); | ||
| 75 | |||
| 76 | $taget =~ s/\//$o/g if $o ne '/'; | ||
| 77 | ($Name=$name) =~ tr/a-z/A-Z/; | ||
| 78 | |||
| 79 | # $target="\$(LIB_D)$o$target"; | ||
| 80 | $ret.="$target: $objs\n"; | ||
| 81 | if (!$shlib) | ||
| 82 | { | ||
| 83 | # $ret.="\t\$(RM) \$(O_$Name)\n"; | ||
| 84 | $ex =' '; | ||
| 85 | $ret.="\t\$(MKLIB) $lfile$target @<<\n $objs $ex\n<<\n"; | ||
| 86 | } | ||
| 87 | else | ||
| 88 | { | ||
| 89 | local($ex)=($target =~ /O_SSL/)?' $(L_CRYPTO)':''; | ||
| 90 | # $ex.=' winsock.lib coredll.lib $(WCECOMPAT)/lib/wcecompatex.lib'; | ||
| 91 | $ex.=' winsock.lib $(WCECOMPAT)/lib/wcecompatex.lib'; | ||
| 92 | $ret.="\t\$(LINK) \$(MLFLAGS) $efile$target /def:ms/${Name}.def @<<\n \$(SHLIB_EX_OBJ) $objs $ex\n<<\n"; | ||
| 93 | } | ||
| 94 | $ret.="\n"; | ||
| 95 | return($ret); | ||
| 96 | } | ||
| 97 | |||
| 98 | sub do_link_rule | ||
| 99 | { | ||
| 100 | local($target,$files,$dep_libs,$libs,$sha1file,$openssl)=@_; | ||
| 101 | local($ret,$_); | ||
| 102 | |||
| 103 | $file =~ s/\//$o/g if $o ne '/'; | ||
| 104 | $n=&bname($targer); | ||
| 105 | $ret.="$target: $files $dep_libs\n"; | ||
| 106 | $ret.=" \$(LINK) \$(LFLAGS) $efile$target @<<\n"; | ||
| 107 | $ret.=" \$(APP_EX_OBJ) $files $libs\n<<\n"; | ||
| 108 | if (defined $sha1file) | ||
| 109 | { | ||
| 110 | $ret.=" $openssl sha1 -hmac etaonrishdlcupfm -binary $target > $sha1file"; | ||
| 111 | } | ||
| 112 | $ret.="\n"; | ||
| 113 | return($ret); | ||
| 114 | } | ||
| 115 | |||
| 116 | 1; | ||
diff --git a/src/lib/libcrypto/util/pl/netware.pl b/src/lib/libcrypto/util/pl/netware.pl new file mode 100644 index 0000000000..173c9919f2 --- /dev/null +++ b/src/lib/libcrypto/util/pl/netware.pl | |||
| @@ -0,0 +1,526 @@ | |||
| 1 | # Metrowerks Codewarrior or gcc / nlmconv for NetWare | ||
| 2 | # | ||
| 3 | |||
| 4 | $version_header = "crypto/opensslv.h"; | ||
| 5 | open(IN, "$version_header") or die "Couldn't open $version_header: $!"; | ||
| 6 | while (<IN>) { | ||
| 7 | if (/^#define[\s\t]+OPENSSL_VERSION_NUMBER[\s\t]+0x(\d)(\d{2})(\d{2})(\d{2})/) | ||
| 8 | { | ||
| 9 | # die "OpenSSL version detected: $1.$2.$3.$4\n"; | ||
| 10 | #$nlmvernum = "$1,$2,$3"; | ||
| 11 | $nlmvernum = "$1,".($2*10+$3).",".($4*1); | ||
| 12 | #$nlmverstr = "$1.".($2*1).".".($3*1).($4?(chr(96+$4)):""); | ||
| 13 | break; | ||
| 14 | } | ||
| 15 | } | ||
| 16 | close(IN) or die "Couldn't close $version_header: $!"; | ||
| 17 | |||
| 18 | $readme_file = "README"; | ||
| 19 | open(IN, $readme_file) or die "Couldn't open $readme_file: $!"; | ||
| 20 | while (<IN>) { | ||
| 21 | if (/^[\s\t]+OpenSSL[\s\t]+(\d)\.(\d{1,2})\.(\d{1,2})([a-z])(.*)/) | ||
| 22 | { | ||
| 23 | #$nlmvernum = "$1,$2,$3"; | ||
| 24 | #$nlmvernum = "$1,".($2*10+$3).",".($4*1); | ||
| 25 | $nlmverstr = "$1.$2.$3$4$5"; | ||
| 26 | } | ||
| 27 | elsif (/^[\s\t]+(Copyright \(c\) \d{4}\-\d{4} The OpenSSL Project)$/) | ||
| 28 | { | ||
| 29 | $nlmcpystr = $1; | ||
| 30 | } | ||
| 31 | break if ($nlmvernum && $nlmcpystr); | ||
| 32 | } | ||
| 33 | close(IN) or die "Couldn't close $readme_file: $!"; | ||
| 34 | |||
| 35 | # Define stacksize here | ||
| 36 | $nlmstack = "32768"; | ||
| 37 | |||
| 38 | # some default settings here in case we failed to find them in README | ||
| 39 | $nlmvernum = "1,0,0" if (!$nlmvernum); | ||
| 40 | $nlmverstr = "OpenSSL" if (!$nlmverstr); | ||
| 41 | $nlmcpystr = "Copyright (c) 1998-now The OpenSSL Project" if (!$nlmcpystr); | ||
| 42 | |||
| 43 | # die "OpenSSL copyright: $nlmcpystr\nOpenSSL verstring: $nlmverstr\nOpenSSL vernumber: $nlmvernum\n"; | ||
| 44 | |||
| 45 | # The import files and other misc imports needed to link | ||
| 46 | @misc_imports = ("GetProcessSwitchCount", "RunningProcess", | ||
| 47 | "GetSuperHighResolutionTimer"); | ||
| 48 | if ($LIBC) | ||
| 49 | { | ||
| 50 | @import_files = ("libc.imp"); | ||
| 51 | @module_files = ("libc"); | ||
| 52 | $libarch = "LIBC"; | ||
| 53 | } | ||
| 54 | else | ||
| 55 | { | ||
| 56 | # clib build | ||
| 57 | @import_files = ("clib.imp"); | ||
| 58 | push(@import_files, "socklib.imp") if ($BSDSOCK); | ||
| 59 | @module_files = ("clib"); | ||
| 60 | # push(@misc_imports, "_rt_modu64%16", "_rt_divu64%16"); | ||
| 61 | $libarch = "CLIB"; | ||
| 62 | } | ||
| 63 | if ($BSDSOCK) | ||
| 64 | { | ||
| 65 | $libarch .= "-BSD"; | ||
| 66 | } | ||
| 67 | else | ||
| 68 | { | ||
| 69 | $libarch .= "-WS2"; | ||
| 70 | push(@import_files, "ws2nlm.imp"); | ||
| 71 | } | ||
| 72 | |||
| 73 | # The "IMPORTS" environment variable must be set and point to the location | ||
| 74 | # where import files (*.imp) can be found. | ||
| 75 | # Example: set IMPORTS=c:\ndk\nwsdk\imports | ||
| 76 | $import_path = $ENV{"IMPORTS"} || die ("IMPORTS environment variable not set\n"); | ||
| 77 | |||
| 78 | |||
| 79 | # The "PRELUDE" environment variable must be set and point to the location | ||
| 80 | # and name of the prelude source to link with ( nwpre.obj is recommended ). | ||
| 81 | # Example: set PRELUDE=c:\codewar\novell support\metrowerks support\libraries\runtime\nwpre.obj | ||
| 82 | $prelude = $ENV{"PRELUDE"} || die ("PRELUDE environment variable not set\n"); | ||
| 83 | |||
| 84 | # The "INCLUDES" environment variable must be set and point to the location | ||
| 85 | # where import files (*.imp) can be found. | ||
| 86 | $include_path = $ENV{"INCLUDE"} || die ("INCLUDES environment variable not set\n"); | ||
| 87 | $include_path =~ s/\\/\//g; | ||
| 88 | $include_path = join(" -I", split(/;/, $include_path)); | ||
| 89 | |||
| 90 | # check for gcc compiler | ||
| 91 | $gnuc = $ENV{"GNUC"}; | ||
| 92 | |||
| 93 | #$ssl= "ssleay32"; | ||
| 94 | #$crypto="libeay32"; | ||
| 95 | |||
| 96 | if ($gnuc) | ||
| 97 | { | ||
| 98 | # C compiler | ||
| 99 | $cc='gcc'; | ||
| 100 | # Linker | ||
| 101 | $link='nlmconv'; | ||
| 102 | # librarian | ||
| 103 | $mklib='ar'; | ||
| 104 | $o='/'; | ||
| 105 | # cp command | ||
| 106 | $cp='cp -af'; | ||
| 107 | # rm command | ||
| 108 | $rm='rm -f'; | ||
| 109 | # mv command | ||
| 110 | $mv='mv -f'; | ||
| 111 | # mkdir command | ||
| 112 | $mkdir='gmkdir'; | ||
| 113 | #$ranlib='ranlib'; | ||
| 114 | } | ||
| 115 | else | ||
| 116 | { | ||
| 117 | # C compiler | ||
| 118 | $cc='mwccnlm'; | ||
| 119 | # Linker | ||
| 120 | $link='mwldnlm'; | ||
| 121 | # librarian | ||
| 122 | $mklib='mwldnlm'; | ||
| 123 | # Path separator | ||
| 124 | $o='\\'; | ||
| 125 | # cp command | ||
| 126 | $cp='copy >nul:'; | ||
| 127 | # rm command | ||
| 128 | $rm='del /f /q'; | ||
| 129 | } | ||
| 130 | |||
| 131 | # assembler | ||
| 132 | if ($nw_nasm) | ||
| 133 | { | ||
| 134 | if ($gnuc) | ||
| 135 | { | ||
| 136 | $asm="nasmw -s -f elf"; | ||
| 137 | } | ||
| 138 | else | ||
| 139 | { | ||
| 140 | $asm="nasmw -s -f coff"; | ||
| 141 | } | ||
| 142 | $afile="-o "; | ||
| 143 | $asm.=" -g" if $debug; | ||
| 144 | } | ||
| 145 | elsif ($nw_mwasm) | ||
| 146 | { | ||
| 147 | $asm="mwasmnlm -maxerrors 20"; | ||
| 148 | $afile="-o "; | ||
| 149 | $asm.=" -g" if $debug; | ||
| 150 | } | ||
| 151 | elsif ($nw_masm) | ||
| 152 | { | ||
| 153 | # masm assembly settings - it should be possible to use masm but haven't | ||
| 154 | # got it working. | ||
| 155 | # $asm='ml /Cp /coff /c /Cx'; | ||
| 156 | # $asm.=" /Zi" if $debug; | ||
| 157 | # $afile='/Fo'; | ||
| 158 | die("Support for masm assembler not yet functional\n"); | ||
| 159 | } | ||
| 160 | else | ||
| 161 | { | ||
| 162 | $asm=""; | ||
| 163 | $afile=""; | ||
| 164 | } | ||
| 165 | |||
| 166 | |||
| 167 | |||
| 168 | if ($gnuc) | ||
| 169 | { | ||
| 170 | # compile flags for GNUC | ||
| 171 | # additional flags based upon debug | non-debug | ||
| 172 | if ($debug) | ||
| 173 | { | ||
| 174 | $cflags="-g -DDEBUG"; | ||
| 175 | } | ||
| 176 | else | ||
| 177 | { | ||
| 178 | $cflags="-O2"; | ||
| 179 | } | ||
| 180 | $cflags.=" -nostdinc -I$include_path \\ | ||
| 181 | -fno-builtin -fpcc-struct-return -fno-strict-aliasing \\ | ||
| 182 | -funsigned-char -Wall -Wno-unused -Wno-uninitialized"; | ||
| 183 | |||
| 184 | # link flags | ||
| 185 | $lflags="-T"; | ||
| 186 | } | ||
| 187 | else | ||
| 188 | { | ||
| 189 | # compile flags for CodeWarrior | ||
| 190 | # additional flags based upon debug | non-debug | ||
| 191 | if ($debug) | ||
| 192 | { | ||
| 193 | $cflags="-opt off -g -sym internal -DDEBUG"; | ||
| 194 | } | ||
| 195 | else | ||
| 196 | { | ||
| 197 | # CodeWarrior compiler has a problem with optimizations for floating | ||
| 198 | # points - no optimizations until further investigation | ||
| 199 | # $cflags="-opt all"; | ||
| 200 | } | ||
| 201 | |||
| 202 | # NOTES: Several c files in the crypto subdirectory include headers from | ||
| 203 | # their local directories. Metrowerks wouldn't find these h files | ||
| 204 | # without adding individual include directives as compile flags | ||
| 205 | # or modifying the c files. Instead of adding individual include | ||
| 206 | # paths for each subdirectory a recursive include directive | ||
| 207 | # is used ( -ir crypto ). | ||
| 208 | # | ||
| 209 | # A similar issue exists for the engines and apps subdirectories. | ||
| 210 | # | ||
| 211 | # Turned off the "possible" warnings ( -w nopossible ). Metrowerks | ||
| 212 | # complained a lot about various stuff. May want to turn back | ||
| 213 | # on for further development. | ||
| 214 | $cflags.=" -nostdinc -ir crypto -ir engines -ir apps -I$include_path \\ | ||
| 215 | -msgstyle gcc -align 4 -processor pentium -char unsigned \\ | ||
| 216 | -w on -w nolargeargs -w nopossible -w nounusedarg -w nounusedexpr \\ | ||
| 217 | -w noimplicitconv -relax_pointers -nosyspath -maxerrors 20"; | ||
| 218 | |||
| 219 | # link flags | ||
| 220 | $lflags="-msgstyle gcc -zerobss -nostdlib -sym internal -commandfile"; | ||
| 221 | } | ||
| 222 | |||
| 223 | # common defines | ||
| 224 | $cflags.=" -DL_ENDIAN -DOPENSSL_SYSNAME_NETWARE -U_WIN32"; | ||
| 225 | |||
| 226 | # If LibC build add in NKS_LIBC define and set the entry/exit | ||
| 227 | # routines - The default entry/exit routines are for CLib and don't exist | ||
| 228 | # in LibC | ||
| 229 | if ($LIBC) | ||
| 230 | { | ||
| 231 | $cflags.=" -DNETWARE_LIBC"; | ||
| 232 | $nlmstart = "_LibCPrelude"; | ||
| 233 | $nlmexit = "_LibCPostlude"; | ||
| 234 | @nlm_flags = ("pseudopreemption", "flag_on 64"); | ||
| 235 | } | ||
| 236 | else | ||
| 237 | { | ||
| 238 | $cflags.=" -DNETWARE_CLIB"; | ||
| 239 | $nlmstart = "_Prelude"; | ||
| 240 | $nlmexit = "_Stop"; | ||
| 241 | } | ||
| 242 | |||
| 243 | # If BSD Socket support is requested, set a define for the compiler | ||
| 244 | if ($BSDSOCK) | ||
| 245 | { | ||
| 246 | $cflags.=" -DNETWARE_BSDSOCK"; | ||
| 247 | if (!$LIBC) | ||
| 248 | { | ||
| 249 | $cflags.=" -DNETDB_USE_INTERNET"; | ||
| 250 | } | ||
| 251 | } | ||
| 252 | |||
| 253 | |||
| 254 | # linking stuff | ||
| 255 | # for the output directories use the mk1mf.pl values with "_nw" appended | ||
| 256 | if ($shlib) | ||
| 257 | { | ||
| 258 | if ($LIBC) | ||
| 259 | { | ||
| 260 | $out_def.="_nw_libc_nlm"; | ||
| 261 | $tmp_def.="_nw_libc_nlm"; | ||
| 262 | $inc_def.="_nw_libc_nlm"; | ||
| 263 | } | ||
| 264 | else # NETWARE_CLIB | ||
| 265 | { | ||
| 266 | $out_def.="_nw_clib_nlm"; | ||
| 267 | $tmp_def.="_nw_clib_nlm"; | ||
| 268 | $inc_def.="_nw_clib_nlm"; | ||
| 269 | } | ||
| 270 | } | ||
| 271 | else | ||
| 272 | { | ||
| 273 | if ($gnuc) # GNUC Tools | ||
| 274 | { | ||
| 275 | $libp=".a"; | ||
| 276 | $shlibp=".a"; | ||
| 277 | $lib_flags="-cr"; | ||
| 278 | } | ||
| 279 | else # CodeWarrior | ||
| 280 | { | ||
| 281 | $libp=".lib"; | ||
| 282 | $shlibp=".lib"; | ||
| 283 | $lib_flags="-nodefaults -type library -o"; | ||
| 284 | } | ||
| 285 | if ($LIBC) | ||
| 286 | { | ||
| 287 | $out_def.="_nw_libc"; | ||
| 288 | $tmp_def.="_nw_libc"; | ||
| 289 | $inc_def.="_nw_libc"; | ||
| 290 | } | ||
| 291 | else # NETWARE_CLIB | ||
| 292 | { | ||
| 293 | $out_def.="_nw_clib"; | ||
| 294 | $tmp_def.="_nw_clib"; | ||
| 295 | $inc_def.="_nw_clib"; | ||
| 296 | } | ||
| 297 | } | ||
| 298 | |||
| 299 | # used by mk1mf.pl | ||
| 300 | $obj='.o'; | ||
| 301 | $ofile='-o '; | ||
| 302 | $efile=''; | ||
| 303 | $exep='.nlm'; | ||
| 304 | $ex_libs=''; | ||
| 305 | |||
| 306 | if (!$no_asm) | ||
| 307 | { | ||
| 308 | $bn_asm_obj="\$(OBJ_D)${o}bn-nw${obj}"; | ||
| 309 | $bn_asm_src="crypto${o}bn${o}asm${o}bn-nw.asm"; | ||
| 310 | $bnco_asm_obj="\$(OBJ_D)${o}co-nw${obj}"; | ||
| 311 | $bnco_asm_src="crypto${o}bn${o}asm${o}co-nw.asm"; | ||
| 312 | $aes_asm_obj="\$(OBJ_D)${o}a-nw${obj}"; | ||
| 313 | $aes_asm_src="crypto${o}aes${o}asm${o}a-nw.asm"; | ||
| 314 | $des_enc_obj="\$(OBJ_D)${o}d-nw${obj} \$(OBJ_D)${o}y-nw${obj}"; | ||
| 315 | $des_enc_src="crypto${o}des${o}asm${o}d-nw.asm crypto${o}des${o}asm${o}y-nw.asm"; | ||
| 316 | $bf_enc_obj="\$(OBJ_D)${o}b-nw${obj}"; | ||
| 317 | $bf_enc_src="crypto${o}bf${o}asm${o}b-nw.asm"; | ||
| 318 | $cast_enc_obj="\$(OBJ_D)${o}c-nw${obj}"; | ||
| 319 | $cast_enc_src="crypto${o}cast${o}asm${o}c-nw.asm"; | ||
| 320 | $rc4_enc_obj="\$(OBJ_D)${o}r4-nw${obj}"; | ||
| 321 | $rc4_enc_src="crypto${o}rc4${o}asm${o}r4-nw.asm"; | ||
| 322 | $rc5_enc_obj="\$(OBJ_D)${o}r5-nw${obj}"; | ||
| 323 | $rc5_enc_src="crypto${o}rc5${o}asm${o}r5-nw.asm"; | ||
| 324 | $md5_asm_obj="\$(OBJ_D)${o}m5-nw${obj}"; | ||
| 325 | $md5_asm_src="crypto${o}md5${o}asm${o}m5-nw.asm"; | ||
| 326 | $sha1_asm_obj="\$(OBJ_D)${o}s1-nw${obj}"; | ||
| 327 | $sha1_asm_src="crypto${o}sha${o}asm${o}s1-nw.asm"; | ||
| 328 | $rmd160_asm_obj="\$(OBJ_D)${o}rm-nw${obj}"; | ||
| 329 | $rmd160_asm_src="crypto${o}ripemd${o}asm${o}rm-nw.asm"; | ||
| 330 | $cpuid_asm_obj="\$(OBJ_D)${o}x86cpuid-nw${obj}"; | ||
| 331 | $cpuid_asm_src="crypto${o}x86cpuid-nw.asm"; | ||
| 332 | $cflags.=" -DOPENSSL_CPUID_OBJ -DBN_ASM -DOPENSSL_BN_ASM_PART_WORDS -DMD5_ASM -DSHA1_ASM"; | ||
| 333 | $cflags.=" -DAES_ASM -DRMD160_ASM"; | ||
| 334 | } | ||
| 335 | else | ||
| 336 | { | ||
| 337 | $bn_asm_obj=''; | ||
| 338 | $bn_asm_src=''; | ||
| 339 | $bnco_asm_obj=''; | ||
| 340 | $bnco_asm_src=''; | ||
| 341 | $aes_asm_obj=''; | ||
| 342 | $aes_asm_src=''; | ||
| 343 | $des_enc_obj=''; | ||
| 344 | $des_enc_src=''; | ||
| 345 | $bf_enc_obj=''; | ||
| 346 | $bf_enc_src=''; | ||
| 347 | $cast_enc_obj=''; | ||
| 348 | $cast_enc_src=''; | ||
| 349 | $rc4_enc_obj=''; | ||
| 350 | $rc4_enc_src=''; | ||
| 351 | $rc5_enc_obj=''; | ||
| 352 | $rc5_enc_src=''; | ||
| 353 | $md5_asm_obj=''; | ||
| 354 | $md5_asm_src=''; | ||
| 355 | $sha1_asm_obj=''; | ||
| 356 | $sha1_asm_src=''; | ||
| 357 | $rmd160_asm_obj=''; | ||
| 358 | $rmd160_asm_src=''; | ||
| 359 | $cpuid_asm_obj=''; | ||
| 360 | $cpuid_asm_src=''; | ||
| 361 | } | ||
| 362 | |||
| 363 | # create the *.def linker command files in \openssl\netware\ directory | ||
| 364 | sub do_def_file | ||
| 365 | { | ||
| 366 | # strip off the leading path | ||
| 367 | my($target) = bname(shift); | ||
| 368 | my($i); | ||
| 369 | |||
| 370 | if ($target =~ /(.*).nlm/) | ||
| 371 | { | ||
| 372 | $target = $1; | ||
| 373 | } | ||
| 374 | |||
| 375 | # special case for openssl - the mk1mf.pl defines E_EXE = openssl | ||
| 376 | if ($target =~ /E_EXE/) | ||
| 377 | { | ||
| 378 | $target =~ s/\$\(E_EXE\)/openssl/; | ||
| 379 | } | ||
| 380 | |||
| 381 | # Note: originally tried to use full path ( \openssl\netware\$target.def ) | ||
| 382 | # Metrowerks linker choked on this with an assertion failure. bug??? | ||
| 383 | # | ||
| 384 | my($def_file) = "netware${o}$target.def"; | ||
| 385 | |||
| 386 | open(DEF_OUT, ">$def_file") || die("unable to open file $def_file\n"); | ||
| 387 | |||
| 388 | print( DEF_OUT "# command file generated by netware.pl for NLM target.\n" ); | ||
| 389 | print( DEF_OUT "# do not edit this file - all your changes will be lost!!\n" ); | ||
| 390 | print( DEF_OUT "#\n"); | ||
| 391 | print( DEF_OUT "DESCRIPTION \"$target ($libarch) - OpenSSL $nlmverstr\"\n"); | ||
| 392 | print( DEF_OUT "COPYRIGHT \"$nlmcpystr\"\n"); | ||
| 393 | print( DEF_OUT "VERSION $nlmvernum\n"); | ||
| 394 | print( DEF_OUT "STACK $nlmstack\n"); | ||
| 395 | print( DEF_OUT "START $nlmstart\n"); | ||
| 396 | print( DEF_OUT "EXIT $nlmexit\n"); | ||
| 397 | |||
| 398 | # special case for openssl | ||
| 399 | if ($target eq "openssl") | ||
| 400 | { | ||
| 401 | print( DEF_OUT "SCREENNAME \"OpenSSL $nlmverstr\"\n"); | ||
| 402 | } | ||
| 403 | else | ||
| 404 | { | ||
| 405 | print( DEF_OUT "SCREENNAME \"DEFAULT\"\n"); | ||
| 406 | } | ||
| 407 | |||
| 408 | foreach $i (@misc_imports) | ||
| 409 | { | ||
| 410 | print( DEF_OUT "IMPORT $i\n"); | ||
| 411 | } | ||
| 412 | |||
| 413 | foreach $i (@import_files) | ||
| 414 | { | ||
| 415 | print( DEF_OUT "IMPORT \@$import_path${o}$i\n"); | ||
| 416 | } | ||
| 417 | |||
| 418 | foreach $i (@module_files) | ||
| 419 | { | ||
| 420 | print( DEF_OUT "MODULE $i\n"); | ||
| 421 | } | ||
| 422 | |||
| 423 | foreach $i (@nlm_flags) | ||
| 424 | { | ||
| 425 | print( DEF_OUT "$i\n"); | ||
| 426 | } | ||
| 427 | |||
| 428 | if ($gnuc) | ||
| 429 | { | ||
| 430 | if ($target =~ /openssl/) | ||
| 431 | { | ||
| 432 | print( DEF_OUT "INPUT ${tmp_def}${o}openssl${obj}\n"); | ||
| 433 | print( DEF_OUT "INPUT ${tmp_def}${o}openssl${libp}\n"); | ||
| 434 | } | ||
| 435 | else | ||
| 436 | { | ||
| 437 | print( DEF_OUT "INPUT ${tmp_def}${o}${target}${obj}\n"); | ||
| 438 | } | ||
| 439 | print( DEF_OUT "INPUT $prelude\n"); | ||
| 440 | print( DEF_OUT "INPUT ${out_def}${o}${ssl}${libp} ${out_def}${o}${crypto}${libp}\n"); | ||
| 441 | print( DEF_OUT "OUTPUT $target.nlm\n"); | ||
| 442 | } | ||
| 443 | |||
| 444 | close(DEF_OUT); | ||
| 445 | return($def_file); | ||
| 446 | } | ||
| 447 | |||
| 448 | sub do_lib_rule | ||
| 449 | { | ||
| 450 | my($objs,$target,$name,$shlib)=@_; | ||
| 451 | my($ret); | ||
| 452 | |||
| 453 | $ret.="$target: $objs\n"; | ||
| 454 | if (!$shlib) | ||
| 455 | { | ||
| 456 | $ret.="\t\@echo Building Lib: $name\n"; | ||
| 457 | $ret.="\t\$(MKLIB) $lib_flags $target $objs\n"; | ||
| 458 | $ret.="\t\@echo .\n" | ||
| 459 | } | ||
| 460 | else | ||
| 461 | { | ||
| 462 | die( "Building as NLM not currently supported!" ); | ||
| 463 | } | ||
| 464 | |||
| 465 | $ret.="\n"; | ||
| 466 | return($ret); | ||
| 467 | } | ||
| 468 | |||
| 469 | sub do_link_rule | ||
| 470 | { | ||
| 471 | my($target,$files,$dep_libs,$libs)=@_; | ||
| 472 | my($ret); | ||
| 473 | my($def_file) = do_def_file($target); | ||
| 474 | |||
| 475 | $ret.="$target: $files $dep_libs\n"; | ||
| 476 | |||
| 477 | # NOTE: When building the test nlms no screen name is given | ||
| 478 | # which causes the console screen to be used. By using the console | ||
| 479 | # screen there is no "<press any key to continue>" message which | ||
| 480 | # requires user interaction. The test script ( do_tests.pl ) needs | ||
| 481 | # to be able to run the tests without requiring user interaction. | ||
| 482 | # | ||
| 483 | # However, the sample program "openssl.nlm" is used by the tests and is | ||
| 484 | # a interactive sample so a screen is desired when not be run by the | ||
| 485 | # tests. To solve the problem, two versions of the program are built: | ||
| 486 | # openssl2 - no screen used by tests | ||
| 487 | # openssl - default screen - use for normal interactive modes | ||
| 488 | # | ||
| 489 | |||
| 490 | # special case for openssl - the mk1mf.pl defines E_EXE = openssl | ||
| 491 | if ($target =~ /E_EXE/) | ||
| 492 | { | ||
| 493 | my($target2) = $target; | ||
| 494 | |||
| 495 | $target2 =~ s/\(E_EXE\)/\(E_EXE\)2/; | ||
| 496 | |||
| 497 | # openssl2 | ||
| 498 | my($def_file2) = do_def_file($target2); | ||
| 499 | |||
| 500 | if ($gnuc) | ||
| 501 | { | ||
| 502 | $ret.="\t\$(MKLIB) $lib_flags \$(TMP_D)${o}\$(E_EXE).a \$(filter-out \$(TMP_D)${o}\$(E_EXE)${obj},$files)\n"; | ||
| 503 | $ret.="\t\$(LINK) \$(LFLAGS) $def_file2\n"; | ||
| 504 | $ret.="\t\@$mv \$(E_EXE)2.nlm \$(TEST_D)\n"; | ||
| 505 | } | ||
| 506 | else | ||
| 507 | { | ||
| 508 | $ret.="\t\$(LINK) \$(LFLAGS) $def_file2 $files \"$prelude\" $libs -o $target2\n"; | ||
| 509 | } | ||
| 510 | } | ||
| 511 | if ($gnuc) | ||
| 512 | { | ||
| 513 | $ret.="\t\$(LINK) \$(LFLAGS) $def_file\n"; | ||
| 514 | $ret.="\t\@$mv \$(\@F) \$(TEST_D)\n"; | ||
| 515 | } | ||
| 516 | else | ||
| 517 | { | ||
| 518 | $ret.="\t\$(LINK) \$(LFLAGS) $def_file $files \"$prelude\" $libs -o $target\n"; | ||
| 519 | } | ||
| 520 | |||
| 521 | $ret.="\n"; | ||
| 522 | return($ret); | ||
| 523 | |||
| 524 | } | ||
| 525 | |||
| 526 | 1; | ||
