diff options
Diffstat (limited to 'src/lib/libcrypto/util/pl')
-rw-r--r-- | src/lib/libcrypto/util/pl/BC-32.pl | 139 | ||||
-rw-r--r-- | src/lib/libcrypto/util/pl/Mingw32.pl | 104 | ||||
-rw-r--r-- | src/lib/libcrypto/util/pl/OS2-EMX.pl | 120 | ||||
-rw-r--r-- | src/lib/libcrypto/util/pl/VC-32.pl | 338 | ||||
-rw-r--r-- | src/lib/libcrypto/util/pl/linux.pl | 104 | ||||
-rw-r--r-- | src/lib/libcrypto/util/pl/netware.pl | 532 | ||||
-rw-r--r-- | src/lib/libcrypto/util/pl/ultrix.pl | 38 | ||||
-rw-r--r-- | src/lib/libcrypto/util/pl/unix.pl | 96 |
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 "; | ||
22 | if ($debug) | ||
23 | { | ||
24 | $cflags.="-Od -y -v -vi- -D_DEBUG"; | ||
25 | $mlflags.=' '; | ||
26 | } | ||
27 | else | ||
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'; | ||
39 | if ($no_sock) | ||
40 | { $ex_libs=""; } | ||
41 | else { $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 | |||
65 | if (!$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 | |||
88 | if ($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 | |||
97 | sub 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 | |||
127 | sub 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 | |||
139 | 1; | ||
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'; | ||
19 | if ($debug) | ||
20 | { $cflags="-DL_ENDIAN -DDSO_WIN32 -g2 -ggdb"; } | ||
21 | else | ||
22 | { $cflags="-DL_ENDIAN -DDSO_WIN32 -fomit-frame-pointer -O3 -mcpu=i486 -Wall"; } | ||
23 | |||
24 | if ($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 | |||
78 | sub 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 | |||
93 | sub 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 | } | ||
104 | 1; | ||
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 | |||
19 | if ($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 | |||
51 | if (!$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 | |||
74 | if ($shlib) | ||
75 | { | ||
76 | $mlflags.=" $lflags -Zdll"; | ||
77 | $lib_cflag=" -D_DLL"; | ||
78 | $out_def="out_dll"; | ||
79 | $tmp_def="tmp_dll"; | ||
80 | } | ||
81 | |||
82 | sub 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 | |||
108 | sub 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 | |||
120 | 1; | ||
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'; | ||
22 | if ($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 | } | ||
58 | elsif ($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 | } | ||
114 | else # 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 | |||
131 | if ($debug) | ||
132 | { | ||
133 | $cflags=$dbg_cflags.$base_cflags; | ||
134 | } | ||
135 | else | ||
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'; | ||
154 | if ($no_sock) { $ex_libs=''; } | ||
155 | elsif ($FLAVOR =~ /CE/) { $ex_libs='winsock.lib'; } | ||
156 | else { $ex_libs='ws2_32.lib'; } | ||
157 | |||
158 | if ($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 | } | ||
164 | else | ||
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/); | ||
183 | if ($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 | |||
214 | if (!$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 | |||
231 | if ($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 | |||
251 | EXHEADER= $(EXHEADER) $(INCO_D)\applink.c | ||
252 | |||
253 | LIBS_DEP=$(LIBS_DEP) $(OBJ_D)\applink.obj | ||
254 | CRYPTOOBJ=$(OBJ_D)\uplink.obj $(CRYPTOOBJ) | ||
255 | ___ | ||
256 | $banner.=<<'___' if ($FLAVOR =~ /WIN64/); | ||
257 | CRYPTOOBJ=ms\uptable.obj $(CRYPTOOBJ) | ||
258 | ___ | ||
259 | } | ||
260 | elsif ($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 | |||
267 | sub 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 | |||
297 | sub 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 | |||
311 | sub 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 | |||
338 | 1; | ||
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'; | ||
13 | if ($debug) | ||
14 | { $cflags="-g2 -ggdb -DREF_CHECK -DCRYPTO_MDEBUG"; } | ||
15 | elsif ($profile) | ||
16 | { $cflags="-pg -O3"; } | ||
17 | else | ||
18 | { $cflags="-O3 -fomit-frame-pointer"; } | ||
19 | |||
20 | if (!$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 | |||
47 | if ($shlib) | ||
48 | { | ||
49 | $shl_cflag=" -DPIC -fpic"; | ||
50 | $shlibp=".so.$ssl_version"; | ||
51 | $so_shlibp=".so"; | ||
52 | } | ||
53 | |||
54 | sub 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 | |||
73 | sub 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 | |||
85 | sub 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 | |||
104 | 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..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"; | ||
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 | $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 | } | ||
146 | elsif ($nw_mwasm) | ||
147 | { | ||
148 | $asm="mwasmnlm -maxerrors 20"; | ||
149 | $afile="-o "; | ||
150 | $asm.=" -g" if $debug; | ||
151 | } | ||
152 | elsif ($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 | } | ||
161 | else | ||
162 | { | ||
163 | $asm=""; | ||
164 | $afile=""; | ||
165 | } | ||
166 | |||
167 | |||
168 | |||
169 | if ($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 | } | ||
188 | else | ||
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 | ||
230 | if ($LIBC) | ||
231 | { | ||
232 | $cflags.=" -DNETWARE_LIBC"; | ||
233 | $nlmstart = "_LibCPrelude"; | ||
234 | $nlmexit = "_LibCPostlude"; | ||
235 | @nlm_flags = ("pseudopreemption", "flag_on 64"); | ||
236 | } | ||
237 | else | ||
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 | ||
245 | if ($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 | ||
257 | if ($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 | } | ||
272 | else | ||
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 | |||
307 | if (!$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 | } | ||
339 | else | ||
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 | ||
370 | sub 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 | |||
454 | sub 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 | |||
475 | sub 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 | |||
532 | 1; | ||
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'; | ||
13 | if ($debug) | ||
14 | { $cflags="-g -DREF_CHECK -DCRYPTO_MDEBUG"; } | ||
15 | else | ||
16 | { $cflags="-O2"; } | ||
17 | |||
18 | $cflags.=" -std1 -DL_ENDIAN"; | ||
19 | |||
20 | if (!$no_asm) | ||
21 | { | ||
22 | $bn_asm_obj='$(OBJ_D)/mips1.o'; | ||
23 | $bn_asm_src='crypto/bn/asm/mips1.s'; | ||
24 | } | ||
25 | |||
26 | sub 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 | |||
38 | 1; | ||
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 | |||
12 | if ($gcc) | ||
13 | { | ||
14 | $cc='gcc'; | ||
15 | if ($debug) | ||
16 | { $cflags="-g2 -ggdb"; } | ||
17 | else | ||
18 | { $cflags="-O3 -fomit-frame-pointer"; } | ||
19 | } | ||
20 | else | ||
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 | |||
56 | sub 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 | |||
71 | sub 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 | |||
83 | sub 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 | |||
96 | 1; | ||