summaryrefslogtreecommitdiff
path: root/src/lib/libcrypto/util/pl
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/libcrypto/util/pl')
-rw-r--r--src/lib/libcrypto/util/pl/BC-32.pl139
-rw-r--r--src/lib/libcrypto/util/pl/Mingw32.pl104
-rw-r--r--src/lib/libcrypto/util/pl/OS2-EMX.pl120
-rw-r--r--src/lib/libcrypto/util/pl/VC-32.pl338
-rw-r--r--src/lib/libcrypto/util/pl/linux.pl104
-rw-r--r--src/lib/libcrypto/util/pl/netware.pl532
-rw-r--r--src/lib/libcrypto/util/pl/ultrix.pl38
-rw-r--r--src/lib/libcrypto/util/pl/unix.pl96
8 files changed, 1471 insertions, 0 deletions
diff --git a/src/lib/libcrypto/util/pl/BC-32.pl b/src/lib/libcrypto/util/pl/BC-32.pl
new file mode 100644
index 0000000000..1f1e13fb40
--- /dev/null
+++ b/src/lib/libcrypto/util/pl/BC-32.pl
@@ -0,0 +1,139 @@
1#!/usr/local/bin/perl
2# Borland C++ builder 3 and 4 -- Janez Jere <jj@void.si>
3#
4
5$ssl= "ssleay32";
6$crypto="libeay32";
7
8$o='\\';
9$cp='copy';
10$rm='del';
11
12# C compiler stuff
13$cc='bcc32';
14$lflags="-ap -Tpe -x -Gn ";
15$mlflags='';
16
17$out_def="out32";
18$tmp_def="tmp32";
19$inc_def="inc32";
20#enable max error messages, disable most common warnings
21$cflags="-DWIN32_LEAN_AND_MEAN -q -w-ccc -w-rch -w-pia -w-aus -w-par -w-inl -c -tWC -tWM -DOPENSSL_SYSNAME_WIN32 -DL_ENDIAN -DDSO_WIN32 -D_stricmp=stricmp -D_strnicmp=strnicmp ";
22if ($debug)
23{
24 $cflags.="-Od -y -v -vi- -D_DEBUG";
25 $mlflags.=' ';
26}
27else
28{
29 $cflags.="-O2 -ff -fp";
30}
31
32$obj='.obj';
33$ofile="-o";
34
35# EXE linking stuff
36$link="ilink32";
37$efile="";
38$exep='.exe';
39if ($no_sock)
40 { $ex_libs=""; }
41else { $ex_libs="cw32mt.lib import32.lib"; }
42
43# static library stuff
44$mklib='tlib /P64';
45$ranlib='';
46$plib="";
47$libp=".lib";
48$shlibp=($shlib)?".dll":".lib";
49$lfile='';
50
51$shlib_ex_obj="";
52$app_ex_obj="c0x32.obj";
53
54$asm='nasmw -f obj -d__omf__';
55$asm.=" /Zi" if $debug;
56$afile='-o';
57
58$bn_mulw_obj='';
59$bn_mulw_src='';
60$des_enc_obj='';
61$des_enc_src='';
62$bf_enc_obj='';
63$bf_enc_src='';
64
65if (!$no_asm)
66 {
67 $bn_mulw_obj='crypto\bn\asm\bn_win32.obj';
68 $bn_mulw_src='crypto\bn\asm\bn_win32.asm';
69 $des_enc_obj='crypto\des\asm\d_win32.obj crypto\des\asm\y_win32.obj';
70 $des_enc_src='crypto\des\asm\d_win32.asm crypto\des\asm\y_win32.asm';
71 $bf_enc_obj='crypto\bf\asm\b_win32.obj';
72 $bf_enc_src='crypto\bf\asm\b_win32.asm';
73 $cast_enc_obj='crypto\cast\asm\c_win32.obj';
74 $cast_enc_src='crypto\cast\asm\c_win32.asm';
75 $rc4_enc_obj='crypto\rc4\asm\r4_win32.obj';
76 $rc4_enc_src='crypto\rc4\asm\r4_win32.asm';
77 $rc5_enc_obj='crypto\rc5\asm\r5_win32.obj';
78 $rc5_enc_src='crypto\rc5\asm\r5_win32.asm';
79 $md5_asm_obj='crypto\md5\asm\m5_win32.obj';
80 $md5_asm_src='crypto\md5\asm\m5_win32.asm';
81 $sha1_asm_obj='crypto\sha\asm\s1_win32.obj';
82 $sha1_asm_src='crypto\sha\asm\s1_win32.asm';
83 $rmd160_asm_obj='crypto\ripemd\asm\rm_win32.obj';
84 $rmd160_asm_src='crypto\ripemd\asm\rm_win32.asm';
85 $cflags.=" -DBN_ASM -DMD5_ASM -DSHA1_ASM -DRMD160_ASM";
86 }
87
88if ($shlib)
89 {
90 $mlflags.=" $lflags /dll";
91# $cflags =~ s| /MD| /MT|;
92 $lib_cflag=" /GD -D_WINDLL -D_DLL";
93 $out_def="out32dll";
94 $tmp_def="tmp32dll";
95 }
96
97sub do_lib_rule
98 {
99 local($objs,$target,$name,$shlib)=@_;
100 local($ret,$Name);
101
102 $taget =~ s/\//$o/g if $o ne '/';
103 ($Name=$name) =~ tr/a-z/A-Z/;
104
105# $target="\$(LIB_D)$o$target";
106 $ret.="$target: $objs\n";
107 if (!$shlib)
108 {
109 $ret.=<<___;
110 -\$(RM) $lfile$target
111 \$(MKLIB) $lfile$target \@&&!
112+\$(**: = &^
113+)
114!
115___
116 }
117 else
118 {
119 local($ex)=($target =~ /O_SSL/)?' $(L_CRYPTO)':'';
120 $ex.=' ws2_32.lib gdi32.lib';
121 $ret.="\t\$(LINK) \$(MLFLAGS) $efile$target /def:ms/${Name}.def @<<\n \$(SHLIB_EX_OBJ) $objs $ex\n<<\n";
122 }
123 $ret.="\n";
124 return($ret);
125 }
126
127sub do_link_rule
128 {
129 local($target,$files,$dep_libs,$libs)=@_;
130 local($ret,$_);
131
132 $file =~ s/\//$o/g if $o ne '/';
133 $n=&bname($targer);
134 $ret.="$target: $files $dep_libs\n";
135 $ret.="\t\$(LINK) \$(LFLAGS) $files \$(APP_EX_OBJ), $target,, $libs\n\n";
136 return($ret);
137 }
138
1391;
diff --git a/src/lib/libcrypto/util/pl/Mingw32.pl b/src/lib/libcrypto/util/pl/Mingw32.pl
new file mode 100644
index 0000000000..fe3fb27a78
--- /dev/null
+++ b/src/lib/libcrypto/util/pl/Mingw32.pl
@@ -0,0 +1,104 @@
1#!/usr/local/bin/perl
2#
3# Mingw32.pl -- Mingw
4#
5
6$o='/';
7$cp='cp';
8$rm='rm -f';
9$mkdir='gmkdir';
10
11$o='\\';
12$cp='copy';
13$rm='del';
14$mkdir='mkdir';
15
16# C compiler stuff
17
18$cc='gcc';
19if ($debug)
20 { $cflags="-DL_ENDIAN -DDSO_WIN32 -g2 -ggdb"; }
21else
22 { $cflags="-DL_ENDIAN -DDSO_WIN32 -fomit-frame-pointer -O3 -mcpu=i486 -Wall"; }
23
24if ($gaswin and !$no_asm)
25 {
26 $bn_asm_obj='$(OBJ_D)\bn-win32.o';
27 $bn_asm_src='crypto/bn/asm/bn-win32.s';
28 $bnco_asm_obj='$(OBJ_D)\co-win32.o';
29 $bnco_asm_src='crypto/bn/asm/co-win32.s';
30 $des_enc_obj='$(OBJ_D)\d-win32.o $(OBJ_D)\y-win32.o';
31 $des_enc_src='crypto/des/asm/d-win32.s crypto/des/asm/y-win32.s';
32 $bf_enc_obj='$(OBJ_D)\b-win32.o';
33 $bf_enc_src='crypto/bf/asm/b-win32.s';
34# $cast_enc_obj='$(OBJ_D)\c-win32.o';
35# $cast_enc_src='crypto/cast/asm/c-win32.s';
36 $rc4_enc_obj='$(OBJ_D)\r4-win32.o';
37 $rc4_enc_src='crypto/rc4/asm/r4-win32.s';
38 $rc5_enc_obj='$(OBJ_D)\r5-win32.o';
39 $rc5_enc_src='crypto/rc5/asm/r5-win32.s';
40 $md5_asm_obj='$(OBJ_D)\m5-win32.o';
41 $md5_asm_src='crypto/md5/asm/m5-win32.s';
42 $rmd160_asm_obj='$(OBJ_D)\rm-win32.o';
43 $rmd160_asm_src='crypto/ripemd/asm/rm-win32.s';
44 $sha1_asm_obj='$(OBJ_D)\s1-win32.o';
45 $sha1_asm_src='crypto/sha/asm/s1-win32.s';
46 $cflags.=" -DBN_ASM -DMD5_ASM -DSHA1_ASM -DOPENSSL_BN_ASM_PART_WORDS";
47 }
48
49
50$obj='.o';
51$ofile='-o ';
52
53# EXE linking stuff
54$link='${CC}';
55$lflags='${CFLAGS}';
56$efile='-o ';
57$exep='';
58$ex_libs="-lws2_32 -lgdi32";
59
60# static library stuff
61$mklib='ar r';
62$mlflags='';
63$ranlib='ranlib';
64$plib='lib';
65$libp=".a";
66$shlibp=".a";
67$lfile='';
68
69$asm='as';
70$afile='-o ';
71#$bn_asm_obj="";
72#$bn_asm_src="";
73#$des_enc_obj="";
74#$des_enc_src="";
75#$bf_enc_obj="";
76#$bf_enc_src="";
77
78sub do_lib_rule
79 {
80 local($obj,$target,$name,$shlib)=@_;
81 local($ret,$_,$Name);
82
83 $target =~ s/\//$o/g if $o ne '/';
84 $target="$target";
85 ($Name=$name) =~ tr/a-z/A-Z/;
86
87 $ret.="$target: \$(${Name}OBJ)\n";
88 $ret.="\tif exist $target \$(RM) $target\n";
89 $ret.="\t\$(MKLIB) $target \$(${Name}OBJ)\n";
90 $ret.="\t\$(RANLIB) $target\n\n";
91 }
92
93sub do_link_rule
94 {
95 local($target,$files,$dep_libs,$libs)=@_;
96 local($ret,$_);
97
98 $file =~ s/\//$o/g if $o ne '/';
99 $n=&bname($target);
100 $ret.="$target: $files $dep_libs\n";
101 $ret.="\t\$(LINK) ${efile}$target \$(LFLAGS) $files $libs\n\n";
102 return($ret);
103 }
1041;
diff --git a/src/lib/libcrypto/util/pl/OS2-EMX.pl b/src/lib/libcrypto/util/pl/OS2-EMX.pl
new file mode 100644
index 0000000000..28cd116907
--- /dev/null
+++ b/src/lib/libcrypto/util/pl/OS2-EMX.pl
@@ -0,0 +1,120 @@
1#!/usr/local/bin/perl
2#
3# OS2-EMX.pl - for EMX GCC on OS/2
4#
5
6$o='/';
7$cp='cp';
8$rm='rm -f';
9
10$preamble = "SHELL=sh\n";
11
12# C compiler stuff
13
14$cc='gcc';
15$cflags="-DL_ENDIAN -O3 -fomit-frame-pointer -m486 -Zmtd -Wall ";
16$cflags.="-Zomf " if $shlib;
17$shl_cflag="-Zdll";
18
19if ($debug) {
20 $cflags.="-g ";
21}
22
23$obj=$shlib ? '.obj' : '.o';
24$ofile='-o ';
25
26# EXE linking stuff
27$link='${CC}';
28$lflags='${CFLAGS} -Zbsd-signals -s';
29$efile='-o ';
30$exep='.exe';
31$ex_libs="-lsocket";
32
33# static library stuff
34$mklib='ar r';
35$mlflags='';
36$ranlib="ar s";
37$plib='';
38$libp=$shlib ? ".lib" : ".a";
39$shlibp=$shlib ? ".dll" : ".a";
40$lfile='';
41
42$asm=$shlib ? 'as -Zomf' : 'as';
43$afile='-o ';
44$bn_asm_obj="";
45$bn_asm_src="";
46$des_enc_obj="";
47$des_enc_src="";
48$bf_enc_obj="";
49$bf_enc_src="";
50
51if (!$no_asm)
52 {
53 $bn_asm_obj="crypto/bn/asm/bn-os2$obj crypto/bn/asm/co-os2$obj";
54 $bn_asm_src="crypto/bn/asm/bn-os2.asm crypto/bn/asm/co-os2.asm";
55 $des_enc_obj="crypto/des/asm/d-os2$obj crypto/des/asm/y-os2$obj";
56 $des_enc_src="crypto/des/asm/d-os2.asm crypto/des/asm/y-os2.asm";
57 $bf_enc_obj="crypto/bf/asm/b-os2$obj";
58 $bf_enc_src="crypto/bf/asm/b-os2.asm";
59 $cast_enc_obj="crypto/cast/asm/c-os2$obj";
60 $cast_enc_src="crypto/cast/asm/c-os2.asm";
61 $rc4_enc_obj="crypto/rc4/asm/r4-os2$obj";
62 $rc4_enc_src="crypto/rc4/asm/r4-os2.asm";
63 $rc5_enc_obj="crypto/rc5/asm/r5-os2$obj";
64 $rc5_enc_src="crypto/rc5/asm/r5-os2.asm";
65 $md5_asm_obj="crypto/md5/asm/m5-os2$obj";
66 $md5_asm_src="crypto/md5/asm/m5-os2.asm";
67 $sha1_asm_obj="crypto/sha/asm/s1-os2$obj";
68 $sha1_asm_src="crypto/sha/asm/s1-os2.asm";
69 $rmd160_asm_obj="crypto/ripemd/asm/rm-os2$obj";
70 $rmd160_asm_src="crypto/ripemd/asm/rm-os2.asm";
71 $cflags.=" -DBN_ASM -DMD5_ASM -DSHA1_ASM -DOPENSSL_BN_ASM_PART_WORDS";
72 }
73
74if ($shlib)
75 {
76 $mlflags.=" $lflags -Zdll";
77 $lib_cflag=" -D_DLL";
78 $out_def="out_dll";
79 $tmp_def="tmp_dll";
80 }
81
82sub do_lib_rule
83 {
84 local($obj,$target,$name,$shlib)=@_;
85 local($ret,$_,$Name);
86
87 $target =~ s/\//$o/g if $o ne '/';
88 $target="$target";
89 ($Name=$name) =~ tr/a-z/A-Z/;
90
91 $ret.="$target: \$(${Name}OBJ)\n";
92 if (!$shlib)
93 {
94 $ret.="\t\$(RM) $target\n";
95 $ret.="\t\$(MKLIB) $target \$(${Name}OBJ)\n";
96 $ret.="\t\$(RANLIB) $target\n\n";
97 }
98 else
99 {
100 local($ex)=($target =~ /O_SSL/)?' $(L_CRYPTO)':'';
101 $ex.=' -lsocket';
102 $ret.="\t\$(LINK) \$(SHLIB_CFLAGS) \$(MLFLAGS) $efile$target \$(SHLIB_EX_OBJ) \$(${Name}OBJ) $ex os2/${Name}.def\n";
103 $ret.="\temximp -o $out_def/$name.a os2/${Name}.def\n";
104 $ret.="\temximp -o $out_def/$name.lib os2/${Name}.def\n\n";
105 }
106 }
107
108sub do_link_rule
109 {
110 local($target,$files,$dep_libs,$libs)=@_;
111 local($ret,$_);
112
113 $file =~ s/\//$o/g if $o ne '/';
114 $n=&bname($target);
115 $ret.="$target: $files $dep_libs\n";
116 $ret.="\t\$(LINK) ${efile}$target \$(CFLAG) \$(LFLAGS) $files $libs\n\n";
117 return($ret);
118 }
119
1201;
diff --git a/src/lib/libcrypto/util/pl/VC-32.pl b/src/lib/libcrypto/util/pl/VC-32.pl
new file mode 100644
index 0000000000..c3e29fda96
--- /dev/null
+++ b/src/lib/libcrypto/util/pl/VC-32.pl
@@ -0,0 +1,338 @@
1#!/usr/local/bin/perl
2# VC-32.pl - unified script for Microsoft Visual C++, covering Win32,
3# Win64 and WinCE [follow $FLAVOR variable to trace the differences].
4#
5
6$ssl= "ssleay32";
7$crypto="libeay32";
8
9$o='\\';
10$cp='$(PERL) util/copy.pl';
11$mkdir='$(PERL) util/mkdir-p.pl';
12$rm='del /Q';
13
14$zlib_lib="zlib1.lib";
15
16# Santize -L options for ms link
17$l_flags =~ s/-L("\[^"]+")/\/libpath:$1/g;
18$l_flags =~ s/-L(\S+)/\/libpath:$1/g;
19
20# C compiler stuff
21$cc='cl';
22if ($FLAVOR =~ /WIN64/)
23 {
24 # Note that we currently don't have /WX on Win64! There is a lot of
25 # warnings, but only of two types:
26 #
27 # C4344: conversion from '__int64' to 'int/long', possible loss of data
28 # C4267: conversion from 'size_t' to 'int/long', possible loss of data
29 #
30 # Amount of latter type is minimized by aliasing strlen to function of
31 # own desing and limiting its return value to 2GB-1 (see e_os.h). As
32 # per 0.9.8 release remaining warnings were explicitly examined and
33 # considered safe to ignore.
34 #
35 $base_cflags= " $mf_cflag";
36 my $f = $shlib?' /MD':' /MT';
37 $lib_cflag='/Zl' if (!$shlib); # remove /DEFAULTLIBs from static lib
38 $opt_cflags=$f.' /Ox';
39 $dbg_cflags=$f.'d /Od -DDEBUG -D_DEBUG';
40 $lflags="/nologo /subsystem:console /opt:ref";
41
42 *::perlasm_compile_target = sub {
43 my ($target,$source,$bname)=@_;
44 my $ret;
45
46 $bname =~ s/(.*)\.[^\.]$/$1/;
47 $ret=<<___;
48\$(TMP_D)$o$bname.asm: $source
49 set ASM=\$(ASM)
50 \$(PERL) $source \$\@
51
52$target: \$(TMP_D)$o$bname.asm
53 \$(ASM) $afile\$\@ \$(TMP_D)$o$bname.asm
54
55___
56 }
57 }
58elsif ($FLAVOR =~ /CE/)
59 {
60 # sanity check
61 die '%OSVERSION% is not defined' if (!defined($ENV{'OSVERSION'}));
62 die '%PLATFORM% is not defined' if (!defined($ENV{'PLATFORM'}));
63 die '%TARGETCPU% is not defined' if (!defined($ENV{'TARGETCPU'}));
64
65 #
66 # Idea behind this is to mimic flags set by eVC++ IDE...
67 #
68 $wcevers = $ENV{'OSVERSION'}; # WCENNN
69 die '%OSVERSION% value is insane' if ($wcevers !~ /^WCE([1-9])([0-9]{2})$/);
70 $wcecdefs = "-D_WIN32_WCE=$1$2 -DUNDER_CE=$1$2"; # -D_WIN32_WCE=NNN
71 $wcelflag = "/subsystem:windowsce,$1.$2"; # ...,N.NN
72
73 $wceplatf = $ENV{'PLATFORM'};
74 $wceplatf =~ tr/a-z0-9 /A-Z0-9_/d;
75 $wcecdefs .= " -DWCE_PLATFORM_$wceplatf";
76
77 $wcetgt = $ENV{'TARGETCPU'}; # just shorter name...
78 SWITCH: for($wcetgt) {
79 /^X86/ && do { $wcecdefs.=" -Dx86 -D_X86_ -D_i386_ -Di_386_";
80 $wcelflag.=" /machine:IX86"; last; };
81 /^ARMV4[IT]/ && do { $wcecdefs.=" -DARM -D_ARM_ -D$wcetgt";
82 $wcecdefs.=" -DTHUMB -D_THUMB_" if($wcetgt=~/T$/);
83 $wcecdefs.=" -QRarch4T -QRinterwork-return";
84 $wcelflag.=" /machine:THUMB"; last; };
85 /^ARM/ && do { $wcecdefs.=" -DARM -D_ARM_ -D$wcetgt";
86 $wcelflag.=" /machine:ARM"; last; };
87 /^MIPSIV/ && do { $wcecdefs.=" -DMIPS -D_MIPS_ -DR4000 -D$wcetgt";
88 $wcecdefs.=" -D_MIPS64 -QMmips4 -QMn32";
89 $wcelflag.=" /machine:MIPSFPU"; last; };
90 /^MIPS16/ && do { $wcecdefs.=" -DMIPS -D_MIPS_ -DR4000 -D$wcetgt";
91 $wcecdefs.=" -DMIPSII -QMmips16";
92 $wcelflag.=" /machine:MIPS16"; last; };
93 /^MIPSII/ && do { $wcecdefs.=" -DMIPS -D_MIPS_ -DR4000 -D$wcetgt";
94 $wcecdefs.=" -QMmips2";
95 $wcelflag.=" /machine:MIPS"; last; };
96 /^R4[0-9]{3}/ && do { $wcecdefs.=" -DMIPS -D_MIPS_ -DR4000";
97 $wcelflag.=" /machine:MIPS"; last; };
98 /^SH[0-9]/ && do { $wcecdefs.=" -D$wcetgt -D_$wcetgt_ -DSHx";
99 $wcecdefs.=" -Qsh4" if ($wcetgt =~ /^SH4/);
100 $wcelflag.=" /machine:$wcetgt"; last; };
101 { $wcecdefs.=" -D$wcetgt -D_$wcetgt_";
102 $wcelflag.=" /machine:$wcetgt"; last; };
103 }
104
105 $cc='$(CC)';
106 $base_cflags=' /W3 /WX /GF /Gy /nologo -DUNICODE -D_UNICODE -DOPENSSL_SYSNAME_WINCE -DWIN32_LEAN_AND_MEAN -DL_ENDIAN -DDSO_WIN32 -DNO_CHMOD -DOPENSSL_SMALL_FOOTPRINT';
107 $base_cflags.=" $wcecdefs";
108 $base_cflags.=' -I$(WCECOMPAT)/include' if (defined($ENV{'WCECOMPAT'}));
109 $base_cflags.=' -I$(PORTSDK_LIBPATH)/../../include' if (defined($ENV{'PORTSDK_LIBPATH'}));
110 $opt_cflags=' /MC /O1i'; # optimize for space, but with intrinsics...
111 $dbg_clfags=' /MC /Od -DDEBUG -D_DEBUG';
112 $lflags="/nologo /opt:ref $wcelflag";
113 }
114else # Win32
115 {
116 $base_cflags= " $mf_cflag";
117 my $f = $shlib?' /MD':' /MT';
118 $lib_cflag='/Zl' if (!$shlib); # remove /DEFAULTLIBs from static lib
119 $opt_cflags=$f.' /Ox /O2 /Ob2';
120 $dbg_cflags=$f.'d /Od -DDEBUG -D_DEBUG';
121 $lflags="/nologo /subsystem:console /opt:ref";
122 }
123$mlflags='';
124
125$out_def ="out32"; $out_def.="dll" if ($shlib);
126 $out_def.='_$(TARGETCPU)' if ($FLAVOR =~ /CE/);
127$tmp_def ="tmp32"; $tmp_def.="dll" if ($shlib);
128 $tmp_def.='_$(TARGETCPU)' if ($FLAVOR =~ /CE/);
129$inc_def="inc32";
130
131if ($debug)
132 {
133 $cflags=$dbg_cflags.$base_cflags;
134 }
135else
136 {
137 $cflags=$opt_cflags.$base_cflags;
138 }
139
140# generate symbols.pdb unconditionally
141$app_cflag.=" /Zi /Fd$tmp_def/app";
142$lib_cflag.=" /Zi /Fd$tmp_def/lib";
143$lflags.=" /debug";
144
145$obj='.obj';
146$asm_suffix='.asm';
147$ofile="/Fo";
148
149# EXE linking stuff
150$link="link";
151$rsc="rc";
152$efile="/out:";
153$exep='.exe';
154if ($no_sock) { $ex_libs=''; }
155elsif ($FLAVOR =~ /CE/) { $ex_libs='winsock.lib'; }
156else { $ex_libs='ws2_32.lib'; }
157
158if ($FLAVOR =~ /CE/)
159 {
160 $ex_libs.=' $(WCECOMPAT)/lib/wcecompatex.lib' if (defined($ENV{'WCECOMPAT'}));
161 $ex_libs.=' $(PORTSDK_LIBPATH)/portlib.lib' if (defined($ENV{'PORTSDK_LIBPATH'}));
162 $ex_libs.=' /nodefaultlib:oldnames.lib coredll.lib corelibc.lib' if ($ENV{'TARGETCPU'} eq "X86");
163 }
164else
165 {
166 $ex_libs.=' gdi32.lib advapi32.lib crypt32.lib user32.lib';
167 $ex_libs.=' bufferoverflowu.lib' if ($FLAVOR =~ /WIN64/ and `cl 2>&1` =~ /14\.00\.4[0-9]{4}\./);
168 # WIN32 UNICODE build gets linked with unicows.lib for
169 # backward compatibility with Win9x.
170 $ex_libs="unicows.lib $ex_libs" if ($FLAVOR =~ /WIN32/ and $cflags =~ /\-DUNICODE/);
171 }
172
173# static library stuff
174$mklib='lib /nologo';
175$ranlib='';
176$plib="";
177$libp=".lib";
178$shlibp=($shlib)?".dll":".lib";
179$lfile='/out:';
180
181$shlib_ex_obj="";
182$app_ex_obj="setargv.obj" if ($FLAVOR !~ /CE/);
183if ($FLAVOR =~ /WIN64A/) {
184 if (`nasm -v 2>NUL` =~ /NASM version ([0-9]+\.[0-9]+)/ && $1 >= 2.0) {
185 $asm='nasm -f win64 -DNEAR -Ox -g';
186 $afile='-o ';
187 } else {
188 $asm='ml64 /c /Cp /Cx /Zi';
189 $afile='/Fo';
190 }
191} elsif ($FLAVOR =~ /WIN64I/) {
192 $asm='ias -d debug';
193 $afile="-o ";
194} elsif ($nasm) {
195 my $ver=`nasm -v 2>NUL`;
196 my $vew=`nasmw -v 2>NUL`;
197 # pick newest version
198 $asm=($ver gt $vew?"nasm":"nasmw")." -f win32";
199 $asmtype="win32n";
200 $afile='-o ';
201} else {
202 $asm='ml /nologo /Cp /coff /c /Cx /Zi';
203 $afile='/Fo';
204 $asmtype="win32";
205}
206
207$bn_asm_obj='';
208$bn_asm_src='';
209$des_enc_obj='';
210$des_enc_src='';
211$bf_enc_obj='';
212$bf_enc_src='';
213
214if (!$no_asm)
215 {
216 win32_import_asm($mf_bn_asm, "bn", \$bn_asm_obj, \$bn_asm_src);
217 win32_import_asm($mf_aes_asm, "aes", \$aes_asm_obj, \$aes_asm_src);
218 win32_import_asm($mf_des_asm, "des", \$des_enc_obj, \$des_enc_src);
219 win32_import_asm($mf_bf_asm, "bf", \$bf_enc_obj, \$bf_enc_src);
220 win32_import_asm($mf_cast_asm, "cast", \$cast_enc_obj, \$cast_enc_src);
221 win32_import_asm($mf_rc4_asm, "rc4", \$rc4_enc_obj, \$rc4_enc_src);
222 win32_import_asm($mf_rc5_asm, "rc5", \$rc5_enc_obj, \$rc5_enc_src);
223 win32_import_asm($mf_md5_asm, "md5", \$md5_asm_obj, \$md5_asm_src);
224 win32_import_asm($mf_sha_asm, "sha", \$sha1_asm_obj, \$sha1_asm_src);
225 win32_import_asm($mf_rmd_asm, "ripemd", \$rmd160_asm_obj, \$rmd160_asm_src);
226 win32_import_asm($mf_wp_asm, "whrlpool", \$whirlpool_asm_obj, \$whirlpool_asm_src);
227 win32_import_asm($mf_cpuid_asm, "", \$cpuid_asm_obj, \$cpuid_asm_src);
228 $perl_asm = 1;
229 }
230
231if ($shlib && $FLAVOR !~ /CE/)
232 {
233 $mlflags.=" $lflags /dll";
234 $lib_cflag.=" -D_WINDLL";
235 #
236 # Engage Applink...
237 #
238 $app_ex_obj.=" \$(OBJ_D)\\applink.obj /implib:\$(TMP_D)\\junk.lib";
239 $cflags.=" -DOPENSSL_USE_APPLINK -I.";
240 # I'm open for better suggestions than overriding $banner...
241 $banner=<<'___';
242 @echo Building OpenSSL
243
244$(OBJ_D)\applink.obj: ms\applink.c
245 $(CC) /Fo$(OBJ_D)\applink.obj $(APP_CFLAGS) -c ms\applink.c
246$(OBJ_D)\uplink.obj: ms\uplink.c ms\applink.c
247 $(CC) /Fo$(OBJ_D)\uplink.obj $(SHLIB_CFLAGS) -c ms\uplink.c
248$(INCO_D)\applink.c: ms\applink.c
249 $(CP) ms\applink.c $(INCO_D)\applink.c
250
251EXHEADER= $(EXHEADER) $(INCO_D)\applink.c
252
253LIBS_DEP=$(LIBS_DEP) $(OBJ_D)\applink.obj
254CRYPTOOBJ=$(OBJ_D)\uplink.obj $(CRYPTOOBJ)
255___
256 $banner.=<<'___' if ($FLAVOR =~ /WIN64/);
257CRYPTOOBJ=ms\uptable.obj $(CRYPTOOBJ)
258___
259 }
260elsif ($shlib && $FLAVOR =~ /CE/)
261 {
262 $mlflags.=" $lflags /dll";
263 $lflags.=' /entry:mainCRTstartup' if(defined($ENV{'PORTSDK_LIBPATH'}));
264 $lib_cflag.=" -D_WINDLL -D_DLL";
265 }
266
267sub do_lib_rule
268 {
269 local($objs,$target,$name,$shlib)=@_;
270 local($ret);
271
272 $taget =~ s/\//$o/g if $o ne '/';
273 if ($name ne "")
274 {
275 $name =~ tr/a-z/A-Z/;
276 $name = "/def:ms/${name}.def";
277 }
278
279# $target="\$(LIB_D)$o$target";
280 $ret.="$target: $objs\n";
281 if (!$shlib)
282 {
283# $ret.="\t\$(RM) \$(O_$Name)\n";
284 $ret.="\t\$(MKLIB) $lfile$target @<<\n $objs\n<<\n";
285 }
286 else
287 {
288 local($ex)=($target =~ /O_CRYPTO/)?'':' $(L_CRYPTO)';
289 $ex.=" $zlib_lib" if $zlib_opt == 1 && $target =~ /O_CRYPTO/;
290 $ret.="\t\$(LINK) \$(MLFLAGS) $efile$target $name @<<\n \$(SHLIB_EX_OBJ) $objs $ex \$(EX_LIBS)\n<<\n";
291 $ret.="\tIF EXIST \$@.manifest mt -nologo -manifest \$@.manifest -outputresource:\$@;2\n\n";
292 }
293 $ret.="\n";
294 return($ret);
295 }
296
297sub do_link_rule
298 {
299 local($target,$files,$dep_libs,$libs)=@_;
300 local($ret,$_);
301
302 $file =~ s/\//$o/g if $o ne '/';
303 $n=&bname($targer);
304 $ret.="$target: $files $dep_libs\n";
305 $ret.="\t\$(LINK) \$(LFLAGS) $efile$target @<<\n";
306 $ret.=" \$(APP_EX_OBJ) $files $libs\n<<\n";
307 $ret.="\tIF EXIST \$@.manifest mt -nologo -manifest \$@.manifest -outputresource:\$@;1\n\n";
308 return($ret);
309 }
310
311sub win32_import_asm
312 {
313 my ($mf_var, $asm_name, $oref, $sref) = @_;
314 my $asm_dir;
315 if ($asm_name eq "")
316 {
317 $asm_dir = "crypto\\";
318 }
319 else
320 {
321 $asm_dir = "crypto\\$asm_name\\asm\\";
322 }
323
324 $$oref = "";
325 $mf_var =~ s/\.o$/.obj/g;
326
327 foreach (split(/ /, $mf_var))
328 {
329 $$oref .= $asm_dir . $_ . " ";
330 }
331 $$oref =~ s/ $//;
332 $$sref = $$oref;
333 $$sref =~ s/\.obj/.asm/g;
334
335 }
336
337
3381;
diff --git a/src/lib/libcrypto/util/pl/linux.pl b/src/lib/libcrypto/util/pl/linux.pl
new file mode 100644
index 0000000000..d24f7b7291
--- /dev/null
+++ b/src/lib/libcrypto/util/pl/linux.pl
@@ -0,0 +1,104 @@
1#!/usr/local/bin/perl
2#
3# linux.pl - the standard unix makefile stuff.
4#
5
6$o='/';
7$cp='/bin/cp';
8$rm='/bin/rm -f';
9
10# C compiler stuff
11
12$cc='gcc';
13if ($debug)
14 { $cflags="-g2 -ggdb -DREF_CHECK -DCRYPTO_MDEBUG"; }
15elsif ($profile)
16 { $cflags="-pg -O3"; }
17else
18 { $cflags="-O3 -fomit-frame-pointer"; }
19
20if (!$no_asm)
21 {
22 $bn_asm_obj='$(OBJ_D)/bn86-elf.o';
23 $bn_asm_src='crypto/bn/asm/bn86unix.cpp';
24 $bnco_asm_obj='$(OBJ_D)/co86-elf.o';
25 $bnco_asm_src='crypto/bn/asm/co86unix.cpp';
26 $des_enc_obj='$(OBJ_D)/dx86-elf.o $(OBJ_D)/yx86-elf.o';
27 $des_enc_src='crypto/des/asm/dx86unix.cpp crypto/des/asm/yx86unix.cpp';
28 $bf_enc_obj='$(OBJ_D)/bx86-elf.o';
29 $bf_enc_src='crypto/bf/asm/bx86unix.cpp';
30 $cast_enc_obj='$(OBJ_D)/cx86-elf.o';
31 $cast_enc_src='crypto/cast/asm/cx86unix.cpp';
32 $rc4_enc_obj='$(OBJ_D)/rx86-elf.o';
33 $rc4_enc_src='crypto/rc4/asm/rx86unix.cpp';
34 $rc5_enc_obj='$(OBJ_D)/r586-elf.o';
35 $rc5_enc_src='crypto/rc5/asm/r586unix.cpp';
36 $md5_asm_obj='$(OBJ_D)/mx86-elf.o';
37 $md5_asm_src='crypto/md5/asm/mx86unix.cpp';
38 $rmd160_asm_obj='$(OBJ_D)/rm86-elf.o';
39 $rmd160_asm_src='crypto/ripemd/asm/rm86unix.cpp';
40 $sha1_asm_obj='$(OBJ_D)/sx86-elf.o';
41 $sha1_asm_src='crypto/sha/asm/sx86unix.cpp';
42 $cflags.=" -DBN_ASM -DMD5_ASM -DSHA1_ASM -DOPENSSL_BN_ASM_PART_WORDS";
43 }
44
45$cflags.=" -DTERMIO -DL_ENDIAN -m486 -Wall";
46
47if ($shlib)
48 {
49 $shl_cflag=" -DPIC -fpic";
50 $shlibp=".so.$ssl_version";
51 $so_shlibp=".so";
52 }
53
54sub do_shlib_rule
55 {
56 local($obj,$target,$name,$shlib,$so_name)=@_;
57 local($ret,$_,$Name);
58
59 $target =~ s/\//$o/g if $o ne '/';
60 ($Name=$name) =~ tr/a-z/A-Z/;
61
62 $ret.="$target: \$(${Name}OBJ)\n";
63 $ret.="\t\$(RM) target\n";
64 $ret.="\tgcc \${CFLAGS} -shared -Wl,-soname,$target -o $target \$(${Name}OBJ)\n";
65 ($t=$target) =~ s/(^.*)\/[^\/]*$/$1/;
66 if ($so_name ne "")
67 {
68 $ret.="\t\$(RM) \$(LIB_D)$o$so_name\n";
69 $ret.="\tln -s $target \$(LIB_D)$o$so_name\n\n";
70 }
71 }
72
73sub do_link_rule
74 {
75 local($target,$files,$dep_libs,$libs)=@_;
76 local($ret,$_);
77
78 $file =~ s/\//$o/g if $o ne '/';
79 $n=&bname($target);
80 $ret.="$target: $files $dep_libs\n";
81 $ret.="\t\$(LINK) ${efile}$target \$(LFLAGS) $files $libs\n\n";
82 return($ret);
83 }
84
85sub do_asm_rule
86 {
87 local($target,$src)=@_;
88 local($ret,@s,@t,$i);
89
90 $target =~ s/\//$o/g if $o ne "/";
91 $src =~ s/\//$o/g if $o ne "/";
92
93 @s=split(/\s+/,$src);
94 @t=split(/\s+/,$target);
95
96 for ($i=0; $i<=$#s; $i++)
97 {
98 $ret.="$t[$i]: $s[$i]\n";
99 $ret.="\tgcc -E -DELF \$(SRC_D)$o$s[$i]|\$(AS) $afile$t[$i]\n\n";
100 }
101 return($ret);
102 }
103
1041;
diff --git a/src/lib/libcrypto/util/pl/netware.pl b/src/lib/libcrypto/util/pl/netware.pl
new file mode 100644
index 0000000000..c78bcfc874
--- /dev/null
+++ b/src/lib/libcrypto/util/pl/netware.pl
@@ -0,0 +1,532 @@
1# Metrowerks Codewarrior or gcc / nlmconv for NetWare
2#
3
4$version_header = "crypto/opensslv.h";
5open(IN, "$version_header") or die "Couldn't open $version_header: $!";
6while (<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}
16close(IN) or die "Couldn't close $version_header: $!";
17
18$readme_file = "README";
19open(IN, $readme_file) or die "Couldn't open $readme_file: $!";
20while (<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}
33close(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");
48if ($LIBC)
49{
50 @import_files = ("libc.imp");
51 @module_files = ("libc");
52 $libarch = "LIBC";
53}
54else
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}
63if ($BSDSOCK)
64{
65 $libarch .= "-BSD";
66}
67else
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
96if ($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}
115else
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
132if ($nw_nasm)
133{
134 $asm=(`nasm -v 2>NUL` gt `nasmw -v 2>NUL`?"nasm":"nasmw");
135 if ($gnuc)
136 {
137 $asm.=" -s -f elf";
138 }
139 else
140 {
141 $asm.=" -s -f coff -d __coff__";
142 }
143 $afile="-o ";
144 $asm.=" -g" if $debug;
145}
146elsif ($nw_mwasm)
147{
148 $asm="mwasmnlm -maxerrors 20";
149 $afile="-o ";
150 $asm.=" -g" if $debug;
151}
152elsif ($nw_masm)
153{
154# masm assembly settings - it should be possible to use masm but haven't
155# got it working.
156# $asm='ml /Cp /coff /c /Cx';
157# $asm.=" /Zi" if $debug;
158# $afile='/Fo';
159 die("Support for masm assembler not yet functional\n");
160}
161else
162{
163 $asm="";
164 $afile="";
165}
166
167
168
169if ($gnuc)
170{
171 # compile flags for GNUC
172 # additional flags based upon debug | non-debug
173 if ($debug)
174 {
175 $cflags="-g -DDEBUG";
176 }
177 else
178 {
179 $cflags="-O2";
180 }
181 $cflags.=" -nostdinc -I$include_path \\
182 -fno-builtin -fpcc-struct-return -fno-strict-aliasing \\
183 -funsigned-char -Wall -Wno-unused -Wno-uninitialized";
184
185 # link flags
186 $lflags="-T";
187}
188else
189{
190 # compile flags for CodeWarrior
191 # additional flags based upon debug | non-debug
192 if ($debug)
193 {
194 $cflags="-opt off -g -sym internal -DDEBUG";
195 }
196 else
197 {
198 # CodeWarrior compiler has a problem with optimizations for floating
199 # points - no optimizations until further investigation
200 # $cflags="-opt all";
201 }
202
203 # NOTES: Several c files in the crypto subdirectory include headers from
204 # their local directories. Metrowerks wouldn't find these h files
205 # without adding individual include directives as compile flags
206 # or modifying the c files. Instead of adding individual include
207 # paths for each subdirectory a recursive include directive
208 # is used ( -ir crypto ).
209 #
210 # A similar issue exists for the engines and apps subdirectories.
211 #
212 # Turned off the "possible" warnings ( -w nopossible ). Metrowerks
213 # complained a lot about various stuff. May want to turn back
214 # on for further development.
215 $cflags.=" -nostdinc -ir crypto -ir engines -ir apps -I$include_path \\
216 -msgstyle gcc -align 4 -processor pentium -char unsigned \\
217 -w on -w nolargeargs -w nopossible -w nounusedarg -w nounusedexpr \\
218 -w noimplicitconv -relax_pointers -nosyspath -maxerrors 20";
219
220 # link flags
221 $lflags="-msgstyle gcc -zerobss -nostdlib -sym internal -commandfile";
222}
223
224# common defines
225$cflags.=" -DL_ENDIAN -DOPENSSL_SYSNAME_NETWARE -U_WIN32";
226
227# If LibC build add in NKS_LIBC define and set the entry/exit
228# routines - The default entry/exit routines are for CLib and don't exist
229# in LibC
230if ($LIBC)
231{
232 $cflags.=" -DNETWARE_LIBC";
233 $nlmstart = "_LibCPrelude";
234 $nlmexit = "_LibCPostlude";
235 @nlm_flags = ("pseudopreemption", "flag_on 64");
236}
237else
238{
239 $cflags.=" -DNETWARE_CLIB";
240 $nlmstart = "_Prelude";
241 $nlmexit = "_Stop";
242}
243
244# If BSD Socket support is requested, set a define for the compiler
245if ($BSDSOCK)
246{
247 $cflags.=" -DNETWARE_BSDSOCK";
248 if (!$LIBC)
249 {
250 $cflags.=" -DNETDB_USE_INTERNET";
251 }
252}
253
254
255# linking stuff
256# for the output directories use the mk1mf.pl values with "_nw" appended
257if ($shlib)
258{
259 if ($LIBC)
260 {
261 $out_def.="_nw_libc_nlm";
262 $tmp_def.="_nw_libc_nlm";
263 $inc_def.="_nw_libc_nlm";
264 }
265 else # NETWARE_CLIB
266 {
267 $out_def.="_nw_clib_nlm";
268 $tmp_def.="_nw_clib_nlm";
269 $inc_def.="_nw_clib_nlm";
270 }
271}
272else
273{
274 if ($gnuc) # GNUC Tools
275 {
276 $libp=".a";
277 $shlibp=".a";
278 $lib_flags="-cr";
279 }
280 else # CodeWarrior
281 {
282 $libp=".lib";
283 $shlibp=".lib";
284 $lib_flags="-nodefaults -type library -o";
285 }
286 if ($LIBC)
287 {
288 $out_def.="_nw_libc";
289 $tmp_def.="_nw_libc";
290 $inc_def.="_nw_libc";
291 }
292 else # NETWARE_CLIB
293 {
294 $out_def.="_nw_clib";
295 $tmp_def.="_nw_clib";
296 $inc_def.="_nw_clib";
297 }
298}
299
300# used by mk1mf.pl
301$obj='.o';
302$ofile='-o ';
303$efile='';
304$exep='.nlm';
305$ex_libs='';
306
307if (!$no_asm)
308{
309 $bn_asm_obj="\$(OBJ_D)${o}bn-nw${obj}";
310 $bn_asm_src="crypto${o}bn${o}asm${o}bn-nw.asm";
311 $bnco_asm_obj="\$(OBJ_D)${o}co-nw${obj}";
312 $bnco_asm_src="crypto${o}bn${o}asm${o}co-nw.asm";
313 $aes_asm_obj="\$(OBJ_D)${o}a-nw${obj}";
314 $aes_asm_src="crypto${o}aes${o}asm${o}a-nw.asm";
315 $des_enc_obj="\$(OBJ_D)${o}d-nw${obj} \$(OBJ_D)${o}y-nw${obj}";
316 $des_enc_src="crypto${o}des${o}asm${o}d-nw.asm crypto${o}des${o}asm${o}y-nw.asm";
317 $bf_enc_obj="\$(OBJ_D)${o}b-nw${obj}";
318 $bf_enc_src="crypto${o}bf${o}asm${o}b-nw.asm";
319 $cast_enc_obj="\$(OBJ_D)${o}c-nw${obj}";
320 $cast_enc_src="crypto${o}cast${o}asm${o}c-nw.asm";
321 $rc4_enc_obj="\$(OBJ_D)${o}r4-nw${obj}";
322 $rc4_enc_src="crypto${o}rc4${o}asm${o}r4-nw.asm";
323 $rc5_enc_obj="\$(OBJ_D)${o}r5-nw${obj}";
324 $rc5_enc_src="crypto${o}rc5${o}asm${o}r5-nw.asm";
325 $md5_asm_obj="\$(OBJ_D)${o}m5-nw${obj}";
326 $md5_asm_src="crypto${o}md5${o}asm${o}m5-nw.asm";
327 $sha1_asm_obj="\$(OBJ_D)${o}s1-nw${obj} \$(OBJ_D)${o}sha256-nw${obj} \$(OBJ_D)${o}sha512-nw${obj}";
328 $sha1_asm_src="crypto${o}sha${o}asm${o}s1-nw.asm crypto${o}sha${o}asm${o}sha256-nw.asm crypto${o}sha${o}asm${o}sha512-nw.asm";
329 $rmd160_asm_obj="\$(OBJ_D)${o}rm-nw${obj}";
330 $rmd160_asm_src="crypto${o}ripemd${o}asm${o}rm-nw.asm";
331 $whirlpool_asm_obj="\$(OBJ_D)${o}wp-nw${obj}";
332 $whirlpool_asm_src="crypto${o}whrlpool${o}asm${o}wp-nw.asm";
333 $cpuid_asm_obj="\$(OBJ_D)${o}x86cpuid-nw${obj}";
334 $cpuid_asm_src="crypto${o}x86cpuid-nw.asm";
335 $cflags.=" -DOPENSSL_CPUID_OBJ -DBN_ASM -DOPENSSL_BN_ASM_PART_WORDS -DMD5_ASM -DWHIRLPOOL_ASM";
336 $cflags.=" -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM";
337 $cflags.=" -DAES_ASM -DRMD160_ASM";
338}
339else
340{
341 $bn_asm_obj='';
342 $bn_asm_src='';
343 $bnco_asm_obj='';
344 $bnco_asm_src='';
345 $aes_asm_obj='';
346 $aes_asm_src='';
347 $des_enc_obj='';
348 $des_enc_src='';
349 $bf_enc_obj='';
350 $bf_enc_src='';
351 $cast_enc_obj='';
352 $cast_enc_src='';
353 $rc4_enc_obj='';
354 $rc4_enc_src='';
355 $rc5_enc_obj='';
356 $rc5_enc_src='';
357 $md5_asm_obj='';
358 $md5_asm_src='';
359 $sha1_asm_obj='';
360 $sha1_asm_src='';
361 $rmd160_asm_obj='';
362 $rmd160_asm_src='';
363 $whirlpool_asm_obj='';
364 $whirlpool_asm_src='';
365 $cpuid_asm_obj='';
366 $cpuid_asm_src='';
367}
368
369# create the *.def linker command files in \openssl\netware\ directory
370sub do_def_file
371{
372 # strip off the leading path
373 my($target) = bname(shift);
374 my($i);
375
376 if ($target =~ /(.*).nlm/)
377 {
378 $target = $1;
379 }
380
381 # special case for openssl - the mk1mf.pl defines E_EXE = openssl
382 if ($target =~ /E_EXE/)
383 {
384 $target =~ s/\$\(E_EXE\)/openssl/;
385 }
386
387 # Note: originally tried to use full path ( \openssl\netware\$target.def )
388 # Metrowerks linker choked on this with an assertion failure. bug???
389 #
390 my($def_file) = "netware${o}$target.def";
391
392 open(DEF_OUT, ">$def_file") || die("unable to open file $def_file\n");
393
394 print( DEF_OUT "# command file generated by netware.pl for NLM target.\n" );
395 print( DEF_OUT "# do not edit this file - all your changes will be lost!!\n" );
396 print( DEF_OUT "#\n");
397 print( DEF_OUT "DESCRIPTION \"$target ($libarch) - OpenSSL $nlmverstr\"\n");
398 print( DEF_OUT "COPYRIGHT \"$nlmcpystr\"\n");
399 print( DEF_OUT "VERSION $nlmvernum\n");
400 print( DEF_OUT "STACK $nlmstack\n");
401 print( DEF_OUT "START $nlmstart\n");
402 print( DEF_OUT "EXIT $nlmexit\n");
403
404 # special case for openssl
405 if ($target eq "openssl")
406 {
407 print( DEF_OUT "SCREENNAME \"OpenSSL $nlmverstr\"\n");
408 }
409 else
410 {
411 print( DEF_OUT "SCREENNAME \"DEFAULT\"\n");
412 }
413
414 foreach $i (@misc_imports)
415 {
416 print( DEF_OUT "IMPORT $i\n");
417 }
418
419 foreach $i (@import_files)
420 {
421 print( DEF_OUT "IMPORT \@$import_path${o}$i\n");
422 }
423
424 foreach $i (@module_files)
425 {
426 print( DEF_OUT "MODULE $i\n");
427 }
428
429 foreach $i (@nlm_flags)
430 {
431 print( DEF_OUT "$i\n");
432 }
433
434 if ($gnuc)
435 {
436 if ($target =~ /openssl/)
437 {
438 print( DEF_OUT "INPUT ${tmp_def}${o}openssl${obj}\n");
439 print( DEF_OUT "INPUT ${tmp_def}${o}openssl${libp}\n");
440 }
441 else
442 {
443 print( DEF_OUT "INPUT ${tmp_def}${o}${target}${obj}\n");
444 }
445 print( DEF_OUT "INPUT $prelude\n");
446 print( DEF_OUT "INPUT ${out_def}${o}${ssl}${libp} ${out_def}${o}${crypto}${libp}\n");
447 print( DEF_OUT "OUTPUT $target.nlm\n");
448 }
449
450 close(DEF_OUT);
451 return($def_file);
452}
453
454sub do_lib_rule
455{
456 my($objs,$target,$name,$shlib)=@_;
457 my($ret);
458
459 $ret.="$target: $objs\n";
460 if (!$shlib)
461 {
462 $ret.="\t\@echo Building Lib: $name\n";
463 $ret.="\t\$(MKLIB) $lib_flags $target $objs\n";
464 $ret.="\t\@echo .\n"
465 }
466 else
467 {
468 die( "Building as NLM not currently supported!" );
469 }
470
471 $ret.="\n";
472 return($ret);
473}
474
475sub do_link_rule
476{
477 my($target,$files,$dep_libs,$libs)=@_;
478 my($ret);
479 my($def_file) = do_def_file($target);
480
481 $ret.="$target: $files $dep_libs\n";
482
483 # NOTE: When building the test nlms no screen name is given
484 # which causes the console screen to be used. By using the console
485 # screen there is no "<press any key to continue>" message which
486 # requires user interaction. The test script ( do_tests.pl ) needs
487 # to be able to run the tests without requiring user interaction.
488 #
489 # However, the sample program "openssl.nlm" is used by the tests and is
490 # a interactive sample so a screen is desired when not be run by the
491 # tests. To solve the problem, two versions of the program are built:
492 # openssl2 - no screen used by tests
493 # openssl - default screen - use for normal interactive modes
494 #
495
496 # special case for openssl - the mk1mf.pl defines E_EXE = openssl
497 if ($target =~ /E_EXE/)
498 {
499 my($target2) = $target;
500
501 $target2 =~ s/\(E_EXE\)/\(E_EXE\)2/;
502
503 # openssl2
504 my($def_file2) = do_def_file($target2);
505
506 if ($gnuc)
507 {
508 $ret.="\t\$(MKLIB) $lib_flags \$(TMP_D)${o}\$(E_EXE).a \$(filter-out \$(TMP_D)${o}\$(E_EXE)${obj},$files)\n";
509 $ret.="\t\$(LINK) \$(LFLAGS) $def_file2\n";
510 $ret.="\t\@$mv \$(E_EXE)2.nlm \$(TEST_D)\n";
511 }
512 else
513 {
514 $ret.="\t\$(LINK) \$(LFLAGS) $def_file2 $files \"$prelude\" $libs -o $target2\n";
515 }
516 }
517 if ($gnuc)
518 {
519 $ret.="\t\$(LINK) \$(LFLAGS) $def_file\n";
520 $ret.="\t\@$mv \$(\@F) \$(TEST_D)\n";
521 }
522 else
523 {
524 $ret.="\t\$(LINK) \$(LFLAGS) $def_file $files \"$prelude\" $libs -o $target\n";
525 }
526
527 $ret.="\n";
528 return($ret);
529
530}
531
5321;
diff --git a/src/lib/libcrypto/util/pl/ultrix.pl b/src/lib/libcrypto/util/pl/ultrix.pl
new file mode 100644
index 0000000000..ea370c71f9
--- /dev/null
+++ b/src/lib/libcrypto/util/pl/ultrix.pl
@@ -0,0 +1,38 @@
1#!/usr/local/bin/perl
2#
3# linux.pl - the standard unix makefile stuff.
4#
5
6$o='/';
7$cp='/bin/cp';
8$rm='/bin/rm -f';
9
10# C compiler stuff
11
12$cc='cc';
13if ($debug)
14 { $cflags="-g -DREF_CHECK -DCRYPTO_MDEBUG"; }
15else
16 { $cflags="-O2"; }
17
18$cflags.=" -std1 -DL_ENDIAN";
19
20if (!$no_asm)
21 {
22 $bn_asm_obj='$(OBJ_D)/mips1.o';
23 $bn_asm_src='crypto/bn/asm/mips1.s';
24 }
25
26sub do_link_rule
27 {
28 local($target,$files,$dep_libs,$libs)=@_;
29 local($ret,$_);
30
31 $file =~ s/\//$o/g if $o ne '/';
32 $n=&bname($target);
33 $ret.="$target: $files $dep_libs\n";
34 $ret.="\t\$(LINK) ${efile}$target \$(LFLAGS) $files $libs\n\n";
35 return($ret);
36 }
37
381;
diff --git a/src/lib/libcrypto/util/pl/unix.pl b/src/lib/libcrypto/util/pl/unix.pl
new file mode 100644
index 0000000000..146611ad99
--- /dev/null
+++ b/src/lib/libcrypto/util/pl/unix.pl
@@ -0,0 +1,96 @@
1#!/usr/local/bin/perl
2#
3# unix.pl - the standard unix makefile stuff.
4#
5
6$o='/';
7$cp='/bin/cp';
8$rm='/bin/rm -f';
9
10# C compiler stuff
11
12if ($gcc)
13 {
14 $cc='gcc';
15 if ($debug)
16 { $cflags="-g2 -ggdb"; }
17 else
18 { $cflags="-O3 -fomit-frame-pointer"; }
19 }
20else
21 {
22 $cc='cc';
23 if ($debug)
24 { $cflags="-g"; }
25 else
26 { $cflags="-O"; }
27 }
28$obj='.o';
29$ofile='-o ';
30
31# EXE linking stuff
32$link='${CC}';
33$lflags='${CFLAGS}';
34$efile='-o ';
35$exep='';
36$ex_libs="";
37
38# static library stuff
39$mklib='ar r';
40$mlflags='';
41$ranlib=&which("ranlib") or $ranlib="true";
42$plib='lib';
43$libp=".a";
44$shlibp=".a";
45$lfile='';
46
47$asm='as';
48$afile='-o ';
49$bn_asm_obj="";
50$bn_asm_src="";
51$des_enc_obj="";
52$des_enc_src="";
53$bf_enc_obj="";
54$bf_enc_src="";
55
56sub do_lib_rule
57 {
58 local($obj,$target,$name,$shlib)=@_;
59 local($ret,$_,$Name);
60
61 $target =~ s/\//$o/g if $o ne '/';
62 $target="$target";
63 ($Name=$name) =~ tr/a-z/A-Z/;
64
65 $ret.="$target: \$(${Name}OBJ)\n";
66 $ret.="\t\$(RM) $target\n";
67 $ret.="\t\$(MKLIB) $target \$(${Name}OBJ)\n";
68 $ret.="\t\$(RANLIB) $target\n\n";
69 }
70
71sub do_link_rule
72 {
73 local($target,$files,$dep_libs,$libs)=@_;
74 local($ret,$_);
75
76 $file =~ s/\//$o/g if $o ne '/';
77 $n=&bname($target);
78 $ret.="$target: $files $dep_libs\n";
79 $ret.="\t\$(LINK) ${efile}$target \$(LFLAGS) $files $libs\n\n";
80 return($ret);
81 }
82
83sub which
84 {
85 my ($name)=@_;
86 my $path;
87 foreach $path (split /:/, $ENV{PATH})
88 {
89 if (-x "$path/$name")
90 {
91 return "$path/$name";
92 }
93 }
94 }
95
961;