[openssl-commits] [openssl] master update
Richard Levitte
levitte at openssl.org
Wed Feb 10 13:43:34 UTC 2016
The branch master has been updated
via 907d2c2f62c45199d12138e597bf343283b80b12 (commit)
via f578075a93c7418f72ba000d1225cb0d9fd7df5d (commit)
via 0f53f939a10ad9eeee555dc235936e515118f216 (commit)
via e84193e43dbd3da23845ef9fcfcb5e364049a396 (commit)
via 9c44c29ef2cadb2f0ff214096ccf731ce2660d64 (commit)
via 242ffb05a2e4aa3fc7ffc131037e077b7e242189 (commit)
via fcf80c469aa722f7c6eca68d23d86d22f7f7efb9 (commit)
via 567a9e6fe0ff3badfa22cf018d87c94ed5a8aeb3 (commit)
via deb02194d246d865ff3837deb500a901e2269109 (commit)
from 5482dac9f4de7eb73d1b9c776be9495735f7e299 (commit)
- Log -----------------------------------------------------------------
commit 907d2c2f62c45199d12138e597bf343283b80b12
Author: Richard Levitte <levitte at openssl.org>
Date: Sat Jan 30 07:17:01 2016 +0100
unified build system: add CHANGES & NEWS
Reviewed-by: Rich Salz <rsalz at openssl.org>
commit f578075a93c7418f72ba000d1225cb0d9fd7df5d
Author: Richard Levitte <levitte at openssl.org>
Date: Sat Jan 30 07:15:59 2016 +0100
unified build scheme: rewrite INSTALL.VMS
There is more to be added, but this will at least tell people how to try.
Reviewed-by: Rich Salz <rsalz at openssl.org>
commit 0f53f939a10ad9eeee555dc235936e515118f216
Author: Richard Levitte <levitte at openssl.org>
Date: Sat Jan 30 07:15:30 2016 +0100
clean away old VMS cruft
The old building scripts get removed, they are hopelessly gone in bit
rot by now.
Also remove the old symbol hacks. They were needed needed to shorten
some names to 31 characters, and to resolve other symbol clashes.
Because we now compile with /NAMES=(AS_IS,SHORTENED), this is no
longer required.
Reviewed-by: Rich Salz <rsalz at openssl.org>
commit e84193e43dbd3da23845ef9fcfcb5e364049a396
Author: Richard Levitte <levitte at openssl.org>
Date: Sat Jan 30 07:14:58 2016 +0100
unified build scheme: add a "unified" template for VMS descrip.mms
As part of this, change util/mkdef.pl to stop adding libraries to
depend on in its output. mkdef.pl should ONLY output a symbol
vector.
Because symbol names can't be longer than 31 characters, we use the
compiler to shorten those that are longer down to 23 characters plus
an 8 character CRC. To make sure users of our header files will pick
up on that automatically, add the DEC C supported extra headers files
__decc_include_prologue.h and __decc_include_epilogue.h.
Furthermore, we add a config.com, so VMS people can configure just as
comfortably as any Unix folks, thusly:
@config
Reviewed-by: Rich Salz <rsalz at openssl.org>
commit 9c44c29ef2cadb2f0ff214096ccf731ce2660d64
Author: Richard Levitte <levitte at openssl.org>
Date: Thu Feb 4 16:40:40 2016 +0100
unified build scheme: add instructions for travis to build with --unified
Reviewed-by: Rich Salz <rsalz at openssl.org>
commit 242ffb05a2e4aa3fc7ffc131037e077b7e242189
Author: Richard Levitte <levitte at openssl.org>
Date: Sat Jan 30 03:31:52 2016 +0100
unified build scheme: Try to nudge users to try the "unified" build
This commit SHALL be reverted before final release.
Reviewed-by: Rich Salz <rsalz at openssl.org>
commit fcf80c469aa722f7c6eca68d23d86d22f7f7efb9
Author: Richard Levitte <levitte at openssl.org>
Date: Sat Jan 30 05:45:29 2016 +0100
unified build scheme: add the tweaks to build on Cygwin & Mingw
Cygwin and Mingw name their libraries a bit differently from the rest
of the POSIXly universe, we need to adapt to that.
In Makefile.tmpl, it means that some hunks will only be output
conditionally.
This also means that shared_extension for the Cygwin and Mingw
configurations in Configurations/10-main.conf are changing from .dll.a
to .dll. Makefile.shared does a fine job without having them
specified, and it's much easier to work with tucking an extra .a at
the end of files in the installation recipes than any amount of name
rewrites, especially with the support of the SHARED_NAME in the top
build.info.
Reviewed-by: Rich Salz <rsalz at openssl.org>
commit 567a9e6fe0ff3badfa22cf018d87c94ed5a8aeb3
Author: Richard Levitte <levitte at openssl.org>
Date: Sat Jan 30 03:25:40 2016 +0100
unified build scheme: add a "unified" template for Unix Makefile
This also adds all the raw sections needed for some files.
Reviewed-by: Rich Salz <rsalz at openssl.org>
commit deb02194d246d865ff3837deb500a901e2269109
Author: Richard Levitte <levitte at openssl.org>
Date: Sat Jan 30 03:21:39 2016 +0100
unified build scheme: give util/dofile.pl the possibility to output selectively
Under certain conditions, one might not want to output certain
sections of a template file. This adds the functions output_off() and
output_on(), reachable inside the templates. And example usage in a
Makefile template could be this:
@ : {- output_off() if $config{no_shared}; "" -}
... lines dealing with shared libraries
@ : {- output_on() -}
Reviewed-by: Rich Salz <rsalz at openssl.org>
-----------------------------------------------------------------------
Summary of changes:
.travis.yml | 16 +
CHANGES | 19 +
Configurations/00-base-templates.conf | 1 +
Configurations/10-main.conf | 68 +-
Configurations/README | 2 +
Configurations/descrip.mms.tmpl | 634 ++++++++++++
Configurations/unix-Makefile.tmpl | 784 +++++++++++++++
Configure | 49 +-
INSTALL.VMS | 324 +-----
Makefile.in | 17 +
Makefile.shared | 6 +-
NEWS | 1 +
README.PERL | 18 +
VMS/TODO | 18 -
VMS/WISHLIST.TXT | 4 -
engines/alpha.opt => VMS/engine.opt | 1 +
VMS/install-vms.com | 67 --
VMS/multinet_shr.opt | 1 -
VMS/openssl_shutdown.com.in | 59 ++
VMS/openssl_startup.com | 108 --
VMS/openssl_startup.com.in | 115 +++
VMS/openssl_undo.com | 20 -
VMS/openssl_utils.com | 56 +-
VMS/socketshr_shr.opt | 1 -
VMS/tcpip_shr_decc.opt | 1 -
VMS/translatesyms.pl | 55 +
VMS/ucx_shr_decc.opt | 1 -
VMS/ucx_shr_decc_log.opt | 1 -
VMS/ucx_shr_vaxc.opt | 1 -
apps/CA.com | 221 ----
apps/build.info | 9 +-
apps/install-apps.com | 107 --
apps/makeapps.com | 1169 ----------------------
build.info | 20 +
config.com | 65 ++
crypto/aes/build.info | 59 ++
crypto/bf/build.info | 7 +
crypto/bn/build.info | 90 ++
crypto/build.info | 42 +
crypto/camellia/build.info | 9 +
crypto/cast/build.info | 7 +
crypto/chacha/build.info | 12 +
crypto/crypto-lib.com | 1427 --------------------------
crypto/des/build.info | 14 +
crypto/ec/build.info | 17 +
crypto/install-crypto.com | 197 ----
crypto/md5/build.info | 15 +
crypto/modes/build.info | 27 +
crypto/poly1305/build.info | 12 +
crypto/rand/build.info | 2 +-
crypto/rc4/build.info | 27 +
crypto/rc5/build.info | 7 +
crypto/ripemd/build.info | 7 +
crypto/sha/build.info | 77 ++
crypto/whrlpool/build.info | 8 +
engines/axp.opt | 1 -
engines/build.info | 7 +
engines/ia64.opt | 1 -
engines/makeengines.com | 1118 ---------------------
engines/vax.opt | 9 -
include/openssl/__decc_include_epilogue.h | 7 +
include/openssl/__decc_include_prologue.h | 11 +
include/openssl/symhacks.h | 367 +------
install.com | 136 ---
makevms.com | 1548 -----------------------------
ssl/install-ssl.com | 116 ---
ssl/ssl-lib.com | 956 ------------------
test/clean_test.com | 35 -
test/maketests.com | 1099 --------------------
test/tests.com | 405 --------
util/deltree.com | 34 -
util/dofile.pl | 91 +-
util/libeay.num | 203 ++--
util/mkdef.pl | 33 +-
util/ssleay.num | 57 +-
75 files changed, 2619 insertions(+), 9717 deletions(-)
create mode 100644 Configurations/descrip.mms.tmpl
create mode 100644 Configurations/unix-Makefile.tmpl
delete mode 100644 VMS/TODO
delete mode 100644 VMS/WISHLIST.TXT
rename engines/alpha.opt => VMS/engine.opt (74%)
delete mode 100755 VMS/install-vms.com
delete mode 100644 VMS/multinet_shr.opt
create mode 100644 VMS/openssl_shutdown.com.in
delete mode 100755 VMS/openssl_startup.com
create mode 100644 VMS/openssl_startup.com.in
delete mode 100755 VMS/openssl_undo.com
delete mode 100644 VMS/socketshr_shr.opt
delete mode 100644 VMS/tcpip_shr_decc.opt
create mode 100644 VMS/translatesyms.pl
delete mode 100644 VMS/ucx_shr_decc.opt
delete mode 100644 VMS/ucx_shr_decc_log.opt
delete mode 100644 VMS/ucx_shr_vaxc.opt
delete mode 100644 apps/CA.com
delete mode 100755 apps/install-apps.com
delete mode 100644 apps/makeapps.com
create mode 100644 config.com
delete mode 100644 crypto/crypto-lib.com
delete mode 100755 crypto/install-crypto.com
delete mode 100644 engines/axp.opt
delete mode 100644 engines/ia64.opt
delete mode 100644 engines/makeengines.com
delete mode 100644 engines/vax.opt
create mode 100644 include/openssl/__decc_include_epilogue.h
create mode 100644 include/openssl/__decc_include_prologue.h
delete mode 100644 install.com
delete mode 100755 makevms.com
delete mode 100755 ssl/install-ssl.com
delete mode 100644 ssl/ssl-lib.com
delete mode 100755 test/clean_test.com
delete mode 100644 test/maketests.com
delete mode 100644 test/tests.com
delete mode 100644 util/deltree.com
diff --git a/.travis.yml b/.travis.yml
index e3ab38f..cb23320 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -29,6 +29,10 @@ env:
- CONFIG_OPTS="shared"
- CONFIG_OPTS="no-asm"
- CONFIG_OPTS="--debug --strict-warnings enable-crypto-mdebug enable-rc5 enable-md2"
+ - CONFIG_OPTS="--unified"
+ - CONFIG_OPTS="--unified shared"
+ - CONFIG_OPTS="--unified no-asm"
+ - CONFIG_OPTS="--unified --debug --strict-warnings enable-crypto-mdebug enable-rc5 enable-md2"
matrix:
include:
@@ -61,11 +65,23 @@ matrix:
env: CONFIG_OPTS="no-asm"
- compiler: x86_64-w64-mingw32-gcc
env: CONFIG_OPTS="no-asm"
+ - compiler: i686-w64-mingw32-gcc
+ env: CONFIG_OPTS="--unified shared"
+ - compiler: x86_64-w64-mingw32-gcc
+ env: CONFIG_OPTS="--unified shared"
+ - compiler: i686-w64-mingw32-gcc
+ env: CONFIG_OPTS="--unified no-asm"
+ - compiler: x86_64-w64-mingw32-gcc
+ env: CONFIG_OPTS="--unified no-asm"
allow_failures:
- compiler: i686-w64-mingw32-gcc
env: CONFIG_OPTS="--debug --strict-warnings enable-crypto-mdebug enable-rc5 enable-md2"
- compiler: x86_64-w64-mingw32-gcc
env: CONFIG_OPTS="--debug --strict-warnings enable-crypto-mdebug enable-rc5 enable-md2"
+ - compiler: i686-w64-mingw32-gcc
+ env: CONFIG_OPTS="--unified --debug --strict-warnings enable-crypto-mdebug enable-rc5 enable-md2"
+ - compiler: x86_64-w64-mingw32-gcc
+ env: CONFIG_OPTS="--unified --debug --strict-warnings enable-crypto-mdebug enable-rc5 enable-md2"
before_script:
- sh .travis-create-release.sh $TRAVIS_OS_NAME
diff --git a/CHANGES b/CHANGES
index d0bd6ac..0bbc257 100644
--- a/CHANGES
+++ b/CHANGES
@@ -3,6 +3,25 @@
_______________
Changes between 1.0.2f and 1.1.0 [xx XXX xxxx]
+
+ *) New "unified" build system
+
+ The "unified" build system is aimed to be a common system for all
+ platforms we support. With it comes new support for VMS.
+
+ This system builds supports building in a differnt directory tree
+ than the source tree. It produces one Makefile (for unix family
+ or lookalikes), or one descrip.mms (for VMS).
+
+ The source of information to make the Makefile / descrip.mms is
+ small files called 'build.info', holding the necessary
+ information for each directory with source to compile, and a
+ template in Configurations, like unix-Makefile.tmpl or
+ descrip.mms.tmpl.
+
+ We rely heavily on the perl module Text::Template.
+ [Richard Levitte]
+
*) Added support for auto-initialisation and de-initialisation of the library.
OpenSSL no longer requires explicit init or deinit routines to be called,
except in certain circumstances. See the
diff --git a/Configurations/00-base-templates.conf b/Configurations/00-base-templates.conf
index 713e374..1771e3d 100644
--- a/Configurations/00-base-templates.conf
+++ b/Configurations/00-base-templates.conf
@@ -12,6 +12,7 @@
thread_cflags => "",
thread_defines => [],
+ apps_extra_src => "",
cpuid_asm_src => "mem_clr.c",
bn_asm_src => "bn_asm.c",
ec_asm_src => "",
diff --git a/Configurations/10-main.conf b/Configurations/10-main.conf
index c5c1424..28322e3 100644
--- a/Configurations/10-main.conf
+++ b/Configurations/10-main.conf
@@ -1174,7 +1174,7 @@
shared_target => "cygwin-shared",
shared_cflag => "-D_WINDLL -DOPENSSL_USE_APPLINK",
shared_ldflag => "-mno-cygwin",
- shared_extension => ".dll.a",
+ shared_extension => ".dll",
},
"mingw64" => {
# As for OPENSSL_USE_APPLINK. Applink makes it possible to use
@@ -1199,7 +1199,7 @@
shared_target => "cygwin-shared",
shared_cflag => "-D_WINDLL",
shared_ldflag => "-mno-cygwin",
- shared_extension => ".dll.a",
+ shared_extension => ".dll",
},
#### UEFI
@@ -1232,7 +1232,7 @@
shared_target => "cygwin-shared",
shared_cflag => "-D_WINDLL",
shared_ldflag => "-shared",
- shared_extension => ".dll.a",
+ shared_extension => ".dll",
},
"Cygwin-x86_64" => {
inherit_from => [ asm("x86_64_asm") ],
@@ -1247,7 +1247,7 @@
shared_target => "cygwin-shared",
shared_cflag => "-D_WINDLL",
shared_ldflag => "-shared",
- shared_extension => ".dll.a",
+ shared_extension => ".dll",
},
# Backward compatibility for those using this target
"Cygwin" => {
@@ -1523,4 +1523,64 @@
ranlib => "$ENV{'RANLIB'}",
},
+ ##### VMS
+ "vms-generic" => {
+ template => 1,
+ cc => "CC/DECC",
+ cflags => "/STANDARD=RELAXED/NOLIST/PREFIX=ALL/NAMES=(AS_IS,SHORTENED)",
+ debug_cflags => "/NOOPTIMIZE/DEBUG",
+ release_cflags => "/OPTIMIZE/NODEBUG",
+ lflags => "/MAP",
+ debug_lflags => "/DEBUG/TRACEBACK",
+ release_lflags => "/NODEBUG/NOTRACEBACK",
+ shared_target => "vms-shared",
+
+ apps_extra_src => "vms_decc_init.c",
+ build_file => "descrip.mms",
+ build_scheme => [ "unified", "VMS" ],
+ },
+
+ # VMS on VAX is *unsupported*
+ #"vms-asm" => {
+ # template => 1,
+ # bn_obj => "[.asm]vms.obj vms-helper.obj"
+ #},
+ #"vms-vax" => {
+ # inherit_from => [ "vms-generic", asm("vms-asm") ],
+ # as => "MACRO",
+ # debug_aflags => "/NOOPTIMIZE/DEBUG",
+ # release_aflags => "/OPTIMIZE/NODEBUG",
+ # bn_opts => "THIRTY_TWO_BIT RC4_CHAR RC4_CHUNK DES_PTR BF_PTR",
+ #},
+ "vms-alpha" => {
+ inherit_from => [ "vms-generic" ],
+ #as => "???",
+ #debug_aflags => "/NOOPTIMIZE/DEBUG",
+ #release_aflags => "/OPTIMIZE/NODEBUG",
+ bn_opts => "SIXTY_FOUR_BIT RC4_INT RC4_CHUNK_LL DES_PTR BF_PTR",
+ },
+ "vms-alpha-P32" => {
+ inherit_from => [ "vms-alpha" ],
+ cflags => add("/POINTER_SIZE=32"),
+ },
+ "vms-alpha-P64" => {
+ inherit_from => [ "vms-alpha" ],
+ cflags => add("/POINTER_SIZE=64"),
+ },
+ "vms-ia64" => {
+ inherit_from => [ "vms-generic" ],
+ #as => "I4S",
+ #debug_aflags => "/NOOPTIMIZE/DEBUG",
+ #release_aflags => "/OPTIMIZE/NODEBUG",
+ bn_opts => "SIXTY_FOUR_BIT RC4_INT RC4_CHUNK_LL DES_PTR BF_PTR",
+ },
+ "vms-ia64-P32" => {
+ inherit_from => [ "vms-ia64" ],
+ cflags => add("/POINTER_SIZE=32"),
+ },
+ "vms-ia64-P64" => {
+ inherit_from => [ "vms-ia64" ],
+ cflags => add("/POINTER_SIZE=64"),
+ },
+
);
diff --git a/Configurations/README b/Configurations/README
index 9f6071e..b67506a 100644
--- a/Configurations/README
+++ b/Configurations/README
@@ -163,6 +163,8 @@ In each table entry, the following keys are significant:
export vars as
accessor functions.
+ apps_extra_src => Extra source to build apps/openssl, as
+ needed by the target.
cpuid_asm_src => assembler implementation of cpuid code as
well as OPENSSL_cleanse().
Default to mem_clr.c
diff --git a/Configurations/descrip.mms.tmpl b/Configurations/descrip.mms.tmpl
new file mode 100644
index 0000000..0d5c7ba
--- /dev/null
+++ b/Configurations/descrip.mms.tmpl
@@ -0,0 +1,634 @@
+## descrip.mms to build OpenSSL on OpenVMS
+##
+## {- join("\n## ", @autowarntext) -}
+{-
+ use File::Spec::Functions qw/:DEFAULT abs2rel rel2abs/;
+
+ # Our prefix, claimed when speaking with the VSI folks Tuesday
+ # January 26th 2016
+ our $osslprefix = 'OSSL$';
+ (our $osslprefix_q = $osslprefix) =~ s/\$/\\\$/;
+
+ our $sourcedir = $config{sourcedir};
+ our $builddir = $config{builddir};
+ sub sourcefile {
+ catfile($sourcedir, @_);
+ }
+ sub buildfile {
+ catfile($builddir, @_);
+ }
+ sub sourcedir {
+ catdir($sourcedir, @_);
+ }
+ sub builddir {
+ catdir($builddir, @_);
+ }
+ sub tree {
+ (my $x = shift) =~ s|\]$|...]|;
+ $x
+ }
+ sub move {
+ my $f = catdir(@_);
+ my $b = abs2rel(rel2abs("."),rel2abs($f));
+ $sourcedir = catdir($b,$sourcedir)
+ if !file_name_is_absolute($sourcedir);
+ $builddir = catdir($b,$builddir)
+ if !file_name_is_absolute($builddir);
+ "";
+ }
+
+ # This is a horrible hack, but is needed because recursive inclusion of files
+ # in different directories does not work well with HP C.
+ my $sd = sourcedir("crypto", "async", "arch");
+ foreach (grep /\[\.crypto\.async\.arch\].*\.o$/, keys %{$unified_info{sources}}) {
+ (my $x = $_) =~ s|\.o$|.OBJ|;
+ $unified_info{before}->{$x}
+ = qq(arch = F\$PARSE("$sd","A.;",,,"SYNTAX_ONLY") - "A.;"
+ define arch 'arch');
+ $unified_info{after}->{$x}
+ = qq(deassign arch);
+ }
+ my $sd1 = sourcedir("ssl","record");
+ my $sd2 = sourcedir("ssl","statem");
+ $unified_info{before}->{"[.crypto.ct]ct_lib.OBJ"}
+ = $unified_info{before}->{"[.test]heartbeat_test.OBJ"}
+ = $unified_info{before}->{"[.test]ssltest.OBJ"}
+ = qq(record = F\$PARSE("$sd1","A.;",,,"SYNTAX_ONLY") - "A.;"
+ define record 'record'
+ statem = F\$PARSE("$sd2","A.;",,,"SYNTAX_ONLY") - "A.;"
+ define statem 'statem');
+ $unified_info{after}->{"[.crypto.ct]ct_lib.OBJ"}
+ = $unified_info{after}->{"[.test]heartbeat_test.OBJ"}
+ = $unified_info{after}->{"[.test]ssltest.OBJ"}
+ = qq(deassign statem
+ deassign record);
+ foreach (grep /^\[\.ssl\.(?:record|statem)\].*\.o$/, keys %{$unified_info{sources}}) {
+ (my $x = $_) =~ s|\.o$|.OBJ|;
+ $unified_info{before}->{$x}
+ = qq(record = F\$PARSE("$sd1","A.;",,,"SYNTAX_ONLY") - "A.;"
+ define record 'record'
+ statem = F\$PARSE("$sd2","A.;",,,"SYNTAX_ONLY") - "A.;"
+ define statem 'statem');
+ $unified_info{after}->{$x}
+ = qq(deassign statem
+ deassign record);
+ }
+ #use Data::Dumper;
+ #print STDERR "DEBUG: before:\n", Dumper($unified_info{before});
+ #print STDERR "DEBUG: after:\n", Dumper($unified_info{after});
+ "";
+-}
+PLATFORM={- $config{target} -}
+OPTIONS={- $config{options} -}
+CONFIGURE_ARGS=({- join(", ",quotify_l(@{$config{perlargv}})) -})
+SRCDIR={- $config{sourcedir} -}
+BUILDDIR={- $config{builddir} -}
+
+VERSION={- $config{version} -}
+MAJOR={- $config{major} -}
+MINOR={- $config{minor} -}
+SHLIB_VERSION_NUMBER={- $config{shlib_version_number} -}
+SHLIB_VERSION_HISTORY={- $config{shlib_version_history} -}
+SHLIB_MAJOR={- $config{shlib_major} -}
+SHLIB_MINOR={- $config{shlib_minor} -}
+SHLIB_TARGET={- $target{shared_target} -}
+
+EXE_EXT=.EXE
+LIB_EXT=.OLB
+SHLIB_EXT=.EXE
+OBJ_EXT=.OBJ
+DEP_EXT=.MMS
+
+LIBS={- join(", ", map { "-\n\t".$_.".OLB" } @{$unified_info{libraries}}) -}
+SHLIBS={- join(" ", map { $_."\$(SHLIB_EXT)" } map { $unified_info{sharednames}->{$_} || () } @{$unified_info{libraries}}) -}
+ENGINES={- join(", ", map { "-\n\t".$_.".EXE" } @{$unified_info{engines}}) -}
+PROGRAMS={- join(", ", map { "-\n\t".$_.".EXE" } grep { !m|^\[\.test\]| } @{$unified_info{programs}}) -}
+TESTPROGS={- join(", ", map { "-\n\t".$_.".EXE" } grep { m|^\[\.test\]| } @{$unified_info{programs}}) -}
+SCRIPTS={- join(", ", map { "-\n\t".$_ } @{$unified_info{scripts}}) -}
+
+# INSTALL_PREFIX is for package builders so that they can configure for, say,
+# SYS$COMMON:[OPENSSL] and yet have everything installed in STAGING:[USER].
+# In that case, configure with --prefix=SYS$COMMON:[OPENSSL] and then run
+# MMS with /MACROS=(INSTALL_PREFIX=STAGING:[USER]). The result will end
+# up in STAGING:[USER.OPENSSL].
+# Note that INSTALL_PREFIX can also be given at configuration time, with
+# --install_prefix.
+# Normally it is left empty.
+INSTALL_PREFIX={- $config{install_prefix} -}
+
+# Do not edit this manually. Use Configure --prefix=DIR to change this!
+INSTALLTOP={- catdir($config{prefix}) || "SYS\$COMMON:[OPENSSL-\$(MAJOR).\$(MINOR)]" -}
+# This is the standard central area to store certificates, private keys...
+OPENSSLDIR={- catdir($config{openssldir}) ||
+ $config{prefix} ? catdir($config{prefix},"SSL")
+ : "SYS\$COMMON:[SSL]" -}
+# Where installed engines reside
+ENGINESDIR={- $osslprefix -}ENGINES:
+
+CC= {- $target{cc} -}
+CFLAGS= /DEFINE=({- join(",", @{$config{defines}},"OPENSSLDIR=\"\"\"\$(OPENSSLDIR)\"\"\"","ENGINESDIR=\"\"\"\$(ENGINESDIR)\"\"\"") -}) {- $config{cflags} -}
+DEPFLAG= /DEFINE=({- join(",", @{$config{depdefines}}) -})
+LDFLAGS= {- $config{lflags} -}
+EX_LIBS= {- $config{ex_libs} ? ",".$config{ex_libs} : "" -}
+
+PERL={- $config{perl} -}
+
+# We let the C compiler driver to take care of .s files. This is done in
+# order to be excused from maintaining a separate set of architecture
+# dependent assembler flags. E.g. if you throw -mcpu=ultrasparc at SPARC
+# gcc, then the driver will automatically translate it to -xarch=v8plus
+# and pass it down to assembler.
+AS={- $target{as} -}
+ASFLAG={- $target{asflags} -}
+
+# .FIRST and .LAST are special targets with MMS and MMK.
+# The defines in there are for C. includes that look like
+# this:
+#
+# #include <openssl/foo.h>
+# #include "internal/bar.h"
+#
+# will use the logical names to find the files. Expecting
+# DECompHP C to find files in subdirectories of whatever was
+# given with /INCLUDE is a fantasy, unfortunately.
+NODEBUG=@
+.FIRST :
+ $(NODEBUG) openssl_inc1 = F$PARSE("[.include.openssl]","A.;",,,"syntax_only") - "A.;"
+ $(NODEBUG) openssl_inc2 = F$PARSE("{- catdir($config{sourcedir},"[.include.openssl]") -}","a.;",,,"SYNTAX_ONLY") - "A.;"
+ $(NODEBUG) internal_inc1 = F$PARSE("[.crypto.include.internal]","A.;",,,"SYNTAX_ONLY") - "A.;"
+ $(NODEBUG) internal_inc2 = F$PARSE("{- catdir($config{sourcedir},"[.include.internal]") -}","A.;",,,"SYNTAX_ONLY") - "A.;"
+ $(NODEBUG) internal_inc3 = F$PARSE("{- catdir($config{sourcedir},"[.crypto.include.internal]") -}","A.;",,,"SYNTAX_ONLY") - "A.;"
+ $(NODEBUG) DEFINE openssl 'openssl_inc1','openssl_inc2'
+ $(NODEBUG) DEFINE internal 'internal_inc1','internal_inc2','internal_inc3'
+ $(NODEBUG) staging_dir = "$(INSTALL_PREFIX)"
+ $(NODEBUG) IF staging_dir .NES. "" THEN -
+ staging_dir = F$PARSE("A.;",staging_dir,"[]",,"SYNTAX_ONLY") - "A.;"
+ $(NODEBUG) !
+ $(NODEBUG) ! Installation logical names
+ $(NODEBUG) !
+ $(NODEBUG) installtop_dev = F$PARSE(staging_dir,"$(INSTALLTOP)",,"DEVICE","SYNTAX_ONLY")
+ $(NODEBUG) ! Because there are no routines to merge directories, we have to
+ $(NODEBUG) ! do it ourselves
+ $(NODEBUG) IF staging_dir .NES. "" THEN -
+ staging_dir = F$PARSE(staging_dir,"[000000]",,"DIRECTORY","SYNTAX_ONLY")
+ $(NODEBUG) installtop_dir = F$PARSE("$(INSTALLTOP)","[000000]",,"DIRECTORY","SYNTAX_ONLY")
+ $(NODEBUG) IF staging_dir .NES. "" .AND. staging_dir .NES. "[000000]" THEN -
+ installtop_dir = staging_dir - "]" + "." + (installtop_dir - "[")
+ $(NODEBUG) installtop_dir = installtop_dir - "]" + ".]"
+ $(NODEBUG) DEFINE ossl_installroot 'installtop_dev''installtop_dir'
+ $(NODEBUG) !
+ $(NODEBUG) datatop = F$PARSE("$(OPENSSLDIR)","[000000]A.;",,,"SYNTAX_ONLY") -
+ - "]A.;" + ".]"
+ $(NODEBUG) IF "$(INSTALL_PREFIX)" .EQS. "" THEN -
+ DEFINE ossl_dataroot 'datatop'
+ $(NODEBUG) !
+ $(NODEBUG) ! Figure out the architecture
+ $(NODEBUG) !
+ $(NODEBUG) arch == f$edit( f$getsyi( "arch_name"), "upcase")
+ $(NODEBUG) !
+ $(NODEBUG) ! Set up logical names for the libraries, so LINK and
+ $(NODEBUG) ! running programs can use them.
+ $(NODEBUG) !
+ $(NODEBUG) {- join("\n\t\$(NODEBUG) ", map { "DEFINE ".uc($_)." 'F\$ENV(\"DEFAULT\")'".uc($_)."\$(SHLIB_EXT)" } map { $unified_info{sharednames}->{$_} || () } @{$unified_info{libraries}}) || "!" -}
+
+.LAST :
+ $(NODEBUG) {- join("\n\t\$(NODEBUG) ", map { "DEASSIGN ".uc($_) } map { $unified_info{sharednames}->{$_} || () } @{$unified_info{libraries}}) || "!" -}
+ $(NODEBUG) IF "$(INSTALL_PREFIX)" .EQS. "" THEN DEASSIGN ossl_dataroot
+ $(NODEBUG) DEASSIGN ossl_installroot
+ $(NODEBUG) DEASSIGN internal
+ $(NODEBUG) DEASSIGN openssl
+.DEFAULT :
+ @ ! MMS cannot handle no actions...
+
+# The main targets ###################################################
+
+all : descrip.mms, $(LIBS), $(ENGINES), $(PROGRAMS), $(SCRIPTS), $(TESTPROGS)
+
+test tests : $(TESTPROGS), rehash
+ SET DEFAULT [.test]{- move("test") -}
+ DEFINE SRCTOP {- sourcedir() -}
+ DEFINE BLDTOP {- builddir() -}
+ $(PERL) {- sourcefile("test", "run_tests.pl") -} $(TESTS)
+ DEASSIGN BLDTOP
+ DEASSIGN SRCTOP
+ SET DEFAULT [-]{- move("..") -}
+
+list-tests :
+ @ TOP=$(SRCDIR) PERL=$(PERL) $(PERL) {- catfile($config{sourcedir},"test", "run_tests.pl") -} list
+
+# Because VMS wants the generation number (or *) to delete files, we can't
+# use $(LIBS), $(PROGRAMS) and $(TESTPROGS) directly.
+libclean :
+ - DELETE []OSSL$LIB*.OLB;*,OSSL$LIB*.LIS;*
+ - DELETE [.crypto...]*.OBJ;*,*.LIS;*
+ - DELETE [.ssl...]*.OBJ;*,*.LIS;*
+ - DELETE [.engines...]*.OBJ;*,*.LIS;*
+ - DELETE []CXX$DEMANGLER_DB.;*
+
+install : install_sw install_docs
+
+uninstall : uninstall_docs uninstall_sw
+
+clean : libclean
+ - DELETE []OSSL$LIB*.EXE;*,OSSL$LIB*.MAP;*,OSSL$LIB*.OPT;*
+ - DELETE [.engines...]LIB*.EXE;*,LIB*.MAP;*,LIB*.OPT;*
+ - DELETE [.apps]*.EXE;*,*.MAP;*,*.OPT;*
+ - DELETE [.apps]*.OBJ;*,*.LIS;*
+ - DELETE [.test]*.EXE;*,*.MAP;*,*.OPT;*
+ - DELETE [.test]*.OBJ;*,*.LIS;*
+ - DELETE [.test]*.LOG;*
+ - DELETE []*.MAP;*
+
+DCLEAN_CMD=$(PERL) -pe "if (/^# DO NOT DELETE.*/) { exit(0); }"
+dclean :
+ $(DCLEAN_CMD) < descrip.mms > descrip.mms.new
+ RENAME descrip.mms.new descrip.mms
+ PURGE descrip.mms
+
+{- our @deps = map { (my $x = $_) =~ s|\.o$|\$(DEP_EXT)|; $x; }
+ grep { $unified_info{sources}->{$_}->[0] =~ /\.c$/ }
+ keys %{$unified_info{sources}};
+ ""; -}
+depend : {- join(",-\n\t", @deps); -}
+ $(DCLEAN_CMD) < descrip.mms > descrip.mms.new
+ OPEN/APPEND DESCRIP descrip.mms.new
+ WRITE DESCRIP "# DO NOT DELETE THIS LINE -- make depend depends on it."
+ {- join("\n\t", map { "TYPE $_ /OUTPUT=DESCRIP:" } @deps); -}
+ CLOSE DESCRIP
+ RENAME descrip.mms.new descrip.mms
+ PURGE descrip.mms
+
+# Install helper targets #############################################
+
+install_sw : all install_dev install_engines install_runtime install_config
+ @ WRITE SYS$OUTPUT ""
+ @ WRITE SYS$OUTPUT "######################################################################"
+ @ WRITE SYS$OUTPUT ""
+ @ WRITE SYS$OUTPUT "Installation complete"
+ @ WRITE SYS$OUTPUT ""
+ @ IF "$(INSTALL_PREFIX)" .NES. "" THEN EXIT 1
+ @ WRITE SYS$OUTPUT "Run @$(INSTALLTOP)openssl_startup to set up logical names"
+ @ WRITE SYS$OUTPUT "then run @$(INSTALLTOP)openssl_setup to define commands"
+ @ WRITE SYS$OUTPUT ""
+
+uninstall_sw : uninstall_dev uninstall_engines uninstall_runtime uninstall_config
+
+install_docs : install_man_docs install_html_docs
+
+uninstall_docs : uninstall_man_docs uninstall_html_docs
+
+install_dev : check_INSTALLTOP
+ @ WRITE SYS$OUTPUT "*** Installing development files"
+ @ ! Install header files
+ CREATE/DIR ossl_installroot:[include.openssl]
+ COPY/PROT=W:R openssl:*.h ossl_installroot:[include.openssl]
+ @ ! Install libraries
+ CREATE/DIR ossl_installroot:['arch'.LIB]
+ {- join("\n ",
+ map { "COPY/PROT=W:R $_.OLB ossl_installroot:['arch'.LIB]" }
+ @{$unified_info{libraries}}) -}
+ @ {- output_off() if $config{no_shared}; "" -} !
+ {- join("\n ",
+ map { "COPY/PROT=W:RE $_.EXE ossl_installroot:['arch'.LIB]" }
+ map { $unified_info{sharednames}->{$_} || () }
+ @{$unified_info{libraries}}) -}
+ @ {- output_on() -} !
+
+install_runtime : check_INSTALLTOP
+ @ WRITE SYS$OUTPUT "*** Installing runtime files"
+ @ ! Install the main program
+ CREATE/DIR ossl_installroot:['arch'.EXE]
+ COPY/PROT=W:RE [.APPS]openssl.EXE ossl_installroot:['arch'.EXE]
+ @ ! Install scripts
+ CREATE/DIR ossl_installroot:[EXE]
+ COPY/PROT=W:RE [.APPS]CA.pl ossl_installroot:[EXE]
+ COPY/PROT=W:RE [.TOOLS]c_rehash. ossl_installroot:[EXE]c_rehash.pl
+ @ ! Install configuration file
+ COPY/PROT=W:RE {- sourcefile("apps", "openssl-vms.cnf") -} -
+ ossl_installroot:[000000]openssl.cnf
+
+install_engines : check_INSTALLTOP
+ @ {- output_off() if $config{no_shared}; "" -} !
+ @ WRITE SYS$OUTPUT "*** Installing engines"
+ CREATE/DIR ossl_installroot:['arch'.ENGINES]
+ COPY/PROT=W:RE [.ENGINES]*.EXE ossl_installroot:['arch'.ENGINES]
+ @ {- output_on() -} !
+
+install_config : [.VMS]openssl_startup.com [.VMS]openssl_shutdown.com -
+ check_INSTALLTOP
+ IF "$(INSTALL_PREFIX)" .EQS. "" THEN -
+ IF F$SEARCH("OSSL_DATAROOT:[000000]CERTS.DIR;1") .EQS. "" THEN -
+ CREATE/DIR/PROT=(S:RWED,O:RWE,G:RE,W:RE) OSSL_DATAROOT:[CERTS]
+ IF "$(INSTALL_PREFIX)" .EQS. "" THEN -
+ IF F$SEARCH("OSSL_DATAROOT:[000000]PRIVATE.DIR;1") .EQS. "" THEN -
+ CREATE/DIR/PROT=(S:RWED,O:RWE,G:,W:) OSSL_DATAROOT:[PRIVATE]
+ CREATE/DIR ossl_installroot:[SYS$STARTUP]
+ COPY/PROT=W:RE -
+ [.VMS]openssl_startup.com,openssl_shutdown.com -
+ ossl_installroot:[SYS$STARTUP]
+ COPY/PROT=W:RE -
+ {- sourcefile("VMS", "openssl_utils.com") -} -
+ ossl_installroot:[SYS$STARTUP]
+
+[.VMS]openssl_startup.com : vmsconfig.pm
+ CREATE/DIR [.VMS]
+ $(PERL) "-I." "-Mvmsconfig" {- sourcefile("util", "dofile.pl") -} -
+ {- sourcefile("VMS", "openssl_startup.com.in") -} -
+ > [.VMS]openssl_startup.com
+
+[.VMS]openssl_shutdown.com : vmsconfig.pm
+ CREATE/DIR [.VMS]
+ $(PERL) "-I." "-Mvmsconfig" {- sourcefile("util", "dofile.pl") -} -
+ {- sourcefile("VMS", "openssl_shutdown.com.in") -} -
+ > [.VMS]openssl_shutdown.com
+
+vmsconfig.pm : descrip.mms
+ OPEN/WRITE/SHARE=READ CONFIG []vmsconfig.pm
+ WRITE CONFIG "package vmsconfig;"
+ WRITE CONFIG "use strict; use warnings;"
+ WRITE CONFIG "use Exporter;"
+ WRITE CONFIG "our @ISA = qw(Exporter);"
+ WRITE CONFIG "our @EXPORT = qw(%config %target %withargs %unified_info);"
+ WRITE CONFIG "our %config = ("
+ WRITE CONFIG " target => '{- $config{target} -}',"
+ WRITE CONFIG " version => '$(MAJOR).$(MINOR)',"
+ WRITE CONFIG " no_shared => '","{- $config{no_shared} -}","',"
+ WRITE CONFIG " INSTALLTOP => '$(INSTALLTOP)',"
+ WRITE CONFIG " OPENSSLDIR => '$(OPENSSLDIR)',"
+ WRITE CONFIG " pointersize => '","{- $target{pointersize} -}","',"
+ WRITE CONFIG " shared_libs => ["
+ {- join("\n ", map { "WRITE CONFIG \" '$_'," } map { $unified_info{sharednames}->{$_} || () } @{$unified_info{libraries}}) || "\@ !" -}
+ WRITE CONFIG " ],"
+ WRITE CONFIG ");"
+ WRITE CONFIG "our %target = ();"
+ WRITE CONFIG "our %withargs = ();"
+ WRITE CONFIG "our %unified_info = ();"
+ WRITE CONFIG "1;"
+ CLOSE CONFIG
+
+check_INSTALLTOP :
+ @ IF "$(INSTALLTOP)" .EQS. "" THEN -
+ WRITE SYS$ERROR "INSTALLTOP should not be empty"
+ @ IF "$(INSTALLTOP)" .EQS. "" THEN -
+ EXIT %x10000002
+
+# Helper targets #####################################################
+
+rehash : [.apps]openssl.exe, copy-certs
+ !MCR [.apps]openssl.exe rehash {- builddir("certs", "demo") -}
+ $(PERL) [.tools]c_rehash. [.certs.demo]
+
+copy-certs :
+ @ IF F$SEARCH("{- buildfile("certs.dir") -}") .EQS. "" THEN -
+ CREATE/DIR {- builddir("certs") -}
+ -@ IF "{- sourcedir("certs") -}" .NES. "{- builddir("certs") -}" THEN -
+ COPY {- tree(sourcedir("certs")) -}*.* {- tree(builddir("certs")) -}
+
+# Developer targets ##################################################
+
+debug_logicals :
+ SH LOGICAL/PROC openssl,internal,ossl_installroot
+ IF "$(INSTALL_PREFIX)" .EQS. "" THEN -
+ SH LOGICAL/PROC ossl_dataroot
+
+# Building targets ###################################################
+
+descrip.mms : {- sourcefile("Configurations", "descrip.mms.tmpl") -} $(SRCDIR)Configure ! $(SRCDIR)config.com
+ @ WRITE SYS$OUTPUT "descrip.mms is older than $?."
+ @ WRITE SYS$OUTPUT "Reconfiguring..."
+ perl $(SRCDIR)Configure reconf
+ @ WRITE SYS$OUTPUT "*************************************************"
+ @ WRITE SYS$OUTPUT "*** ***"
+ @ WRITE SYS$OUTPUT "*** Please run the same mms command again ***"
+ @ WRITE SYS$OUTPUT "*** ***"
+ @ WRITE SYS$OUTPUT "*************************************************"
+ @ exit %10000000
+
+{-
+ use File::Basename;
+ use File::Spec::Functions qw/abs2rel rel2abs catfile catdir/;
+ sub src2dep {
+ my %args = @_;
+ my $dep = $args{obj};
+
+ # Because VMS C isn't very good at combining a /INCLUDE path with
+ # #includes having a relative directory (like '#include "../foo.h"),
+ # the best choice is to move to the first source file's intended
+ # directory before compiling, and make sure to write the object file
+ # in the correct position (important when the object tree is other
+ # than the source tree).
+ my $forward = dirname($args{srcs}->[0]);
+ my $backward = abs2rel(rel2abs("."), rel2abs($forward));
+ my $depd = abs2rel(rel2abs(dirname($dep)), rel2abs($forward));
+ my $depn = basename($dep);
+ my $srcs =
+ join(", ",
+ map { abs2rel(rel2abs($_), rel2abs($forward)) } @{$args{srcs}});
+ my $incs =
+ "/INCLUDE=(".join(",",
+ map {
+ file_name_is_absolute($_)
+ ? $_ : catdir($backward,$_)
+ } @{$args{incs}}).")";
+ my $before = $unified_info{before}->{$dep.".OBJ"} || "\@ !";
+ my $after = $unified_info{after}->{$dep.".OBJ"} || "\@ !";
+
+ return <<"EOF";
+$dep.MMS : $srcs
+ ${before}
+ SET DEFAULT $forward
+ \$(CC) \$(CFLAGS)${incs} /MMS=(TARGET=.OBJ)/OBJECT=${depd}${depn}.MMS $srcs
+ SET DEFAULT $backward
+ ${after}
+ - PURGE $dep.MMS
+EOF
+ }
+ sub src2obj {
+ my %args = @_;
+ my $obj = $args{obj};
+ my $deps = join(", -\n\t\t", @{$args{srcs}}, @{$args{deps}});
+
+ # Because VMS C isn't very good at combining a /INCLUDE path with
+ # #includes having a relative directory (like '#include "../foo.h"),
+ # the best choice is to move to the first source file's intended
+ # directory before compiling, and make sure to write the object file
+ # in the correct position (important when the object tree is other
+ # than the source tree).
+ my $forward = dirname($args{srcs}->[0]);
+ my $backward = abs2rel(rel2abs("."), rel2abs($forward));
+ my $objd = abs2rel(rel2abs(dirname($obj)), rel2abs($forward));
+ my $objn = basename($obj);
+ my $srcs =
+ join(", ",
+ map { abs2rel(rel2abs($_), rel2abs($forward)) } @{$args{srcs}});
+ my $incs =
+ "/INCLUDE=(".join(",",
+ map {
+ file_name_is_absolute($_)
+ ? $_ : catdir($backward,$_)
+ } @{$args{incs}}).")";
+ my $before = $unified_info{before}->{$obj.".OBJ"} || "\@ !";
+ my $after = $unified_info{after}->{$obj.".OBJ"} || "\@ !";
+
+ return <<"EOF";
+$obj.OBJ : $deps
+ ${before}
+ SET DEFAULT $forward
+ \$(CC) \$(CFLAGS)${incs} /OBJECT=${objd}${objn}.OBJ /REPOSITORY=$backward $srcs
+ SET DEFAULT $backward
+ ${after}
+ - PURGE $obj.OBJ
+EOF
+ }
+ sub libobj2shlib {
+ my %args = @_;
+ my $lib = $args{lib};
+ my $shlib = $args{shlib};
+ my $libd = dirname($lib);
+ my $libn = basename($lib);
+ (my $mkdef_key = $libn) =~ s/^${osslprefix_q}lib//i;
+ my @deps = map {
+ $config{no_shared} ? $_.".OLB"
+ : $unified_info{sharednames}->{$_}.".EXE"; } @{$args{deps}};
+ my $deps = join(", -\n\t\t", @deps);
+ my $shlib_target = $config{no_shared} ? "" : $target{shared_target};
+ my $ordinalsfile = defined($args{ordinals}) ? $args{ordinals}->[1] : "";
+ my $engine_opt = abs2rel(rel2abs(catfile($config{sourcedir},
+ "VMS", "engine.opt")),
+ rel2abs($config{builddir}));
+ my $mkdef_pl = abs2rel(rel2abs(catfile($config{sourcedir},
+ "util", "mkdef.pl")),
+ rel2abs($config{builddir}));
+ my $translatesyms_pl = abs2rel(rel2abs(catfile($config{sourcedir},
+ "VMS", "translatesyms.pl")),
+ rel2abs($config{builddir}));
+ # The "[]" hack is because in .OPT files, each line inherits the
+ # previous line's file spec as default, so if no directory spec
+ # is present in the current line and the previous line has one that
+ # doesn't apply, you're in for a surprise.
+ my $write_opt =
+ join("\n\t", map { my $x = $_ =~ /\[/ ? $_ : "[]".$_;
+ $x =~ s|(\.EXE)|$1/SHARE|;
+ $x =~ s|(\.LIB)|$1/LIB|;
+ "WRITE OPT_FILE \"$x\"" } @deps)
+ || "\@ !";
+ return <<"EOF";
+$shlib.EXE : $lib.OLB $deps $ordinalsfile
+ IF "$mkdef_key" .EQS. "ssl" .OR. "$mkdef_key" .EQS. "crypto" THEN -
+ \$(PERL) $mkdef_pl "$mkdef_key" "VMS" > $shlib.SYMVEC-tmp
+ IF "$mkdef_key" .EQS. "ssl" .OR. "$mkdef_key" .EQS. "crypto" THEN -
+ \$(PERL) $translatesyms_pl \$(BUILDDIR)CXX\$DEMANGLER_DB. < $shlib.SYMVEC-tmp > $shlib.SYMVEC
+ OPEN/WRITE/SHARE=READ OPT_FILE $shlib.OPT
+ WRITE OPT_FILE "IDENTIFICATION=""V$config{version}"""
+ IF "$mkdef_key" .NES. "ssl" .AND. "$mkdef_key" .NES. "crypto" THEN -
+ TYPE $engine_opt /OUTPUT=OPT_FILE:
+ IF "$mkdef_key" .EQS. "ssl" .OR. "$mkdef_key" .EQS. "crypto" THEN -
+ TYPE $shlib.SYMVEC /OUTPUT=OPT_FILE:
+ WRITE OPT_FILE "$lib.OLB/LIBRARY"
+ $write_opt ! Comment to protect from empty line
+ CLOSE OPT_FILE
+ LINK /MAP=$shlib.MAP /FULL/SHARE=$shlib.EXE $shlib.OPT/OPT \$(EX_LIBS)
+ - DELETE $shlib.SYMVEC;*
+ - PURGE $shlib.EXE,$shlib.OPT,$shlib.MAP
+EOF
+ }
+ sub obj2dynlib {
+ my %args = @_;
+ my $lib = $args{lib};
+ my $libd = dirname($lib);
+ my $libn = basename($lib);
+ (my $libn_nolib = $libn) =~ s/^lib//;
+ my @objs = map { "$_.OBJ" } @{$args{objs}};
+ my @deps = map {
+ $config{no_shared} ? $_.".OLB"
+ : $unified_info{sharednames}->{$_}.".EXE"; } @{$args{deps}};
+ my $deps = join(", -\n\t\t", @objs, @deps);
+ my $shlib_target = $config{no_shared} ? "" : $target{shared_target};
+ my $engine_opt = abs2rel(rel2abs(catfile($config{sourcedir},
+ "VMS", "engine.opt")),
+ rel2abs($config{builddir}));
+ # The "[]" hack is because in .OPT files, each line inherits the
+ # previous line's file spec as default, so if no directory spec
+ # is present in the current line and the previous line has one that
+ # doesn't apply, you're in for a surprise.
+ my $write_opt =
+ join(",-\"\n\t", map { my $x = $_ =~ /\[/ ? $_ : "[]".$_;
+ "WRITE OPT_FILE \"$x" } @objs).
+ "\"\n\t".
+ join("\n\t", map { my $x = $_ =~ /\[/ ? $_ : "[]".$_;
+ $x =~ s|(\.EXE)|$1/SHARE|;
+ $x =~ s|(\.LIB)|$1/LIB|;
+ "WRITE OPT_FILE \"$x\"" } @deps)
+ || "\@ !";
+ return <<"EOF";
+$lib.EXE : $deps
+ OPEN/WRITE/SHARE=READ OPT_FILE $lib.OPT
+ TYPE $engine_opt /OUTPUT=OPT_FILE:
+ $write_opt
+ CLOSE OPT_FILE
+ LINK /MAP=$lib.MAP /FULL/SHARE=$lib.EXE $lib.OPT/OPT \$(EX_LIBS)
+ - PURGE $lib.EXE,$lib.OPT,$lib.MAP
+EOF
+ }
+ sub obj2lib {
+ my %args = @_;
+ my $lib = $args{lib};
+ my $objs = join(", -\n\t\t", map { $_.".OBJ" } (@{$args{objs}}));
+ my $fill_lib = join("\n\t", (map { "LIBRARY/REPLACE $lib.OLB $_.OBJ" }
+ @{$args{objs}}));
+ return <<"EOF";
+$lib.OLB : $objs
+ LIBRARY/CREATE/OBJECT $lib
+ $fill_lib
+ - PURGE $lib.OLB
+EOF
+ }
+ sub obj2bin {
+ my %args = @_;
+ my $bin = $args{bin};
+ my $bind = dirname($bin);
+ my $binn = basename($bin);
+ my @objs = map { "$_.OBJ" } @{$args{objs}};
+ my @deps = map {
+ $config{no_shared} ? $_.".OLB"
+ : $unified_info{sharednames}->{$_}.".EXE"; } @{$args{deps}};
+ my $deps = join(", -\n\t\t", @objs, @deps);
+ # The "[]" hack is because in .OPT files, each line inherits the
+ # previous line's file spec as default, so if no directory spec
+ # is present in the current line and the previous line has one that
+ # doesn't apply, you're in for a surprise.
+ my $write_opt =
+ join(",-\"\n\t", map { my $x = $_ =~ /\[/ ? $_ : "[]".$_;
+ "WRITE OPT_FILE \"$x" } @objs).
+ "\"\n\t".
+ join("\n\t", map { my $x = $_ =~ /\[/ ? $_ : "[]".$_;
+ $x =~ s|(\.EXE)|$1/SHARE|;
+ $x =~ s|(\.OLB)|$1/LIB|;
+ "WRITE OPT_FILE \"$x\"" } @deps)
+ || "\@ !";
+ return <<"EOF";
+$bin.EXE : $deps
+ OPEN/WRITE/SHARE=READ OPT_FILE $bin.OPT
+ $write_opt
+ CLOSE OPT_FILE
+ LINK/EXEC=$bin.EXE \$(LDFLAGS) $bin.OPT/OPT \$(EX_LIBS)
+ - PURGE $bin.EXE,$bin.OPT
+EOF
+ }
+ sub in2script {
+ my %args = @_;
+ my $script = $args{script};
+ return "" if grep { $_ eq $script } @{$args{sources}}; # No overwrite!
+ my $sources = join(" ", @{$args{sources}});
+ my $dofile = abs2rel(rel2abs(catfile($config{sourcedir},
+ "util", "dofile.pl")),
+ rel2abs($config{builddir}));
+ return <<"EOF";
+$script : $sources
+ \$(PERL) "-I\$(BUILDDIR)" "-Mconfigdata" $dofile $sources > $script
+ SET FILE/PROT=(S:RWED,O:RWED,G:RE,W:RE) $script
+ PURGE $script
+EOF
+ }
+ "" # Important! This becomes part of the template result.
+-}
diff --git a/Configurations/unix-Makefile.tmpl b/Configurations/unix-Makefile.tmpl
new file mode 100644
index 0000000..4888dd0
--- /dev/null
+++ b/Configurations/unix-Makefile.tmpl
@@ -0,0 +1,784 @@
+##
+## Makefile for OpenSSL
+##
+## {- join("\n## ", @autowarntext) -}
+{-
+ sub windowsdll { $config{target} =~ /^(?:Cygwin|mingw)/ }
+ sub shlib_ext { $target{shared_extension} || ".so" }
+ sub shlib_ext_simple { (my $x = $target{shared_extension})
+ =~ s/\.\$\(SHLIB_MAJOR\)\.\$\(SHLIB_MINOR\)//;
+ $x }
+-}
+PLATFORM={- $config{target} -}
+OPTIONS={- $config{options} -}
+CONFIGURE_ARGS=({- join(", ",quotify_l(@{$config{perlargv}})) -})
+SRCDIR={- $config{sourcedir} -}
+BLDDIR={- $config{builddir} -}
+
+VERSION={- $config{version} -}
+MAJOR={- $config{major} -}
+MINOR={- $config{minor} -}
+SHLIB_VERSION_NUMBER={- $config{shlib_version_number} -}
+SHLIB_VERSION_HISTORY={- $config{shlib_version_history} -}
+SHLIB_MAJOR={- $config{shlib_major} -}
+SHLIB_MINOR={- $config{shlib_minor} -}
+SHLIB_TARGET={- $target{shared_target} -}
+
+EXE_EXT={- $target{exe_extension} || "" -}
+LIB_EXT={- $target{lib_extension} || ".a" -}
+SHLIB_EXT={- shlib_ext() -}
+SHLIB_EXT_SIMPLE={- shlib_ext_simple() -}
+OBJ_EXT={- $target{obj_extension} || ".o" -}
+DEP_EXT={- $target{dep_extension} || ".d" -}
+
+LIBS={- join(" ", map { $_."\$(LIB_EXT)" } @{$unified_info{libraries}}) -}
+SHLIBS={- join(" ", map { $_."\$(SHLIB_EXT)" } map { $unified_info{sharednames}->{$_} || () } @{$unified_info{libraries}}) -}
+ENGINES={- join(" ", map { $_."\$(SHLIB_EXT_SIMPLE)" } @{$unified_info{engines}}) -}
+PROGRAMS={- join(" ", map { $_."\$(EXE_EXT)" } grep { !m|^test/| } @{$unified_info{programs}}) -}
+TESTPROGS={- join(" ", map { $_."\$(EXE_EXT)" } grep { m|^test/| } @{$unified_info{programs}}) -}
+SCRIPTS={- join(" ", @{$unified_info{scripts}}) -}
+BIN_SCRIPTS=$(BLDDIR)/tools/c_rehash
+MISC_SCRIPTS=$(SRCDIR)/tools/c_hash $(SRCDIR)/tools/c_info \
+ $(SRCDIR)/tools/c_issuer $(SRCDIR)/tools/c_name \
+ $(BLDDIR)/apps/CA.pl $(SRCDIR)/apps/tsget
+
+# INSTALL_PREFIX is for package builders so that they can configure
+# for, say, /usr/ and yet have everything installed to /tmp/somedir/usr/.
+# Normally it is left empty.
+INSTALL_PREFIX={- $config{install_prefix} -}
+
+# Do not edit these manually. Use Configure with --prefix or --openssldir
+# to change this! Short explanation in the top comment in Configure
+INSTALLTOP={- # $prefix is used in the OPENSSLDIR perl snippet
+ #
+ our $prefix = $config{prefix} || "/usr/local";
+ $prefix -}
+OPENSSLDIR={- #
+ # The logic here is that if no --openssldir was given,
+ # OPENSSLDIR will get the value from $prefix plus "/ssl".
+ # If --openssldir was given and the value is an absolute
+ # path, OPENSSLDIR will get its value without change.
+ # If the value from --openssldir is a relative path,
+ # OPENSSLDIR will get $prefix with the --openssldir
+ # value appended as a subdirectory.
+ #
+ use File::Spec::Functions;
+ our $openssldir =
+ $config{openssldir} ?
+ (file_name_is_absolute($config{openssldir}) ?
+ $config{openssldir}
+ : catdir($prefix, $config{openssldir}))
+ : catdir($prefix, "ssl");
+ $openssldir -}
+LIBDIR={- #
+ # if $prefix/lib$target{multilib} is not an existing
+ # directory, then assume that it's not searched by linker
+ # automatically, in which case adding $target{multilib} suffix
+ # causes more grief than we're ready to tolerate, so don't...
+ our $multilib =
+ -d "$prefix/lib$target{multilib}" ? $target{multilib} : "";
+ our $libdir = $config{libdir} || "lib$multilib";
+ $libdir -}
+ENGINESDIR={- use File::Spec::Functions;
+ catdir($prefix,$libdir,"engines") -}
+
+MANDIR=$(OPENSSLDIR)/man
+HTMLDIR=$(OPENSSLDIR)/html
+
+MANSUFFIX=ssl
+HTMLSUFFIX=html
+
+
+
+CROSS_COMPILE= {- $config{cross_compile_prefix} -}
+CC= $(CROSS_COMPILE){- $target{cc} -}
+CFLAGS={- join(" ",(map { "-D".$_} @{$config{defines}}),"-DOPENSSLDIR=\"\\\"\$(OPENSSLDIR)\\\"\"","-DENGINESDIR=\"\\\"\$(ENGINESDIR)\\\"\"") -} {- $config{cflags} -}
+DEPFLAGS= {- join(" ",map { "-D".$_} @{$config{depdefines}}) -}
+LDFLAGS= {- $config{lflags} -}
+PLIB_LDFLAGS= {- $config{plib_lflags} -}
+EX_LIBS= {- $config{ex_libs} -}
+SHARED_LDFLAGS={- $target{shared_ldflag}
+ # Unlike other OSes (like Solaris, Linux, Tru64,
+ # IRIX) BSD run-time linkers (tested OpenBSD, NetBSD
+ # and FreeBSD) "demand" RPATH set on .so objects.
+ # Apparently application RPATH is not global and
+ # does not apply to .so linked with other .so.
+ # Problem manifests itself when libssl.so fails to
+ # load libcrypto.so. One can argue that we should
+ # engrave this into Makefile.shared rules or into
+ # BSD-* config lines above. Meanwhile let's try to
+ # be cautious and pass -rpath to linker only when
+ # $prefix is not /usr.
+ . ($config{target} =~ m|^BSD-| && $prefix !~ m|^/usr/.*$|
+ ? " -Wl,-rpath,\$\$(LIBRPATH)" : "") -}
+
+PERL={- $config{perl} -}
+
+ARFLAGS= {- $target{arflags} -}
+AR=$(CROSS_COMPILE){- $target{ar} || "ar" -} $(ARFLAGS) r
+RANLIB= {- $target{ranlib} -}
+NM= $(CROSS_COMPILE){- $target{nm} || "nm" -}
+RM= rm -f
+TAR= {- $target{tar} || "tar" -}
+TARFLAGS= {- $target{tarflags} -}
+
+BASENAME= openssl
+NAME= $(BASENAME)-$(VERSION)
+TARFILE= ../$(NAME).tar
+
+# We let the C compiler driver to take care of .s files. This is done in
+# order to be excused from maintaining a separate set of architecture
+# dependent assembler flags. E.g. if you throw -mcpu=ultrasparc at SPARC
+# gcc, then the driver will automatically translate it to -xarch=v8plus
+# and pass it down to assembler.
+AS=$(CC) -c
+ASFLAG=$(CFLAGS)
+PERLASM_SCHEME= {- $target{perlasm_scheme} -}
+
+# For x86 assembler: Set PROCESSOR to 386 if you want to support
+# the 80386.
+PROCESSOR= {- $config{processor} -}
+
+# The main targets ###################################################
+
+all: Makefile libcrypto.pc libssl.pc openssl.pc $(ENGINES) $(PROGRAMS) $(SCRIPTS) $(TESTPROGS)
+
+test tests: $(TESTPROGS) rehash
+ ( cd test; \
+ SRCTOP=../$(SRCDIR) \
+ BLDTOP=../$(BLDDIR) \
+ $(PERL) ../$(SRCDIR)/test/run_tests.pl $(TESTS) )
+
+list-tests:
+ @TOP=$(SRCDIR) PERL=$(PERL) $(PERL) $(SRCDIR)/test/run_tests.pl list
+
+libclean:
+ -rm -f `find $(BLDDIR) -name '*$(LIB_EXT)' -o -name '*$(SHLIB_EXT)'`
+
+install: install_sw install_docs
+
+uninstall: uninstall_docs uninstall_sw
+
+clean: libclean
+ rm -f $(PROGRAMS) $(TESTPROGS)
+ rm -f `find $(BLDDIR) -name '*$(DEP_EXT)'`
+ rm -f `find $(BLDDIR) -name '*$(OBJ_EXT)'`
+ rm -f $(BLDDIR)/core $(BLDDIR)/rehash.time
+ rm -f $(BLDDIR)/tags $(BLDDIR)/TAGS
+ rm -f $(BLDDIR)/openssl.pc $(BLDDIR)/libcrypto.pc $(BLDDIR)/libssl.pc
+ -rm -f `find $(BLDDIR) -type l`
+ rm -f $(TARFILE)
+
+DCLEAN_CMD=sed -e '/^DO NOT DELETE.*/,$$d'
+dclean:
+ $(DCLEAN_CMD) < Makefile >Makefile.new
+ mv -f Makefile.new Makefile
+
+DEPS={- join(" ", map { (my $x = $_) =~ s|\.o$|\$(DEP_EXT)|; $x; }
+ grep { $unified_info{sources}->{$_}->[0] =~ /\.c$/ }
+ keys %{$unified_info{sources}}); -}
+depend: $(DEPS)
+ ( $(DCLEAN_CMD) < Makefile; \
+ echo '# DO NOT DELETE THIS LINE -- make depend depends on it.'; \
+ echo; \
+ cat `find . -name '*$(DEP_EXT)'` ) > Makefile.new
+ mv -f Makefile.new Makefile
+
+# Install helper targets #############################################
+
+install_sw: all install_dev install_engines install_runtime
+
+uninstall_sw: uninstall_dev uninstall_engines uninstall_runtime
+
+install_docs: install_man_docs install_html_docs
+
+uninstall_docs: uninstall_man_docs uninstall_html_docs
+
+install_dev:
+ @[ -n "$(INSTALLTOP)" ] || (echo INSTALLTOP should not be empty; exit 1)
+ @echo "*** Installing development files"
+ @$(PERL) $(SRCDIR)/util/mkdir-p.pl $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl
+ @set -e; for i in $(SRCDIR)/include/openssl/*.h \
+ $(BLDDIR)/include/openssl/*.h; do \
+ fn=`basename $$i`; \
+ echo "install $$i -> $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$fn"; \
+ cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$fn; \
+ chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$fn; \
+ done
+ @$(PERL) $(SRCDIR)/util/mkdir-p.pl $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)
+ @set -e; for l in $(LIBS); do \
+ fn=`basename $$l`; \
+ echo "install $$l -> $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/$$fn"; \
+ cp $$l $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/$$fn.new; \
+ $(RANLIB) $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/$$fn.new; \
+ chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/$$fn.new; \
+ mv -f $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/$$fn.new \
+ $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/$$fn; \
+ done
+ @ : {- output_off() if $config{no_shared}; "" -}
+ @set -e; for s in $(SHLIBS); do \
+ fn=`basename $$s`; \
+ echo "install $$s -> $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/$$fn"; \
+ cp $$s $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/$$fn.new; \
+ chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/$$fn.new; \
+ mv -f $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/$$fn.new \
+ $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/$$fn; \
+ if [ "$(SHLIB_EXT)" != "$(SHLIB_EXT_SIMPLE)" ]; then \
+ echo "link $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/$$fn2 -> $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/$$fn"; \
+ fn2=`basename $$fn $(SHLIB_EXT)`$(SHLIB_EXT_SIMPLE); \
+ ln -sf $$fn $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/$$fn2; \
+ fi; \
+ : {- output_off() unless windowsdll(); "" -}; \
+ echo "install $$s.a -> $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/$$fn.a"; \
+ cp $$s.a $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/$$fn.a.new; \
+ chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/$$fn.a.new; \
+ mv -f $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/$$fn.a.new \
+ $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/$$fn.a; \
+ : {- output_on() -}; \
+ done
+ @ : {- output_on() -}
+ @$(PERL) $(SRCDIR)/util/mkdir-p.pl $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/pkgconfig
+ @echo "install libcrypto.pc -> $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/pkgconfig/libcrypto.pc"
+ @cp libcrypto.pc $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/pkgconfig
+ @chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/pkgconfig/libcrypto.pc
+ @echo "install libssl.pc -> $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/pkgconfig/libssl.pc"
+ @cp libssl.pc $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/pkgconfig
+ @chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/pkgconfig/libssl.pc
+ @echo "install openssl.pc -> $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/pkgconfig/openssl.pc"
+ @cp openssl.pc $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/pkgconfig
+ @chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/pkgconfig/openssl.pc
+
+uninstall_dev:
+ @echo "*** Uninstalling development files"
+ @set -e; for i in $(SRCDIR)/include/openssl/*.h \
+ $(BLDDIR)/include/openssl/*.h; do \
+ fn=`basename $$i`; \
+ echo "$(RM) $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$fn"; \
+ $(RM) $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$fn; \
+ done
+ @set -e; for l in $(LIBS); do \
+ fn=`basename $$l`; \
+ echo "$(RM) $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/$$fn"; \
+ $(RM) $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/$$fn; \
+ done
+ @set -e; for s in $(SHLIBS); do \
+ fn=`basename $$s`; \
+ if [ "$(SHLIB_EXT)" != "$(SHLIB_EXT_SIMPLE)" ]; then \
+ fn2=`basename $$fn $(SHLIB_EXT)`$(SHLIB_EXT_SIMPLE); \
+ echo "$(RM) $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/$$fn2"; \
+ $(RM) $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/$$fn2; \
+ fi; \
+ echo "$(RM) $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/$$fn"; \
+ $(RM) $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/$$fn; \
+ : {- output_off() unless windowsdll(); "" -}; \
+ echo "$(RM) $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/$$fn.a"; \
+ $(RM) $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/$$fn.a; \
+ : {- output_on() -}; \
+ done
+ @echo "$(RM) $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/pkgconfig/libcrypto.pc"
+ @$(RM) $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/pkgconfig/libcrypto.pc
+ @echo "$(RM) $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/pkgconfig/libssl.pc"
+ @$(RM) $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/pkgconfig/libssl.pc
+ @echo "$(RM) $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/pkgconfig/openssl.pc"
+ @$(RM) $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/pkgconfig/openssl.pc
+
+install_engines:
+ @[ -n "$(INSTALLTOP)" ] || (echo INSTALLTOP should not be empty; exit 1)
+ @$(PERL) $(SRCDIR)/util/mkdir-p.pl $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/engines/
+ @echo "*** Installing engines"
+ @set -e; for e in $(ENGINES); do \
+ fn=`basename $$e`; \
+ echo "install $$e -> $(INSTALL_PREFIX)$(INSTALLTOP)/bin/$$fn"; \
+ cp $$e $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/engines/$$fn.new; \
+ chmod 755 $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/engines/$$fn.new; \
+ mv -f $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/engines/$$fn.new \
+ $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/engines/$$fn; \
+ done
+
+uninstall_engines:
+ @echo "*** Uninstalling engines"
+ @set -e; for e in $(ENGINES); do \
+ fn=`basename $$e`; \
+ echo "$(RM) $(INSTALL_PREFIX)$(INSTALLTOP)/bin/$$fn"; \
+ $(RM) $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/engines/$$fn; \
+ done
+
+install_runtime:
+ @[ -n "$(INSTALLTOP)" ] || (echo INSTALLTOP should not be empty; exit 1)
+ @$(PERL) $(SRCDIR)/util/mkdir-p.pl $(INSTALL_PREFIX)$(INSTALLTOP)/bin
+ @$(PERL) $(SRCDIR)/util/mkdir-p.pl $(INSTALL_PREFIX)$(OPENSSLDIR)/misc
+ @echo "*** Installing runtime files"
+ : {- output_off() unless windowsdll(); "" -};
+ @set -e; for s in $(SHLIBS); do \
+ fn=`basename $$i`; \
+ echo "install $$s -> $(INSTALL_PREFIX)$(INSTALLTOP)/bin/$$fn"; \
+ cp $$s $(INSTALL_PREFIX)$(INSTALLTOP)/bin/$$fn.new; \
+ chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/bin/$$fn.new; \
+ mv -f $(INSTALL_PREFIX)$(INSTALLTOP)/bin/$$fn.new \
+ $(INSTALL_PREFIX)$(INSTALLTOP)/bin/$$fn; \
+ done
+ : {- output_on() -};
+ @set -e; for x in $(PROGRAMS); do \
+ fn=`basename $$x`; \
+ echo "install $$x -> $(INSTALL_PREFIX)$(INSTALLTOP)/bin/$$fn"; \
+ cp $$x $(INSTALL_PREFIX)$(INSTALLTOP)/bin/$$fn.new; \
+ chmod 755 $(INSTALL_PREFIX)$(INSTALLTOP)/bin/$$fn.new; \
+ mv -f $(INSTALL_PREFIX)$(INSTALLTOP)/bin/$$fn.new \
+ $(INSTALL_PREFIX)$(INSTALLTOP)/bin/$$fn; \
+ done
+ @set -e; for x in $(BIN_SCRIPTS); do \
+ fn=`basename $$x`; \
+ echo "install $$x -> $(INSTALL_PREFIX)$(INSTALLTOP)/bin/$$fn"; \
+ cp $$x $(INSTALL_PREFIX)$(INSTALLTOP)/bin/$$fn.new; \
+ chmod 755 $(INSTALL_PREFIX)$(INSTALLTOP)/bin/$$fn.new; \
+ mv -f $(INSTALL_PREFIX)$(INSTALLTOP)/bin/$$fn.new \
+ $(INSTALL_PREFIX)$(INSTALLTOP)/bin/$$fn; \
+ done
+ @set -e; for x in $(MISC_SCRIPTS); do \
+ fn=`basename $$x`; \
+ echo "install $$x -> $(INSTALL_PREFIX)$(OPENSSLDIR)/misc/$$fn"; \
+ cp $$x $(INSTALL_PREFIX)$(OPENSSLDIR)/misc/$$fn.new; \
+ chmod 755 $(INSTALL_PREFIX)$(OPENSSLDIR)/misc/$$fn.new; \
+ mv -f $(INSTALL_PREFIX)$(OPENSSLDIR)/misc/$$fn.new \
+ $(INSTALL_PREFIX)$(OPENSSLDIR)/misc/$$fn; \
+ done
+ @echo "install $(SRCDIR)/apps/openssl.cnf -> $(INSTALL_PREFIX)$(OPENSSLDIR)/openssl.cnf"
+ @cp $(SRCDIR)/apps/openssl.cnf $(INSTALL_PREFIX)$(OPENSSLDIR)/openssl.cnf.new
+ @chmod 644 $(INSTALL_PREFIX)$(OPENSSLDIR)/openssl.cnf.new
+ @mv -f $(INSTALL_PREFIX)$(OPENSSLDIR)/openssl.cnf.new $(INSTALL_PREFIX)$(OPENSSLDIR)/openssl.cnf
+
+uninstall_runtime:
+ @echo "*** Uninstalling runtime files"
+ @set -e; for x in $(PROGRAMS); \
+ do \
+ fn=`basename $$x`; \
+ echo "$(RM) $(INSTALL_PREFIX)$(INSTALLTOP)/bin/$$fn"; \
+ $(RM) $(INSTALL_PREFIX)$(INSTALLTOP)/bin/$$fn; \
+ done;
+ @set -e; for x in $(BIN_SCRIPTS); \
+ do \
+ fn=`basename $$x`; \
+ echo "$(RM) $(INSTALL_PREFIX)$(INSTALLTOP)/bin/$$fn"; \
+ $(RM) $(INSTALL_PREFIX)$(INSTALLTOP)/bin/$$fn; \
+ done
+ @set -e; for x in $(MISC_SCRIPTS); \
+ do \
+ fn=`basename $$x`; \
+ echo "$(RM) $(INSTALL_PREFIX)$(OPENSSLDIR)/misc/$$fn"; \
+ $(RM) $(INSTALL_PREFIX)$(OPENSSLDIR)/misc/$$fn; \
+ done
+ : {- output_off() unless windowsdll(); "" -};
+ @set -e; for s in $(SHLIBS); do \
+ fn=`basename $$i`; \
+ echo "$(RM) $(INSTALL_PREFIX)$(INSTALLTOP)/bin/$$fn"; \
+ $(RM) $(INSTALL_PREFIX)$(INSTALLTOP)/bin/$$fn; \
+ done
+ : {- output_on() -};
+ $(RM) $(INSTALL_PREFIX)$(OPENSSLDIR)/openssl.cnf
+
+# A method to extract all names from a .pod file
+# The first sed extracts everything between "=head1 NAME" and the next =head1
+# The second sed joins all the lines into one
+# The third sed removes the description and turns all commas into spaces
+# Voilà, you have a space separated list of names!
+EXTRACT_NAMES=sed -e '1,/^=head1 *NAME *$$/d;/^=head1/,$$d' | \
+ sed -e ':a;{N;s/\n/ /;ba}' | \
+ sed -e 's/ - .*$$//;s/,/ /g'
+PROCESS_PODS=\
+ set -e; \
+ here=`cd $(SRCDIR); pwd`; \
+ point=$$here/util/point.sh; \
+ for ds in apps:1 crypto:3 ssl:3; do \
+ defdir=`echo $$ds | cut -f1 -d:`; \
+ defsec=`echo $$ds | cut -f2 -d:`; \
+ for p in $(SRCDIR)/doc/$$defdir/*.pod; do \
+ SEC=`sed -ne 's/^=for *comment *openssl_manual_section: *\([0-9]\) *$$/\1/p' $$p`; \
+ [ -z "$$SEC" ] && SEC=$$defsec; \
+ fn=`basename $$p .pod`; \
+ NAME=`echo $$fn | tr [a-z] [A-Z]`; \
+ suf=`eval "echo $$OUTSUFFIX"`; \
+ top=`eval "echo $$OUTTOP"`; \
+ $(PERL) $(SRCDIR)/util/mkdir-p.pl $$top/man$$SEC; \
+ echo "install $$p -> $$top/man$$SEC/$$fn$$suf"; \
+ cat $$p | eval "$$GENERATE" \
+ > $$top/man$$SEC/$$fn$$suf; \
+ names=`cat $$p | $(EXTRACT_NAMES)`; \
+ ( cd $$top/man$$SEC; \
+ for n in $$names; do \
+ if [ "$$n" != "$$fn" ]; then \
+ echo "link $$top/man$$SEC/$$n$$suf -> $$top/man$$SEC/$$fn$$suf"; \
+ PLATFORM=$(PLATFORM) $$point $$fn$$suf $$n$$suf; \
+ fi; \
+ done ); \
+ done; \
+ done
+UNINSTALL_DOCS=\
+ set -e; \
+ here=`cd $(SRCDIR); pwd`; \
+ for ds in apps:1 crypto:3 ssl:3; do \
+ defdir=`echo $$ds | cut -f1 -d:`; \
+ defsec=`echo $$ds | cut -f2 -d:`; \
+ for p in $(SRCDIR)/doc/$$defdir/*.pod; do \
+ SEC=`sed -ne 's/^=for *comment *openssl_manual_section: *\([0-9]\) *$$/\1/p' $$p`; \
+ [ -z "$$SEC" ] && SEC=$$defsec; \
+ fn=`basename $$p .pod`; \
+ suf=`eval "echo $$OUTSUFFIX"`; \
+ top=`eval "echo $$OUTTOP"`; \
+ echo "$(RM) $$top/man$$SEC/$$fn$$suf"; \
+ $(RM) $$top/man$$SEC/$$fn$$suf; \
+ names=`cat $$p | $(EXTRACT_NAMES)`; \
+ for n in $$names; do \
+ if [ "$$n" != "$$fn" ]; then \
+ echo "$(RM) $$top/man$$SEC/$$n$$suf"; \
+ $(RM) $$top/man$$SEC/$$n$$suf; \
+ fi; \
+ done; \
+ done; \
+ done
+
+install_man_docs:
+ @[ -n "$(INSTALLTOP)" ] || (echo INSTALLTOP should not be empty; exit 1)
+ @echo "*** Installing manpages"
+ @\
+ OUTSUFFIX='.$${SEC}$(MANSUFFIX)'; \
+ OUTTOP="$(INSTALL_PREFIX)$(MANDIR)"; \
+ GENERATE='pod2man --name=$$NAME --section=$$SEC --center=OpenSSL --release=$(VERSION)'; \
+ $(PROCESS_PODS)
+
+uninstall_man_docs:
+ @echo "*** Uninstalling manpages"
+ @\
+ OUTSUFFIX='.$${SEC}$(MANSUFFIX)'; \
+ OUTTOP="$(INSTALL_PREFIX)$(MANDIR)"; \
+ $(UNINSTALL_DOCS)
+
+install_html_docs:
+ @[ -n "$(INSTALLTOP)" ] || (echo INSTALLTOP should not be empty; exit 1)
+ @echo "*** Installing HTML manpages"
+ @\
+ OUTSUFFIX='.$(HTMLSUFFIX)'; \
+ OUTTOP="$(INSTALL_PREFIX)$(HTMLDIR)"; \
+ GENERATE="pod2html --podroot=$(SRCDIR)/doc --htmldir=.. \
+ --podpath=apps:crypto:ssl \
+ | sed -e 's|href=\"http://man.he.net/man|href=\"../man|g'"; \
+ $(PROCESS_PODS)
+
+uninstall_html_docs:
+ @echo "*** Uninstalling manpages"
+ @\
+ OUTSUFFIX='.$(HTMLSUFFIX)'; \
+ OUTTOP="$(INSTALL_PREFIX)$(HTMLDIR)"; \
+ $(UNINSTALL_DOCS)
+
+
+# Developer targets (note: these are only available on Unix) #########
+
+update: errors ordinals tags test_ordinals
+
+# Test coverage is a good idea for the future
+#coverage: $(PROGRAMS) $(TESTPROGRAMS)
+# ...
+
+# Currently disabled, util/selftest.pl needs a rewrite
+#report:
+# SRCDIR=$(SRCDIR) @$(PERL) util/selftest.pl
+
+lint:
+ lint -DLINT $(INCLUDES) $(SRCS)
+
+errors:
+ ( cd $(SRCDIR); $(PERL) util/ck_errf.pl -strict */*.c */*/*.c )
+ ( cd $(SRCDIR); $(PERL) util/mkerr.pl -recurse -write )
+ ( cd $(SRCDIR)/engines; \
+ for e in *.ec; do \
+ $(PERL) ../util/mkerr.pl -conf $$e \
+ -nostatic -staticloader -write *.c; \
+ done )
+ ( cd $(SRCDIR)/crypto/ct; \
+ $(PERL) ../../util/mkerr.pl -conf ct.ec -hprefix internal/ -write *.c )
+
+ordinals:
+ ( b=`pwd`; cd $(SRCDIR); $(PERL) -I$$b util/mkdef.pl crypto update )
+ ( b=`pwd`; cd $(SRCDIR); $(PERL) -I$$b util/mkdef.pl ssl update )
+
+test_ordinals:
+ ( cd test; \
+ SRCTOP=../$(SRCDIR) \
+ BLDTOP=../$(BLDDIR) \
+ $(PERL) ../$(SRCDIR)/test/run_tests.pl test_ordinals )
+
+tags TAGS: FORCE
+ rm -f TAGS tags
+ -ctags -R .
+ -etags `find . -name '*.[ch]' -o -name '*.pm'`
+
+# Release targets (note: only available on Unix) #####################
+
+tar:
+ TMPDIR=/var/tmp/openssl-copy.$$$$; \
+ DISTDIR=openssl-$(VERSION); \
+ mkdir -p $$TMPDIR/$$DISTDIR; \
+ (cd $(SRCDIR); \
+ git ls-tree -r --name-only --full-tree HEAD \
+ | while read F; do \
+ mkdir -p $$TMPDIR/$$DISTDIR/`dirname $$F`; \
+ cp $$F $$TMPDIR/$$DISTDIR/$$F; \
+ done); \
+ (cd $$TMPDIR; \
+ [ -n "$(PREPARE_CMD)" ] && $(PREPARE_CMD); \
+ find $$TMPDIR/$$DISTDIR -type d -print | xargs chmod 755; \
+ find $$TMPDIR/$$DISTDIR -type f -print | xargs chmod a+r; \
+ find $$TMPDIR/$$DISTDIR -type f -perm -0100 -print | xargs chmod a+x; \
+ $(TAR) $(TARFLAGS) --owner 0 --group 0 -cvf - $$DISTDIR) \
+ | (cd $(SRCDIR); gzip --best > $(TARFILE).gz); \
+ rm -rf $$TMPDIR
+ cd $(SRCDIR); ls -l $(TARFILE).gz
+
+dist:
+ @$(MAKE) PREPARE_CMD='./Configure dist' tar
+
+# Helper targets #####################################################
+
+rehash: link-utils copy-certs
+ @if [ -z "$(CROSS_COMPILE)" ]; then \
+ (OPENSSL="$(BLDDIR)/util/shlib_wrap.sh apps/openssl"; \
+ [ -x "$(BLDDIR)/openssl.exe" ] && OPENSSL="$(BLDDIR)/openssl.exe" || :; \
+ OPENSSL_DEBUG_MEMORY=on; OPENSSL_CONF=/dev/null ; \
+ export OPENSSL OPENSSL_DEBUG_MEMORY OPENSSL_CONF; \
+ $$OPENSSL rehash certs/demo \
+ || $(PERL) tools/c_rehash certs/demo) && \
+ touch rehash.time; \
+ else :; fi
+
+link-utils: $(BLDDIR)/util/opensslwrap.sh $(BLDDIR)/util/shlib_wrap.sh
+
+$(BLDDIR)/util/opensslwrap.sh: Makefile
+ @if [ "$(SRCDIR)" != "$(BLDDIR)" ]; then \
+ mkdir -p "$(BLDDIR)/util"; \
+ ln -sf "../$(SRCDIR)/util/opensslwrap.sh" "$(BLDDIR)/util"; \
+ fi
+$(BLDDIR)/util/shlib_wrap.sh: Makefile
+ @if [ "$(SRCDIR)" != "$(BLDDIR)" ]; then \
+ mkdir -p "$(BLDDIR)/util"; \
+ ln -sf "../$(SRCDIR)/util/shlib_wrap.sh" "$(BLDDIR)/util"; \
+ fi
+
+copy-certs: FORCE
+ @if [ "$(SRCDIR)" != "$(BLDDIR)" ]; then \
+ cp -R "$(SRCDIR)/certs" "$(BLDDIR)/"; \
+ fi
+
+FORCE :
+
+# Building targets ###################################################
+
+libcrypto.pc libssl.pc openssl.pc: Makefile $(LIBS)
+libcrypto.pc:
+ @ ( echo 'prefix=$(INSTALLTOP)'; \
+ echo 'exec_prefix=$${prefix}'; \
+ echo 'libdir=$${exec_prefix}/$(LIBDIR)'; \
+ echo 'includedir=$${prefix}/include'; \
+ echo ''; \
+ echo 'Name: OpenSSL-libcrypto'; \
+ echo 'Description: OpenSSL cryptography library'; \
+ echo 'Version: '$(VERSION); \
+ echo 'Libs: -L$${libdir} -lcrypto'; \
+ echo 'Libs.private: $(EX_LIBS)'; \
+ echo 'Cflags: -I$${includedir}' ) > libcrypto.pc
+
+libssl.pc:
+ @ ( echo 'prefix=$(INSTALLTOP)'; \
+ echo 'exec_prefix=$${prefix}'; \
+ echo 'libdir=$${exec_prefix}/$(LIBDIR)'; \
+ echo 'includedir=$${prefix}/include'; \
+ echo ''; \
+ echo 'Name: OpenSSL-libssl'; \
+ echo 'Description: Secure Sockets Layer and cryptography libraries'; \
+ echo 'Version: '$(VERSION); \
+ echo 'Requires.private: libcrypto'; \
+ echo 'Libs: -L$${libdir} -lssl'; \
+ echo 'Libs.private: $(EX_LIBS)'; \
+ echo 'Cflags: -I$${includedir}' ) > libssl.pc
+
+openssl.pc:
+ @ ( echo 'prefix=$(INSTALLTOP)'; \
+ echo 'exec_prefix=$${prefix}'; \
+ echo 'libdir=$${exec_prefix}/$(LIBDIR)'; \
+ echo 'includedir=$${prefix}/include'; \
+ echo ''; \
+ echo 'Name: OpenSSL'; \
+ echo 'Description: Secure Sockets Layer and cryptography libraries and tools'; \
+ echo 'Version: '$(VERSION); \
+ echo 'Requires: libssl libcrypto' ) > openssl.pc
+
+# Note on the use of $(MFLAGS): this was an older variant of MAKEFLAGS which
+# wasn't passed down automatically. It's quite safe to use it like we do
+# below; if it doesn't exist, the result will be empty and 'make' will pick
+# up $(MAKEFLAGS) which is passed down as an environment variable.
+Makefile: {- $config{build_file_template} -} $(SRCDIR)/Configure $(SRCDIR)/config
+ @echo "Makefile is older than {- $config{build_file_template} -}, $(SRCDIR)/Configure or $(SRCDIR)/config."
+ @echo "Reconfiguring..."
+ $(SRCDIR)/Configure reconf
+ @echo "**************************************************"
+ @echo "*** ***"
+ @echo "*** Please run the same make command again ***"
+ @echo "*** ***"
+ @echo "**************************************************"
+ @false
+
+{-
+ use File::Basename;
+ use File::Spec::Functions qw/:DEFAULT abs2rel rel2abs/;
+ sub src2dep {
+ my %args = @_;
+ my $dep = $args{obj}.'$(DEP_EXT)';
+ my $obj = $args{obj}.'$(OBJ_EXT)';
+ my $srcs = join(" ", @{$args{srcs}});
+ my $incs = join(" ", map { " -I".$_ } @{$args{incs}});
+ my $makedepprog = $config{makedepprog};
+ if ($makedepprog eq "makedepend") {
+ return <<"EOF";
+$dep : $srcs
+ rm -f \$\@.tmp; touch \$\@.tmp
+ \$(MAKEDEPEND) -f\$\@.tmp -o"|$obj"\
+ -- -DOPENSSL_DOING_MAKEDEPEND \$(DEPFLAGS)$incs \
+ -- $srcs
+ sed -e 's/^.*|//' -e 's/ \\/\\(\\\\.\\|[^ ]\\)*//g' -e '/: *\$/d' -e '/^\\(#.*\\| *\\)\$/d' \$\@.tmp > \$\@
+ rm \$\@.tmp
+EOF
+ }
+ return <<"EOF";
+$dep : $srcs Makefile
+ \$(CC) -DOPENSSL_DOING_MAKEDEPEND \$(DEPFLAGS)$incs -MM -MF \$\@ -MQ $obj $srcs
+EOF
+ }
+ sub src2obj {
+ my %args = @_;
+ my $obj = $args{obj}.'$(OBJ_EXT)';
+ my $srcs = join(" ", @{$args{srcs}});
+ my $deps = join(" ", @{$args{srcs}}, @{$args{deps}});
+ my $incs = join(" ", map { " -I".$_ } @{$args{incs}});
+ return <<"EOF";
+$obj : $deps
+ \$(CC) \$(CFLAGS)$incs -c -o \$\@ $srcs
+EOF
+ }
+ # On Unix, we build shlibs from static libs, so we're ignoring the
+ # object file array. We *know* this routine is only called when we've
+ # configure 'shared'.
+ sub libobj2shlib {
+ my %args = @_;
+ my $lib = $args{lib};
+ my $shlib = $args{shlib};
+ my $libd = dirname($lib);
+ my $libn = basename($lib);
+ (my $libname = $libn) =~ s/^lib//;
+ my $shlibdeps = join("", map { my $d = dirname($_);
+ my $f = basename($_);
+ (my $l = $f) =~ s/^lib//;
+ " -L$d -l$l" } @{$args{deps}});
+ my $deps = join(" ",map { $_."\$(SHLIB_EXT_SIMPLE)" } @{$args{deps}});
+ my $shlib_target = $target{shared_target};
+ my $ordinalsfile = defined($args{ordinals}) ? $args{ordinals}->[1] : "";
+ my $targets =
+ "$shlib".shlib_ext() .
+ (shlib_ext() ne shlib_ext_simple()
+ ? " $shlib".shlib_ext_simple() : "");
+ return <<"EOF"
+$targets : $lib\$(LIB_EXT) $deps $ordinalsfile
+ \$(MAKE) -f \$(SRCDIR)/Makefile.shared -e \\
+ PERL=\$(PERL) SRCDIR="\$(SRCDIR)" DSTDIR="$libd" \\
+ INSTALLTOP="\$(INSTALLTOP)" LIBDIR="\$(LIBDIR)" \\
+ LIBDEPS="\$(PLIB_LDFLAGS) $shlibdeps \$(EX_LIBS)" \\
+ LIBNAME=$libname LIBVERSION=\$(SHLIB_MAJOR).\$(SHLIB_MINOR) \\
+ LIBCOMPATVERSIONS=";\$(SHLIB_VERSION_HISTORY)" \\
+ CC="\$(CC)" CFLAGS="\$(CFLAGS)" LDFLAGS="\$(LDFLAGS)" \\
+ SHARED_LDFLAGS="\$(SHARED_LDFLAGS)" SHLIB_EXT=\$(SHLIB_EXT) \\
+ link_a.$shlib_target
+EOF
+ . (windowsdll() ? <<"EOF" : "");
+ rm -f apps/$shlib\$(SHLIB_EXT)
+ rm -f test/$shlib\$(SHLIB_EXT)
+ cp -p $shlib\$(SHLIB_EXT) apps/
+ cp -p $shlib\$(SHLIB_EXT) test/
+EOF
+ }
+ sub obj2dynlib {
+ my %args = @_;
+ my $lib = $args{lib};
+ my $libd = dirname($lib);
+ my $libn = basename($lib);
+ (my $libname = $libn) =~ s/^lib//;
+ my $shlibdeps = join("", map { my $d = dirname($_);
+ my $f = basename($_);
+ (my $l = $f) =~ s/^lib//;
+ " -L$d -l$l" } @{$args{deps}});
+ my $deps = join(" ",map { $_."\$(SHLIB_EXT_SIMPLE)" } @{$args{deps}});
+ my $shlib_target = $target{shared_target};
+ my $objs = join(" ", map { $_."\$(OBJ_EXT)" } @{$args{objs}});
+ return <<"EOF";
+$lib\$(SHLIB_EXT_SIMPLE): $objs $deps
+ \$(MAKE) -f \$(SRCDIR)/Makefile.shared -e \\
+ PERL=\$(PERL) SRCDIR="\$(SRCDIR)" DSTDIR="$libd" \\
+ LIBDEPS="\$(PLIB_LDFLAGS) $shlibdeps \$(EX_LIBS)" \\
+ LIBNAME=$libname LDFLAGS="\$(LDFLAGS)" \\
+ CC="\$(CC)" CFLAGS="\$(CFLAGS)" \\
+ SHARED_LDFLAGS="\$(SHARED_LDFLAGS)" \\
+ SHLIB_EXT=\$(SHLIB_EXT_SIMPLE) \\
+ LIBEXTRAS="$objs" \\
+ link_o.$shlib_target
+EOF
+ }
+ sub obj2lib {
+ my %args = @_;
+ my $lib = $args{lib};
+ my $objs = join(" ", map { $_."\$(OBJ_EXT)" } @{$args{objs}});
+ return <<"EOF";
+$lib\$(LIB_EXT) : $objs
+ \$(AR) \$\@ $objs
+ \$(RANLIB) \$\@ || echo Never mind.
+EOF
+ }
+ sub obj2bin {
+ my %args = @_;
+ my $bin = $args{bin};
+ my $bind = dirname($bin);
+ my $binn = basename($bin);
+ my $objs = join(" ", map { $_."\$(OBJ_EXT)" } @{$args{objs}});
+ my $deps = join(" ",
+ (map { $_."\$(OBJ_EXT)" } @{$args{objs}}),
+ (map { $_.($config{no_shared} ? "\$(LIB_EXT)" : "\$(SHLIB_EXT)" ) }
+ @{$args{deps}}));
+ my $libdeps = join("", map { my $d = dirname($_);
+ my $f = basename($_);
+ $d = "." if $d eq $f;
+ (my $l = $f) =~ s/^lib//;
+ " -L$d -l$l" } @{$args{deps}});
+ my $shlib_target = $config{no_shared} ? "" : $target{shared_target};
+ return <<"EOF";
+$bin\$(EXE_EXT) : $deps
+ \$(RM) $bin\$(EXE_EXT)
+ \$(MAKE) -f \$(SRCDIR)/Makefile.shared -e \\
+ PERL=\$(PERL) SRCDIR=\$(SRCDIR) \\
+ APPNAME=$bin OBJECTS="$objs" \\
+ LIBDEPS="\$(PLIB_LDFLAGS) \$(LDFLAGS) $libdeps \$(EX_LIBS)" \\
+ CC="\$(CC)" CFLAGS="\$(CFLAGS)" LDFLAGS="\$(LDFLAGS)" \\
+ LIBRPATH="\$(INSTALLTOP)/\$(LIBDIR)" \\
+ link_app.$shlib_target
+EOF
+ }
+ sub in2script {
+ my %args = @_;
+ my $script = $args{script};
+ my $sources = join(" ", @{$args{sources}});
+ my $dofile = abs2rel(rel2abs(catfile($config{sourcedir},
+ "util", "dofile.pl")),
+ rel2abs($config{builddir}));
+ return <<"EOF";
+$script : $sources
+ \$(PERL) "-I\$(BLDDIR)" -Mconfigdata "$dofile" $sources > "$script"
+ chmod a+x $script
+EOF
+ }
+ "" # Important! This becomes part of the template result.
+-}
diff --git a/Configure b/Configure
index 75b8558..61d28a7 100755
--- a/Configure
+++ b/Configure
@@ -405,6 +405,7 @@ my $no_sse2=0;
my $user_cflags="";
my @user_defines=();
+my $unified = 0;
$config{depdefines}=[];
$config{openssl_experimental_defines}=[];
$config{openssl_api_defines}=[];
@@ -575,7 +576,11 @@ foreach (@argvcopy)
}
elsif (/^[-+]/)
{
- if (/^--prefix=(.*)$/)
+ if (/^--unified$/)
+ {
+ $unified=1;
+ }
+ elsif (/^--prefix=(.*)$/)
{
$config{prefix}=$1;
die "Directory given with --prefix MUST be absolute\n"
@@ -844,6 +849,15 @@ $target{nm} = "nm";
$target{build_scheme} = [ $target{build_scheme} ]
if ref($target{build_scheme}) ne "ARRAY";
+###### TO BE REMOVED BEFORE FINAL RELEASE
+######
+###### If the user has chosen --unified, we give it to them.
+if ($target{build_file} eq "Makefile"
+ && $target{build_scheme}->[0] eq "unixmake"
+ && $unified) {
+ $target{build_scheme} = [ "unified", "unix" ];
+}
+
my ($builder, $builder_platform, @builder_opts) =
@{$target{build_scheme}};
@@ -1885,6 +1899,39 @@ print <<"EOF" if ($warn_make_depend);
make depend
EOF
+###### TO BE REMOVED BEFORE FINAL RELEASE
+######
+###### If the user hasn't chosen --unified, try to nudge them.
+if ($target{build_file} eq "Makefile"
+ && $target{build_scheme}->[0] eq "unixmake"
+ && !$unified) {
+
+ my $plausible_builddir =
+ abs2rel(rel2abs("../_openssl-build_$target"),rel2abs("."));
+ my $plausible_to_sourcedir =
+ abs2rel(rel2abs("."),rel2abs("../_openssl-build_$target"));
+ print <<"EOF";
+
+----------------------------------------------------------------------
+Please consider configuring with the flag --unified .
+It's to test out a new "unified" building system.
+
+One cool feature is that you can have your build directory elsewhere,
+for example:
+
+ make clean # Clean the current configuration away
+ mkdir $plausible_builddir
+ cd $plausible_builddir
+ $plausible_to_sourcedir/config --unified
+ make
+ make test
+
+Please report any problem you have.
+----------------------------------------------------------------------
+
+EOF
+}
+
exit(0);
######################################################################
diff --git a/INSTALL.VMS b/INSTALL.VMS
index 7fc3389..01f2ee7 100644
--- a/INSTALL.VMS
+++ b/INSTALL.VMS
@@ -1,302 +1,66 @@
- VMS Installation instructions
- written by Richard Levitte
- <richard at levitte.org>
+ INSTALLATION ON THE VMS PLATFORM
+ --------------------------------
-Intro:
-======
+ Intro
+ -----
-This file is divided in the following parts:
+ This file is divided in the following parts:
- Requirements - Mandatory reading.
- Checking the distribution - Mandatory reading.
- Compilation - Mandatory reading.
- Logical names - Mandatory reading.
- Test - Mandatory reading.
- Installation - Mandatory reading.
- Backward portability - Read if it's an issue.
- Possible bugs or quirks - A few warnings on things that
- may go wrong or may surprise you.
- TODO - Things that are to come.
+ Requirements - Mandatory reading.
+ Cheking the distribution - Mandatory reading.
+ Quick start
+ Test <TO BE ADDED>
+ Installation <TO BE ADDED>
+ Backward portability <TO BE ADDED>
+ Possible bugs and quirks <TO BE ADDED>
-Requirements:
-=============
+ Requirements
+ ------------
-To build and install OpenSSL, you will need:
+ To build and install OpenSSL, you will need:
- * Perl 5 with core modules. If you don't want to build it yourself,
- we suggest you look here: http://sourceforge.net/projects/vmsperlkit/files/
- * DEC C or some other ANSI C compiler. VAX C is *not* supported.
- [Note: OpenSSL has only been tested with DEC C. Compiling with
- a different ANSI C compiler may require some work]
+ * Perl 5 with core modules (please read README.PERL)
+ * The perl module Text::Template (please read README.PERL)
+ * DEC C or some other ANSI C compiler. VAX C is *not* supported.
+ [Note: OpenSSL has only been tested with DEC C. Compiling with
+ a different ANSI C compiler may require some work]
-Checking the distribution:
-==========================
+ Checking the distribution
+ -------------------------
-There have been reports of places where the distribution didn't quite get
-through, for example if you've copied the tree from a NFS-mounted Unix
-mount point.
+ There have been reports of places where the distribution didn't quite
+ get through, for example if you've copied the tree from a NFS-mounted
+ Unix mount point.
-The easiest way to check if everything got through as it should is to check
-for one of the following files:
+ The easiest way to check if everything got through as it should is to
+ check for one of the following files:
- [.CRYPTO]OPENSSLCONF.H_IN
- [.CRYPTO]OPENSSLCONF_H.IN
+ [.crypto]opensslconf^.h.in
-They should never exist both at once, but one of them should (preferably
-the first variant). If you can't find any of those two, something went
-wrong.
+ The best way to get a correct distribution is to download the gzipped
+ tar file from ftp://ftp.openssl.org/source/, use GUNZIP to uncompress
+ it and use VMSTAR to unpack the resulting tar file.
-The best way to get a correct distribution is to download the gzipped tar
-file from ftp://ftp.openssl.org/source/, use GUNZIP to uncompress it and
-use VMSTAR to unpack the resulting tar file.
+ GUNZIP is available {FIXME: where is it available?}
-GUNZIP is available in many places on the net. One of the distribution
-points is the WKU software archive, ftp://ftp.wku.edu/vms/fileserv/ .
+ VMSTAR is available {FIXME: where is it available?}
-VMSTAR is also available in many places on the net. The recommended place
-to find information about it is http://www.free.lp.se/vmstar/ .
+ Quick start
+ -----------
-Compilation:
-============
+ If you want to just get on with it, do this:
-I've used the very good command procedures written by Robert Byer
-<byer at mail.all-net.net>, and just slightly modified them, making
-them slightly more general and easier to maintain.
+ $ @config
+ $ mms
+ $ mms test
+ $ mmm install
-You can actually compile in almost any directory separately. Look
-for a command procedure name xxx-LIB.COM (in the library directories)
-or MAKExxx.COM (in the program directories) and read the comments at
-the top to understand how to use them. However, if you want to
-compile all you can get, the simplest is to use MAKEVMS.COM in the top
-directory. The syntax is the following:
+ This will buidl and install OpenSSL in the default location, which is
+ SYS$COMMON:[OPENSSL-'VERSION']. If you want it to be anywhere else,
+ run config.com like this:
- @MAKEVMS <option> <bits> <debug-p> [<compiler>]
+ $ @config --prefix=PROGRAM:[OPENSSL]
-<option> must be one of the following:
-
- ALL Just build "everything".
- CONFIG Just build the "[.CRYPTO]OPENSSLCONF.H" file.
- BUILDINF Just build the "[.INCLUDE]BUILDINF.H" file.
- SOFTLINKS Just copies some files, to simulate Unix soft links.
- BUILDALL Same as ALL, except CONFIG, BUILDINF and SOFTLINKS aren't done.
- RSAREF Just build the "[.xxx.EXE.RSAREF]LIBRSAGLUE.OLB" library.
- CRYPTO Just build the "[.xxx.EXE.CRYPTO]LIBCRYPTO.OLB" library.
- SSL Just build the "[.xxx.EXE.SSL]LIBSSL.OLB" library.
- TEST Just build the "[.xxx.EXE.TEST]" test programs for OpenSSL.
- APPS Just build the "[.xxx.EXE.APPS]" application programs for OpenSSL.
-
-<bits> must be one of the following:
-
- "" compile using default pointer size
- 32 compile using 32 bit pointer size
- 64 compile using 64 bit pointer size
-
-<debug-p> must be one of the following:
-
- DEBUG compile with debugging info (will not optimize)
- NODEBUG compile without debugging info (will optimize)
-
-<compiler> must be one of the following:
-
- DECC For DEC C.
- GNUC For GNU C.
-
-
-You will find the crypto library in [.xxx.EXE.CRYPTO] (where xxx is VAX,
-ALPHA or IA64), called SSL_LIBCRYPTO32.OLB or SSL_LIBCRYPTO.OLB depending
-on how it was built. You will find the SSL library in [.xxx.EXE.SSL],
-named SSL_LIBSSL32.OLB or SSL_LIBSSL.OLB, and you will find a bunch of
-useful programs in [.xxx.EXE.APPS]. However, these shouldn't be used
-right off unless it's just to test them. For production use, make sure
-you install first, see Installation below.
-
-Note 1: Some programs in this package require a TCP/IP library.
-
-Note 2: if you want to compile the crypto library only, please make sure
- you have at least done a @MAKEVMS CONFIG, a @MAKEVMS BUILDINF and
- a @MAKEVMS SOFTLINKS. A lot of things will break if you don't.
-
-
-Logical names:
-==============
-
-There are a few things that can't currently be given through the command
-line. Instead, logical names are used.
-
-Currently, the logical names supported are:
-
- OPENSSL_NO_ASM with value YES, the assembler parts of OpenSSL will
- not be used. Instead, plain C implementations are
- used. This is good to try if something doesn't work.
- OPENSSL_NO_'alg' with value YES, the corresponding crypto algorithm,
- protocol or other routine will not be implemented if
- disabling it is supported. Supported algorithms to
- do this with are: AES, BF, CAMELLIA, CAST, CMS, COMP,
- DES, DGRAM, DH, DSA, EC, EC2M, ECDH, ECDSA, ENGINE,
- ERR, GOST, HEARTBEATS, HMAC, IDEA, MD2, MD4,
- MD5, OCB, OCSP, PSK, RC2, RC4, RC5, RMD160, RSA, SCTP,
- SEED, SOCK, SRP, SRTP, WHIRLPOOL. So, for
- example, having the logical name OPENSSL_NO_RSA with
- the value YES means that the LIBCRYPTO.OLB library
- will not contain an RSA implementation.
- OPENSSL_EXPERIMENTAL_'alg'
- with value YES, the corresponding experimental
- algorithm is enabled. Note that is also requires
- the application using this to define the C macro
- OPENSSL_EXPERIMENTAL_'alg'. Supported algorithms
- to do this with are: JPAKE, STORE.
-
-Test:
-=====
-
-Testing is very simple, just do the following:
-
- @[.TEST]TESTS
-
-If a test fails, try with defining the logical name OPENSSL_NO_ASM (yes,
-it's an ugly hack!) and rebuild. Please send a bug report to
-<openssl-bugs at openssl.org>, including the output of "openssl version -a"
-and of the failed test.
-
-
-Installation:
-=============
-
-Installation is easy, just do the following:
-
- @INSTALL <root> <bits>
-
-<root> is the directory in which everything will be installed,
-subdirectories, libraries, header files, programs and startup command
-procedures.
-
-<bits> works the same way as for MAKEVMS.COM
-
-N.B.: INSTALL.COM builds a new directory structure, different from
-the directory tree where you have now build OpenSSL.
-
-In the [.VMS] subdirectory of the installation, you will find the
-following command procedures:
-
- OPENSSL_STARTUP.COM
-
- defines all needed logical names. Takes one argument that
- tells it in what logical name table to insert the logical
- names. If you insert if it SYS$MANAGER:SYSTARTUP_VMS.COM, the
- call should look like this:
-
- @openssldev:[openssldir.VMS]OPENSSL_STARTUP "/SYSTEM"
-
- OPENSSL_UTILS.COM
-
- sets up the symbols to the applications. Should be called
- from for example SYS$MANAGER:SYLOGIN.COM
-
- OPENSSL_UNDO.COM
-
- deassigns the logical names created with OPENSSL_STARTUP.COM.
-
-The logical names that are set up are the following:
-
- SSLROOT a dotted concealed logical name pointing at the
- root directory.
-
- SSLCERTS Initially an empty directory, this is the default
- location for certificate files.
- SSLPRIVATE Initially an empty directory, this is the default
- location for private key files.
-
- SSLEXE Contains the openssl binary and a few other utility
- programs.
- SSLINCLUDE Contains the header files needed if you want to
- compile programs with libcrypto or libssl.
- SSLLIB Contains the OpenSSL library files themselves:
- - SSL_LIBCRYPTO32.OLB and SSL_LIBSSL32.OLB or
- - SSL_LIBCRYPTO.OLB and SSL_LIBSSL.OLB
-
- OPENSSL Same as SSLINCLUDE. This is because the standard
- way to include OpenSSL header files from version
- 0.9.3 and on is:
-
- #include <openssl/header.h>
-
- For more info on this issue, see the INSTALL. file
- (the NOTE in section 4 of "Installation in Detail").
- You don't need to "deleting old header files"!!!
-
-
-Backward portability:
-=====================
-
-One great problem when you build a library is making sure it will work
-on as many versions of VMS as possible. Especially, code compiled on
-OpenVMS version 7.x and above tend to be unusable in version 6.x or
-lower, because some C library routines have changed names internally
-(the C programmer won't usually see it, because the old name is
-maintained through C macros). One obvious solution is to make sure
-you have a development machine with an old enough version of OpenVMS.
-However, if you are stuck with a bunch of Alphas running OpenVMS version
-7.1, you seem to be out of luck. Fortunately, the DEC C header files
-are cluttered with conditionals that make some declarations and definitions
-dependent on the OpenVMS version or the C library version, *and* you
-can use those macros to simulate older OpenVMS or C library versions,
-by defining the macros _VMS_V6_SOURCE, __VMS_VER and __CTRL_VER with
-correct values. In the compilation scripts, I've provided the possibility
-for the user to influence the creation of such macros, through a bunch of
-symbols, all having names starting with USER_. Here's the list of them:
-
- USER_CCFLAGS - Used to give additional qualifiers to the
- compiler. It can't be used to define macros
- since the scripts will do such things as well.
- To do such things, use USER_CCDEFS.
- USER_CCDEFS - Used to define macros on the command line. The
- value of this symbol will be inserted inside a
- /DEFINE=(...).
- USER_CCDISABLEWARNINGS - Used to disable some warnings. The value is
- inserted inside a /DISABLE=WARNING=(...).
-
-So, to maintain backward compatibility with older VMS versions, do the
-following before you start compiling:
-
- $ USER_CCDEFS := _VMS_V6_SOURCE=1,__VMS_VER=60000000,__CRTL_VER=60000000
- $ USER_CCDISABLEWARNINGS := PREOPTW
-
-The USER_CCDISABLEWARNINGS is there because otherwise, DEC C will complain
-that those macros have been changed.
-
-Note: Currently, this is only useful for library compilation. The
- programs will still be linked with the current version of the
- C library shareable image, and will thus complain if they are
- faced with an older version of the same C library shareable image.
- This will probably be fixed in a future revision of OpenSSL.
-
-
-Possible bugs or quirks:
-========================
-
-I'm not perfectly sure all the programs will use the SSLCERTS:
-directory by default, it may very well be that you have to give them
-extra arguments. Please experiment.
-
-
-TODO:
-=====
-
-There are a few things that need to be worked out in the VMS version of
-OpenSSL, still:
-
-- Description files. ("Makefile's" :-))
-- Script code to link an already compiled build tree.
-- A VMSINSTALlable version (way in the future, unless someone else hacks).
-- shareable images (DLL for you Windows folks).
-
-There may be other things that I have missed and that may be desirable.
-Please send mail to <openssl-users at openssl.org> or to me directly if you
-have any ideas.
-
---
-Richard Levitte <richard at levitte.org>
-2000-02-27, 2011-03-18
diff --git a/Makefile.in b/Makefile.in
index 44362d0..8083a54 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -372,6 +372,23 @@ do_$(SHLIB_TARGET):
LIBDEPS="$$libs $(EX_LIBS)" \
link_a.$(SHLIB_TARGET); \
libs="-l$$i $$libs"; \
+ case "$(PLATFORM)" in \
+ Cygwin*) \
+ rm -f apps/cyg$$i-$(SHLIB_MAJOR).$(SHLIB_MINOR).dll; \
+ rm -f test/cyg$$i-$(SHLIB_MAJOR).$(SHLIB_MINOR).dll; \
+ cp cyg$$i-$(SHLIB_MAJOR).$(SHLIB_MINOR).dll apps/; \
+ cp cyg$$i-$(SHLIB_MAJOR).$(SHLIB_MINOR).dll test/; \
+ ;; \
+ mingw*) \
+ case $$i in \
+ crypto) i=libeay32;; \
+ ssl) i=ssleay32;; \
+ esac; \
+ rm -f apps/$$i.dll; \
+ rm -f test/$$i.dll; \
+ cp $$i.dll apps/; \
+ cp $$i.dll test/; \
+ esac; \
done
libcrypto.pc: Makefile
diff --git a/Makefile.shared b/Makefile.shared
index af2dc8c..a474f16 100644
--- a/Makefile.shared
+++ b/Makefile.shared
@@ -310,12 +310,8 @@ link_a.cygwin:
ALLSYMSFLAGS='-Wl,--whole-archive'; \
NOALLSYMSFLAGS='-Wl,--no-whole-archive'; \
SHAREDFLAGS="$(CFLAGS) $(SHARED_LDFLAGS) -shared $$base -Wl,-Bsymbolic -Wl,--out-implib,lib$(LIBNAME).dll.a $$extras"; \
- [ -f apps/$$dll_name ] && rm apps/$$dll_name; \
- [ -f test/$$dll_name ] && rm test/$$dll_name; \
$(LINK_SO_A) || exit 1; \
- rm $$extras; \
- cp -p $$dll_name apps/; \
- cp -p $$dll_name test/
+ rm $$extras
link_app.cygwin:
@if expr "$(CFLAGS)" : '.*OPENSSL_USE_APPLINK' > /dev/null; then \
LIBDEPS="$(SRCDIR)/crypto/applink.o $${LIBDEPS:-$(LIBDEPS)}"; \
diff --git a/NEWS b/NEWS
index b33af1c..2f91e2d 100644
--- a/NEWS
+++ b/NEWS
@@ -33,6 +33,7 @@
directory location rather than --openssldir. The latter becomes
the directory for certs, private key and openssl.cnf exclusively.
o Reworked BIO networking library, with full support for IPv6.
+ o New "unified" build system
Major changes between OpenSSL 1.0.2e and OpenSSL 1.0.2f [28 Jan 2016]
diff --git a/README.PERL b/README.PERL
index 472b27e..f667d7f 100644
--- a/README.PERL
+++ b/README.PERL
@@ -37,6 +37,15 @@
package that we know of is ActiveState Perl, available from
http://www.activestate.com/ActivePerl.
+ Notes on Perl on VMS
+ --------------------
+
+ You will need to install Perl separately. One way to do so is to
+ download the source from http://perl.org/, unpacking it, reading
+ README.vms and follow instructions. Another way is to download a
+ .PCSI file from http://sourceforge.net/projects/vmsperlkit/files/
+ and install it using the POLYCENTER install tool.
+
Notes on Perl modules we use
----------------------------
@@ -97,3 +106,12 @@
seen the tests succeed!):
$ cpan -f -i Text::Template
+
+ Note: on VMS, you must quote any argument that contains upper case
+ characters, so the lines above would be:
+
+ $ cpan -i "Text::Template"
+
+ and:
+
+ $ cpan -f -i "Text::Template"
diff --git a/VMS/TODO b/VMS/TODO
deleted file mode 100644
index 359e069..0000000
--- a/VMS/TODO
+++ /dev/null
@@ -1,18 +0,0 @@
-TODO:
-=====
-
-There are a few things that need to be worked out in the VMS version of
-OpenSSL, still:
-
-- Description files. ("Makefile's" :-))
-- Script code to link an already compiled build tree.
-- A VMSINSTALlable version (way in the future, unless someone else hacks).
-- shareable images (DLL for you Windows folks).
-
-There may be other things that I have missed and that may be desirable.
-Please send mail to <openssl-users at openssl.org> or to me directly if you
-have any ideas.
-
---
-Richard Levitte <richard at levitte.org>
-1999-05-24
diff --git a/VMS/WISHLIST.TXT b/VMS/WISHLIST.TXT
deleted file mode 100644
index c151fc8..0000000
--- a/VMS/WISHLIST.TXT
+++ /dev/null
@@ -1,4 +0,0 @@
-* Have the building procedure contain a LINK-only possibility.
- Wished by Mark Daniel <mark.daniel at dsto.defence.gov.au>
-
- One way to enable that is also to go over to DESCRIP.MMS files.
diff --git a/engines/alpha.opt b/VMS/engine.opt
similarity index 74%
rename from engines/alpha.opt
rename to VMS/engine.opt
index 1dc71bf..1c73c80 100644
--- a/engines/alpha.opt
+++ b/VMS/engine.opt
@@ -1 +1,2 @@
+CASE_SENSITIVE=YES
SYMBOL_VECTOR=(bind_engine=PROCEDURE,v_check=PROCEDURE)
diff --git a/VMS/install-vms.com b/VMS/install-vms.com
deleted file mode 100755
index 7da8b21..0000000
--- a/VMS/install-vms.com
+++ /dev/null
@@ -1,67 +0,0 @@
-$! install-vms.com -- Installs the files in a given directory tree
-$!
-$! Author: Richard Levitte <richard at levitte.org>
-$! Time of creation: 23-MAY-1998 19:22
-$!
-$! P1 root of the directory tree
-$!
-$!
-$! Announce/identify.
-$!
-$ proc = f$environment( "procedure")
-$ write sys$output "@@@ "+ -
- f$parse( proc, , , "name")+ f$parse( proc, , , "type")
-$!
-$ on error then goto tidy
-$ on control_c then goto tidy
-$!
-$ if p1 .eqs. ""
-$ then
-$ write sys$output "First argument missing."
-$ write sys$output -
- "Should be the directory where you want things installed."
-$ exit
-$ endif
-$
-$ if (f$getsyi( "cpu") .lt. 128)
-$ then
-$ arch = "VAX"
-$ else
-$ arch = f$edit( f$getsyi( "arch_name"), "upcase")
-$ if (arch .eqs. "") then arch = "UNK"
-$ endif
-$
-$ root = f$parse( P1, "[]A.;0", , , "SYNTAX_ONLY, NO_CONCEAL")- "A.;0"
-$ root_dev = f$parse( root, , , "device", "syntax_only")
-$ root_dir = f$parse( root, , , "directory", "syntax_only") - -
- "[000000." - "][" - "[" - "]"
-$ root = root_dev + "[" + root_dir
-$
-$ define /nolog wrk_sslroot 'root'.] /translation_attributes = concealed
-$ define /nolog wrk_sslinclude wrk_sslroot:[include]
-$
-$ if f$parse( "wrk_sslroot:[000000]") .eqs. "" then -
- create /directory /log wrk_sslroot:[000000]
-$ if f$parse( "wrk_sslinclude:") .eqs. "" then -
- create /directory /log wrk_sslinclude:
-$ if f$parse( "wrk_sslroot:[vms]") .eqs. "" then -
- create /directory /log wrk_sslroot:[vms]
-$!
-$ copy /log /protection = world:re openssl_startup.com wrk_sslroot:[vms]
-$ copy /log /protection = world:re openssl_undo.com wrk_sslroot:[vms]
-$ copy /log /protection = world:re openssl_utils.com wrk_sslroot:[vms]
-$!
-$ tidy:
-$!
-$ call deass wrk_sslroot
-$ call deass wrk_sslinclude
-$!
-$ exit
-$!
-$ deass: subroutine
-$ if (f$trnlnm( p1, "LNM$PROCESS") .nes. "")
-$ then
-$ deassign /process 'p1'
-$ endif
-$ endsubroutine
-$!
diff --git a/VMS/multinet_shr.opt b/VMS/multinet_shr.opt
deleted file mode 100644
index 610f42d..0000000
--- a/VMS/multinet_shr.opt
+++ /dev/null
@@ -1 +0,0 @@
-multinet:multinet_socket_library.exe/share
diff --git a/VMS/openssl_shutdown.com.in b/VMS/openssl_shutdown.com.in
new file mode 100644
index 0000000..85cc26d
--- /dev/null
+++ b/VMS/openssl_shutdown.com.in
@@ -0,0 +1,59 @@
+$ ! OpenSSL shutdown script
+$ !
+$ ! This script deassigns the logical names used by the installation
+$ ! of OpenSSL. It can do so at any level, defined by P1.
+$ !
+$ ! P1 Qualifier(s) for DEASSIGN.
+$ ! Default: /PROCESS
+$ !
+$ ! P2 If the value is "NOALIASES", no alias logical names are
+$ ! deassigned.
+$
+$ status = %x10000001 ! Generic success
+$
+$ ! In case there's a problem
+$ ON CONTROL_Y THEN GOTO bailout
+$ ON ERROR THEN GOTO bailout
+$
+$ ! Find the architecture
+$ IF F$GETSYI("CPU") .LT. 128
+$ THEN
+$ arch := VAX
+$ ELSE
+$ arch := F$EDIT(F$GETSYI("ARCH_NAME"),"UPCASE")
+$ IF arch .EQS. "" THEN GOTO unknown_arch
+$ ENDIF
+$
+$ ! Generated information
+$ VERSION := {- $config{version} -}
+$ INSTALLTOP := {- $config{INSTALLTOP} -}
+$ POINTER_SIZE = {- $config{pointersize} -}
+$
+$ ! Abbrevs
+$ DEAS := DEASSIGN /NOLOG 'P1'
+$ v = VERSION - "." - "."
+$
+$ DEAS OSSL$ROOT'v'
+$ DEAS OSSL$INCLUDE'v'
+$ DEAS OSSL$LIB'v'
+$ DEAS OSSL$SHARE'v'
+$ DEAS OSSL$ENGINES'v'
+$ DEAS OSSL$EXE'v'
+$ {- output_off() if $config{no_shared} -}
+$ {- join("\n\$ ", map { "DEAS $_'v'" } map { $unified_info{sharednames}->{$_} || () } @{$unified_info{libraries}}) -}
+$ {- output_on() -}
+$ IF P2 .NES. "NOALIASES"
+$ THEN
+$ DEAS OSSL$ROOT
+$ DEAS OSSL$INCLUDE
+$ DEAS OSSL$LIB
+$ DEAS OSSL$SHARE
+$ DEAS OSSL$ENGINES
+$ DEAS OSSL$EXE
+$ DEAS OPENSSL
+$ {- output_off() if $config{no_shared} -}
+$ {- join("\n\$ ", map { "DEAS $_" } map { $unified_info{sharednames}->{$_} || () } @{$unified_info{libraries}}) -}
+$ {- output_on() -}
+$ ENDIF
+$
+$ EXIT 'status'
diff --git a/VMS/openssl_startup.com b/VMS/openssl_startup.com
deleted file mode 100755
index 04bbbde..0000000
--- a/VMS/openssl_startup.com
+++ /dev/null
@@ -1,108 +0,0 @@
-$!
-$! Startup file for OpenSSL 1.x.
-$!
-$! 2011-03-05 SMS.
-$!
-$! This procedure must reside in the OpenSSL installation directory.
-$! It will fail if it is copied to a different location.
-$!
-$! P1 qualifier(s) for DEFINE. For example, "/SYSTEM" to get the
-$! logical names defined in the system logical name table.
-$!
-$! P2 "64", to use executables which were built with 64-bit pointers.
-$!
-$! Good (default) and bad status values.
-$!
-$ status = %x00010001 ! RMS$_NORMAL, normal successful completion.
-$ rms_e_fnf = %x00018292 ! RMS$_FNF, file not found.
-$!
-$! Prepare for problems.
-$!
-$ orig_dev_dir = f$environment( "DEFAULT")
-$ on control_y then goto clean_up
-$ on error then goto clean_up
-$!
-$! Determine hardware architecture.
-$!
-$ if (f$getsyi( "cpu") .lt. 128)
-$ then
-$ arch_name = "VAX"
-$ else
-$ arch_name = f$edit( f$getsyi( "arch_name"), "upcase")
-$ if (arch_name .eqs. "") then arch_name = "UNK"
-$ endif
-$!
-$ if (p2 .eqs. "64")
-$ then
-$ arch_name_exe = arch_name+ "_64"
-$ else
-$ arch_name_exe = arch_name
-$ endif
-$!
-$! Derive the OpenSSL installation device:[directory] from the location
-$! of this command procedure.
-$!
-$ proc = f$environment( "procedure")
-$ proc_dev_dir = f$parse( "A.;", proc, , , "no_conceal") - "A.;"
-$ proc_dev = f$parse( proc_dev_dir, , , "device", "syntax_only")
-$ proc_dir = f$parse( proc_dev_dir, , , "directory", "syntax_only") - -
- ".][000000"- "[000000."- "]["- "["- "]"
-$ proc_dev_dir = proc_dev+ "["+ proc_dir+ "]"
-$ set default 'proc_dev_dir'
-$ set default [-]
-$ ossl_dev_dir = f$environment( "default")
-$!
-$! Check existence of expected directories (to see if this procedure has
-$! been moved away from its proper place).
-$!
-$ if ((f$search( "certs.dir;1") .eqs. "") .or. -
- (f$search( "include.dir;1") .eqs. "") .or. -
- (f$search( "private.dir;1") .eqs. "") .or. -
- (f$search( "vms.dir;1") .eqs. ""))
-$ then
-$ write sys$output -
- " Can't find expected common OpenSSL directories in:"
-$ write sys$output " ''ossl_dev_dir'"
-$ status = rms_e_fnf
-$ goto clean_up
-$ endif
-$!
-$ if ((f$search( "''arch_name_exe'_exe.dir;1") .eqs. "") .or. -
- (f$search( "''arch_name'_lib.dir;1") .eqs. ""))
-$ then
-$ write sys$output -
- " Can't find expected architecture-specific OpenSSL directories in:"
-$ write sys$output " ''ossl_dev_dir'"
-$ status = rms_e_fnf
-$ goto clean_up
-$ endif
-$!
-$! All seems well (enough). Define the OpenSSL logical names.
-$!
-$ ossl_root = ossl_dev_dir- "]"+ ".]"
-$ define /translation_attributes = concealed /nolog'p1 SSLROOT 'ossl_root'
-$ define /nolog 'p1' SSLCERTS sslroot:[certs]
-$ define /nolog 'p1' SSLINCLUDE sslroot:[include]
-$ define /nolog 'p1' SSLPRIVATE sslroot:[private]
-$ define /nolog 'p1' SSLEXE sslroot:['arch_name_exe'_exe]
-$ define /nolog 'p1' SSLLIB sslroot:['arch_name'_lib]
-$!
-$! Defining OPENSSL lets a C program use "#include <openssl/{foo}.h>":
-$ define /nolog 'p1' OPENSSL SSLINCLUDE:
-$!
-$! Run a site-specific procedure, if it exists.
-$!
-$ if f$search( "sslroot:[vms]openssl_systartup.com") .nes."" then -
- @ sslroot:[vms]openssl_systartup.com
-$!
-$! Restore the original default dev:[dir] (if known).
-$!
-$ clean_up:
-$!
-$ if (f$type( orig_dev_dir) .nes. "")
-$ then
-$ set default 'orig_dev_dir'
-$ endif
-$!
-$ EXIT 'status'
-$!
diff --git a/VMS/openssl_startup.com.in b/VMS/openssl_startup.com.in
new file mode 100644
index 0000000..a968b44
--- /dev/null
+++ b/VMS/openssl_startup.com.in
@@ -0,0 +1,115 @@
+$ ! OpenSSL startup script
+$ !
+$ ! This script defines the logical names used by the installation
+$ ! of OpenSSL. It can provide those logical names at any level,
+$ ! defined by P1.
+$ !
+$ ! The logical names created are:
+$ !
+$ ! OSSL$ROOTnnn Installation root
+$ ! OSSL$EXEnnn Where the executables are located
+$ ! OSSL$LIBnnn Where the library files are located
+$ ! OSSL$SHAREnnn Where the sahreable images are located
+$ ! OSSL$INCLUDEnnn Include directory root
+$ ! OSSL$ENGINESnnn Where the sahreable images are located
+$ !
+$ ! In all these, nnn is the OpenSSL version number. This allows
+$ ! several OpenSSL versions to be installed simultaneously.
+$ !
+$ ! In addition, unless P2 is "NOALIASES", these logical names are
+$ ! created:
+$ !
+$ ! OSSL$ROOT Alias for OSSL$ROOTnnn
+$ ! OSSL$EXE Alias for OSSL$EXEnnn
+$ ! OSSL$LIB Alias for OSSL$LIBnnn
+$ ! OSSL$SHARE Alias for OSSL$SHAREnnn
+$ ! OSSL$INCLUDE Alias for OSSL$INCLUDEnnn
+$ ! OPENSSL is OSSL$INCLUDE:[OPENSSL]
+$ ! OSSL$ENGINES Alias for OSSL$ENGINESnnn
+$ !
+$ ! P1 Qualifier(s) for DEFINE. "/SYSTEM" would be typical when
+$ ! calling this script from SYS$STARTUP:SYSTARTUP_VMS.COM,
+$ ! while "/PROCESS" would be typical for a personal install.
+$ ! Default: /PROCESS
+$ !
+$ ! P2 If the value is "NOALIASES", no alias logical names are
+$ ! created.
+$
+$ status = %x10000001 ! Generic success
+$
+$ ! In case there's a problem
+$ ON CONTROL_Y THEN GOTO bailout
+$ ON ERROR THEN GOTO bailout
+$
+$ ! Find the architecture
+$ IF F$GETSYI("CPU") .LT. 128
+$ THEN
+$ arch := VAX
+$ ELSE
+$ arch := F$EDIT(F$GETSYI("ARCH_NAME"),"UPCASE")
+$ IF arch .EQS. "" THEN GOTO unknown_arch
+$ ENDIF
+$
+$ ! Generated information
+$ VERSION := {- $config{version} -}
+$ INSTALLTOP := {- $config{INSTALLTOP} -}
+$ OPENSSLDIR := {- $config{OPENSSLDIR} -}
+$ POINTER_SIZE = {- $config{pointersize} -}
+$
+$ ! Make sure that INSTALLTOP and OPENSSLDIR become something one
+$ ! can build concealed logical names on
+$ INSTALLTOP_ = F$PARSE("A.;",INSTALLTOP,,,"NO_CONCEAL") - "A.;" -
+ - ".][000000" - "[000000." - "][" - "]" + ".]"
+$ OPENSSLDIR_ = F$PARSE("A.;",OPENSSLDIR,,,"NO_CONCEAL") - "A.;" -
+ - ".][000000" - "[000000." - "][" - "]" + ".]"
+$ DEFINE /TRANSLATION=CONCEALED /NOLOG WRK_INSTALLTOP 'INSTALLTOP_'
+$
+$ ! Check that things are in place, and specifically, the stuff
+$ ! belonging to this architecture
+$ IF F$SEARCH("WRK_INSTALLTOP:[000000]INCLUDE.DIR;1") .EQS. "" -
+ .OR. F$SEARCH("WRK_INSTALLTOP:[000000]''arch'.DIR;1") .EQS. "" -
+ .OR. F$SEARCH("WRK_INSTALLTOP:[''arch']LIB.DIR;1") .EQS. "" -
+ .OR. F$SEARCH("WRK_INSTALLTOP:[''arch']EXE.DIR;1") .EQS. "" -
+ .OR. F$SEARCH("WRK_INSTALLTOP:[000000]openssl.cnf;1") .EQS. ""
+$ THEN
+$ WRITE SYS$ERROR "''INSTALLTOP' doesn't look like an OpenSSL installation for ''arch'"
+$ status = %x00018292 ! RMS$_FNF, file not found
+$ GOTO bailout
+$ ENDIF
+$
+$ ! Abbrevs
+$ DEFT := DEFINE /TRANSLATION=CONCEALED /NOLOG 'P1'
+$ DEF := DEFINE /NOLOG 'P1'
+$ v = VERSION - "." - "."
+$
+$ DEFT OSSL$INSTROOT'v' 'INSTALLTOP_'
+$ DEFT OSSL$INCLUDE'v' OSSL$INSTROOT:[INCLUDE.]
+$ DEF OSSL$LIB'v' OSSL$INSTROOT:['arch'.LIB]
+$ DEF OSSL$SHARE'v' OSSL$INSTROOT:['arch'.LIB]
+$ DEF OSSL$ENGINES'v' OSSL$INSTROOT:['arch'.ENGINES]
+$ DEF OSSL$EXE'v' OSSL$INSTROOT:['arch'.EXE]
+$ {- output_off() if $config{no_shared} -}
+$ {- join("\n\$ ", map { "DEF $_'v' OSSL\$SHARE:$_" } map { $unified_info{sharednames}->{$_} || () } @{$unified_info{libraries}}) -}
+$ {- output_on() -}
+$ IF P2 .NES. "NOALIASES"
+$ THEN
+$ DEF OSSL$INSTROOT OSSL$INSTROOT'v'
+$ DEF OSSL$INCLUDE OSSL$INCLUDE'v'
+$ DEF OSSL$LIB OSSL$LIB'v'
+$ DEF OSSL$SHARE OSSL$SHARE'v'
+$ DEF OSSL$ENGINES OSSL$ENGINES'v'
+$ DEF OSSL$EXE OSSL$EXE'v'
+$ DEF OPENSSL OSSL$INCLUDE:[OPENSSL]
+$ {- output_off() if $config{no_shared} -}
+$ {- join("\n\$ ", map { "DEF $_ $_'v'" } map { $unified_info{sharednames}->{$_} || () } @{$unified_info{libraries}}) -}
+$ {- output_on() -}
+$ ENDIF
+$
+$ DEFT OSSL$DATAROOT 'OPENSSLDIR_'
+$ DEF OSSL$CERTS OSSL$DATAROOT:[CERTS]
+$ DEF OSSL$PRIVATE OSSL$DATAROOT:[PRIVATE]
+$
+$ bailout:
+$ DEASSIGN WRK_INSTALLTOP
+$
+$ EXIT 'status'
diff --git a/VMS/openssl_undo.com b/VMS/openssl_undo.com
deleted file mode 100755
index d1623a3..0000000
--- a/VMS/openssl_undo.com
+++ /dev/null
@@ -1,20 +0,0 @@
-$!
-$! Deassign OpenSSL logical names.
-$!
-$ call deass "OPENSSL" "''p1'"
-$ call deass "SSLCERTS" "''p1'"
-$ call deass "SSLEXE" "''p1'"
-$ call deass "SSLINCLUDE" "''p1'"
-$ call deass "SSLLIB" "''p1'"
-$ call deass "SSLPRIVATE" "''p1'"
-$ call deass "SSLROOT" "''p1'"
-$!
-$ exit
-$!
-$deass: subroutine
-$ if (f$trnlnm( p1) .nes. "")
-$ then
-$ deassign 'p2' 'p1'
-$ endif
-$ endsubroutine
-$!
diff --git a/VMS/openssl_utils.com b/VMS/openssl_utils.com
index 64f4915..b9dea72 100644
--- a/VMS/openssl_utils.com
+++ b/VMS/openssl_utils.com
@@ -1,46 +1,12 @@
-$!
-$! APPS.COM
-$! Written By: Robert Byer
-$! Vice-President
-$! A-Com Computing, Inc.
-$! byer at mail.all-net.net
-$!
-$!
-$! Slightly modified by Richard Levitte <richard at levitte.org>
-$!
-$!
-$! Always define OPENSSL. Others are optional (non-null P1).
-$!
-$ OPENSSL :== $SSLEXE:OPENSSL
+$ ! OpenSSL utilities
+$ !
$
-$ IF (P1 .NES. "")
-$ THEN
-$ VERIFY :== $SSLEXE:OPENSSL VERIFY
-$ ASN1PARSE:== $SSLEXE:OPENSSL ASN1PARS
-$! REQ could conflict with REQUEST.
-$ OREQ :== $SSLEXE:OPENSSL REQ
-$ DGST :== $SSLEXE:OPENSSL DGST
-$ DH :== $SSLEXE:OPENSSL DH
-$ ENC :== $SSLEXE:OPENSSL ENC
-$ GENDH :== $SSLEXE:OPENSSL GENDH
-$ ERRSTR :== $SSLEXE:OPENSSL ERRSTR
-$ CA :== $SSLEXE:OPENSSL CA
-$ CRL :== $SSLEXE:OPENSSL CRL
-$ RSA :== $SSLEXE:OPENSSL RSA
-$ DSA :== $SSLEXE:OPENSSL DSA
-$ DSAPARAM :== $SSLEXE:OPENSSL DSAPARAM
-$ X509 :== $SSLEXE:OPENSSL X509
-$ GENRSA :== $SSLEXE:OPENSSL GENRSA
-$ GENDSA :== $SSLEXE:OPENSSL GENDSA
-$ S_SERVER :== $SSLEXE:OPENSSL S_SERVER
-$ S_CLIENT :== $SSLEXE:OPENSSL S_CLIENT
-$ SPEED :== $SSLEXE:OPENSSL SPEED
-$ S_TIME :== $SSLEXE:OPENSSL S_TIME
-$ VERSION :== $SSLEXE:OPENSSL VERSION
-$ PKCS7 :== $SSLEXE:OPENSSL PKCS7
-$ CRL2PKCS7:== $SSLEXE:OPENSSL CRL2P7
-$ SESS_ID :== $SSLEXE:OPENSSL SESS_ID
-$ CIPHERS :== $SSLEXE:OPENSSL CIPHERS
-$ NSEQ :== $SSLEXE:OPENSSL NSEQ
-$ PKCS12 :== $SSLEXE:OPENSSL PKCS12
-$ ENDIF
+$ OPENSSL :== $OSSL$EXE:OPENSSL
+$
+$ IF F$SYMBOL(PERL) .EQS. "STRING"
+$ THEN
+$ OSSLCA :== 'PERL' OSSL$EXE:CA.pl
+$ OSSLREHASH :== 'PERL' OSSL$EXE:c_rehash.pl
+$ ELSE
+$ WRITE SYS$ERROR "NOTE: no perl => no OSSLCA or OSSLREHASH"
+$ ENDIF
diff --git a/VMS/socketshr_shr.opt b/VMS/socketshr_shr.opt
deleted file mode 100644
index f6e3131..0000000
--- a/VMS/socketshr_shr.opt
+++ /dev/null
@@ -1 +0,0 @@
-socketshr/share
diff --git a/VMS/tcpip_shr_decc.opt b/VMS/tcpip_shr_decc.opt
deleted file mode 100644
index 33b159e..0000000
--- a/VMS/tcpip_shr_decc.opt
+++ /dev/null
@@ -1 +0,0 @@
-sys$share:tcpip$ipc_shr.exe/share
diff --git a/VMS/translatesyms.pl b/VMS/translatesyms.pl
new file mode 100644
index 0000000..8ffdbd8
--- /dev/null
+++ b/VMS/translatesyms.pl
@@ -0,0 +1,55 @@
+#! /usr/bin/perl
+
+# This script will translate any SYMBOL_VECTOR item that has a translation
+# in CXX$DEMANGLER_DB. The latter is generated by and CC/DECC command that
+# uses the qualifier /REPOSITORY with the build directory as value. When
+# /NAMES=SHORTENED has been used, this file will hold the translations from
+# the original symbols to the shortened variants.
+#
+# CXX$DEMAGLER_DB. is an ISAM file, but with the magic of RMS, it can be
+# read as a text file, with each record as one line.
+#
+# The lines will have the following syntax for any symbol found that's longer
+# than 31 characters:
+#
+# LONG_symbol_34567890123{cksum}$LONG_symbol_34567890123_more_than_31_chars
+#
+# $ is present at the end of the shortened symbol name, and is preceded by a
+# 7 character checksum. The $ makes it easy to separate the shortened name
+# from the original one.
+
+use strict;
+use warnings;
+
+usage() if scalar @ARGV < 1;
+
+my %translations = ();
+
+open DEMANGLER_DATA, $ARGV[0]
+ or die "Couldn't open $ARGV[0]: $!\n";
+while(<DEMANGLER_DATA>) {
+ chomp;
+ (my $translated, my $original) = split /\$/;
+ $translations{$original} = $translated.'$';
+}
+close DEMANGLER_DATA;
+
+$| = 1; # Autoflush
+while(<STDIN>) {
+ s@
+ ((?:[A-Za-z0-9_]+)\/)?([A-Za-z0-9_]+)=(PROCEDURE|DATA)
+ @
+ if (defined($translations{$2})) {
+ my $trans = $translations{$2};
+ my $trans_uc = uc $trans;
+ if (defined($1) && $trans ne $trans_uc) {
+ "$trans_uc/$trans=$3"
+ } else {
+ "$trans=$3"
+ }
+ } else {
+ $&
+ }
+ @gxe;
+ print $_;
+}
diff --git a/VMS/ucx_shr_decc.opt b/VMS/ucx_shr_decc.opt
deleted file mode 100644
index 28d84f4..0000000
--- a/VMS/ucx_shr_decc.opt
+++ /dev/null
@@ -1 +0,0 @@
-sys$share:ucx$ipc_shr.exe/share
diff --git a/VMS/ucx_shr_decc_log.opt b/VMS/ucx_shr_decc_log.opt
deleted file mode 100644
index c9d9a96..0000000
--- a/VMS/ucx_shr_decc_log.opt
+++ /dev/null
@@ -1 +0,0 @@
-ucx$ipc_shr/share
diff --git a/VMS/ucx_shr_vaxc.opt b/VMS/ucx_shr_vaxc.opt
deleted file mode 100644
index 86bfaf0..0000000
--- a/VMS/ucx_shr_vaxc.opt
+++ /dev/null
@@ -1 +0,0 @@
-sys$library:ucx$ipc.olb/library
diff --git a/apps/CA.com b/apps/CA.com
deleted file mode 100644
index 95925d3..0000000
--- a/apps/CA.com
+++ /dev/null
@@ -1,221 +0,0 @@
-$! CA - wrapper around ca to make it easier to use ... basically ca requires
-$! some setup stuff to be done before you can use it and this makes
-$! things easier between now and when Eric is convinced to fix it :-)
-$!
-$! CA -newca ... will setup the right stuff
-$! CA -newreq ... will generate a certificate request
-$! CA -sign ... will sign the generated request and output
-$!
-$! At the end of that grab newreq.pem and newcert.pem (one has the key
-$! and the other the certificate) and cat them together and that is what
-$! you want/need ... I'll make even this a little cleaner later.
-$!
-$! default openssl.cnf file has setup as per the following
-$! demoCA ... where everything is stored
-$
-$ IF F$TYPE(OPENSSL_CONFIG) .EQS. "" THEN OPENSSL_CONFIG := SSLLIB:OPENSSL.CNF
-$
-$ DAYS = "-days 365"
-$ REQ = openssl + " req " + OPENSSL_CONFIG
-$ CA = openssl + " ca " + OPENSSL_CONFIG
-$ VERIFY = openssl + " verify"
-$ X509 = openssl + " x509"
-$ PKCS12 = openssl + " pkcs12"
-$ echo = "write sys$Output"
-$ RET = 1
-$!
-$! 2010-12-20 SMS.
-$! Use a concealed logical name to reduce command line lengths, to
-$! avoid DCL errors on VAX:
-$! %DCL-W-TKNOVF, command element is too long - shorten
-$! (Path segments like "openssl-1_0_1-stable-SNAP-20101217" accumulate
-$! quickly.)
-$!
-$ CATOP = F$PARSE( F$ENVIRONMENT( "DEFAULT"), "[]")- "].;"+ ".demoCA.]"
-$ define /translation_attributes = concealed CATOP 'CATOP'
-$!
-$ on error then goto clean_up
-$ on control_y then goto clean_up
-$!
-$ CAKEY = "CATOP:[private]cakey.pem"
-$ CACERT = "CATOP:[000000]cacert.pem"
-$
-$ __INPUT := SYS$COMMAND
-$!
-$ i = 1
-$opt_loop:
-$ if i .gt. 8 then goto opt_loop_end
-$
-$ prog_opt = F$EDIT(P'i',"lowercase")
-$
-$ IF (prog_opt .EQS. "?" .OR. prog_opt .EQS. "-h" .OR. prog_opt .EQS. "-help")
-$ THEN
-$ echo "usage: CA -newcert|-newreq|-newca|-sign|-verify"
-$ goto clean_up
-$ ENDIF
-$!
-$ IF (prog_opt .EQS. "-input")
-$ THEN
-$ ! Get input from somewhere other than SYS$COMMAND
-$ i = i + 1
-$ __INPUT = P'i'
-$ GOTO opt_loop_continue
-$ ENDIF
-$!
-$ IF (prog_opt .EQS. "-newcert")
-$ THEN
-$ ! Create a certificate.
-$ DEFINE /USER_MODE SYS$INPUT '__INPUT'
-$ REQ -new -x509 -keyout newreq.pem -out newreq.pem 'DAYS'
-$ RET=$STATUS
-$ echo "Certificate (and private key) is in newreq.pem"
-$ GOTO opt_loop_continue
-$ ENDIF
-$!
-$ IF (prog_opt .EQS. "-newreq")
-$ THEN
-$ ! Create a certificate request
-$ DEFINE /USER_MODE SYS$INPUT '__INPUT'
-$ REQ -new -keyout newreq.pem -out newreq.pem 'DAYS'
-$ RET=$STATUS
-$ echo "Request (and private key) is in newreq.pem"
-$ GOTO opt_loop_continue
-$ ENDIF
-$!
-$ IF (prog_opt .EQS. "-newca")
-$ THEN
-$ ! If explicitly asked for or it doesn't exist then setup the directory
-$ ! structure that Eric likes to manage things.
-$ IF F$SEARCH( "CATOP:[000000]serial.") .EQS. ""
-$ THEN
-$ CREATE /DIRECTORY /PROTECTION=OWNER:RWED CATOP:[000000]
-$ CREATE /DIRECTORY /PROTECTION=OWNER:RWED CATOP:[certs]
-$ CREATE /DIRECTORY /PROTECTION=OWNER:RWED CATOP:[crl]
-$ CREATE /DIRECTORY /PROTECTION=OWNER:RWED CATOP:[newcerts]
-$ CREATE /DIRECTORY /PROTECTION=OWNER:RWED CATOP:[private]
-$
-$ OPEN /WRITE ser_file CATOP:[000000]serial.
-$ WRITE ser_file "01"
-$ CLOSE ser_file
-$ APPEND /NEW_VERSION NL: CATOP:[000000]index.txt
-$
-$ ! The following is to make sure access() doesn't get confused. It
-$ ! really needs one file in the directory to give correct answers...
-$ COPY NLA0: CATOP:[certs].;
-$ COPY NLA0: CATOP:[crl].;
-$ COPY NLA0: CATOP:[newcerts].;
-$ COPY NLA0: CATOP:[private].;
-$ ENDIF
-$!
-$ IF F$SEARCH( CAKEY) .EQS. ""
-$ THEN
-$ READ '__INPUT' FILE -
- /PROMPT="CA certificate filename (or enter to create): "
-$ IF (FILE .NES. "") .AND. (F$SEARCH(FILE) .NES. "")
-$ THEN
-$ COPY 'FILE' 'CAKEY'
-$ RET=$STATUS
-$ ELSE
-$ echo "Making CA certificate ..."
-$ DEFINE /USER_MODE SYS$INPUT '__INPUT'
-$ REQ -new -x509 -keyout 'CAKEY' -out 'CACERT' 'DAYS'
-$ RET=$STATUS
-$ ENDIF
-$ ENDIF
-$ GOTO opt_loop_continue
-$ ENDIF
-$!
-$ IF (prog_opt .EQS. "-pkcs12")
-$ THEN
-$ i = i + 1
-$ cname = P'i'
-$ IF cname .EQS. "" THEN cname = "My certificate"
-$ PKCS12 -in newcert.pem -inkey newreq.pem -certfile 'CACERT' -
- -out newcert.p12 -export -name "''cname'"
-$ RET=$STATUS
-$ goto clean_up
-$ ENDIF
-$!
-$ IF (prog_opt .EQS. "-xsign")
-$ THEN
-$!
-$ DEFINE /USER_MODE SYS$INPUT '__INPUT'
-$ CA -policy policy_anything -infiles newreq.pem
-$ RET=$STATUS
-$ GOTO opt_loop_continue
-$ ENDIF
-$!
-$ IF ((prog_opt .EQS. "-sign") .OR. (prog_opt .EQS. "-signreq"))
-$ THEN
-$!
-$ DEFINE /USER_MODE SYS$INPUT '__INPUT'
-$ CA -policy policy_anything -out newcert.pem -infiles newreq.pem
-$ RET=$STATUS
-$ type newcert.pem
-$ echo "Signed certificate is in newcert.pem"
-$ GOTO opt_loop_continue
-$ ENDIF
-$!
-$ IF (prog_opt .EQS. "-signcert")
-$ THEN
-$!
-$ echo "Cert passphrase will be requested twice - bug?"
-$ DEFINE /USER_MODE SYS$INPUT '__INPUT'
-$ X509 -x509toreq -in newreq.pem -signkey newreq.pem -out tmp.pem
-$ DEFINE /USER_MODE SYS$INPUT '__INPUT'
-$ CA -policy policy_anything -out newcert.pem -infiles tmp.pem
-y
-y
-$ type newcert.pem
-$ echo "Signed certificate is in newcert.pem"
-$ GOTO opt_loop_continue
-$ ENDIF
-$!
-$ IF (prog_opt .EQS. "-verify")
-$ THEN
-$!
-$ i = i + 1
-$ IF (p'i' .EQS. "")
-$ THEN
-$ DEFINE /USER_MODE SYS$INPUT '__INPUT'
-$ VERIFY "-CAfile" 'CACERT' newcert.pem
-$ ELSE
-$ j = i
-$ verify_opt_loop:
-$ IF j .GT. 8 THEN GOTO verify_opt_loop_end
-$ IF p'j' .NES. ""
-$ THEN
-$ DEFINE /USER_MODE SYS$INPUT '__INPUT'
-$ __tmp = p'j'
-$ VERIFY "-CAfile" 'CACERT' '__tmp'
-$ tmp=$STATUS
-$ IF tmp .NE. 0 THEN RET=tmp
-$ ENDIF
-$ j = j + 1
-$ GOTO verify_opt_loop
-$ verify_opt_loop_end:
-$ ENDIF
-$
-$ GOTO opt_loop_end
-$ ENDIF
-$!
-$ IF (prog_opt .NES. "")
-$ THEN
-$!
-$ echo "Unknown argument ''prog_opt'"
-$ RET = 3
-$ goto clean_up
-$ ENDIF
-$
-$opt_loop_continue:
-$ i = i + 1
-$ GOTO opt_loop
-$
-$opt_loop_end:
-$!
-$clean_up:
-$!
-$ if f$trnlnm( "CATOP", "LNM$PROCESS") .nes. "" then -
- deassign /process CATOP
-$!
-$ EXIT 'RET'
diff --git a/apps/build.info b/apps/build.info
index f365aee..173f1bc 100644
--- a/apps/build.info
+++ b/apps/build.info
@@ -9,9 +9,16 @@ SOURCE[openssl]=\
s_client.c s_server.c s_time.c sess_id.c smime.c speed.c spkac.c \
srp.c ts.c verify.c version.c x509.c rehash.c \
apps.c opt.c s_cb.c s_socket.c \
- app_rand.c
+ app_rand.c \
+ {- $target{apps_extra_src} -}
INCLUDE[openssl]={- rel2abs(catdir($builddir,"../include")) -} .. ../include
DEPEND[openssl]=../libssl
SCRIPTS=CA.pl
SOURCE[CA.pl]=CA.pl.in
+
+BEGINRAW[Makefile]
+{- $builddir -}/progs.h: {- $sourcedir -}/progs.pl {- $builddir -}/../Makefile
+ $(RM) {- $builddir -}/progs.h
+ $(PERL) {- $sourcedir -}/progs.pl $(COMMANDS) >{- $builddir -}/progs.h
+ENDRAW[Makefile]
diff --git a/apps/install-apps.com b/apps/install-apps.com
deleted file mode 100755
index 7a553aa..0000000
--- a/apps/install-apps.com
+++ /dev/null
@@ -1,107 +0,0 @@
-$! INSTALL.COM -- Installs the files in a given directory tree
-$!
-$! Author: Richard Levitte <richard at levitte.org>
-$! Time of creation: 22-MAY-1998 10:13
-$!
-$! P1 root of the directory tree
-$! P2 "64" for 64-bit pointers.
-$!
-$!
-$! Announce/identify.
-$!
-$ proc = f$environment( "procedure")
-$ write sys$output "@@@ "+ -
- f$parse( proc, , , "name")+ f$parse( proc, , , "type")
-$!
-$ on error then goto tidy
-$ on control_c then goto tidy
-$!
-$ if (p1 .eqs. "")
-$ then
-$ write sys$output "First argument missing."
-$ write sys$output -
- "It should be the directory where you want things installed."
-$ exit
-$ endif
-$!
-$ if (f$getsyi("cpu") .lt. 128)
-$ then
-$ arch = "VAX"
-$ else
-$ arch = f$edit( f$getsyi( "arch_name"), "upcase")
-$ if (arch .eqs. "") then arch = "UNK"
-$ endif
-$!
-$ archd = arch
-$!
-$ if (p2 .nes. "")
-$ then
-$ if (p2 .eqs. "64")
-$ then
-$ archd = arch+ "_64"
-$ else
-$ if (p2 .nes. "32")
-$ then
-$ write sys$output "Second argument invalid."
-$ write sys$output "It should be "32", "64", or nothing."
-$ exit
-$ endif
-$ endif
-$ endif
-$!
-$ root = f$parse( p1, "[]A.;0", , , "syntax_only, no_conceal") - "A.;0"
-$ root_dev = f$parse(root,,,"device","syntax_only")
-$ root_dir = f$parse(root,,,"directory","syntax_only") - -
- "[000000." - "][" - "[" - "]"
-$ root = root_dev + "[" + root_dir
-$!
-$ define /nolog wrk_sslroot 'root'.] /trans=conc
-$ define /nolog wrk_sslxexe wrk_sslroot:['archd'_exe]
-$!
-$ if f$parse("wrk_sslroot:[000000]") .eqs. "" then -
- create /directory /log wrk_sslroot:[000000]
-$ if f$parse("wrk_sslxexe:") .eqs. "" then -
- create /directory /log wrk_sslxexe:
-$!
-$ exe := openssl
-$!
-$ exe_dir := [-.'archd'.exe.apps]
-$!
-$! Executables.
-$!
-$ i = 0
-$ loop_exe:
-$ e = f$edit(f$element( i, ",", exe), "trim")
-$ i = i + 1
-$ if e .eqs. "," then goto loop_exe_end
-$ set noon
-$ file = exe_dir+ e+ ".exe"
-$ if f$search( file) .nes. ""
-$ then
-$ copy /protection = w:re 'file' wrk_sslxexe: /log
-$ endif
-$ set on
-$ goto loop_exe
-$ loop_exe_end:
-$!
-$! Miscellaneous.
-$!
-$ set noon
-$ copy /protection = w:re ca.com wrk_sslxexe:ca.com /log
-$ copy /protection = w:re openssl-vms.cnf wrk_sslroot:[000000]openssl.cnf /log
-$ set on
-$!
-$ tidy:
-$!
-$ call deass wrk_sslroot
-$ call deass wrk_sslxexe
-$!
-$ exit
-$!
-$ deass: subroutine
-$ if (f$trnlnm( p1, "LNM$PROCESS") .nes. "")
-$ then
-$ deassign /process 'p1'
-$ endif
-$ endsubroutine
-$!
diff --git a/apps/makeapps.com b/apps/makeapps.com
deleted file mode 100644
index 2724cc6..0000000
--- a/apps/makeapps.com
+++ /dev/null
@@ -1,1169 +0,0 @@
-$!
-$! MAKEAPPS.COM
-$! Written By: Robert Byer
-$! Vice-President
-$! A-Com Computing, Inc.
-$! byer at mail.all-net.net
-$!
-$! Changes by Richard Levitte <richard at levitte.org>
-$! Zoltan Arpadffy <zoli at polarhome.com>
-$!
-$! This command files compiles and creates all the various different
-$! "application" programs for the different types of encryption for OpenSSL.
-$! The EXE's are placed in the directory [.xxx.EXE.APPS] where "xxx" denotes
-$! ALPHA, IA64 or VAX, depending on your machine architecture.
-$!
-$! It was written so it would try to determine what "C" compiler to
-$! use or you can specify which "C" compiler to use.
-$!
-$! Specify DEBUG or NODEBUG as P1 to compile with or without debugger
-$! information.
-$!
-$! Specify which compiler at P2 to try to compile under.
-$!
-$! VAXC For VAX C.
-$! DECC For DEC C.
-$! GNUC For GNU C.
-$!
-$! If you don't specify a compiler, it will try to determine which
-$! "C" compiler to use.
-$!
-$! P3, if defined, sets a TCP/IP library to use, through one of the following
-$! keywords:
-$!
-$! UCX for UCX
-$! SOCKETSHR for SOCKETSHR+NETLIB
-$! TCPIP for TCPIP (post UCX)
-$!
-$! P4, if defined, sets a compiler thread NOT needed on OpenVMS 7.1 (and up)
-$!
-$! P5, if defined, sets a choice of programs to compile.
-$!
-$! P6, if defined, specifies the C pointer size. Ignored on VAX.
-$! ("64=ARGV" gives more efficient code with HP C V7.3 or newer.)
-$! Supported values are:
-$!
-$! "" Compile with default (/NOPOINTER_SIZE)
-$! 32 Compile with /POINTER_SIZE=32 (SHORT)
-$! 64 Compile with /POINTER_SIZE=64[=ARGV] (LONG[=ARGV])
-$! (Automatically select ARGV if compiler supports it.)
-$! 64= Compile with /POINTER_SIZE=64 (LONG).
-$! 64=ARGV Compile with /POINTER_SIZE=64=ARGV (LONG=ARGV).
-$!
-$! P7, if defined, specifies a directory where ZLIB files (zlib.h,
-$! libz.olb) may be found. Optionally, a non-default object library
-$! name may be included ("dev:[dir]libz_64.olb", for example).
-$!
-$!
-$! Announce/identify.
-$!
-$ proc = f$environment( "procedure")
-$ write sys$output "@@@ "+ -
- f$parse( proc, , , "name")+ f$parse( proc, , , "type")
-$!
-$ on control_c then goto exit
-$!
-$! Define A TCP/IP Library That We Will Need To Link To.
-$! (That Is, If We Need To Link To One.)
-$!
-$ TCPIP_LIB = ""
-$ ZLIB_LIB = ""
-$!
-$! Check What Architecture We Are Using.
-$!
-$ IF (F$GETSYI("CPU").LT.128)
-$ THEN
-$!
-$! The Architecture Is VAX.
-$!
-$ ARCH = "VAX"
-$!
-$! Else...
-$!
-$ ELSE
-$!
-$! The Architecture Is Alpha, IA64 or whatever comes in the future.
-$!
-$ ARCH = F$EDIT( F$GETSYI( "ARCH_NAME"), "UPCASE")
-$ IF (ARCH .EQS. "") THEN ARCH = "UNK"
-$!
-$! End The Architecture Check.
-$!
-$ ENDIF
-$!
-$ ARCHD = ARCH
-$ LIB32 = "32"
-$ OPT_FILE = ""
-$ POINTER_SIZE = ""
-$!
-$! Define what programs should be compiled
-$!
-$ PROGRAMS := OPENSSL
-$!
-$! Check To Make Sure We Have Valid Command Line Parameters.
-$!
-$ GOSUB CHECK_OPTIONS
-$!
-$! Define The CRYPTO Library.
-$!
-$ CRYPTO_LIB := SYS$DISK:[-.'ARCHD'.EXE.CRYPTO]SSL_LIBCRYPTO'LIB32'.OLB
-$!
-$! Define The SSL Library.
-$!
-$ SSL_LIB := SYS$DISK:[-.'ARCHD'.EXE.SSL]SSL_LIBSSL'LIB32'.OLB
-$!
-$! Define The OBJ and EXE Directories.
-$!
-$ OBJ_DIR := SYS$DISK:[-.'ARCHD'.OBJ.APPS]
-$ EXE_DIR := SYS$DISK:[-.'ARCHD'.EXE.APPS]
-$!
-$! Specify the destination directory in any /MAP option.
-$!
-$ if (LINKMAP .eqs. "MAP")
-$ then
-$ LINKMAP = LINKMAP+ "=''EXE_DIR'"
-$ endif
-$!
-$! Add the location prefix to the linker options file name.
-$!
-$ if (OPT_FILE .nes. "")
-$ then
-$ OPT_FILE = EXE_DIR+ OPT_FILE
-$ endif
-$!
-$! Initialise logical names and such
-$!
-$ GOSUB INITIALISE
-$!
-$! Tell The User What Kind of Machine We Run On.
-$!
-$ WRITE SYS$OUTPUT "Host system architecture: ''ARCHD'"
-$!
-$! Check To See If The OBJ Directory Exists.
-$!
-$ IF (F$PARSE(OBJ_DIR).EQS."")
-$ THEN
-$!
-$! It Dosen't Exist, So Create It.
-$!
-$ CREATE/DIRECTORY 'OBJ_DIR'
-$!
-$! End The OBJ Directory Check.
-$!
-$ ENDIF
-$!
-$! Check To See If The EXE Directory Exists.
-$!
-$ IF (F$PARSE(EXE_DIR).EQS."")
-$ THEN
-$!
-$! It Dosen't Exist, So Create It.
-$!
-$ CREATE/DIRECTORY 'EXE_DIR'
-$!
-$! End The EXE Directory Check.
-$!
-$ ENDIF
-$!
-$! Check To See If We Have The Proper Libraries.
-$!
-$ GOSUB LIB_CHECK
-$!
-$! Check To See If We Have A Linker Option File.
-$!
-$ GOSUB CHECK_OPT_FILE
-$!
-$! Define The Application Files.
-$! NOTE: Some might think this list ugly. However, it's made this way to
-$! reflect the E_OBJ variable in Makefile as closely as possible, thereby
-$! making it fairly easy to verify that the lists are the same.
-$!
-$ LIB_OPENSSL = "VERIFY,ASN1PARS,REQ,DGST,DHPARAM,ENC,PASSWD,ERRSTR,"+-
- "CA,PKCS7,CRL2P7,CRL,"+-
- "RSA,RSAUTL,DSA,DSAPARAM,EC,ECPARAM,"+-
- "X509,GENRSA,GENDSA,GENPKEY,S_SERVER,S_CLIENT,SPEED,"+-
- "S_TIME,APPS,S_CB,S_SOCKET,APP_RAND,VERSION,SESS_ID,"+-
- "CIPHERS,NSEQ,PKCS12,PKCS8,PKEY,PKEYPARAM,PKEYUTL,"+ -
- "SPKAC,SMIME,CMS,RAND,ENGINE,OCSP,PRIME,TS,SRP"
-$!
-$ LIB_OPENSSL = LIB_OPENSSL+ ",VMS_DECC_INIT"
-$!
-$ TCPIP_PROGRAMS = ",,"
-$ IF COMPILER .EQS. "VAXC" THEN -
- TCPIP_PROGRAMS = ",OPENSSL,"
-$!
-$! Setup exceptional compilations
-$!
-$ COMPILEWITH_CC2 = ",S_SOCKET,S_SERVER,S_CLIENT,"
-$!
-$ PHASE := LIB
-$!
-$ RESTART:
-$!
-$! Define An App Counter And Set It To "0".
-$!
-$ APP_COUNTER = 0
-$!
-$! Top Of The App Loop.
-$!
-$ NEXT_APP:
-$!
-$! Make The Application File Name
-$!
-$ CURRENT_APP = F$EDIT(F$ELEMENT(APP_COUNTER,",",PROGRAMS),"TRIM")
-$!
-$! Create The Executable File Name.
-$!
-$ EXE_FILE = EXE_DIR + CURRENT_APP + ".EXE"
-$!
-$! Check To See If We Are At The End Of The File List.
-$!
-$ IF (CURRENT_APP.EQS.",")
-$ THEN
-$ IF (PHASE.EQS."LIB")
-$ THEN
-$ PHASE := APP
-$ GOTO RESTART
-$ ELSE
-$ GOTO APP_DONE
-$ ENDIF
-$ ENDIF
-$!
-$! Increment The Counter.
-$!
-$ APP_COUNTER = APP_COUNTER + 1
-$!
-$! Decide if we're building the object files or not.
-$!
-$ IF (PHASE.EQS."LIB")
-$ THEN
-$!
-$! Define A Library File Counter And Set It To "-1".
-$! -1 Means The Application File Name Is To Be Used.
-$!
-$ LIB_COUNTER = -1
-$!
-$! Create a .OPT file for the object files
-$!
-$ OPEN /WRITE OBJECTS 'EXE_DIR''CURRENT_APP'.OPT
-$!
-$! Top Of The File Loop.
-$!
-$ NEXT_LIB:
-$!
-$! O.K, Extract The File Name From The File List.
-$!
-$ IF LIB_COUNTER .GE. 0
-$ THEN
-$ FILE_NAME = F$EDIT(F$ELEMENT(LIB_COUNTER,",",LIB_'CURRENT_APP'),"TRIM")
-$ ELSE
-$ FILE_NAME = CURRENT_APP
-$ ENDIF
-$!
-$! Check To See If We Are At The End Of The File List.
-$!
-$ IF (FILE_NAME.EQS.",")
-$ THEN
-$ CLOSE OBJECTS
-$ GOTO NEXT_APP
-$ ENDIF
-$!
-$! Increment The Counter.
-$!
-$ LIB_COUNTER = LIB_COUNTER + 1
-$!
-$! Create The Source File Name.
-$!
-$ SOURCE_FILE = "SYS$DISK:[]" + FILE_NAME + ".C"
-$!
-$! Create The Object File Name.
-$!
-$ OBJECT_FILE = OBJ_DIR + FILE_NAME + ".OBJ"
-$ ON WARNING THEN GOTO NEXT_LIB
-$!
-$! Check To See If The File We Want To Compile Actually Exists.
-$!
-$ IF (F$SEARCH(SOURCE_FILE).EQS."")
-$ THEN
-$!
-$! Tell The User That The File Dosen't Exist.
-$!
-$ WRITE SYS$OUTPUT ""
-$ WRITE SYS$OUTPUT "The File ",SOURCE_FILE," Dosen't Exist."
-$ WRITE SYS$OUTPUT ""
-$!
-$! Exit The Build.
-$!
-$ GOTO EXIT
-$!
-$! End The File Exist Check.
-$!
-$ ENDIF
-$!
-$! Tell The User What We Are Building.
-$!
-$ IF (PHASE.EQS."LIB")
-$ THEN
-$ WRITE SYS$OUTPUT "Compiling The ",FILE_NAME,".C File."
-$ ELSE
-$ WRITE SYS$OUTPUT "Building The ",FILE_NAME," Application Program."
-$ ENDIF
-$!
-$! Compile The File.
-$!
-$ ON ERROR THEN GOTO NEXT_LIB
-$ IF COMPILEWITH_CC2 - FILE_NAME .NES. COMPILEWITH_CC2
-$ THEN
-$ CC2/OBJECT='OBJECT_FILE' 'SOURCE_FILE'
-$ ELSE
-$ CC/OBJECT='OBJECT_FILE' 'SOURCE_FILE'
-$ ENDIF
-$ WRITE OBJECTS OBJECT_FILE
-$!
-$ GOTO NEXT_LIB
-$ ENDIF
-$!
-$! Check if this program works well without a TCPIP library
-$!
-$ IF TCPIP_LIB .EQS. "" .AND. TCPIP_PROGRAMS - CURRENT_APP .NES. TCPIP_PROGRAMS
-$ THEN
-$ WRITE SYS$OUTPUT CURRENT_APP," needs a TCP/IP library. Can't link. Skipping..."
-$ GOTO NEXT_APP
-$ ENDIF
-$!
-$! Link The Program.
-$!
-$ ON WARNING THEN GOTO NEXT_APP
-$!
-$! Don't Link With The RSAREF Routines And TCP/IP Library.
-$!
-$ LINK /'DEBUGGER' /'LINKMAP' /'TRACEBACK' /EXE='EXE_FILE' -
- 'EXE_DIR''CURRENT_APP'.OPT /OPTIONS, -
- 'SSL_LIB' /LIBRARY, -
- 'CRYPTO_LIB' /LIBRARY -
- 'TCPIP_LIB' -
- 'ZLIB_LIB' -
- ,'OPT_FILE' /OPTIONS
-$!
-$! Go Back And Do It Again.
-$!
-$ GOTO NEXT_APP
-$!
-$! All Done With This File.
-$!
-$ APP_DONE:
-$ EXIT:
-$!
-$! All Done, Time To Clean Up And Exit.
-$!
-$ GOSUB CLEANUP
-$ EXIT
-$!
-$! Check For The Link Option FIle.
-$!
-$ CHECK_OPT_FILE:
-$!
-$! Check To See If We Need To Make A VAX C Option File.
-$!
-$ IF (COMPILER.EQS."VAXC")
-$ THEN
-$!
-$! Check To See If We Already Have A VAX C Linker Option File.
-$!
-$ IF (F$SEARCH(OPT_FILE).EQS."")
-$ THEN
-$!
-$! We Need A VAX C Linker Option File.
-$!
-$ CREATE 'OPT_FILE'
-$DECK
-!
-! Default System Options File To Link Against
-! The Sharable VAX C Runtime Library.
-!
-SYS$SHARE:VAXCRTL.EXE/SHARE
-$EOD
-$!
-$! End The Option File Check.
-$!
-$ ENDIF
-$!
-$! End The VAXC Check.
-$!
-$ ENDIF
-$!
-$! Check To See If We Need A GNU C Option File.
-$!
-$ IF (COMPILER.EQS."GNUC")
-$ THEN
-$!
-$! Check To See If We Already Have A GNU C Linker Option File.
-$!
-$ IF (F$SEARCH(OPT_FILE).EQS."")
-$ THEN
-$!
-$! We Need A GNU C Linker Option File.
-$!
-$ CREATE 'OPT_FILE'
-$DECK
-!
-! Default System Options File To Link Against
-! The Sharable C Runtime Library.
-!
-GNU_CC:[000000]GCCLIB/LIBRARY
-SYS$SHARE:VAXCRTL/SHARE
-$EOD
-$!
-$! End The Option File Check.
-$!
-$ ENDIF
-$!
-$! End The GNU C Check.
-$!
-$ ENDIF
-$!
-$! Check To See If We Need A DEC C Option File.
-$!
-$ IF (COMPILER.EQS."DECC")
-$ THEN
-$!
-$! Check To See If We Already Have A DEC C Linker Option File.
-$!
-$ IF (F$SEARCH(OPT_FILE).EQS."")
-$ THEN
-$!
-$! Figure Out If We Need An AXP Or A VAX Linker Option File.
-$!
-$ IF ARCH.EQS."VAX"
-$ THEN
-$!
-$! We Need A DEC C Linker Option File For VAX.
-$!
-$ CREATE 'OPT_FILE'
-$DECK
-!
-! Default System Options File To Link Against
-! The Sharable DEC C Runtime Library.
-!
-SYS$SHARE:DECC$SHR.EXE/SHARE
-$EOD
-$!
-$! Else...
-$!
-$ ELSE
-$!
-$! Create The non-VAX Linker Option File.
-$!
-$ CREATE 'OPT_FILE'
-$DECK
-!
-! Default System Options File For non-VAX To Link Against
-! The Sharable C Runtime Library.
-!
-SYS$SHARE:CMA$OPEN_LIB_SHR/SHARE
-SYS$SHARE:CMA$OPEN_RTL/SHARE
-$EOD
-$!
-$! End The DEC C Option File Check.
-$!
-$ ENDIF
-$!
-$! End The Option File Search.
-$!
-$ ENDIF
-$!
-$! End The DEC C Check.
-$!
-$ ENDIF
-$!
-$! Tell The User What Linker Option File We Are Using.
-$!
-$ WRITE SYS$OUTPUT "Using Linker Option File ",OPT_FILE,"."
-$!
-$! Time To RETURN.
-$!
-$ RETURN
-$!
-$! Check To See If We Have The Appropiate Libraries.
-$!
-$ LIB_CHECK:
-$!
-$! Look For The Library LIBCRYPTO.OLB.
-$!
-$ IF (F$SEARCH(CRYPTO_LIB).EQS."")
-$ THEN
-$!
-$! Tell The User We Can't Find The LIBCRYPTO.OLB Library.
-$!
-$ WRITE SYS$OUTPUT ""
-$ WRITE SYS$OUTPUT "Can't Find The Library ",CRYPTO_LIB,"."
-$ WRITE SYS$OUTPUT "We Can't Link Without It."
-$ WRITE SYS$OUTPUT ""
-$!
-$! Since We Can't Link Without It, Exit.
-$!
-$ EXIT
-$!
-$! End The Crypto Library Check.
-$!
-$ ENDIF
-$!
-$! Look For The Library LIBSSL.OLB.
-$!
-$ IF (F$SEARCH(SSL_LIB).EQS."")
-$ THEN
-$!
-$! Tell The User We Can't Find The LIBSSL.OLB Library.
-$!
-$ WRITE SYS$OUTPUT ""
-$ WRITE SYS$OUTPUT "Can't Find The Library ",SSL_LIB,"."
-$ WRITE SYS$OUTPUT "Some Of The Test Programs Need To Link To It."
-$ WRITE SYS$OUTPUT ""
-$!
-$! Since We Can't Link Without It, Exit.
-$!
-$ EXIT
-$!
-$! End The SSL Library Check.
-$!
-$ ENDIF
-$!
-$! Time To Return.
-$!
-$ RETURN
-$!
-$! Check The User's Options.
-$!
-$ CHECK_OPTIONS:
-$!
-$! Check To See If P1 Is Blank.
-$!
-$ IF (P1.EQS."NODEBUG")
-$ THEN
-$!
-$! P1 Is NODEBUG, So Compile Without Debugger Information.
-$!
-$ DEBUGGER = "NODEBUG"
-$ LINKMAP = "NOMAP"
-$ TRACEBACK = "NOTRACEBACK"
-$ GCC_OPTIMIZE = "OPTIMIZE"
-$ CC_OPTIMIZE = "OPTIMIZE"
-$ WRITE SYS$OUTPUT "No Debugger Information Will Be Produced During Compile."
-$ WRITE SYS$OUTPUT "Compiling With Compiler Optimization."
-$!
-$! Else...
-$!
-$ ELSE
-$!
-$! Check To See If We Are To Compile With Debugger Information.
-$!
-$ IF (P1.EQS."DEBUG")
-$ THEN
-$!
-$! Compile With Debugger Information.
-$!
-$ DEBUGGER = "DEBUG"
-$ LINKMAP = "MAP"
-$ TRACEBACK = "TRACEBACK"
-$ GCC_OPTIMIZE = "NOOPTIMIZE"
-$ CC_OPTIMIZE = "NOOPTIMIZE"
-$ WRITE SYS$OUTPUT "Debugger Information Will Be Produced During Compile."
-$ WRITE SYS$OUTPUT "Compiling Without Compiler Optimization."
-$ ELSE
-$!
-$! Tell The User Entered An Invalid Option.
-$!
-$ WRITE SYS$OUTPUT ""
-$ WRITE SYS$OUTPUT "The Option ",P1," Is Invalid. The Valid Options Are:"
-$ WRITE SYS$OUTPUT ""
-$ WRITE SYS$OUTPUT " DEBUG : Compile With The Debugger Information."
-$ WRITE SYS$OUTPUT " NODEBUG : Compile Without The Debugger Information."
-$ WRITE SYS$OUTPUT ""
-$!
-$! Time To EXIT.
-$!
-$ EXIT
-$!
-$! End The Valid Argument Check.
-$!
-$ ENDIF
-$!
-$! End The P1 Check.
-$!
-$ ENDIF
-$!
-$! Check P6 (POINTER_SIZE).
-$!
-$ IF (P6 .NES. "") .AND. (ARCH .NES. "VAX")
-$ THEN
-$!
-$ IF (P6 .EQS. "32")
-$ THEN
-$ POINTER_SIZE = " /POINTER_SIZE=32"
-$ ELSE
-$ POINTER_SIZE = F$EDIT( P6, "COLLAPSE, UPCASE")
-$ IF ((POINTER_SIZE .EQS. "64") .OR. -
- (POINTER_SIZE .EQS. "64=") .OR. -
- (POINTER_SIZE .EQS. "64=ARGV"))
-$ THEN
-$ ARCHD = ARCH+ "_64"
-$ LIB32 = ""
-$ IF (F$EXTRACT( 2, 1, POINTER_SIZE) .EQS. "=")
-$ THEN
-$! Explicit user choice: "64" or "64=ARGV".
-$ IF (POINTER_SIZE .EQS. "64=") THEN POINTER_SIZE = "64"
-$ ELSE
-$ SET NOON
-$ DEFINE /USER_MODE SYS$OUTPUT NL:
-$ DEFINE /USER_MODE SYS$ERROR NL:
-$ CC /NOLIST /NOOBJECT /POINTER_SIZE=64=ARGV NL:
-$ IF ($STATUS .AND. %X0FFF0000) .EQ. %X00030000
-$ THEN
-$ ! If we got here, it means DCL complained like this:
-$ ! %DCL-W-NOVALU, value not allowed - remove value specification
-$ ! \64=\
-$ !
-$ ! If the compiler was run, logicals defined in /USER would
-$ ! have been deassigned automatically. However, when DCL
-$ ! complains, they aren't, so we do it here (it might be
-$ ! unnecessary, but just in case there will be another error
-$ ! message further on that we don't want to miss)
-$ DEASSIGN /USER_MODE SYS$ERROR
-$ DEASSIGN /USER_MODE SYS$OUTPUT
-$ ELSE
-$ POINTER_SIZE = POINTER_SIZE + "=ARGV"
-$ ENDIF
-$ SET ON
-$ ENDIF
-$ POINTER_SIZE = " /POINTER_SIZE=''POINTER_SIZE'"
-$!
-$ ELSE
-$!
-$! Tell The User Entered An Invalid Option.
-$!
-$ WRITE SYS$OUTPUT ""
-$ WRITE SYS$OUTPUT "The Option ", P6, -
- " Is Invalid. The Valid Options Are:"
-$ WRITE SYS$OUTPUT ""
-$ WRITE SYS$OUTPUT -
- " """" : Compile with default (short) pointers."
-$ WRITE SYS$OUTPUT -
- " 32 : Compile with 32-bit (short) pointers."
-$ WRITE SYS$OUTPUT -
- " 64 : Compile with 64-bit (long) pointers (auto ARGV)."
-$ WRITE SYS$OUTPUT -
- " 64= : Compile with 64-bit (long) pointers (no ARGV)."
-$ WRITE SYS$OUTPUT -
- " 64=ARGV : Compile with 64-bit (long) pointers (ARGV)."
-$ WRITE SYS$OUTPUT ""
-$!
-$! Time To EXIT.
-$!
-$ EXIT
-$!
-$ ENDIF
-$!
-$ ENDIF
-$!
-$! End The P6 (POINTER_SIZE) Check.
-$!
-$ ENDIF
-$!
-$! Set basic C compiler /INCLUDE directories.
-$!
-$ CC_INCLUDES = "SYS$DISK:[-],SYS$DISK:[-.CRYPTO]"
-$!
-$! Check To See If P2 Is Blank.
-$!
-$ IF (P2.EQS."")
-$ THEN
-$!
-$! O.K., The User Didn't Specify A Compiler, Let's Try To
-$! Find Out Which One To Use.
-$!
-$! Check To See If We Have GNU C.
-$!
-$ IF (F$TRNLNM("GNU_CC").NES."")
-$ THEN
-$!
-$! Looks Like GNUC, Set To Use GNUC.
-$!
-$ P2 = "GNUC"
-$!
-$! Else...
-$!
-$ ELSE
-$!
-$! Check To See If We Have VAXC Or DECC.
-$!
-$ IF (ARCH.NES."VAX").OR.(F$TRNLNM("DECC$CC_DEFAULT").NES."")
-$ THEN
-$!
-$! Looks Like DECC, Set To Use DECC.
-$!
-$ P2 = "DECC"
-$!
-$! Else...
-$!
-$ ELSE
-$!
-$! Looks Like VAXC, Set To Use VAXC.
-$!
-$ P2 = "VAXC"
-$!
-$! End The VAXC Compiler Check.
-$!
-$ ENDIF
-$!
-$! End The DECC & VAXC Compiler Check.
-$!
-$ ENDIF
-$!
-$! End The Compiler Check.
-$!
-$ ENDIF
-$!
-$! Check To See If We Have A Option For P3.
-$!
-$ IF (P3.EQS."")
-$ THEN
-$!
-$! Find out what socket library we have available
-$!
-$ IF F$PARSE("SOCKETSHR:") .NES. ""
-$ THEN
-$!
-$! We have SOCKETSHR, and it is my opinion that it's the best to use.
-$!
-$ P3 = "SOCKETSHR"
-$!
-$! Tell the user
-$!
-$ WRITE SYS$OUTPUT "Using SOCKETSHR for TCP/IP"
-$!
-$! Else, let's look for something else
-$!
-$ ELSE
-$!
-$! Like UCX (the reason to do this before Multinet is that the UCX
-$! emulation is easier to use...)
-$!
-$ IF F$TRNLNM("UCX$IPC_SHR") .NES. "" -
- .OR. F$PARSE("SYS$SHARE:UCX$IPC_SHR.EXE") .NES. "" -
- .OR. F$PARSE("SYS$LIBRARY:UCX$IPC.OLB") .NES. ""
-$ THEN
-$!
-$! Last resort: a UCX or UCX-compatible library
-$!
-$ P3 = "UCX"
-$!
-$! Tell the user
-$!
-$ WRITE SYS$OUTPUT "Using UCX or an emulation thereof for TCP/IP"
-$!
-$! That was all...
-$!
-$ ENDIF
-$ ENDIF
-$ ENDIF
-$!
-$! Set Up Initial CC Definitions, Possibly With User Ones
-$!
-$ CCDEFS = "MONOLITH"
-$ IF F$TYPE(USER_CCDEFS) .NES. "" THEN CCDEFS = CCDEFS + "," + USER_CCDEFS
-$ CCEXTRAFLAGS = ""
-$ IF F$TYPE(USER_CCFLAGS) .NES. "" THEN CCEXTRAFLAGS = USER_CCFLAGS
-$ CCDISABLEWARNINGS = "" !!! "LONGLONGTYPE,LONGLONGSUFX,FOUNDCR"
-$ IF F$TYPE(USER_CCDISABLEWARNINGS) .NES. "" THEN -
- CCDISABLEWARNINGS = CCDISABLEWARNINGS + "," + USER_CCDISABLEWARNINGS
-$!
-$! Check To See If We Have A ZLIB Option.
-$!
-$ ZLIB = P7
-$ IF (ZLIB .NES. "")
-$ THEN
-$!
-$! Check for expected ZLIB files.
-$!
-$ err = 0
-$ file1 = f$parse( "zlib.h", ZLIB, , , "SYNTAX_ONLY")
-$ if (f$search( file1) .eqs. "")
-$ then
-$ WRITE SYS$OUTPUT ""
-$ WRITE SYS$OUTPUT "The Option ", ZLIB, " Is Invalid."
-$ WRITE SYS$OUTPUT " Can't find header: ''file1'"
-$ err = 1
-$ endif
-$ file1 = f$parse( "A.;", ZLIB)- "A.;"
-$!
-$ file2 = f$parse( ZLIB, "libz.olb", , , "SYNTAX_ONLY")
-$ if (f$search( file2) .eqs. "")
-$ then
-$ if (err .eq. 0)
-$ then
-$ WRITE SYS$OUTPUT ""
-$ WRITE SYS$OUTPUT "The Option ", ZLIB, " Is Invalid."
-$ endif
-$ WRITE SYS$OUTPUT " Can't find library: ''file2'"
-$ WRITE SYS$OUTPUT ""
-$ err = err+ 2
-$ endif
-$ if (err .eq. 1)
-$ then
-$ WRITE SYS$OUTPUT ""
-$ endif
-$!
-$ if (err .ne. 0)
-$ then
-$ EXIT
-$ endif
-$!
-$ CCDEFS = """ZLIB=1"", "+ CCDEFS
-$ CC_INCLUDES = CC_INCLUDES+ ", "+ file1
-$ ZLIB_LIB = ", ''file2' /library"
-$!
-$! Print info
-$!
-$ WRITE SYS$OUTPUT "ZLIB library spec: ", file2
-$!
-$! End The ZLIB Check.
-$!
-$ ENDIF
-$!
-$! Check To See If The User Entered A Valid Parameter.
-$!
-$ IF (P2.EQS."VAXC").OR.(P2.EQS."DECC").OR.(P2.EQS."GNUC")
-$ THEN
-$!
-$! Check To See If The User Wanted DECC.
-$!
-$ IF (P2.EQS."DECC")
-$ THEN
-$!
-$! Looks Like DECC, Set To Use DECC.
-$!
-$ COMPILER = "DECC"
-$!
-$! Tell The User We Are Using DECC.
-$!
-$ WRITE SYS$OUTPUT "Using DECC 'C' Compiler."
-$!
-$! Use DECC...
-$!
-$ CC = "CC"
-$ IF ARCH.EQS."VAX" .AND. F$TRNLNM("DECC$CC_DEFAULT").NES."/DECC" -
- THEN CC = "CC/DECC"
-$ CC = CC + " /''CC_OPTIMIZE' /''DEBUGGER' /STANDARD=RELAXED"+ -
- "''POINTER_SIZE' /NOLIST /PREFIX=ALL" + -
- " /INCLUDE=(''CC_INCLUDES') " + CCEXTRAFLAGS
-$!
-$! Define The Linker Options File Name.
-$!
-$ OPT_FILE = "VAX_DECC_OPTIONS.OPT"
-$!
-$! End DECC Check.
-$!
-$ ENDIF
-$!
-$! Check To See If We Are To Use VAXC.
-$!
-$ IF (P2.EQS."VAXC")
-$ THEN
-$!
-$! Looks Like VAXC, Set To Use VAXC.
-$!
-$ COMPILER = "VAXC"
-$!
-$! Tell The User We Are Using VAX C.
-$ WRITE SYS$OUTPUT "Using VAXC 'C' Compiler."
-$!
-$! Compile Using VAXC.
-$!
-$ CC = "CC"
-$ IF ARCH.NES."VAX"
-$ THEN
-$ WRITE SYS$OUTPUT "There is no VAX C on ''ARCH'!"
-$ EXIT
-$ ENDIF
-$ IF F$TRNLNM("DECC$CC_DEFAULT").EQS."/DECC" THEN CC = "CC/VAXC"
-$ CC = CC + "/''CC_OPTIMIZE'/''DEBUGGER'/NOLIST" + -
- "/INCLUDE=(''CC_INCLUDES')" + CCEXTRAFLAGS
-$ CCDEFS = CCDEFS + ",""VAXC"""
-$!
-$! Define <sys> As SYS$COMMON:[SYSLIB]
-$!
-$ DEFINE/NOLOG SYS SYS$COMMON:[SYSLIB]
-$!
-$! Define The Linker Options File Name.
-$!
-$ OPT_FILE = "VAX_VAXC_OPTIONS.OPT"
-$!
-$! End VAXC Check
-$!
-$ ENDIF
-$!
-$! Check To See If We Are To Use GNU C.
-$!
-$ IF (P2.EQS."GNUC")
-$ THEN
-$!
-$! Looks Like GNUC, Set To Use GNUC.
-$!
-$ COMPILER = "GNUC"
-$!
-$! Tell The User We Are Using GNUC.
-$!
-$ WRITE SYS$OUTPUT "Using GNU 'C' Compiler."
-$!
-$! Use GNU C...
-$!
-$ IF F$TYPE(GCC) .EQS. "" THEN GCC := GCC
-$ CC = GCC+"/NOCASE_HACK/''GCC_OPTIMIZE'/''DEBUGGER'/NOLIST" + -
- "/INCLUDE=(''CC_INCLUDES')" + CCEXTRAFLAGS
-$!
-$! Define The Linker Options File Name.
-$!
-$ OPT_FILE = "VAX_GNUC_OPTIONS.OPT"
-$!
-$! End The GNU C Check.
-$!
-$ ENDIF
-$!
-$! Set up default defines
-$!
-$ CCDEFS = """FLAT_INC=1""," + CCDEFS
-$!
-$! Else The User Entered An Invalid Argument.
-$!
-$ ELSE
-$!
-$! Tell The User We Don't Know What They Want.
-$!
-$ WRITE SYS$OUTPUT ""
-$ WRITE SYS$OUTPUT "The Option ",P2," Is Invalid. The Valid Options Are:"
-$ WRITE SYS$OUTPUT ""
-$ WRITE SYS$OUTPUT " VAXC : To Compile With VAX C."
-$ WRITE SYS$OUTPUT " DECC : To Compile With DEC C."
-$ WRITE SYS$OUTPUT " GNUC : To Compile With GNU C."
-$ WRITE SYS$OUTPUT ""
-$!
-$! Time To EXIT.
-$!
-$ EXIT
-$ ENDIF
-$!
-$! Time to check the contents, and to make sure we get the correct library.
-$!
-$ IF P3.EQS."SOCKETSHR" .OR. P3.EQS."MULTINET" .OR. P3.EQS."UCX" -
- .OR. P3.EQS."TCPIP" .OR. P3.EQS."NONE"
-$ THEN
-$!
-$! Check to see if SOCKETSHR was chosen
-$!
-$ IF P3.EQS."SOCKETSHR"
-$ THEN
-$!
-$! Set the library to use SOCKETSHR
-$!
-$ TCPIP_LIB = ",SYS$DISK:[-.VMS]SOCKETSHR_SHR.OPT /OPTIONS"
-$!
-$! Done with SOCKETSHR
-$!
-$ ENDIF
-$!
-$! Check to see if MULTINET was chosen
-$!
-$ IF P3.EQS."MULTINET"
-$ THEN
-$!
-$! Set the library to use UCX emulation.
-$!
-$ P3 = "UCX"
-$!
-$! Done with MULTINET
-$!
-$ ENDIF
-$!
-$! Check to see if UCX was chosen
-$!
-$ IF P3.EQS."UCX"
-$ THEN
-$!
-$! Set the library to use UCX.
-$!
-$ TCPIP_LIB = ",SYS$DISK:[-.VMS]UCX_SHR_DECC.OPT /OPTIONS"
-$ IF F$TRNLNM("UCX$IPC_SHR") .NES. ""
-$ THEN
-$ TCPIP_LIB = ",SYS$DISK:[-.VMS]UCX_SHR_DECC_LOG.OPT /OPTIONS"
-$ ELSE
-$ IF COMPILER .NES. "DECC" .AND. ARCH .EQS. "VAX" THEN -
- TCPIP_LIB = ",SYS$DISK:[-.VMS]UCX_SHR_VAXC.OPT /OPTIONS"
-$ ENDIF
-$!
-$! Done with UCX
-$!
-$ ENDIF
-$!
-$! Check to see if TCPIP (post UCX) was chosen
-$!
-$ IF P3.EQS."TCPIP"
-$ THEN
-$!
-$! Set the library to use TCPIP.
-$!
-$ TCPIP_LIB = ",SYS$DISK:[-.VMS]TCPIP_SHR_DECC.OPT /OPTIONS"
-$!
-$! Done with TCPIP
-$!
-$ ENDIF
-$!
-$! Check to see if NONE was chosen
-$!
-$ IF P3.EQS."NONE"
-$ THEN
-$!
-$! Do not use TCPIP.
-$!
-$ TCPIP_LIB = ""
-$!
-$! Done with TCPIP
-$!
-$ ENDIF
-$!
-$! Add TCP/IP type to CC definitions.
-$!
-$ CCDEFS = CCDEFS + ",TCPIP_TYPE_''P3'"
-$!
-$! Print info
-$!
-$ WRITE SYS$OUTPUT "TCP/IP library spec: ", TCPIP_LIB- ","
-$!
-$! Else The User Entered An Invalid Argument.
-$!
-$ ELSE
-$!
-$! Tell The User We Don't Know What They Want.
-$!
-$ WRITE SYS$OUTPUT ""
-$ WRITE SYS$OUTPUT "The Option ",P3," Is Invalid. The Valid Options Are:"
-$ WRITE SYS$OUTPUT ""
-$ WRITE SYS$OUTPUT " SOCKETSHR : To link with SOCKETSHR TCP/IP library."
-$ WRITE SYS$OUTPUT " UCX : To link with UCX TCP/IP library."
-$ WRITE SYS$OUTPUT " TCPIP : To link with TCPIP (post UCX) TCP/IP library."
-$ WRITE SYS$OUTPUT ""
-$!
-$! Time To EXIT.
-$!
-$ EXIT
-$!
-$! Done with TCP/IP libraries
-$!
-$ ENDIF
-$!
-$! Finish up the definition of CC.
-$!
-$ IF COMPILER .EQS. "DECC"
-$ THEN
-$ IF CCDISABLEWARNINGS .NES. ""
-$ THEN
-$ CCDISABLEWARNINGS = " /WARNING=(DISABLE=(" + CCDISABLEWARNINGS + "))"
-$ ENDIF
-$ ELSE
-$ CCDISABLEWARNINGS = ""
-$ ENDIF
-$ CC2 = CC + " /DEFINE=(" + CCDEFS + ",_POSIX_C_SOURCE)" + CCDISABLEWARNINGS
-$ CC = CC + " /DEFINE=(" + CCDEFS + ")" + CCDISABLEWARNINGS
-$!
-$! Show user the result
-$!
-$ WRITE/SYMBOL SYS$OUTPUT "Main Compiling Command: ",CC
-$!
-$! Special Threads For OpenVMS v7.1 Or Later
-$!
-$! Written By: Richard Levitte
-$! richard at levitte.org
-$!
-$!
-$! Check To See If We Have A Option For P4.
-$!
-$ IF (P4.EQS."")
-$ THEN
-$!
-$! Get The Version Of VMS We Are Using.
-$!
-$ ISSEVEN :=
-$ TMP = F$ELEMENT(0,"-",F$EXTRACT(1,4,F$GETSYI("VERSION")))
-$ TMP = F$INTEGER(F$ELEMENT(0,".",TMP)+F$ELEMENT(1,".",TMP))
-$!
-$! Check To See If The VMS Version Is v7.1 Or Later.
-$!
-$ IF (TMP.GE.71)
-$ THEN
-$!
-$! We Have OpenVMS v7.1 Or Later, So Use The Special Threads.
-$!
-$ ISSEVEN := ,PTHREAD_USE_D4
-$!
-$! End The VMS Version Check.
-$!
-$ ENDIF
-$!
-$! End The P4 Check.
-$!
-$ ENDIF
-$!
-$! Check if the user wanted to compile just a subset of all the programs.
-$!
-$ IF P5 .NES. ""
-$ THEN
-$ PROGRAMS = P5
-$ ENDIF
-$!
-$! Time To RETURN...
-$!
-$ RETURN
-$!
-$ INITIALISE:
-$!
-$! Save old value of the logical name OPENSSL
-$!
-$ __SAVE_OPENSSL = F$TRNLNM("OPENSSL","LNM$PROCESS_TABLE")
-$!
-$! Save directory information
-$!
-$ __HERE = F$PARSE(F$PARSE("A.;",F$ENVIRONMENT("PROCEDURE"))-"A.;","[]A.;") - "A.;"
-$ __HERE = F$EDIT(__HERE,"UPCASE")
-$ __TOP = __HERE - "APPS]"
-$ __INCLUDE = __TOP + "INCLUDE.OPENSSL]"
-$!
-$! Set up the logical name OPENSSL to point at the include directory
-$!
-$ DEFINE OPENSSL /NOLOG '__INCLUDE'
-$!
-$! Done
-$!
-$ RETURN
-$!
-$ CLEANUP:
-$!
-$! Restore the saved logical name OPENSSL, if it had a value.
-$!
-$ if (f$type( __SAVE_OPENSSL) .nes. "")
-$ then
-$ IF __SAVE_OPENSSL .EQS. ""
-$ THEN
-$ DEASSIGN OPENSSL
-$ ELSE
-$ DEFINE /NOLOG OPENSSL '__SAVE_OPENSSL'
-$ ENDIF
-$ endif
-$!
-$! Close any open files.
-$!
-$ if (f$trnlnm( "objects", "LNM$PROCESS", 0, "SUPERVISOR") .nes. "") then -
- close objects
-$!
-$! Done
-$!
-$ RETURN
-$!
diff --git a/build.info b/build.info
index a518efe..9a3d9bd 100644
--- a/build.info
+++ b/build.info
@@ -5,3 +5,23 @@ ORDINALS[libssl]=ssl
INCLUDE[libcrypto]={- rel2abs(catdir($builddir,"include")) -} . crypto/include include
INCLUDE[libssl]={- rel2abs(catdir($builddir,"include")) -} . include
DEPEND[libssl]=libcrypto
+
+IF[{- $config{target} =~ /^Cygwin/ -}]
+ SHARED_NAME[libcrypto]=cygcrypto-{- $config{shlib_major}.".".$config{shlib_minor} -}
+ SHARED_NAME[libssl]=cygssl-{- $config{shlib_major}.".".$config{shlib_minor} -}
+ELSIF[{- $config{target} =~ /^mingw/ -}]
+ SHARED_NAME[libcrypto]=libeay32
+ SHARED_NAME[libssl]=ssleay32
+ENDIF
+
+# VMS has a cultural standard where all libraries are prefixed.
+# For OpenSSL, the choice is 'ossl$' (this prefix was claimed in a
+# conversation with VSI, Tuesday January 26 2016)
+# Also, it seems it's usual to have a suffix to the shared library name
+# for the different pointer sizes that were built for.
+IF[{- $config{target} =~ /^vms/ -}]
+ RENAME[libcrypto]=ossl$libcrypto
+ RENAME[libssl]=ossl$libssl
+ SHARED_NAME[libcrypto]=ossl$libcrypto_shr{- $target{pointer_size} -}
+ SHARED_NAME[libssl]=ossl$libssl_shr{- $target{pointer_size} -}
+ENDIF
diff --git a/config.com b/config.com
new file mode 100644
index 0000000..1beb74a
--- /dev/null
+++ b/config.com
@@ -0,0 +1,65 @@
+$ ! OpenSSL config: determine the architecture and run Configure
+$ !
+$ ! Very simple for the moment, it will take the following arguments:
+$ !
+$ ! 32 sets /POINTER_SIZE=32
+$ ! 64 sets /POINTER_SIZE=64
+$ ! DEBUG sets debugging
+$ ! HELP prints a usage and exits
+$
+$ arch == f$edit( f$getsyi( "arch_name"), "lowercase")
+$ pointer_size = ""
+$ debug = ""
+$ here = F$PARSE("A.;",F$ENVIRONMENT("PROCEDURE"),,,"SYNTAX_ONLY") - "A.;"
+$
+$ collected_args = ""
+$ P_index = 0
+$ LOOP1:
+$ P_index = P_index + 1
+$ IF P_index .GT. 8 THEN GOTO ENDLOOP1
+$ P1 = F$EDIT(P1,"TRIM")
+$ IF P1 .EQS. "HELP" THEN GOTO USAGE
+$ IF P1 .EQS. "32"
+$ THEN
+$ pointer_size = "-P32"
+$ P1 = ""
+$ ENDIF
+$ IF P1 .EQS. "64"
+$ THEN
+$ pointer_size = "-P64"
+$ P1 = ""
+$ ENDIF
+$ IF P1 .EQS. "DEBUG"
+$ THEN
+$ debug = "--debug"
+$ P1 = ""
+$ ENDIF
+$ IF P1 .NES. "" THEN -
+ collected_args = collected_args + " " + P1
+$ P1 = P2
+$ P2 = P3
+$ P3 = P4
+$ P4 = P5
+$ P5 = P6
+$ P6 = P7
+$ P7 = P8
+$ P8 = ""
+$ GOTO LOOP1
+$ ENDLOOP1:
+$
+$ target = "vms-''arch'''pointer_size'"
+$ PERL 'here'Configure "''target'" 'debug' 'collected_args'
+$ EXIT $STATUS
+$
+$ USAGE:
+$ TYPE SYS$INPUT
+$ DECK
+usage: @config [options]
+
+ 32 build with 32-bit pointer size
+ 64 build with 64-bit pointer size
+ DEBUG build with debugging
+ HELP this text
+
+Any other option is simply passed to Configure.
+$ EOD
diff --git a/crypto/aes/build.info b/crypto/aes/build.info
index c8a8c5d..6484da6 100644
--- a/crypto/aes/build.info
+++ b/crypto/aes/build.info
@@ -2,3 +2,62 @@ LIBS=../../libcrypto
SOURCE[../../libcrypto]=\
aes_misc.c aes_ecb.c aes_cfb.c aes_ofb.c \
aes_ige.c aes_wrap.c {- $target{aes_asm_src} -}
+
+BEGINRAW[Makefile]
+##### AES assembler implementations
+
+{- $builddir -}/aes-ia64.s: {- $sourcedir -}/asm/aes-ia64.S
+ $(CC) $(CFLAGS) -E asm/aes-ia64.S > $@
+
+{- $builddir -}/aes-586.s: {- $sourcedir -}/asm/aes-586.pl {- $sourcetop -}/crypto/perlasm/x86asm.pl
+ $(PERL) {- $sourcedir -}/asm/aes-586.pl $(PERLASM_SCHEME) $(CFLAGS) $(PROCESSOR) > $@
+{- $builddir -}/vpaes-x86.s: {- $sourcedir -}/asm/vpaes-x86.pl {- $sourcetop -}/crypto/perlasm/x86asm.pl
+ $(PERL) {- $sourcedir -}/asm/vpaes-x86.pl $(PERLASM_SCHEME) $(CFLAGS) $(PROCESSOR) > $@
+{- $builddir -}/aesni-x86.s: {- $sourcedir -}/asm/aesni-x86.pl {- $sourcetop -}/crypto/perlasm/x86asm.pl
+ $(PERL) {- $sourcedir -}/asm/aesni-x86.pl $(PERLASM_SCHEME) $(CFLAGS) $(PROCESSOR) > $@
+
+{- $builddir -}/aes-x86_64.s: {- $sourcedir -}/asm/aes-x86_64.pl
+ $(PERL) {- $sourcedir -}/asm/aes-x86_64.pl $(PERLASM_SCHEME) > $@
+{- $builddir -}/vpaes-x86_64.s: {- $sourcedir -}/asm/vpaes-x86_64.pl
+ $(PERL) {- $sourcedir -}/asm/vpaes-x86_64.pl $(PERLASM_SCHEME) > $@
+{- $builddir -}/bsaes-x86_64.s: {- $sourcedir -}/asm/bsaes-x86_64.pl
+ $(PERL) {- $sourcedir -}/asm/bsaes-x86_64.pl $(PERLASM_SCHEME) > $@
+{- $builddir -}/aesni-x86_64.s: {- $sourcedir -}/asm/aesni-x86_64.pl
+ $(PERL) {- $sourcedir -}/asm/aesni-x86_64.pl $(PERLASM_SCHEME) > $@
+{- $builddir -}/aesni-sha1-x86_64.s: {- $sourcedir -}/asm/aesni-sha1-x86_64.pl
+ $(PERL) {- $sourcedir -}/asm/aesni-sha1-x86_64.pl $(PERLASM_SCHEME) > $@
+{- $builddir -}/aesni-sha256-x86_64.s: {- $sourcedir -}/asm/aesni-sha256-x86_64.pl
+ $(PERL) {- $sourcedir -}/asm/aesni-sha256-x86_64.pl $(PERLASM_SCHEME) > $@
+{- $builddir -}/aesni-mb-x86_64.s: {- $sourcedir -}/asm/aesni-mb-x86_64.pl
+ $(PERL) {- $sourcedir -}/asm/aesni-mb-x86_64.pl $(PERLASM_SCHEME) > $@
+
+{- $builddir -}/aes-sparcv9.s: {- $sourcedir -}/asm/aes-sparcv9.pl
+ $(PERL) {- $sourcedir -}/asm/aes-sparcv9.pl $(CFLAGS) > $@
+{- $builddir -}/aest4-sparcv9.s: {- $sourcedir -}/asm/aest4-sparcv9.pl {- $sourcetop -}/crypto/perlasm/sparcv9_modes.pl
+ $(PERL) {- $sourcedir -}/asm/aest4-sparcv9.pl $(CFLAGS) > $@
+
+{- $builddir -}/aes-ppc.s: {- $sourcedir -}/asm/aes-ppc.pl
+ $(PERL) {- $sourcedir -}/asm/aes-ppc.pl $(PERLASM_SCHEME) $@
+{- $builddir -}/vpaes-ppc.s: {- $sourcedir -}/asm/vpaes-ppc.pl
+ $(PERL) {- $sourcedir -}/asm/vpaes-ppc.pl $(PERLASM_SCHEME) $@
+{- $builddir -}/aesp8-ppc.s: {- $sourcedir -}/asm/aesp8-ppc.pl
+ $(PERL) {- $sourcedir -}/asm/aesp8-ppc.pl $(PERLASM_SCHEME) $@
+
+{- $builddir -}/aes-parisc.s: {- $sourcedir -}/asm/aes-parisc.pl
+ $(PERL) {- $sourcedir -}/asm/aes-parisc.pl $(PERLASM_SCHEME) $@
+
+{- $builddir -}/aes-mips.S: {- $sourcedir -}/asm/aes-mips.pl
+ $(PERL) {- $sourcedir -}/asm/aes-mips.pl $(PERLASM_SCHEME) $@
+
+{- $builddir -}/aesv8-armx.S: {- $sourcedir -}/asm/aesv8-armx.pl
+ $(PERL) {- $sourcedir -}/asm/aesv8-armx.pl $(PERLASM_SCHEME) $@
+{- $builddir -}/vpaes-armv8.S: {- $sourcedir -}/asm/vpaes-armv8.pl
+ $(PERL) {- $sourcedir -}/asm/vpaes-armv8.pl $(PERLASM_SCHEME) $@
+
+# GNU make "catch all"
+{- $builddir -}/aes-%.S: {- $sourcedir -}/asm/aes-%.pl
+ $(PERL) $< $(PERLASM_SCHEME) $@
+{- $builddir -}/bsaes-%.S: {- $sourcedir -}/asm/bsaes-%.pl
+ $(PERL) $< $(PERLASM_SCHEME) $@
+
+ENDRAW[Makefile]
diff --git a/crypto/bf/build.info b/crypto/bf/build.info
index d471b31..b4aa7f9 100644
--- a/crypto/bf/build.info
+++ b/crypto/bf/build.info
@@ -1,2 +1,9 @@
LIBS=../../libcrypto
SOURCE[../../libcrypto]=bf_skey.c bf_ecb.c bf_enc.c bf_cfb64.c bf_ofb64.c
+
+BEGINRAW[Makefile]
+##### BF assembler implementations
+
+{- $builddir -}/bf-586.s: {- $sourcedir -}/asm/bf-586.pl {- $sourcetop -}/crypto/perlasm/x86asm.pl {- $sourcetop -}/crypto/perlasm/cbc.pl
+ $(PERL) {- $sourcedir -}/asm/bf-586.pl $(PERLASM_SCHEME) $(CFLAGS) $(PROCESSOR) > $@
+ENDRAW[Makefile]
diff --git a/crypto/bn/build.info b/crypto/bn/build.info
index 7525b86..66f62dc 100644
--- a/crypto/bn/build.info
+++ b/crypto/bn/build.info
@@ -6,3 +6,93 @@ SOURCE[../../libcrypto]=\
{- $target{bn_asm_src} -} \
bn_recp.c bn_mont.c bn_mpi.c bn_exp2.c bn_gf2m.c bn_nist.c \
bn_depr.c bn_const.c bn_x931p.c bn_intern.c bn_dh.c bn_srp.c
+
+BEGINRAW[Makefile]
+##### BN assembler implementations
+
+{- $builddir -}/bn-586.s: {- $sourcedir -}/asm/bn-586.pl {- $sourcetop -}/crypto/perlasm/x86asm.pl
+ $(PERL) {- $sourcedir -}/asm/bn-586.pl $(PERLASM_SCHEME) $(CFLAGS) $(PROCESSOR) > $@
+{- $builddir -}/co-586.s: {- $sourcedir -}/asm/co-586.pl {- $sourcetop -}/crypto/perlasm/x86asm.pl
+ $(PERL) {- $sourcedir -}/asm/co-586.pl $(PERLASM_SCHEME) $(CFLAGS) $(PROCESSOR) > $@
+{- $builddir -}/x86-mont.s: {- $sourcedir -}/asm/x86-mont.pl {- $sourcetop -}/crypto/perlasm/x86asm.pl
+ $(PERL) {- $sourcedir -}/asm/x86-mont.pl $(PERLASM_SCHEME) $(CFLAGS) $(PROCESSOR) > $@
+{- $builddir -}/x86-gf2m.s: {- $sourcedir -}/asm/x86-gf2m.pl {- $sourcetop -}/crypto/perlasm/x86asm.pl
+ $(PERL) {- $sourcedir -}/asm/x86-gf2m.pl $(PERLASM_SCHEME) $(CFLAGS) $(PROCESSOR) > $@
+
+{- $builddir -}/sparcv8.o: {- $sourcedir -}/asm/sparcv8.S
+ $(CC) $(CFLAGS) -c {- $sourcedir -}/asm/sparcv8.S
+{- $builddir -}/bn-sparcv9.o: {- $sourcedir -}/asm/sparcv8plus.S
+ $(CC) $(CFLAGS) -c -o $@ {- $sourcedir -}/asm/sparcv8plus.S
+{- $builddir -}/sparcv9a-mont.s: {- $sourcedir -}/asm/sparcv9a-mont.pl
+ $(PERL) {- $sourcedir -}/asm/sparcv9a-mont.pl $(CFLAGS) > $@
+{- $builddir -}/sparcv9-mont.s: {- $sourcedir -}/asm/sparcv9-mont.pl
+ $(PERL) {- $sourcedir -}/asm/sparcv9-mont.pl $(CFLAGS) > $@
+{- $builddir -}/vis3-mont.s: {- $sourcedir -}/asm/vis3-mont.pl
+ $(PERL) {- $sourcedir -}/asm/vis3-mont.pl $(CFLAGS) > $@
+{- $builddir -}/sparct4-mont.S: {- $sourcedir -}/asm/sparct4-mont.pl
+ $(PERL) {- $sourcedir -}/asm/sparct4-mont.pl $(CFLAGS) > $@
+{- $builddir -}/sparcv9-gf2m.S: {- $sourcedir -}/asm/sparcv9-gf2m.pl
+ $(PERL) {- $sourcedir -}/asm/sparcv9-gf2m.pl $(CFLAGS) > $@
+
+{- $builddir -}/bn-mips3.o: {- $sourcedir -}/asm/mips3.s
+ @if [ "$(CC)" = "gcc" ]; then \
+ ABI=`expr "$(CFLAGS)" : ".*-mabi=\([n3264]*\)"` && \
+ as -$$ABI -O -o $@ {- $sourcedir -}/asm/mips3.s; \
+ else $(CC) -c $(CFLAGS) -o $@ {- $sourcedir -}/asm/mips3.s; fi
+
+{- $builddir -}/bn-mips.s: {- $sourcedir -}/asm/mips.pl
+ $(PERL) {- $sourcedir -}/asm/mips.pl $(PERLASM_SCHEME) $@
+{- $builddir -}/mips-mont.s: {- $sourcedir -}/asm/mips-mont.pl
+ $(PERL) {- $sourcedir -}/asm/mips-mont.pl $(PERLASM_SCHEME) $@
+
+{- $builddir -}/bn-s390x.o: {- $sourcedir -}/asm/s390x.S
+ $(CC) $(CFLAGS) -c -o $@ {- $sourcedir -}/asm/s390x.S
+{- $builddir -}/s390x-gf2m.s: {- $sourcedir -}/asm/s390x-gf2m.pl
+ $(PERL) {- $sourcedir -}/asm/s390x-gf2m.pl $(PERLASM_SCHEME) $@
+
+{- $builddir -}/x86_64-mont.s: {- $sourcedir -}/asm/x86_64-mont.pl
+ $(PERL) {- $sourcedir -}/asm/x86_64-mont.pl $(PERLASM_SCHEME) > $@
+{- $builddir -}/x86_64-mont5.s: {- $sourcedir -}/asm/x86_64-mont5.pl
+ $(PERL) {- $sourcedir -}/asm/x86_64-mont5.pl $(PERLASM_SCHEME) > $@
+{- $builddir -}/x86_64-gf2m.s: {- $sourcedir -}/asm/x86_64-gf2m.pl
+ $(PERL) {- $sourcedir -}/asm/x86_64-gf2m.pl $(PERLASM_SCHEME) > $@
+{- $builddir -}/rsaz-x86_64.s: {- $sourcedir -}/asm/rsaz-x86_64.pl
+ $(PERL) {- $sourcedir -}/asm/rsaz-x86_64.pl $(PERLASM_SCHEME) > $@
+{- $builddir -}/rsaz-avx2.s: {- $sourcedir -}/asm/rsaz-avx2.pl
+ $(PERL) {- $sourcedir -}/asm/rsaz-avx2.pl $(PERLASM_SCHEME) > $@
+
+{- $builddir -}/bn-ia64.s: {- $sourcedir -}/asm/ia64.S
+ $(CC) $(CFLAGS) -E {- $sourcedir -}/asm/ia64.S > $@
+{- $builddir -}/ia64-mont.s: {- $sourcedir -}/asm/ia64-mont.pl
+ $(PERL) {- $sourcedir -}/asm/ia64-mont.pl $@ $(CFLAGS)
+
+# GNU assembler fails to compile PA-RISC2 modules, insist on calling
+# vendor assembler...
+{- $builddir -}/pa-risc2W.o: {- $sourcedir -}/asm/pa-risc2W.s
+ $(PERL) $(TOP)/util/fipsas.pl $(TOP) $< /usr/ccs/bin/as -o pa-risc2W.o {- $sourcedir -}/asm/pa-risc2W.s
+{- $builddir -}/pa-risc2.o: {- $sourcedir -}/asm/pa-risc2.s
+ $(PERL) $(TOP)/util/fipsas.pl $(TOP) $< /usr/ccs/bin/as -o pa-risc2.o {- $sourcedir -}/asm/pa-risc2.s
+
+{- $builddir -}/parisc-mont.s: {- $sourcedir -}/asm/parisc-mont.pl
+ $(PERL) {- $sourcedir -}/asm/parisc-mont.pl $(PERLASM_SCHEME) $@
+
+# ppc - AIX, Linux, MacOS X...
+{- $builddir -}/bn-ppc.s: {- $sourcedir -}/asm/ppc.pl; $(PERL) {- $sourcedir -}/asm/ppc.pl $(PERLASM_SCHEME) $@
+{- $builddir -}/ppc-mont.s: {- $sourcedir -}/asm/ppc-mont.pl;$(PERL) {- $sourcedir -}/asm/ppc-mont.pl $(PERLASM_SCHEME) $@
+{- $builddir -}/ppc64-mont.s: {- $sourcedir -}/asm/ppc64-mont.pl;$(PERL) {- $sourcedir -}/asm/ppc64-mont.pl $(PERLASM_SCHEME) $@
+
+{- $builddir -}/alpha-mont.s: {- $sourcedir -}/asm/alpha-mont.pl
+ (preproc=$$$$.$@.S; trap "rm $$preproc" INT; \
+ $(PERL) {- $sourcedir -}/asm/alpha-mont.pl > $$preproc && \
+ $(CC) -E -P $$preproc > $@ && rm $$preproc)
+
+# GNU make "catch all"
+{- $builddir -}/%-mont.S: {- $sourcedir -}/asm/%-mont.pl
+ $(PERL) $< $(PERLASM_SCHEME) $@
+{- $builddir -}/%-gf2m.S: {- $sourcedir -}/asm/%-gf2m.pl
+ $(PERL) $< $(PERLASM_SCHEME) $@
+
+{- $builddir -}/armv4-mont.o: {- $builddir -}/armv4-mont.S
+{- $builddir -}/armv4-gf2m.o: {- $builddir -}/armv4-gf2m.S
+{- $builddir -}/armv8-mont.o: {- $builddir -}/armv8-mont.S
+ENDRAW[Makefile]
diff --git a/crypto/build.info b/crypto/build.info
index 90f301a..b3591a0 100644
--- a/crypto/build.info
+++ b/crypto/build.info
@@ -1,3 +1,4 @@
+{- use File::Spec::Functions qw/catdir catfile/; -}
LIBS=../libcrypto
SOURCE[../libcrypto]=\
cryptlib.c mem.c mem_dbg.c cversion.c ex_data.c cpt_err.c \
@@ -8,3 +9,44 @@ EXTRA= ../ms/uplink-x86.pl ../ms/uplink.c ../ms/applink.c \
ppccpuid.pl pariscid.pl alphacpuid.pl arm64cpuid.pl armv4cpuid.pl
DEPEND[cversion.o]=buildinf.h
+
+BEGINRAW[descrip.mms]
+[.crypto]buildinf.h : descrip.mms
+ $(PERL) {- catfile(catdir($sourcedir, "[-]"), "util", "mkbuildinf.pl") -} "$(CC) $(CFLAGS)" "$(PLATFORM)" > [.crypto]buildinf.h
+ENDRAW[descrip.mms]
+
+BEGINRAW[Makefile]
+crypto/buildinf.h : Makefile
+ $(PERL) $(SRCDIR)/util/mkbuildinf.pl "$(CC) $(CFLAGS)" "$(PLATFORM)" > crypto/buildinf.h
+
+##### APPLINK, UPLINK and CPUID assembler implementations
+
+{- $builddir -}/applink.o: $(SRCDIR)/ms/applink.c
+ $(CC) $(CFLAGS) -c -o $@ $(TOP)/ms/applink.c
+
+{- $builddir -}/uplink.o: $(SRCDIR)/ms/uplink.c {- $builddir -}/applink.o
+ $(CC) $(CFLAGS) -c -o $@ $(TOP)/ms/uplink.c
+
+{- $builddir -}/uplink-x86.s: $(SRCDIR)/ms/uplink-x86.pl
+ $(PERL) $(TOP)/ms/uplink-x86.pl $(PERLASM_SCHEME) > $@
+
+{- $builddir -}/x86cpuid.s: {- $sourcedir -}/x86cpuid.pl {- $sourcedir -}/perlasm/x86asm.pl
+ $(PERL) {- $sourcedir -}/x86cpuid.pl $(PERLASM_SCHEME) $(CFLAGS) $(PROCESSOR) > $@
+
+{- $builddir -}/x86_64cpuid.s: {- $sourcedir -}/x86_64cpuid.pl
+ $(PERL) {- $sourcedir -}/x86_64cpuid.pl $(PERLASM_SCHEME) > $@
+{- $builddir -}/ia64cpuid.s: {- $sourcedir -}/ia64cpuid.S
+ $(CC) $(CFLAGS) -E {- $sourcedir -}/ia64cpuid.S > $@
+{- $builddir -}/ppccpuid.s: {- $sourcedir -}/ppccpuid.pl
+ $(PERL) {- $sourcedir -}/ppccpuid.pl $(PERLASM_SCHEME) $@
+{- $builddir -}/pariscid.s: {- $sourcedir -}/pariscid.pl
+ $(PERL) {- $sourcedir -}/pariscid.pl $(PERLASM_SCHEME) $@
+{- $builddir -}/alphacpuid.s: {- $sourcedir -}/alphacpuid.pl
+ (preproc=$$$$.$@.S; trap "rm $$preproc" INT; \
+ $(PERL) {- $sourcedir -}/alphacpuid.pl > $$preproc && \
+ $(CC) -E -P $$preproc > $@ && rm $$preproc)
+{- $builddir -}/arm64cpuid.S: {- $sourcedir -}/arm64cpuid.pl
+ $(PERL) {- $sourcedir -}/arm64cpuid.pl $(PERLASM_SCHEME) > $@
+{- $builddir -}/armv4cpuid.S: {- $sourcedir -}/armv4cpuid.pl
+ $(PERL) {- $sourcedir -}/armv4cpuid.pl $(PERLASM_SCHEME) > $@
+ENDRAW[Makefile]
diff --git a/crypto/camellia/build.info b/crypto/camellia/build.info
index aeffc10..abd86b7 100644
--- a/crypto/camellia/build.info
+++ b/crypto/camellia/build.info
@@ -2,3 +2,12 @@ LIBS=../../libcrypto
SOURCE[../../libcrypto]=\
cmll_ecb.c cmll_ofb.c cmll_cfb.c cmll_ctr.c \
{- $target{cmll_asm_src} -}
+
+BEGINRAW[Makefile]
+{- $builddir -}/cmll-x86.s: {- $sourcedir -}/asm/cmll-x86.pl {- $sourcetop -}/crypto/perlasm/x86asm.pl
+ $(PERL) {- $sourcedir -}/asm/cmll-x86.pl $(PERLASM_SCHEME) $(CFLAGS) $(PROCESSOR) > $@
+{- $builddir -}/cmll-x86_64.s: {- $sourcedir -}/asm/cmll-x86_64.pl
+ $(PERL) {- $sourcedir -}/asm/cmll-x86_64.pl $(PERLASM_SCHEME) > $@
+{- $builddir -}/cmllt4-sparcv9.s: {- $sourcedir -}/asm/cmllt4-sparcv9.pl {- $sourcetop -}/crypto/perlasm/sparcv9_modes.pl
+ $(PERL) {- $sourcedir -}/asm/cmllt4-sparcv9.pl $(CFLAGS) > $@
+ENDRAW[Makefile]
diff --git a/crypto/cast/build.info b/crypto/cast/build.info
index 27271c8..6c32fb1 100644
--- a/crypto/cast/build.info
+++ b/crypto/cast/build.info
@@ -1,3 +1,10 @@
LIBS=../../libcrypto
SOURCE[../../libcrypto]=\
c_skey.c c_ecb.c {- $target{cast_asm_src} -} c_cfb64.c c_ofb64.c
+
+BEGINRAW[Makefile]
+##### CAST assembler implementations
+
+{- $builddir -}/cast-586.s: {- $sourcedir -}/asm/cast-586.pl {- $sourcetop -}/crypto/perlasm/x86asm.pl {- $sourcetop -}/crypto/perlasm/cbc.pl
+ $(PERL) {- $sourcedir -}/asm/cast-586.pl $(PERLASM_SCHEME) $(CFLAGS) $(PROCESSOR) > $@
+ENDRAW[Makefile]
diff --git a/crypto/chacha/build.info b/crypto/chacha/build.info
index 47e0536..c56c624 100644
--- a/crypto/chacha/build.info
+++ b/crypto/chacha/build.info
@@ -1,2 +1,14 @@
LIBS=../../libcrypto
SOURCE[../../libcrypto]={- $target{chacha_asm_src} -}
+
+BEGINRAW[Makefile(unix)]
+##### CHACHA assembler implementations
+
+{- $builddir -}/chacha-x86.s: {- $sourcedir -}/asm/chacha-x86.pl
+ $(PERL) {- $sourcedir -}/asm/chacha-x86.pl $(PERLASM_SCHEME) $(CFLAGS) $(PROCESSOR) > $@
+{- $builddir -}/chacha-x86_64.s: {- $sourcedir -}/asm/chacha-x86_64.pl
+ $(PERL) {- $sourcedir -}/asm/chacha-x86_64.pl $(PERLASM_SCHEME) > $@
+
+{- $builddir -}/chacha-%.S: {- $sourcedir -}/asm/chacha-%.pl
+ $(PERL) $< $(PERLASM_SCHEME) $@
+ENDRAW[Makefile(unix)]
diff --git a/crypto/crypto-lib.com b/crypto/crypto-lib.com
deleted file mode 100644
index 12b8204..0000000
--- a/crypto/crypto-lib.com
+++ /dev/null
@@ -1,1427 +0,0 @@
-$!
-$! CRYPTO-LIB.COM
-$! Written By: Robert Byer
-$! Vice-President
-$! A-Com Computing, Inc.
-$! byer at mail.all-net.net
-$!
-$! Changes by Richard Levitte <richard at levitte.org>
-$! Zoltan Arpadffy <arpadffy at polarhome.com>
-$!
-$! This command files compiles and creates the "[.xxx.EXE.CRYPTO]LIBCRYPTO.OLB"
-$! library for OpenSSL. The "xxx" denotes the machine architecture, ALPHA,
-$! IA64 or VAX.
-$!
-$! It was re-written so it would try to determine what "C" compiler to use
-$! or you can specify which "C" compiler to use.
-$!
-$! Specify the following as P1 to build just that part or ALL to just
-$! build everything.
-$!
-$! LIBRARY To just compile the [.xxx.EXE.CRYPTO]LIBCRYPTO.OLB Library.
-$! ALL To do both LIBRARY and APPS
-$!
-$! Specify DEBUG or NODEBUG as P2 to compile with or without debugger
-$! information.
-$!
-$! Specify which compiler at P3 to try to compile under.
-$!
-$! VAXC For VAX C.
-$! DECC For DEC C.
-$! GNUC For GNU C.
-$!
-$! If you don't specify a compiler, it will try to determine which
-$! "C" compiler to use.
-$!
-$! P4, if defined, sets a TCP/IP library to use, through one of the following
-$! keywords:
-$!
-$! UCX For UCX
-$! TCPIP For TCPIP (post UCX)
-$! SOCKETSHR For SOCKETSHR+NETLIB
-$!
-$! P5, if defined, sets a compiler thread NOT needed on OpenVMS 7.1 (and up)
-$!
-$! P6, if defined, sets a choice of crypto methods to compile.
-$! WARNING: this should only be done to recompile some part of an already
-$! fully compiled library.
-$!
-$! P7, if defined, specifies the C pointer size. Ignored on VAX.
-$! ("64=ARGV" gives more efficient code with HP C V7.3 or newer.)
-$! Supported values are:
-$!
-$! "" Compile with default (/NOPOINTER_SIZE)
-$! 32 Compile with /POINTER_SIZE=32 (SHORT)
-$! 64 Compile with /POINTER_SIZE=64[=ARGV] (LONG[=ARGV]).
-$! (Automatically select ARGV if compiler supports it.)
-$! 64= Compile with /POINTER_SIZE=64 (LONG).
-$! 64=ARGV Compile with /POINTER_SIZE=64=ARGV (LONG=ARGV).
-$!
-$! P8, if defined, specifies a directory where ZLIB files (zlib.h,
-$! libz.olb) may be found. Optionally, a non-default object library
-$! name may be included ("dev:[dir]libz_64.olb", for example).
-$!
-$!
-$! Announce/identify.
-$!
-$ proc = f$environment( "procedure")
-$ write sys$output "@@@ "+ -
- f$parse( proc, , , "name")+ f$parse( proc, , , "type")
-$!
-$! Define A TCP/IP Library That We Will Need To Link To.
-$! (That Is, If We Need To Link To One.)
-$!
-$ TCPIP_LIB = ""
-$ ZLIB_LIB = ""
-$!
-$! Check Which Architecture We Are Using.
-$!
-$ IF (F$GETSYI("CPU").LT.128)
-$ THEN
-$!
-$! The Architecture Is VAX
-$!
-$ ARCH = "VAX"
-$!
-$! Else...
-$!
-$ ELSE
-$!
-$! The Architecture Is Alpha, IA64 or whatever comes in the future.
-$!
-$ ARCH = F$EDIT( F$GETSYI( "ARCH_NAME"), "UPCASE")
-$ IF (ARCH .EQS. "") THEN ARCH = "UNK"
-$!
-$! End The Architecture Check.
-$!
-$ ENDIF
-$!
-$ ARCHD = ARCH
-$ LIB32 = "32"
-$ OPT_FILE = ""
-$ POINTER_SIZE = ""
-$!
-$! Check if there's a SDIRS variable defined
-$!
-$ IF "''SDIRS'" .NES. ""
-$ THEN
-$!
-$! If SDIRS was defined, define ENCRYPT_TYPES from it
-$!
-$ ENCRYPT_TYPES = "Basic,''SDIRS'"
-$!
-$! Otherwise
-$!
-$ ELSE
-$!
-$! Define The Different Encryption Types.
-$! NOTE: Some might think this list ugly. However, it's made this way to
-$! reflect the SDIRS variable in [-]Makefile.in as closely as possible,
-$! thereby making it fairly easy to verify that the lists are the same.
-$!
-$ ET_WHIRLPOOL = "WHRLPOOL"
-$ IF ARCH .EQS. "VAX" THEN ET_WHIRLPOOL = ""
-$ ENCRYPT_TYPES = "Basic,"+ -
- "OBJECTS,"+ -
- "MD2,MD4,MD5,SHA,MDC2,HMAC,RIPEMD,"+ET_WHIRLPOOL+","+ -
- "DES,AES,RC2,RC4,RC5,IDEA,BF,CAST,CAMELLIA,SEED,MODES,"+ -
- "BN,EC,RSA,DSA,ECDSA,DH,ECDH,DSO,ENGINE,"+ -
- "BUFFER,BIO,STACK,LHASH,RAND,ERR,"+ -
- "EVP,ASN1,PEM,X509,X509V3,CONF,TXT_DB,PKCS7,PKCS12,COMP,OCSP,UI,"+ -
- "CMS,PQUEUE,TS,JPAKE,SRP,STORE,CMAC"
-$ ENDIF
-$!
-$! Check To Make Sure We Have Valid Command Line Parameters.
-$!
-$ GOSUB CHECK_OPTIONS
-$!
-$! Define The OBJ and EXE Directories.
-$!
-$ OBJ_DIR := SYS$DISK:[-.'ARCHD'.OBJ.CRYPTO]
-$ EXE_DIR := SYS$DISK:[-.'ARCHD'.EXE.CRYPTO]
-$!
-$! Specify the destination directory in any /MAP option.
-$!
-$ if (LINKMAP .eqs. "MAP")
-$ then
-$ LINKMAP = LINKMAP+ "=''EXE_DIR'"
-$ endif
-$!
-$! Add the location prefix to the linker options file name.
-$!
-$ if (OPT_FILE .nes. "")
-$ then
-$ OPT_FILE = EXE_DIR+ OPT_FILE
-$ endif
-$!
-$! Initialise logical names and such
-$!
-$ GOSUB INITIALISE
-$!
-$! Tell The User What Kind of Machine We Run On.
-$!
-$ WRITE SYS$OUTPUT "Host system architecture: ''ARCHD'"
-$!
-$!
-$! Check To See If The Architecture Specific OBJ Directory Exists.
-$!
-$ IF (F$PARSE(OBJ_DIR).EQS."")
-$ THEN
-$!
-$! It Dosen't Exist, So Create It.
-$!
-$ CREATE/DIR 'OBJ_DIR'
-$!
-$! End The Architecture Specific OBJ Directory Check.
-$!
-$ ENDIF
-$!
-$! Check To See If The Architecture Specific Directory Exists.
-$!
-$ IF (F$PARSE(EXE_DIR).EQS."")
-$ THEN
-$!
-$! It Dosen't Exist, So Create It.
-$!
-$ CREATE/DIRECTORY 'EXE_DIR'
-$!
-$! End The Architecture Specific Directory Check.
-$!
-$ ENDIF
-$!
-$! Define The Library Name.
-$!
-$ LIB_NAME := 'EXE_DIR'SSL_LIBCRYPTO'LIB32'.OLB
-$!
-$! Define The CRYPTO-LIB We Are To Use.
-$!
-$ CRYPTO_LIB := 'EXE_DIR'SSL_LIBCRYPTO'LIB32'.OLB
-$!
-$! Check To See If We Already Have A "[.xxx.EXE.CRYPTO]LIBCRYPTO.OLB" Library...
-$!
-$ IF (F$SEARCH(LIB_NAME).EQS."")
-$ THEN
-$!
-$! Guess Not, Create The Library.
-$!
-$ LIBRARY/CREATE/OBJECT 'LIB_NAME'
-$!
-$! End The Library Check.
-$!
-$ ENDIF
-$!
-$! Build our options file for the application
-$!
-$ GOSUB CHECK_OPT_FILE
-$!
-$! Define The Different Encryption "library" Strings.
-$!
-$ LIB_ = "cryptlib,mem,mem_clr,mem_dbg,cversion,ex_data,cpt_err,"+ -
- "ebcdic,uid,o_time,o_str,o_dir,thr_id,lock,"+ -
- "o_init,o_fips"
-$ LIB_OBJECTS = "o_names,obj_dat,obj_lib,obj_err,obj_xref"
-$ LIB_MD2 = "md2_dgst,md2_one"
-$ LIB_MD4 = "md4_dgst,md4_one"
-$ LIB_MD5 = "md5_dgst,md5_one"
-$ LIB_SHA = "sha1dgst,sha1_one,sha256,sha512"
-$ LIB_MDC2 = "mdc2dgst,mdc2_one"
-$ LIB_HMAC = "hmac,hm_ameth,hm_pmeth"
-$ LIB_RIPEMD = "rmd_dgst,rmd_one"
-$ LIB_WHRLPOOL = "wp_dgst,wp_block"
-$ LIB_DES = "set_key,ecb_enc,cbc_enc,"+ -
- "ecb3_enc,cfb64enc,cfb64ede,cfb_enc,ofb64ede,"+ -
- "enc_read,enc_writ,ofb64enc,"+ -
- "ofb_enc,str2key,pcbc_enc,qud_cksm,rand_key,"+ -
- "des_enc,fcrypt_b,"+ -
- "fcrypt,xcbc_enc,rpc_enc,cbc_cksm,"+ -
- "read2pwd"
-$ LIB_AES = "aes_misc,aes_ecb,aes_cfb,aes_ofb,aes_ige,aes_wrap,"+ -
- "aes_core,aes_cbc"
-$ LIB_RC2 = "rc2_ecb,rc2_skey,rc2_cbc,rc2cfb64,rc2ofb64"
-$ LIB_RC4 = "rc4_enc,rc4_skey"
-$ LIB_RC5 = "rc5_skey,rc5_ecb,rc5_enc,rc5cfb64,rc5ofb64"
-$ LIB_IDEA = "i_cbc,i_cfb64,i_ofb64,i_ecb,i_skey"
-$ LIB_BF = "bf_skey,bf_ecb,bf_enc,bf_cfb64,bf_ofb64"
-$ LIB_CAST = "c_skey,c_ecb,c_enc,c_cfb64,c_ofb64"
-$ LIB_CAMELLIA = "cmll_ecb,cmll_ofb,cmll_cfb,cmll_ctr,camellia,cmll_misc,cmll_cbc"
-$ LIB_SEED = "seed,seed_ecb,seed_cbc,seed_cfb,seed_ofb"
-$ LIB_MODES = "cbc128,ctr128,cts128,cfb128,ofb128,gcm128,"+ -
- "ccm128,xts128,wrap128,ocb128"
-$ LIB_BN_ASM = "[.asm]vms.mar,vms-helper"
-$ IF F$TRNLNM("OPENSSL_NO_ASM") .OR. ARCH .NES. "VAX" THEN -
- LIB_BN_ASM = "bn_asm"
-$ LIB_BN = "bn_add,bn_div,bn_exp,bn_lib,bn_ctx,bn_mul,bn_mod,"+ -
- "bn_print,bn_rand,bn_shift,bn_word,bn_blind,"+ -
- "bn_kron,bn_sqrt,bn_gcd,bn_prime,bn_err,bn_sqr,"+LIB_BN_ASM+","+ -
- "bn_recp,bn_mont,bn_mpi,bn_exp2,bn_gf2m,bn_nist,"+ -
- "bn_depr,bn_const,bn_x931p,bn_intern,bn_dh,bn_srp"
-$ LIB_EC = "ec_lib,ecp_smpl,ecp_mont,ecp_nist,ec_cvt,ec_mult,"+ -
- "ec_err,ec_curve,ec_check,ec_print,ec_asn1,ec_key,"+ -
- "ec2_smpl,ec2_mult,ec_ameth,ec_pmeth,eck_prn,"+ -
- "ecp_nistp224,ecp_nistp256,ecp_nistp521,ecp_nistputil,"+ -
- "ecp_oct,ec2_oct,ec_oct"
-$ LIB_RSA = "rsa_eay,rsa_gen,rsa_lib,rsa_sign,rsa_saos,rsa_err,"+ -
- "rsa_pk1,rsa_ssl,rsa_none,rsa_oaep,rsa_chk,rsa_null,"+ -
- "rsa_pss,rsa_x931,rsa_asn1,rsa_depr,rsa_ameth,rsa_prn,"+ -
- "rsa_pmeth,rsa_crpt,rsa_x931g"
-$ LIB_DSA = "dsa_gen,dsa_key,dsa_lib,dsa_asn1,dsa_vrf,dsa_sign,"+ -
- "dsa_err,dsa_ossl,dsa_depr,dsa_ameth,dsa_pmeth,dsa_prn"
-$ LIB_ECDSA = "ecs_lib,ecs_asn1,ecs_ossl,ecs_sign,ecs_vrf,ecs_err"
-$ LIB_DH = "dh_asn1,dh_gen,dh_key,dh_lib,dh_check,dh_err,dh_depr,"+ -
- "dh_ameth,dh_pmeth,dh_prn,dh_rfc5114,dh_kdf"
-$ LIB_ECDH = "ech_lib,ech_ossl,ech_key,ech_err,ech_kdf"
-$ LIB_DSO = "dso_dl,dso_dlfcn,dso_err,dso_lib,dso_null,"+ -
- "dso_openssl,dso_win32,dso_vms"
-$ LIB_ENGINE = "eng_err,eng_lib,eng_list,eng_init,eng_ctrl,"+ -
- "eng_table,eng_pkey,eng_fat,eng_all,"+ -
- "tb_rsa,tb_dsa,tb_ecdsa,tb_dh,tb_ecdh,tb_rand,tb_store,"+ -
- "tb_cipher,tb_digest,tb_pkmeth,tb_asnmth,"+ -
- "eng_openssl,eng_cnf,eng_dyn,eng_cryptodev,"+ -
- "eng_rdrand"
-$ LIB_BUFFER = "buffer,buf_str,buf_err"
-$ LIB_BIO = "bio_lib,bio_cb,bio_err,"+ -
- "bss_mem,bss_null,bss_fd,"+ -
- "bss_file,bss_sock,bss_conn,"+ -
- "bf_null,bf_buff,b_print,b_dump,"+ -
- "b_sock,bss_acpt,bf_nbio,bss_log,bss_bio,"+ -
- "bss_dgram,"+ -
- "bf_lbuf" ! The last one is VMS specific
-$ LIB_STACK = "stack"
-$ LIB_LHASH = "lhash,lh_stats"
-$ LIB_RAND = "md_rand,randfile,rand_lib,rand_err,rand_egd,"+ -
- "rand_win,rand_unix,rand_vms,rand_os2,rand_nw"
-$ LIB_ERR = "err,err_all,err_prn"
-$ LIB_EVP_1 = "encode,digest,evp_enc,evp_key,evp_acnf,evp_cnf,"+ -
- "e_des,e_bf,e_idea,e_des3,e_camellia,"+ -
- "e_rc4,e_aes,names,e_seed,"+ -
- "e_xcbc_d,e_rc2,e_cast,e_rc5"
-$ LIB_EVP_2 = "m_null,m_md2,m_md4,m_md5,m_sha1,m_wp," + -
- "m_dss1,m_mdc2,m_ripemd,m_ecdsa,"+ -
- "p_open,p_seal,p_sign,p_verify,p_lib,p_enc,p_dec,"+ -
- "bio_md,bio_b64,bio_enc,evp_err,e_null,"+ -
- "c_all,c_allc,c_alld,evp_lib,bio_ok,"+-
- "evp_pkey,evp_pbe,p5_crpt,p5_crpt2"
-$ LIB_EVP_3 = "e_old,pmeth_lib,pmeth_fn,pmeth_gn,m_sigver,"+ -
- "e_aes_cbc_hmac_sha1,e_aes_cbc_hmac_sha256,e_rc4_hmac_md5"
-$ LIB_ASN1_1 = "a_object,a_bitstr,a_utctm,a_gentm,a_time,a_int,a_octet,"+ -
- "a_print,a_type,a_set,a_dup,a_d2i_fp,a_i2d_fp,"+ -
- "a_enum,a_utf8,a_sign,a_digest,a_verify,a_mbstr,a_strex,"+ -
- "x_algor,x_val,x_pubkey,x_sig,x_req,x_attrib,x_bignum,"+ -
- "x_long,x_name,x_x509,x_x509a,x_crl,x_info,x_spki,nsseq,"+ -
- "d2i_pu,d2i_pr,i2d_pu,i2d_pr"
-$ LIB_ASN1_2 = "t_req,t_x509,t_x509a,t_crl,t_pkey,t_spki,t_bitst,"+ -
- "tasn_new,tasn_fre,tasn_enc,tasn_dec,tasn_utl,tasn_typ,"+ -
- "tasn_prn,tasn_scn,ameth_lib,"+ -
- "f_int,f_string,n_pkey,"+ -
- "f_enum,x_pkey,a_bool,x_exten,bio_asn1,bio_ndef,asn_mime,"+ -
- "asn1_gen,asn1_par,asn1_lib,asn1_err,a_bytes,a_strnid,"+ -
- "evp_asn1,asn_pack,p5_pbe,p5_pbev2,p8_pkey,asn_moid,"+ -
- "asn_mstbl"
-$ LIB_PEM = "pem_sign,pem_seal,pem_info,pem_lib,pem_all,pem_err,"+ -
- "pem_x509,pem_xaux,pem_oth,pem_pk8,pem_pkey,pvkfmt"
-$ LIB_X509 = "x509_def,x509_d2,x509_r2x,x509_cmp,"+ -
- "x509_obj,x509_req,x509spki,x509_vfy,"+ -
- "x509_set,x509cset,x509rset,x509_err,"+ -
- "x509name,x509_v3,x509_ext,x509_att,"+ -
- "x509type,x509_lu,x_all,x509_txt,"+ -
- "x509_trs,by_file,by_dir,x509_vpm"
-$ LIB_X509V3 = "v3_bcons,v3_bitst,v3_conf,v3_extku,v3_ia5,v3_lib,"+ -
- "v3_prn,v3_utl,v3err,v3_genn,v3_alt,v3_skey,v3_akey,v3_pku,"+ -
- "v3_int,v3_enum,v3_sxnet,v3_cpols,v3_crld,v3_purp,v3_info,"+ -
- "v3_akeya,v3_pmaps,v3_pcons,v3_ncons,v3_pcia,v3_pci,"+ -
- "pcy_cache,pcy_node,pcy_data,pcy_map,pcy_tree,pcy_lib,"+ -
- "v3_asid,v3_addr,v3_scts"
-$ LIB_CONF = "conf_err,conf_lib,conf_api,conf_def,conf_mod,conf_mall,conf_sap"
-$ LIB_TXT_DB = "txt_db"
-$ LIB_PKCS7 = "pk7_asn1,pk7_lib,pkcs7err,pk7_doit,pk7_smime,pk7_attr,"+ -
- "pk7_mime,bio_pk7"
-$ LIB_PKCS12 = "p12_add,p12_asn,p12_attr,p12_crpt,p12_crt,p12_decr,"+ -
- "p12_init,p12_key,p12_kiss,p12_mutl,"+ -
- "p12_utl,p12_npas,pk12err,p12_p8d,p12_p8e"
-$ LIB_COMP = "comp_lib,comp_err,"+ -
- "c_zlib"
-$ LIB_OCSP = "ocsp_asn,ocsp_ext,ocsp_ht,ocsp_lib,ocsp_cl,"+ -
- "ocsp_srv,ocsp_prn,ocsp_vfy,ocsp_err,v3_ocsp"
-$ LIB_UI = "ui_err,ui_lib,ui_openssl,ui_util"
-$ LIB_CMS = "cms_lib,cms_asn1,cms_att,cms_io,cms_smime,cms_err,"+ -
- "cms_sd,cms_dd,cms_cd,cms_env,cms_enc,cms_ess,"+ -
- "cms_pwri,cms_kari"
-$ LIB_PQUEUE = "pqueue"
-$ LIB_TS = "ts_err,ts_req_utils,ts_req_print,ts_rsp_utils,ts_rsp_print,"+ -
- "ts_rsp_sign,ts_rsp_verify,ts_verify_ctx,ts_lib,ts_conf,"+ -
- "ts_asn1"
-$ LIB_JPAKE = "jpake,jpake_err"
-$ LIB_SRP = "srp_lib,srp_vfy"
-$ LIB_STORE = "str_err,str_lib,str_meth,str_mem"
-$ LIB_CMAC = "cmac,cm_ameth,cm_pmeth"
-$!
-$! Setup exceptional compilations
-$!
-$ CC3_SHOWN = 0
-$ CC4_SHOWN = 0
-$ CC5_SHOWN = 0
-$ CC6_SHOWN = 0
-$!
-$! The following lists must have leading and trailing commas, and no
-$! embedded spaces. (They are scanned for ",name,".)
-$!
-$ ! Add definitions for no threads on OpenVMS 7.1 and higher.
-$ COMPILEWITH_CC3 = ",bss_rtcp,"
-$ ! Disable the DOLLARID warning. Not needed with /STANDARD=RELAXED.
-$ COMPILEWITH_CC4 = "" !!! ",a_utctm,bss_log,o_time,o_dir,"
-$ ! Disable disjoint optimization on VAX with DECC.
-$ COMPILEWITH_CC5 = ",md2_dgst,md4_dgst,md5_dgst,mdc2dgst," + -
- "seed,sha_dgst,sha1dgst,rmd_dgst,bf_enc,"
-$ ! Disable the MIXLINKAGE warning.
-$ COMPILEWITH_CC6 = "" !!! ",enc_read,set_key,"
-$!
-$! Figure Out What Other Modules We Are To Build.
-$!
-$ BUILD_SET:
-$!
-$! Define A Module Counter.
-$!
-$ MODULE_COUNTER = 0
-$!
-$! Top Of The Loop.
-$!
-$ MODULE_NEXT:
-$!
-$! Extract The Module Name From The Encryption List.
-$!
-$ MODULE_NAME = F$ELEMENT(MODULE_COUNTER,",",ENCRYPT_TYPES)
-$!
-$! Check To See If We Are At The End Of The Module List.
-$!
-$ IF (MODULE_NAME.EQS.",")
-$ THEN
-$!
-$! We Are At The End Of The Module List, Go To MODULE_DONE.
-$!
-$ GOTO MODULE_DONE
-$!
-$! End The Module List Check.
-$!
-$ ENDIF
-$!
-$! Increment The Moudle Counter.
-$!
-$ MODULE_COUNTER = MODULE_COUNTER + 1
-$
-$ IF MODULE_NAME.EQS."" THEN GOTO MODULE_NEXT
-$ MODULE_NAME1 = MODULE_NAME
-$ IF MODULE_NAME.EQS."Basic" THEN MODULE_NAME = ""
-$!
-$! Check if the library module name actually is defined
-$!
-$ PART_COUNTER = -1
-$ IF F$TYPE(LIB_'MODULE_NAME'_1) .NES. ""
-$ THEN
-$ PART_COUNTER = 1
-$ ELSE
-$ IF F$TYPE(LIB_'MODULE_NAME') .EQS. ""
-$ THEN
-$ WRITE SYS$ERROR ""
-$ WRITE SYS$ERROR "The module ",MODULE_NAME1," does not exist. Continuing..."
-$ WRITE SYS$ERROR ""
-$ GOTO MODULE_NEXT
-$ ENDIF
-$ ENDIF
-$!
-$! Tell The User What Module We Are Building.
-$!
-$ WRITE SYS$OUTPUT "Compiling The ",MODULE_NAME1," Library Files. (",BUILDALL,")"
-$!
-$! Create The Library Module Names.
-$!
-$ PART_NEXT:
-$ IF PART_COUNTER .EQ. 0 THEN GOTO MODULE_NEXT
-$
-$ IF PART_COUNTER .LT. 0
-$ THEN
-$ LIB_MODULE = "LIB_" + MODULE_NAME
-$ ELSE
-$ LIB_MODULE = "LIB_" + MODULE_NAME + "_''PART_COUNTER'"
-$ ENDIF
-$!
-$! If there are no more parts, go to the next module
-$!
-$ IF F$TYPE('LIB_MODULE') .EQS. "" THEN GOTO MODULE_NEXT
-$!
-$! Increment The Counter.
-$!
-$ PART_COUNTER = PART_COUNTER + 1
-$!
-$! Define A File Counter And Set It To "0".
-$!
-$ FILE_COUNTER = 0
-$!
-$! Top Of The File Loop.
-$!
-$ NEXT_FILE:
-$!
-$! Extract The File Name From The File List.
-$!
-$ FILE_NAME = F$ELEMENT(FILE_COUNTER,",",'LIB_MODULE')
-$!
-$! Check To See If We Are At The End Of The File List.
-$!
-$ IF (FILE_NAME.EQS.",")
-$ THEN
-$!
-$! We Are At The End Of The File List, Goto FILE_DONE.
-$!
-$ GOTO FILE_DONE
-$!
-$! End The File List Check.
-$!
-$ ENDIF
-$!
-$! Increment The Counter.
-$!
-$ FILE_COUNTER = FILE_COUNTER + 1
-$!
-$! Create The Source File Name.
-$!
-$ TMP_FILE_NAME = F$ELEMENT(1,"]",FILE_NAME)
-$ IF TMP_FILE_NAME .EQS. "]" THEN TMP_FILE_NAME = FILE_NAME
-$ IF F$ELEMENT(0,".",TMP_FILE_NAME) .EQS. TMP_FILE_NAME THEN -
- FILE_NAME = FILE_NAME + ".c"
-$ IF (MODULE_NAME.NES."")
-$ THEN
-$ SOURCE_FILE = "SYS$DISK:[." + MODULE_NAME+ "]" + FILE_NAME
-$ ELSE
-$ SOURCE_FILE = "SYS$DISK:[]" + FILE_NAME
-$ ENDIF
-$ SOURCE_FILE = SOURCE_FILE - "]["
-$!
-$! Create The Object File Name.
-$!
-$ OBJECT_FILE = OBJ_DIR + F$PARSE(FILE_NAME,,,"NAME","SYNTAX_ONLY") + ".OBJ"
-$ ON WARNING THEN GOTO NEXT_FILE
-$!
-$! Check To See If The File We Want To Compile Is Actually There.
-$!
-$ IF (F$SEARCH(SOURCE_FILE).EQS."")
-$ THEN
-$!
-$! Tell The User That The File Doesn't Exist.
-$!
-$ WRITE SYS$OUTPUT ""
-$ WRITE SYS$OUTPUT "The File ",SOURCE_FILE," Doesn't Exist."
-$ WRITE SYS$OUTPUT ""
-$!
-$! Exit The Build.
-$!
-$ GOTO EXIT
-$!
-$! End The File Exist Check.
-$!
-$ ENDIF
-$!
-$! Tell The User We Are Compiling The File.
-$!
-$ WRITE SYS$OUTPUT " ",FILE_NAME,""
-$!
-$! Compile The File.
-$!
-$ ON ERROR THEN GOTO NEXT_FILE
-$ FILE_NAME0 = ","+ F$ELEMENT(0,".",FILE_NAME)+ ","
-$ IF FILE_NAME - ".mar" .NES. FILE_NAME
-$ THEN
-$ MACRO/OBJECT='OBJECT_FILE' 'SOURCE_FILE'
-$ ELSE
-$ IF COMPILEWITH_CC3 - FILE_NAME0 .NES. COMPILEWITH_CC3
-$ THEN
-$ write sys$output " \Using special rule (3)"
-$ if (.not. CC3_SHOWN)
-$ then
-$ CC3_SHOWN = 1
-$ x = " "+ CC3
-$ write /symbol sys$output x
-$ endif
-$ CC3/OBJECT='OBJECT_FILE' 'SOURCE_FILE'
-$ ELSE
-$ IF COMPILEWITH_CC4 - FILE_NAME0 .NES. COMPILEWITH_CC4
-$ THEN
-$ write /symbol sys$output " \Using special rule (4)"
-$ if (.not. CC4_SHOWN)
-$ then
-$ CC4_SHOWN = 1
-$ x = " "+ CC4
-$ write /symbol sys$output x
-$ endif
-$ CC4/OBJECT='OBJECT_FILE' 'SOURCE_FILE'
-$ ELSE
-$ IF CC5_DIFFERENT .AND. -
- (COMPILEWITH_CC5 - FILE_NAME0 .NES. COMPILEWITH_CC5)
-$ THEN
-$ write sys$output " \Using special rule (5)"
-$ if (.not. CC5_SHOWN)
-$ then
-$ CC5_SHOWN = 1
-$ x = " "+ CC5
-$ write /symbol sys$output x
-$ endif
-$ CC5/OBJECT='OBJECT_FILE' 'SOURCE_FILE'
-$ ELSE
-$ IF COMPILEWITH_CC6 - FILE_NAME0 .NES. COMPILEWITH_CC6
-$ THEN
-$ write sys$output " \Using special rule (6)"
-$ if (.not. CC6_SHOWN)
-$ then
-$ CC6_SHOWN = 1
-$ x = " "+ CC6
-$ write /symbol sys$output x
-$ endif
-$ CC6/OBJECT='OBJECT_FILE' 'SOURCE_FILE'
-$ ELSE
-$ CC/OBJECT='OBJECT_FILE' 'SOURCE_FILE'
-$ ENDIF
-$ ENDIF
-$ ENDIF
-$ ENDIF
-$ ENDIF
-$!
-$! Add It To The Library.
-$!
-$ LIBRARY/REPLACE 'LIB_NAME' 'OBJECT_FILE'
-$!
-$! Time To Clean Up The Object File.
-$!
-$ DELETE 'OBJECT_FILE';*
-$!
-$! Go Back And Do It Again.
-$!
-$ GOTO NEXT_FILE
-$!
-$! All Done With This Library Part.
-$!
-$ FILE_DONE:
-$!
-$! Go Back And Get The Next Part.
-$!
-$ GOTO PART_NEXT
-$!
-$! All Done With This Module.
-$!
-$ MODULE_DONE:
-$!
-$! Tell The User That We Are All Done.
-$!
-$ WRITE SYS$OUTPUT "All Done..."
-$ EXIT:
-$ GOSUB CLEANUP
-$ EXIT
-$!
-$! Check For The Link Option FIle.
-$!
-$ CHECK_OPT_FILE:
-$!
-$! Check To See If We Need To Make A VAX C Option File.
-$!
-$ IF (COMPILER.EQS."VAXC")
-$ THEN
-$!
-$! Check To See If We Already Have A VAX C Linker Option File.
-$!
-$ IF (F$SEARCH(OPT_FILE).EQS."")
-$ THEN
-$!
-$! We Need A VAX C Linker Option File.
-$!
-$ CREATE 'OPT_FILE'
-$DECK
-!
-! Default System Options File To Link Against
-! The Sharable VAX C Runtime Library.
-!
-SYS$SHARE:VAXCRTL.EXE/SHARE
-$EOD
-$!
-$! End The Option File Check.
-$!
-$ ENDIF
-$!
-$! End The VAXC Check.
-$!
-$ ENDIF
-$!
-$! Check To See If We Need A GNU C Option File.
-$!
-$ IF (COMPILER.EQS."GNUC")
-$ THEN
-$!
-$! Check To See If We Already Have A GNU C Linker Option File.
-$!
-$ IF (F$SEARCH(OPT_FILE).EQS."")
-$ THEN
-$!
-$! We Need A GNU C Linker Option File.
-$!
-$ CREATE 'OPT_FILE'
-$DECK
-!
-! Default System Options File To Link Against
-! The Sharable C Runtime Library.
-!
-GNU_CC:[000000]GCCLIB/LIBRARY
-SYS$SHARE:VAXCRTL/SHARE
-$EOD
-$!
-$! End The Option File Check.
-$!
-$ ENDIF
-$!
-$! End The GNU C Check.
-$!
-$ ENDIF
-$!
-$! Check To See If We Need A DEC C Option File.
-$!
-$ IF (COMPILER.EQS."DECC")
-$ THEN
-$!
-$! Check To See If We Already Have A DEC C Linker Option File.
-$!
-$ IF (F$SEARCH(OPT_FILE).EQS."")
-$ THEN
-$!
-$! Figure Out If We Need A non-VAX Or A VAX Linker Option File.
-$!
-$ IF ARCH .EQS. "VAX"
-$ THEN
-$!
-$! We Need A DEC C Linker Option File For VAX.
-$!
-$ CREATE 'OPT_FILE'
-$DECK
-!
-! Default System Options File To Link Against
-! The Sharable DEC C Runtime Library.
-!
-SYS$SHARE:DECC$SHR.EXE/SHARE
-$EOD
-$!
-$! Else...
-$!
-$ ELSE
-$!
-$! Create The non-VAX Linker Option File.
-$!
-$ CREATE 'OPT_FILE'
-$DECK
-!
-! Default System Options File For non-VAX To Link Against
-! The Sharable C Runtime Library.
-!
-SYS$SHARE:CMA$OPEN_LIB_SHR/SHARE
-SYS$SHARE:CMA$OPEN_RTL/SHARE
-$EOD
-$!
-$! End The DEC C Option File Check.
-$!
-$ ENDIF
-$!
-$! End The Option File Search.
-$!
-$ ENDIF
-$!
-$! End The DEC C Check.
-$!
-$ ENDIF
-$!
-$! Tell The User What Linker Option File We Are Using.
-$!
-$ WRITE SYS$OUTPUT "Using Linker Option File ",OPT_FILE,"."
-$!
-$! Time To RETURN.
-$!
-$ RETURN
-$!
-$! Check The User's Options.
-$!
-$ CHECK_OPTIONS:
-$!
-$! Check To See If P1 Is Blank.
-$!
-$ IF (P1.EQS."ALL")
-$ THEN
-$!
-$! P1 Is Blank, So Build Everything.
-$!
-$ BUILDALL = "TRUE"
-$!
-$! Else...
-$!
-$ ELSE
-$!
-$! Else, Check To See If P1 Has A Valid Argument.
-$!
-$ IF (P1.EQS."LIBRARY")
-$ THEN
-$!
-$! A Valid Argument.
-$!
-$ BUILDALL = P1
-$!
-$! Else...
-$!
-$ ELSE
-$!
-$! Tell The User We Don't Know What They Want.
-$!
-$ WRITE SYS$OUTPUT ""
-$ WRITE SYS$OUTPUT "The Option ",P1," Is Invalid. The Valid Options Are:"
-$ WRITE SYS$OUTPUT ""
-$ WRITE SYS$OUTPUT " ALL : Just Build Everything."
-$ WRITE SYS$OUTPUT " LIBRARY : To Compile Just The [.xxx.EXE.CRYPTO]LIBCRYPTO.OLB Library."
-$ WRITE SYS$OUTPUT ""
-$ WRITE SYS$OUTPUT " Where 'xxx' Stands For:"
-$ WRITE SYS$OUTPUT ""
-$ WRITE SYS$OUTPUT " ALPHA[64]: Alpha Architecture."
-$ WRITE SYS$OUTPUT " IA64[64] : IA64 Architecture."
-$ WRITE SYS$OUTPUT " VAX : VAX Architecture."
-$ WRITE SYS$OUTPUT ""
-$!
-$! Time To EXIT.
-$!
-$ EXIT
-$!
-$! End The Valid Argument Check.
-$!
-$ ENDIF
-$!
-$! End The P1 Check.
-$!
-$ ENDIF
-$!
-$! Check To See If P2 Is Blank.
-$!
-$ IF (P2.EQS."NODEBUG")
-$ THEN
-$!
-$! P2 Is NODEBUG, So Compile Without The Debugger Information.
-$!
-$ DEBUGGER = "NODEBUG"
-$ LINKMAP = "NOMAP"
-$ TRACEBACK = "NOTRACEBACK"
-$ GCC_OPTIMIZE = "OPTIMIZE"
-$ CC_OPTIMIZE = "OPTIMIZE"
-$ MACRO_OPTIMIZE = "OPTIMIZE"
-$ WRITE SYS$OUTPUT "No Debugger Information Will Be Produced During Compile."
-$ WRITE SYS$OUTPUT "Compiling With Compiler Optimization."
-$ ELSE
-$!
-$! Check To See If We Are To Compile With Debugger Information.
-$!
-$ IF (P2.EQS."DEBUG")
-$ THEN
-$!
-$! Compile With Debugger Information.
-$!
-$ DEBUGGER = "DEBUG"
-$ LINKMAP = "MAP"
-$ TRACEBACK = "TRACEBACK"
-$ GCC_OPTIMIZE = "NOOPTIMIZE"
-$ CC_OPTIMIZE = "NOOPTIMIZE"
-$ MACRO_OPTIMIZE = "NOOPTIMIZE"
-$ WRITE SYS$OUTPUT "Debugger Information Will Be Produced During Compile."
-$ WRITE SYS$OUTPUT "Compiling Without Compiler Optimization."
-$ ELSE
-$!
-$! They Entered An Invalid Option.
-$!
-$ WRITE SYS$OUTPUT ""
-$ WRITE SYS$OUTPUT "The Option ",P2," Is Invalid. The Valid Options Are:"
-$ WRITE SYS$OUTPUT ""
-$ WRITE SYS$OUTPUT " DEBUG : Compile With The Debugger Information."
-$ WRITE SYS$OUTPUT " NODEBUG : Compile Without The Debugger Information."
-$ WRITE SYS$OUTPUT ""
-$!
-$! Time To EXIT.
-$!
-$ EXIT
-$!
-$! End The Valid Argument Check.
-$!
-$ ENDIF
-$!
-$! End The P2 Check.
-$!
-$ ENDIF
-$!
-$! Special Threads For OpenVMS v7.1 Or Later
-$!
-$! Written By: Richard Levitte
-$! richard at levitte.org
-$!
-$!
-$! Check To See If We Have A Option For P5.
-$!
-$ IF (P5.EQS."")
-$ THEN
-$!
-$! Get The Version Of VMS We Are Using.
-$!
-$ ISSEVEN :=
-$ TMP = F$ELEMENT(0,"-",F$EXTRACT(1,4,F$GETSYI("VERSION")))
-$ TMP = F$INTEGER(F$ELEMENT(0,".",TMP)+F$ELEMENT(1,".",TMP))
-$!
-$! Check To See If The VMS Version Is v7.1 Or Later.
-$!
-$ IF (TMP.GE.71)
-$ THEN
-$!
-$! We Have OpenVMS v7.1 Or Later, So Use The Special Threads.
-$!
-$ ISSEVEN := ,PTHREAD_USE_D4
-$!
-$! End The VMS Version Check.
-$!
-$ ENDIF
-$!
-$! End The P5 Check.
-$!
-$ ENDIF
-$!
-$! Check P7 (POINTER_SIZE).
-$!
-$ IF (P7 .NES. "") .AND. (ARCH .NES. "VAX")
-$ THEN
-$!
-$ IF (P7 .EQS. "32")
-$ THEN
-$ POINTER_SIZE = " /POINTER_SIZE=32"
-$ ELSE
-$ POINTER_SIZE = F$EDIT( P7, "COLLAPSE, UPCASE")
-$ IF ((POINTER_SIZE .EQS. "64") .OR. -
- (POINTER_SIZE .EQS. "64=") .OR. -
- (POINTER_SIZE .EQS. "64=ARGV"))
-$ THEN
-$ ARCHD = ARCH+ "_64"
-$ LIB32 = ""
-$ POINTER_SIZE = " /POINTER_SIZE=64"
-$ ELSE
-$!
-$! Tell The User Entered An Invalid Option.
-$!
-$ WRITE SYS$OUTPUT ""
-$ WRITE SYS$OUTPUT "The Option ", P7, -
- " Is Invalid. The Valid Options Are:"
-$ WRITE SYS$OUTPUT ""
-$ WRITE SYS$OUTPUT -
- " """" : Compile with default (short) pointers."
-$ WRITE SYS$OUTPUT -
- " 32 : Compile with 32-bit (short) pointers."
-$ WRITE SYS$OUTPUT -
- " 64 : Compile with 64-bit (long) pointers (auto ARGV)."
-$ WRITE SYS$OUTPUT -
- " 64= : Compile with 64-bit (long) pointers (no ARGV)."
-$ WRITE SYS$OUTPUT -
- " 64=ARGV : Compile with 64-bit (long) pointers (ARGV)."
-$ WRITE SYS$OUTPUT ""
-$!
-$! Time To EXIT.
-$!
-$ EXIT
-$!
-$ ENDIF
-$!
-$ ENDIF
-$!
-$! End The P7 (POINTER_SIZE) Check.
-$!
-$ ENDIF
-$!
-$! Set basic C compiler /INCLUDE directories.
-$!
-$ CC_INCLUDES = "SYS$DISK:[.''ARCHD'],SYS$DISK:[],SYS$DISK:[-],"+ -
- "SYS$DISK:[.ENGINE.VENDOR_DEFNS],SYS$DISK:[.EVP],SYS$DISK:[.ASN1],"+ -
- "SYS$DISK:[.MODES]"
-$!
-$! Check To See If P3 Is Blank.
-$!
-$ IF (P3.EQS."")
-$ THEN
-$!
-$! O.K., The User Didn't Specify A Compiler, Let's Try To
-$! Find Out Which One To Use.
-$!
-$! Check To See If We Have GNU C.
-$!
-$ IF (F$TRNLNM("GNU_CC").NES."")
-$ THEN
-$!
-$! Looks Like GNUC, Set To Use GNUC.
-$!
-$ P3 = "GNUC"
-$!
-$! Else...
-$!
-$ ELSE
-$!
-$! Check To See If We Have VAXC Or DECC.
-$!
-$ IF (ARCH.NES."VAX").OR.(F$TRNLNM("DECC$CC_DEFAULT").NES."")
-$ THEN
-$!
-$! Looks Like DECC, Set To Use DECC.
-$!
-$ P3 = "DECC"
-$!
-$! Else...
-$!
-$ ELSE
-$!
-$! Looks Like VAXC, Set To Use VAXC.
-$!
-$ P3 = "VAXC"
-$!
-$! End The VAXC Compiler Check.
-$!
-$ ENDIF
-$!
-$! End The DECC & VAXC Compiler Check.
-$!
-$ ENDIF
-$!
-$! End The Compiler Check.
-$!
-$ ENDIF
-$!
-$! Check To See If We Have A Option For P4.
-$!
-$ IF (P4.EQS."")
-$ THEN
-$!
-$! Find out what socket library we have available
-$!
-$ IF F$PARSE("SOCKETSHR:") .NES. ""
-$ THEN
-$!
-$! We have SOCKETSHR, and it is my opinion that it's the best to use.
-$!
-$ P4 = "SOCKETSHR"
-$!
-$! Tell the user
-$!
-$ WRITE SYS$OUTPUT "Using SOCKETSHR for TCP/IP"
-$!
-$! Else, let's look for something else
-$!
-$ ELSE
-$!
-$! Like UCX (the reason to do this before Multinet is that the UCX
-$! emulation is easier to use...)
-$!
-$ IF F$TRNLNM("UCX$IPC_SHR") .NES. "" -
- .OR. F$PARSE("SYS$SHARE:UCX$IPC_SHR.EXE") .NES. "" -
- .OR. F$PARSE("SYS$LIBRARY:UCX$IPC.OLB") .NES. ""
-$ THEN
-$!
-$! Last resort: a UCX or UCX-compatible library
-$!
-$ P4 = "UCX"
-$!
-$! Tell the user
-$!
-$ WRITE SYS$OUTPUT "Using UCX or an emulation thereof for TCP/IP"
-$!
-$! That was all...
-$!
-$ ENDIF
-$ ENDIF
-$ ENDIF
-$!
-$! Set Up Initial CC Definitions, Possibly With User Ones
-$!
-$ CCDEFS = "TCPIP_TYPE_''P4',DSO_VMS"
-$ IF F$TYPE(USER_CCDEFS) .NES. "" THEN CCDEFS = CCDEFS + "," + USER_CCDEFS
-$ CCEXTRAFLAGS = ""
-$ IF F$TYPE(USER_CCFLAGS) .NES. "" THEN CCEXTRAFLAGS = USER_CCFLAGS
-$ CCDISABLEWARNINGS = "" !!! "LONGLONGTYPE,LONGLONGSUFX,FOUNDCR"
-$ IF F$TYPE(USER_CCDISABLEWARNINGS) .NES. "" THEN -
- CCDISABLEWARNINGS = CCDISABLEWARNINGS + "," + USER_CCDISABLEWARNINGS
-$!
-$! Check To See If We Have A ZLIB Option.
-$!
-$ ZLIB = P8
-$ IF (ZLIB .NES. "")
-$ THEN
-$!
-$! Check for expected ZLIB files.
-$!
-$ err = 0
-$ file1 = f$parse( "zlib.h", ZLIB, , , "SYNTAX_ONLY")
-$ if (f$search( file1) .eqs. "")
-$ then
-$ WRITE SYS$OUTPUT ""
-$ WRITE SYS$OUTPUT "The Option ", ZLIB, " Is Invalid."
-$ WRITE SYS$OUTPUT " Can't find header: ''file1'"
-$ err = 1
-$ endif
-$ file1 = f$parse( "A.;", ZLIB)- "A.;"
-$!
-$ file2 = f$parse( ZLIB, "libz.olb", , , "SYNTAX_ONLY")
-$ if (f$search( file2) .eqs. "")
-$ then
-$ if (err .eq. 0)
-$ then
-$ WRITE SYS$OUTPUT ""
-$ WRITE SYS$OUTPUT "The Option ", ZLIB, " Is Invalid."
-$ endif
-$ WRITE SYS$OUTPUT " Can't find library: ''file2'"
-$ WRITE SYS$OUTPUT ""
-$ err = err+ 2
-$ endif
-$ if (err .eq. 1)
-$ then
-$ WRITE SYS$OUTPUT ""
-$ endif
-$!
-$ if (err .ne. 0)
-$ then
-$ EXIT
-$ endif
-$!
-$ CCDEFS = """ZLIB=1"", "+ CCDEFS
-$ CC_INCLUDES = CC_INCLUDES+ ", "+ file1
-$ ZLIB_LIB = ", ''file2' /library"
-$!
-$! Print info
-$!
-$ WRITE SYS$OUTPUT "ZLIB library spec: ", file2
-$!
-$! End The ZLIB Check.
-$!
-$ ENDIF
-$!
-$! Check To See If The User Entered A Valid Parameter.
-$!
-$ IF (P3.EQS."VAXC").OR.(P3.EQS."DECC").OR.(P3.EQS."GNUC")
-$ THEN
-$!
-$! Check To See If The User Wanted DECC.
-$!
-$ IF (P3.EQS."DECC")
-$ THEN
-$!
-$! Looks Like DECC, Set To Use DECC.
-$!
-$ COMPILER = "DECC"
-$!
-$! Tell The User We Are Using DECC.
-$!
-$ WRITE SYS$OUTPUT "Using DECC 'C' Compiler."
-$!
-$! Use DECC...
-$!
-$ CC = "CC"
-$ IF ARCH.EQS."VAX" .AND. F$TRNLNM("DECC$CC_DEFAULT").NES."/DECC" -
- THEN CC = "CC/DECC"
-$ CC = CC + " /''CC_OPTIMIZE' /''DEBUGGER' /STANDARD=RELAXED"+ -
- "''POINTER_SIZE' /NOLIST /PREFIX=ALL" + -
- " /INCLUDE=(''CC_INCLUDES')"+ -
- CCEXTRAFLAGS
-$!
-$! Define The Linker Options File Name.
-$!
-$ OPT_FILE = "VAX_DECC_OPTIONS.OPT"
-$!
-$! End DECC Check.
-$!
-$ ENDIF
-$!
-$! Check To See If We Are To Use VAXC.
-$!
-$ IF (P3.EQS."VAXC")
-$ THEN
-$!
-$! Looks Like VAXC, Set To Use VAXC.
-$!
-$ COMPILER = "VAXC"
-$!
-$! Tell The User We Are Using VAX C.
-$!
-$ WRITE SYS$OUTPUT "Using VAXC 'C' Compiler."
-$!
-$! Compile Using VAXC.
-$!
-$ CC = "CC"
-$ IF ARCH.NES."VAX"
-$ THEN
-$ WRITE SYS$OUTPUT "There is no VAX C on ''ARCH'!"
-$ EXIT
-$ ENDIF
-$ IF F$TRNLNM("DECC$CC_DEFAULT").EQS."/DECC" THEN CC = "CC/VAXC"
-$ CC = CC + "/''CC_OPTIMIZE'/''DEBUGGER'/NOLIST" + -
- "/INCLUDE=(''CC_INCLUDES')"+ -
- CCEXTRAFLAGS
-$ CCDEFS = """VAXC""," + CCDEFS
-$!
-$! Define <sys> As SYS$COMMON:[SYSLIB]
-$!
-$ DEFINE/NOLOG SYS SYS$COMMON:[SYSLIB]
-$!
-$! Define The Linker Options File Name.
-$!
-$ OPT_FILE = "VAX_VAXC_OPTIONS.OPT"
-$!
-$! End VAXC Check
-$!
-$ ENDIF
-$!
-$! Check To See If We Are To Use GNU C.
-$!
-$ IF (P3.EQS."GNUC")
-$ THEN
-$!
-$! Looks Like GNUC, Set To Use GNUC.
-$!
-$ COMPILER = "GNUC"
-$!
-$! Tell The User We Are Using GNUC.
-$!
-$ WRITE SYS$OUTPUT "Using GNU 'C' Compiler."
-$!
-$! Use GNU C...
-$!
-$ CC = "GCC/NOCASE_HACK/''GCC_OPTIMIZE'/''DEBUGGER'/NOLIST" + -
- "/INCLUDE=(''CC_INCLUDES')"+ -
- CCEXTRAFLAGS
-$!
-$! Define The Linker Options File Name.
-$!
-$ OPT_FILE = "VAX_GNUC_OPTIONS.OPT"
-$!
-$! End The GNU C Check.
-$!
-$ ENDIF
-$!
-$! Set up default defines
-$!
-$ CCDEFS = """FLAT_INC=1""," + CCDEFS
-$!
-$! Finish up the definition of CC.
-$!
-$ IF COMPILER .EQS. "DECC"
-$ THEN
-$ IF CCDISABLEWARNINGS .EQS. ""
-$ THEN
-$ CC4DISABLEWARNINGS = "DOLLARID"
-$ CC6DISABLEWARNINGS = "MIXLINKAGE"
-$ ELSE
-$ CC4DISABLEWARNINGS = CCDISABLEWARNINGS + ",DOLLARID"
-$ CC6DISABLEWARNINGS = CCDISABLEWARNINGS + ",MIXLINKAGE"
-$ CCDISABLEWARNINGS = " /WARNING=(DISABLE=(" + CCDISABLEWARNINGS + "))"
-$ ENDIF
-$ CC4DISABLEWARNINGS = " /WARNING=(DISABLE=(" + CC4DISABLEWARNINGS + "))"
-$ CC6DISABLEWARNINGS = " /WARNING=(DISABLE=(" + CC6DISABLEWARNINGS + "))"
-$ ELSE
-$ CCDISABLEWARNINGS = ""
-$ CC4DISABLEWARNINGS = ""
-$ CC6DISABLEWARNINGS = ""
-$ ENDIF
-$ CC3 = CC + " /DEFINE=(" + CCDEFS + ISSEVEN + ")" + CCDISABLEWARNINGS
-$ CC = CC + " /DEFINE=(" + CCDEFS + ")" + CCDISABLEWARNINGS
-$ IF ARCH .EQS. "VAX" .AND. COMPILER .EQS. "DECC" .AND. P2 .NES. "DEBUG"
-$ THEN
-$ CC5 = CC + " /OPTIMIZE=NODISJOINT"
-$ CC5_DIFFERENT = 1
-$ ELSE
-$ CC5 = CC
-$ CC5_DIFFERENT = 0
-$ ENDIF
-$ CC4 = CC - CCDISABLEWARNINGS + CC4DISABLEWARNINGS
-$ CC6 = CC - CCDISABLEWARNINGS + CC6DISABLEWARNINGS
-$!
-$! Show user the result
-$!
-$ WRITE/SYMBOL SYS$OUTPUT "Main C Compiling Command: ",CC
-$!
-$! Else The User Entered An Invalid Argument.
-$!
-$ ELSE
-$!
-$! Tell The User We Don't Know What They Want.
-$!
-$ WRITE SYS$OUTPUT ""
-$ WRITE SYS$OUTPUT "The Option ",P3," Is Invalid. The Valid Options Are:"
-$ WRITE SYS$OUTPUT ""
-$ WRITE SYS$OUTPUT " VAXC : To Compile With VAX C."
-$ WRITE SYS$OUTPUT " DECC : To Compile With DEC C."
-$ WRITE SYS$OUTPUT " GNUC : To Compile With GNU C."
-$ WRITE SYS$OUTPUT ""
-$!
-$! Time To EXIT.
-$!
-$ EXIT
-$!
-$! End The Valid Argument Check.
-$!
-$ ENDIF
-$!
-$! Build a MACRO command for the architecture at hand
-$!
-$ IF ARCH .EQS. "VAX" THEN MACRO = "MACRO/''DEBUGGER'"
-$ IF ARCH .NES. "VAX" THEN MACRO = "MACRO/MIGRATION/''DEBUGGER'/''MACRO_OPTIMIZE'"
-$!
-$! Show user the result
-$!
-$ WRITE/SYMBOL SYS$OUTPUT "Main MACRO Compiling Command: ",MACRO
-$!
-$! Time to check the contents, and to make sure we get the correct library.
-$!
-$ IF P4.EQS."SOCKETSHR" .OR. P4.EQS."MULTINET" .OR. P4.EQS."UCX" -
- .OR. P4.EQS."TCPIP" .OR. P4.EQS."NONE"
-$ THEN
-$!
-$! Check to see if SOCKETSHR was chosen
-$!
-$ IF P4.EQS."SOCKETSHR"
-$ THEN
-$!
-$! Set the library to use SOCKETSHR
-$!
-$ TCPIP_LIB = ",SYS$DISK:[-.VMS]SOCKETSHR_SHR.OPT /OPTIONS"
-$!
-$! Done with SOCKETSHR
-$!
-$ ENDIF
-$!
-$! Check to see if MULTINET was chosen
-$!
-$ IF P4.EQS."MULTINET"
-$ THEN
-$!
-$! Set the library to use UCX emulation.
-$!
-$ P4 = "UCX"
-$!
-$! Done with MULTINET
-$!
-$ ENDIF
-$!
-$! Check to see if UCX was chosen
-$!
-$ IF P4.EQS."UCX"
-$ THEN
-$!
-$! Set the library to use UCX.
-$!
-$ TCPIP_LIB = ",SYS$DISK:[-.VMS]UCX_SHR_DECC.OPT /OPTIONS"
-$ IF F$TRNLNM("UCX$IPC_SHR") .NES. ""
-$ THEN
-$ TCPIP_LIB = ",SYS$DISK:[-.VMS]UCX_SHR_DECC_LOG.OPT /OPTIONS"
-$ ELSE
-$ IF COMPILER .NES. "DECC" .AND. ARCH .EQS. "VAX" THEN -
- TCPIP_LIB = ",SYS$DISK:[-.VMS]UCX_SHR_VAXC.OPT /OPTIONS"
-$ ENDIF
-$!
-$! Done with UCX
-$!
-$ ENDIF
-$!
-$! Check to see if TCPIP was chosen
-$!
-$ IF P4.EQS."TCPIP"
-$ THEN
-$!
-$! Set the library to use TCPIP (post UCX).
-$!
-$ TCPIP_LIB = ",SYS$DISK:[-.VMS]TCPIP_SHR_DECC.OPT /OPTIONS"
-$!
-$! Done with TCPIP
-$!
-$ ENDIF
-$!
-$! Check to see if NONE was chosen
-$!
-$ IF P4.EQS."NONE"
-$ THEN
-$!
-$! Do not use a TCPIP library.
-$!
-$ TCPIP_LIB = ""
-$!
-$! Done with TCPIP
-$!
-$ ENDIF
-$!
-$! Print info
-$!
-$ WRITE SYS$OUTPUT "TCP/IP library spec: ", TCPIP_LIB- ","
-$!
-$! Else The User Entered An Invalid Argument.
-$!
-$ ELSE
-$!
-$! Tell The User We Don't Know What They Want.
-$!
-$ WRITE SYS$OUTPUT ""
-$ WRITE SYS$OUTPUT "The Option ",P4," Is Invalid. The Valid Options Are:"
-$ WRITE SYS$OUTPUT ""
-$ WRITE SYS$OUTPUT " SOCKETSHR : To link with SOCKETSHR TCP/IP library."
-$ WRITE SYS$OUTPUT " UCX : To link with UCX TCP/IP library."
-$ WRITE SYS$OUTPUT " TCPIP : To link with TCPIP (post UCX) TCP/IP library."
-$ WRITE SYS$OUTPUT ""
-$!
-$! Time To EXIT.
-$!
-$ EXIT
-$!
-$! Done with TCP/IP libraries
-$!
-$ ENDIF
-$!
-$! Check if the user wanted to compile just a subset of all the encryption
-$! methods.
-$!
-$ IF P6 .NES. ""
-$ THEN
-$ ENCRYPT_TYPES = P6
-$ ENDIF
-$!
-$! Time To RETURN...
-$!
-$ RETURN
-$!
-$ INITIALISE:
-$!
-$! Save old value of the logical name OPENSSL
-$!
-$ __SAVE_OPENSSL = F$TRNLNM("OPENSSL","LNM$PROCESS_TABLE")
-$!
-$! Save directory information
-$!
-$ __HERE = F$PARSE(F$PARSE("A.;",F$ENVIRONMENT("PROCEDURE"))-"A.;","[]A.;") - "A.;"
-$ __HERE = F$EDIT(__HERE,"UPCASE")
-$ __TOP = __HERE - "CRYPTO]"
-$ __INCLUDE = __TOP + "INCLUDE.OPENSSL]"
-$ __INTERNAL = __TOP + "CRYPTO.INCLUDE.INTERNAL]"
-$!
-$! Set up the logical name OPENSSL to point at the include directory
-$!
-$ DEFINE OPENSSL/NOLOG '__INCLUDE'
-$ DEFINE INTERNAL/NOLOG '__INTERNAL'
-$!
-$! Done
-$!
-$ RETURN
-$!
-$ CLEANUP:
-$!
-$! Restore the logical name OPENSSL if it had a value
-$!
-$ IF __SAVE_OPENSSL .EQS. ""
-$ THEN
-$ DEASSIGN OPENSSL
-$ DEASSIGN INTERNAL
-$ ELSE
-$ DEFINE/NOLOG OPENSSL '__SAVE_OPENSSL'
-$ ENDIF
-$!
-$! Done
-$!
-$ RETURN
diff --git a/crypto/des/build.info b/crypto/des/build.info
index 5113867..5fabddf 100644
--- a/crypto/des/build.info
+++ b/crypto/des/build.info
@@ -7,3 +7,17 @@ SOURCE[../../libcrypto]=\
{- $target{des_asm_src} -} \
fcrypt.c xcbc_enc.c rpc_enc.c cbc_cksm.c \
read2pwd.c
+
+BEGINRAW[Makefile]
+##### DES assembler implementations
+
+{- $builddir -}/des_enc-sparc.S: {- $sourcedir -}/asm/des_enc.m4
+ m4 -B 8192 {- $sourcedir -}/asm/des_enc.m4 > $@
+{- $builddir -}/dest4-sparcv9.s: {- $sourcedir -}/asm/dest4-sparcv9.pl
+ $(PERL) {- $sourcedir -}/asm/dest4-sparcv9.pl $(CFLAGS) > $@
+
+{- $builddir -}/des-586.s: {- $sourcedir -}/asm/des-586.pl {- $sourcetop -}/crypto/perlasm/x86asm.pl {- $sourcetop -}/crypto/perlasm/cbc.pl
+ $(PERL) {- $sourcedir -}/asm/des-586.pl $(PERLASM_SCHEME) $(CFLAGS) > $@
+{- $builddir -}/crypt586.s: {- $sourcedir -}/asm/crypt586.pl {- $sourcetop -}/crypto/perlasm/x86asm.pl {- $sourcetop -}/crypto/perlasm/cbc.pl
+ $(PERL) {- $sourcedir -}/asm/crypt586.pl $(PERLASM_SCHEME) $(CFLAGS) > $@
+ENDRAW[Makefile]
diff --git a/crypto/ec/build.info b/crypto/ec/build.info
index 1e68559..8ba6db0 100644
--- a/crypto/ec/build.info
+++ b/crypto/ec/build.info
@@ -6,3 +6,20 @@ SOURCE[../../libcrypto]=\
ecp_nistp224.c ecp_nistp256.c ecp_nistp521.c ecp_nistputil.c \
ecp_oct.c ec2_oct.c ec_oct.c ec_kmeth.c ecdh_ossl.c ecdh_kdf.c \
ecdsa_ossl.c ecdsa_sign.c ecdsa_vrf.c {- $target{ec_asm_src} -}
+
+BEGINRAW[Makefile]
+{- $builddir -}/ecp_nistz256-x86.s: {- $sourcedir -}/asm/ecp_nistz256-x86.pl
+ $(PERL) {- $sourcedir -}/asm/ecp_nistz256-x86.pl $(PERLASM_SCHEME) $(CFLAGS) $(PROCESSOR) > $@
+
+{- $builddir -}/ecp_nistz256-x86_64.s: {- $sourcedir -}/asm/ecp_nistz256-x86_64.pl
+ $(PERL) {- $sourcedir -}/asm/ecp_nistz256-x86_64.pl $(PERLASM_SCHEME) > $@
+
+{- $builddir -}/ecp_nistz256-avx2.s: {- $sourcedir -}/asm/ecp_nistz256-avx2.pl
+ $(PERL) {- $sourcedir -}/asm/ecp_nistz256-avx2.pl $(PERLASM_SCHEME) > $@
+
+{- $builddir -}/ecp_nistz256-sparcv9.S: {- $sourcedir -}/asm/ecp_nistz256-sparcv9.pl
+ $(PERL) {- $sourcedir -}/asm/ecp_nistz256-sparcv9.pl $(CFLAGS) > $@
+
+{- $builddir -}/ecp_nistz256-%.S: {- $sourcedir -}/asm/ecp_nistz256-%.pl
+ $(PERL) $< $(PERLASM_SCHEME) $@
+ENDRAW[Makefile]
diff --git a/crypto/install-crypto.com b/crypto/install-crypto.com
deleted file mode 100755
index 5b011f6..0000000
--- a/crypto/install-crypto.com
+++ /dev/null
@@ -1,197 +0,0 @@
-$! INSTALL.COM -- Installs the files in a given directory tree
-$!
-$! Author: Richard Levitte <richard at levitte.org>
-$! Time of creation: 22-MAY-1998 10:13
-$!
-$! Changes by Zoltan Arpadffy <zoli at polarhome.com>
-$!
-$! P1 root of the directory tree
-$! P2 "64" for 64-bit pointers.
-$!
-$!
-$! Announce/identify.
-$!
-$ proc = f$environment( "procedure")
-$ write sys$output "@@@ "+ -
- f$parse( proc, , , "name")+ f$parse( proc, , , "type")
-$!
-$ on error then goto tidy
-$ on control_c then goto tidy
-$!
-$ if (p1 .eqs. "")
-$ then
-$ write sys$output "First argument missing."
-$ write sys$output -
- "It should be the directory where you want things installed."
-$ exit
-$ endif
-$!
-$ if (f$getsyi( "cpu") .lt. 128)
-$ then
-$ arch = "VAX"
-$ else
-$ arch = f$edit( f$getsyi( "arch_name"), "upcase")
-$ if (arch .eqs. "") then arch = "UNK"
-$ endif
-$!
-$ archd = arch
-$ lib32 = "32"
-$ shr = "_SHR32"
-$!
-$ if (p2 .nes. "")
-$ then
-$ if (p2 .eqs. "64")
-$ then
-$ archd = arch+ "_64"
-$ lib32 = ""
-$ shr = "_SHR"
-$ else
-$ if (p2 .nes. "32")
-$ then
-$ write sys$output "Second argument invalid."
-$ write sys$output "It should be "32", "64", or nothing."
-$ exit
-$ endif
-$ endif
-$ endif
-$!
-$ root = f$parse( p1, "[]A.;0", , , "syntax_only, no_conceal") - "A.;0"
-$ root_dev = f$parse( root, , , "device", "syntax_only")
-$ root_dir = f$parse( root, , , "directory", "syntax_only") - -
- "[000000." - "][" - "[" - "]"
-$ root = root_dev + "[" + root_dir
-$!
-$ define /nolog wrk_sslroot 'root'.] /trans=conc
-$ define /nolog wrk_sslinclude wrk_sslroot:[include]
-$ define /nolog wrk_sslxlib wrk_sslroot:['arch'_lib]
-$!
-$ if f$parse("wrk_sslroot:[000000]") .eqs. "" then -
- create /directory /log wrk_sslroot:[000000]
-$ if f$parse("wrk_sslinclude:") .eqs. "" then -
- create /directory /log wrk_sslinclude:
-$ if f$parse("wrk_sslxlib:") .eqs. "" then -
- create /directory /log wrk_sslxlib:
-$!
-$ sdirs := , -
- 'archd', -
- objects, -
- md2, md4, md5, sha, mdc2, hmac, ripemd, whrlpool, -
- des, aes, rc2, rc4, rc5, idea, bf, cast, camellia, seed, modes, -
- bn, ec, rsa, dsa, ecdsa, dh, ecdh, dso, engine, -
- buffer, bio, stack, lhash, rand, err, -
- evp, asn1, pem, x509, x509v3, conf, txt_db, pkcs7, pkcs12, comp, ocsp, -
- ui, -
- cms, pqueue, ts, jpake, srp, store, cmac
-$!
-$ exheader_ := crypto.h, opensslv.h, ebcdic.h, symhacks.h, ossl_typ.h
-$ exheader_'archd' := opensslconf.h
-$ exheader_objects := objects.h, obj_mac.h
-$ exheader_md2 := md2.h
-$ exheader_md4 := md4.h
-$ exheader_md5 := md5.h
-$ exheader_sha := sha.h
-$ exheader_mdc2 := mdc2.h
-$ exheader_hmac := hmac.h
-$ exheader_ripemd := ripemd.h
-$ exheader_whrlpool := whrlpool.h
-$ exheader_des := des.h
-$ exheader_aes := aes.h
-$ exheader_rc2 := rc2.h
-$ exheader_rc4 := rc4.h
-$ exheader_rc5 := rc5.h
-$ exheader_idea := idea.h
-$ exheader_bf := blowfish.h
-$ exheader_cast := cast.h
-$ exheader_camellia := camellia.h
-$ exheader_seed := seed.h
-$ exheader_modes := modes.h
-$ exheader_bn := bn.h
-$ exheader_ec := ec.h
-$ exheader_rsa := rsa.h
-$ exheader_dsa := dsa.h
-$ exheader_ecdsa := ecdsa.h
-$ exheader_dh := dh.h
-$ exheader_ecdh := ecdh.h
-$ exheader_dso := dso.h
-$ exheader_engine := engine.h
-$ exheader_buffer := buffer.h
-$ exheader_bio := bio.h
-$ exheader_stack := stack.h, safestack.h
-$ exheader_lhash := lhash.h
-$ exheader_rand := rand.h
-$ exheader_err := err.h
-$ exheader_evp := evp.h
-$ exheader_asn1 := asn1.h, asn1_mac.h, asn1t.h
-$ exheader_pem := pem.h, pem2.h
-$ exheader_x509 := x509.h, x509_vfy.h
-$ exheader_x509v3 := x509v3.h
-$ exheader_conf := conf.h, conf_api.h
-$ exheader_txt_db := txt_db.h
-$ exheader_pkcs7 := pkcs7.h
-$ exheader_pkcs12 := pkcs12.h
-$ exheader_comp := comp.h
-$ exheader_ocsp := ocsp.h
-$ exheader_ui := ui.h
-$ exheader_cms := cms.h
-$ exheader_pqueue := pqueue.h
-$ exheader_ts := ts.h
-$ exheader_jpake := jpake.h
-$ exheader_srp := srp.h
-$! exheader_store := store.h, str_compat.h
-$ exheader_store := store.h
-$ exheader_cmac := cmac.h
-$ libs := ssl_libcrypto
-$!
-$ exe_dir := [-.'archd'.exe.crypto]
-$!
-$! Header files.
-$!
-$ i = 0
-$ loop_sdirs:
-$ d = f$edit( f$element( i, ",", sdirs), "trim")
-$ i = i + 1
-$ if d .eqs. "," then goto loop_sdirs_end
-$ tmp = exheader_'d'
-$ if (d .nes. "") then d = "."+ d
-$ copy /protection = w:re ['d']'tmp' wrk_sslinclude: /log
-$ goto loop_sdirs
-$ loop_sdirs_end:
-$!
-$! Object libraries, shareable images.
-$!
-$ i = 0
-$ loop_lib:
-$ e = f$edit( f$element( i, ",", libs), "trim")
-$ i = i + 1
-$ if e .eqs. "," then goto loop_lib_end
-$ set noon
-$ file = exe_dir+ e+ lib32+ ".olb"
-$ if f$search( file) .nes. ""
-$ then
-$ copy /protection = w:re 'file' wrk_sslxlib: /log
-$ endif
-$!
-$ file = exe_dir+ e+ shr+ ".exe"
-$ if f$search( file) .nes. ""
-$ then
-$ copy /protection = w:re 'file' wrk_sslxlib: /log
-$ endif
-$ set on
-$ goto loop_lib
-$ loop_lib_end:
-$!
-$ tidy:
-$!
-$ call deass wrk_sslroot
-$ call deass wrk_sslinclude
-$ call deass wrk_sslxlib
-$!
-$ exit
-$!
-$ deass: subroutine
-$ if (f$trnlnm( p1, "LNM$PROCESS") .nes. "")
-$ then
-$ deassign /process 'p1'
-$ endif
-$ endsubroutine
-$!
diff --git a/crypto/md5/build.info b/crypto/md5/build.info
index 3a03853..eff8c6f 100644
--- a/crypto/md5/build.info
+++ b/crypto/md5/build.info
@@ -1,3 +1,18 @@
LIBS=../../libcrypto
SOURCE[../../libcrypto]=\
md5_dgst.c md5_one.c {- $target{md5_asm_src} -}
+
+BEGINRAW[Makefile]
+{- $builddir -}/md5-586.s: {- $sourcedir -}/asm/md5-586.pl {- $sourcetop -}/crypto/perlasm/x86asm.pl
+ $(PERL) {- $sourcedir -}/asm/md5-586.pl $(PERLASM_SCHEME) $(CFLAGS) > $@
+
+{- $builddir -}/md5-x86_64.s: {- $sourcedir -}/asm/md5-x86_64.pl
+ $(PERL) {- $sourcedir -}/asm/md5-x86_64.pl $(PERLASM_SCHEME) > $@
+
+{- $builddir -}/md5-ia64.s: {- $sourcedir -}/asm/md5-ia64.S
+ $(CC) $(CFLAGS) -E {- $sourcedir -}/asm/md5-ia64.S | \
+ $(PERL) -ne 's/;\s+/;\n/g; print;' > $@
+
+{- $builddir -}/md5-sparcv9.S: {- $sourcedir -}/asm/md5-sparcv9.pl
+ $(PERL) {- $sourcedir -}/asm/md5-sparcv9.pl $@ $(CFLAGS)
+ENDRAW[Makefile]
diff --git a/crypto/modes/build.info b/crypto/modes/build.info
index 98ca345..d10a97d 100644
--- a/crypto/modes/build.info
+++ b/crypto/modes/build.info
@@ -3,3 +3,30 @@ SOURCE[../../libcrypto]=\
cbc128.c ctr128.c cts128.c cfb128.c ofb128.c gcm128.c \
ccm128.c xts128.c wrap128.c ocb128.c \
{- $target{modes_asm_src} -}
+
+BEGINRAW[Makefile]
+{- $builddir -}/ghash-ia64.s: {- $sourcedir -}/asm/ghash-ia64.pl
+ $(PERL) {- $sourcedir -}/asm/ghash-ia64.pl $@ $(CFLAGS)
+{- $builddir -}/ghash-x86.s: {- $sourcedir -}/asm/ghash-x86.pl
+ $(PERL) {- $sourcedir -}/asm/ghash-x86.pl $(PERLASM_SCHEME) $(CFLAGS) $(PROCESSOR) > $@
+{- $builddir -}/ghash-x86_64.s: {- $sourcedir -}/asm/ghash-x86_64.pl
+ $(PERL) {- $sourcedir -}/asm/ghash-x86_64.pl $(PERLASM_SCHEME) > $@
+{- $builddir -}/aesni-gcm-x86_64.s: {- $sourcedir -}/asm/aesni-gcm-x86_64.pl
+ $(PERL) {- $sourcedir -}/asm/aesni-gcm-x86_64.pl $(PERLASM_SCHEME) > $@
+{- $builddir -}/ghash-sparcv9.s: {- $sourcedir -}/asm/ghash-sparcv9.pl
+ $(PERL) {- $sourcedir -}/asm/ghash-sparcv9.pl $@ $(CFLAGS)
+{- $builddir -}/ghash-alpha.s: {- $sourcedir -}/asm/ghash-alpha.pl
+ (preproc=$$$$.$@.S; trap "rm $$preproc" INT; \
+ $(PERL) {- $sourcedir -}/asm/ghash-alpha.pl > $$preproc && \
+ $(CC) -E -P $$preproc > $@ && rm $$preproc)
+{- $builddir -}/ghash-parisc.s: {- $sourcedir -}/asm/ghash-parisc.pl
+ $(PERL) {- $sourcedir -}/asm/ghash-parisc.pl $(PERLASM_SCHEME) $@
+{- $builddir -}/ghashv8-armx.S: {- $sourcedir -}/asm/ghashv8-armx.pl
+ $(PERL) {- $sourcedir -}/asm/ghashv8-armx.pl $(PERLASM_SCHEME) $@
+{- $builddir -}/ghashp8-ppc.s: {- $sourcedir -}/asm/ghashp8-ppc.pl
+ $(PERL) {- $sourcedir -}/asm/ghashp8-ppc.pl $(PERLASM_SCHEME) $@
+
+# GNU make "catch all"
+{- $builddir -}/ghash-%.S: {- $sourcedir -}/asm/ghash-%.pl
+ $(PERL) $< $(PERLASM_SCHEME) $@
+ENDRAW[Makefile]
diff --git a/crypto/poly1305/build.info b/crypto/poly1305/build.info
index 35d4fa8..0b59b9f 100644
--- a/crypto/poly1305/build.info
+++ b/crypto/poly1305/build.info
@@ -1,3 +1,15 @@
LIBS=../../libcrypto
SOURCE[../../libcrypto]=\
poly1305.c {- $target{poly1305_asm_src} -}
+
+BEGINRAW[Makefile(unix)]
+{- $builddir -}/poly1305-sparcv9.S: {- $sourcedir -}/asm/poly1305-sparcv9.pl
+ $(PERL) {- $sourcedir -}/asm/poly1305-sparcv9.pl > $@
+{- $builddir -}/poly1305-x86.s: {- $sourcedir -}/asm/poly1305-x86.pl
+ $(PERL) {- $sourcedir -}/asm/poly1305-x86.pl $(PERLASM_SCHEME) $(CFLAGS) $(PROCESSOR) > $@
+{- $builddir -}/poly1305-x86_64.s: {- $sourcedir -}/asm/poly1305-x86_64.pl
+ $(PERL) {- $sourcedir -}/asm/poly1305-x86_64.pl $(PERLASM_SCHEME) > $@
+
+{- $builddir -}/poly1305-%.S: {- $sourcedir -}/asm/poly1305-%.pl
+ $(PERL) $< $(PERLASM_SCHEME) $@
+ENDRAW[Makefile(unix)]
diff --git a/crypto/rand/build.info b/crypto/rand/build.info
index 6dfce13..b0712b2 100644
--- a/crypto/rand/build.info
+++ b/crypto/rand/build.info
@@ -1,4 +1,4 @@
LIBS=../../libcrypto
SOURCE[../../libcrypto]=\
md_rand.c randfile.c rand_lib.c rand_err.c rand_egd.c \
- rand_win.c rand_unix.c rand_os2.c rand_nw.c
+ rand_win.c rand_unix.c rand_vms.c rand_os2.c rand_nw.c
diff --git a/crypto/rc4/build.info b/crypto/rc4/build.info
index 9e77a81..f2c4e2a 100644
--- a/crypto/rc4/build.info
+++ b/crypto/rc4/build.info
@@ -1,3 +1,30 @@
LIBS=../../libcrypto
SOURCE[../../libcrypto]=\
{- $target{rc4_asm_src} -}
+
+BEGINRAW[Makefile]
+{- $builddir -}/rc4-586.s: {- $sourcedir -}/asm/rc4-586.pl {- $sourcetop -}/crypto/perlasm/x86asm.pl
+ $(PERL) {- $sourcedir -}/asm/rc4-586.pl $(PERLASM_SCHEME) $(CFLAGS) $(PROCESSOR) > $@
+
+{- $builddir -}/rc4-x86_64.s: {- $sourcedir -}/asm/rc4-x86_64.pl
+ $(PERL) {- $sourcedir -}/asm/rc4-x86_64.pl $(PERLASM_SCHEME) > $@
+{- $builddir -}/rc4-md5-x86_64.s: {- $sourcedir -}/asm/rc4-md5-x86_64.pl
+ $(PERL) {- $sourcedir -}/asm/rc4-md5-x86_64.pl $(PERLASM_SCHEME) > $@
+
+{- $builddir -}/rc4-ia64.S: {- $sourcedir -}/asm/rc4-ia64.pl
+ $(PERL) {- $sourcedir -}/asm/rc4-ia64.pl $(CFLAGS) > $@
+
+{- $builddir -}/rc4-parisc.s: {- $sourcedir -}/asm/rc4-parisc.pl
+ $(PERL) {- $sourcedir -}/asm/rc4-parisc.pl $(PERLASM_SCHEME) $@
+
+{- $builddir -}/rc4-ia64.s: rc4-ia64.S
+ @case `awk '/^#define RC4_INT/{print$$NF}' $(TOP)/include/openssl/opensslconf.h` in \
+ int) set -x; $(CC) $(CFLAGS) -DSZ=4 -E rc4-ia64.S > $@ ;; \
+ char) set -x; $(CC) $(CFLAGS) -DSZ=1 -E rc4-ia64.S > $@ ;; \
+ *) exit 1 ;; \
+ esac
+
+# GNU make "catch all"
+{- $builddir -}/rc4-%.s: {- $sourcedir -}/asm/rc4-%.pl
+ $(PERL) $< $(PERLASM_SCHEME) $@
+ENDRAW[Makefile]
diff --git a/crypto/rc5/build.info b/crypto/rc5/build.info
index 956d21f..af38f92 100644
--- a/crypto/rc5/build.info
+++ b/crypto/rc5/build.info
@@ -1,3 +1,10 @@
LIBS=../../libcrypto
SOURCE[../../libcrypto]=\
rc5_skey.c rc5_ecb.c {- $target{rc5_asm_src} -} rc5cfb64.c rc5ofb64.c
+
+BEGINRAW[Makefile]
+##### RC5 assembler implementations
+
+{- $builddir -}/rc5-586.s: {- $sourcedir -}/asm/rc5-586.pl {- $sourcetop -}/crypto/perlasm/x86asm.pl {- $sourcetop -}/crypto/perlasm/cbc.pl
+ $(PERL) {- $sourcedir -}/asm/rc5-586.pl $(PERLASM_SCHEME) $(CFLAGS) > $@
+ENDRAW[Makefile]
diff --git a/crypto/ripemd/build.info b/crypto/ripemd/build.info
index c5dd4c4..5f63598 100644
--- a/crypto/ripemd/build.info
+++ b/crypto/ripemd/build.info
@@ -1,3 +1,10 @@
LIBS=../../libcrypto
SOURCE[../../libcrypto]=\
rmd_dgst.c rmd_one.c {- $target{rmd160_asm_src} -}
+
+BEGINRAW[Makefile]
+##### RMD160 assembler implementations
+
+{- $builddir -}/rmd-586.s: {- $sourcedir -}/asm/rmd-586.pl {- $sourcetop -}/crypto/perlasm/x86asm.pl
+ $(PERL) {- $sourcedir -}/asm/rmd-586.pl $(PERLASM_SCHEME) $(CFLAGS) > $@
+ENDRAW[Makefile]
diff --git a/crypto/sha/build.info b/crypto/sha/build.info
index eef0e46..1af0497 100644
--- a/crypto/sha/build.info
+++ b/crypto/sha/build.info
@@ -1,3 +1,80 @@
LIBS=../../libcrypto
SOURCE[../../libcrypto]=\
sha1dgst.c sha1_one.c sha256.c sha512.c {- $target{sha1_asm_src} -}
+
+BEGINRAW[Makefile]
+##### SHA assembler implementations
+
+{- $builddir -}/sha1-586.s: {- $sourcedir -}/asm/sha1-586.pl {- $sourcetop -}/crypto/perlasm/x86asm.pl
+ $(PERL) {- $sourcedir -}/asm/sha1-586.pl $(PERLASM_SCHEME) $(CFLAGS) $(PROCESSOR) > $@
+{- $builddir -}/sha256-586.s: {- $sourcedir -}/asm/sha256-586.pl {- $sourcetop -}/crypto/perlasm/x86asm.pl
+ $(PERL) {- $sourcedir -}/asm/sha256-586.pl $(PERLASM_SCHEME) $(CFLAGS) $(PROCESSOR) > $@
+{- $builddir -}/sha512-586.s: {- $sourcedir -}/asm/sha512-586.pl {- $sourcetop -}/crypto/perlasm/x86asm.pl
+ $(PERL) {- $sourcedir -}/asm/sha512-586.pl $(PERLASM_SCHEME) $(CFLAGS) $(PROCESSOR) > $@
+
+{- $builddir -}/sha1-ia64.s: {- $sourcedir -}/asm/sha1-ia64.pl
+ (cd asm; $(PERL) sha1-ia64.pl ../$@ $(CFLAGS))
+{- $builddir -}/sha256-ia64.s: {- $sourcedir -}/asm/sha512-ia64.pl
+ (cd asm; $(PERL) sha512-ia64.pl ../$@ $(CFLAGS))
+{- $builddir -}/sha512-ia64.s: {- $sourcedir -}/asm/sha512-ia64.pl
+ (cd asm; $(PERL) sha512-ia64.pl ../$@ $(CFLAGS))
+
+{- $builddir -}/sha256-armv4.S: {- $sourcedir -}/asm/sha256-armv4.pl
+ $(PERL) $< $(PERLASM_SCHEME) $@
+
+{- $builddir -}/sha1-alpha.s: {- $sourcedir -}/asm/sha1-alpha.pl
+ (preproc=$$$$.$@.S; trap "rm $$preproc" INT; \
+ $(PERL) {- $sourcedir -}/asm/sha1-alpha.pl > $$preproc && \
+ $(CC) -E -P $$preproc > $@ && rm $$preproc)
+
+# Solaris make has to be explicitly told
+{- $builddir -}/sha1-x86_64.s: {- $sourcedir -}/asm/sha1-x86_64.pl
+ $(PERL) {- $sourcedir -}/asm/sha1-x86_64.pl $(PERLASM_SCHEME) > $@
+{- $builddir -}/sha1-mb-x86_64.s: {- $sourcedir -}/asm/sha1-mb-x86_64.pl
+ $(PERL) {- $sourcedir -}/asm/sha1-mb-x86_64.pl $(PERLASM_SCHEME) > $@
+{- $builddir -}/sha256-x86_64.s:{- $sourcedir -}/asm/sha512-x86_64.pl
+ $(PERL) {- $sourcedir -}/asm/sha512-x86_64.pl $(PERLASM_SCHEME) $@
+{- $builddir -}/sha256-mb-x86_64.s: {- $sourcedir -}/asm/sha256-mb-x86_64.pl
+ $(PERL) {- $sourcedir -}/asm/sha256-mb-x86_64.pl $(PERLASM_SCHEME) > $@
+{- $builddir -}/sha512-x86_64.s:{- $sourcedir -}/asm/sha512-x86_64.pl
+ $(PERL) {- $sourcedir -}/asm/sha512-x86_64.pl $(PERLASM_SCHEME) $@
+{- $builddir -}/sha1-sparcv9.S: {- $sourcedir -}/asm/sha1-sparcv9.pl
+ $(PERL) {- $sourcedir -}/asm/sha1-sparcv9.pl $@ $(CFLAGS)
+{- $builddir -}/sha256-sparcv9.S:{- $sourcedir -}/asm/sha512-sparcv9.pl
+ $(PERL) {- $sourcedir -}/asm/sha512-sparcv9.pl $@ $(CFLAGS)
+{- $builddir -}/sha512-sparcv9.S:{- $sourcedir -}/asm/sha512-sparcv9.pl
+ $(PERL) {- $sourcedir -}/asm/sha512-sparcv9.pl $@ $(CFLAGS)
+
+{- $builddir -}/sha1-ppc.s: {- $sourcedir -}/asm/sha1-ppc.pl
+ $(PERL) {- $sourcedir -}/asm/sha1-ppc.pl $(PERLASM_SCHEME) $@
+{- $builddir -}/sha256-ppc.s: {- $sourcedir -}/asm/sha512-ppc.pl
+ $(PERL) {- $sourcedir -}/asm/sha512-ppc.pl $(PERLASM_SCHEME) $@
+{- $builddir -}/sha512-ppc.s: {- $sourcedir -}/asm/sha512-ppc.pl
+ $(PERL) {- $sourcedir -}/asm/sha512-ppc.pl $(PERLASM_SCHEME) $@
+{- $builddir -}/sha256p8-ppc.s: {- $sourcedir -}/asm/sha512p8-ppc.pl
+ $(PERL) {- $sourcedir -}/asm/sha512p8-ppc.pl $(PERLASM_SCHEME) $@
+{- $builddir -}/sha512p8-ppc.s: {- $sourcedir -}/asm/sha512p8-ppc.pl
+ $(PERL) {- $sourcedir -}/asm/sha512p8-ppc.pl $(PERLASM_SCHEME) $@
+
+{- $builddir -}/sha1-parisc.s: {- $sourcedir -}/asm/sha1-parisc.pl
+ $(PERL) {- $sourcedir -}/asm/sha1-parisc.pl $(PERLASM_SCHEME) $@
+{- $builddir -}/sha256-parisc.s:{- $sourcedir -}/asm/sha512-parisc.pl
+ $(PERL) {- $sourcedir -}/asm/sha512-parisc.pl $(PERLASM_SCHEME) $@
+{- $builddir -}/sha512-parisc.s:{- $sourcedir -}/asm/sha512-parisc.pl
+ $(PERL) {- $sourcedir -}/asm/sha512-parisc.pl $(PERLASM_SCHEME) $@
+
+{- $builddir -}/sha1-mips.S: {- $sourcedir -}/asm/sha1-mips.pl
+ $(PERL) {- $sourcedir -}/asm/sha1-mips.pl $(PERLASM_SCHEME) $@
+{- $builddir -}/sha256-mips.S: {- $sourcedir -}/asm/sha512-mips.pl
+ $(PERL) {- $sourcedir -}/asm/sha512-mips.pl $(PERLASM_SCHEME) $@
+{- $builddir -}/sha512-mips.S: {- $sourcedir -}/asm/sha512-mips.pl
+ $(PERL) {- $sourcedir -}/asm/sha512-mips.pl $(PERLASM_SCHEME) $@
+
+# GNU make "catch all"
+{- $builddir -}/sha1-%.S: {- $sourcedir -}/asm/sha1-%.pl
+ $(PERL) $< $(PERLASM_SCHEME) $@
+{- $builddir -}/sha256-%.S: {- $sourcedir -}/asm/sha512-%.pl
+ $(PERL) $< $(PERLASM_SCHEME) $@
+{- $builddir -}/sha512-%.S: {- $sourcedir -}/asm/sha512-%.pl
+ $(PERL) $< $(PERLASM_SCHEME) $@
+ENDRAW[Makefile]
diff --git a/crypto/whrlpool/build.info b/crypto/whrlpool/build.info
index 64f1407..6b996a8 100644
--- a/crypto/whrlpool/build.info
+++ b/crypto/whrlpool/build.info
@@ -1,2 +1,10 @@
LIBS=../../libcrypto
SOURCE[../../libcrypto]=wp_dgst.c {- $target{wp_asm_src} -}
+
+BEGINRAW[Makefile]
+{- $builddir -}/wp-mmx.s: {- $sourcedir -}/asm/wp-mmx.pl {- $sourcetop -}/crypto/perlasm/x86asm.pl
+ $(PERL) {- $sourcedir -}/asm/wp-mmx.pl $(PERLASM_SCHEME) $(CFLAGS) $(PROCESSOR) > $@
+
+{- $builddir -}/wp-x86_64.s: {- $sourcedir -}/asm/wp-x86_64.pl
+ $(PERL) {- $sourcedir -}/asm/wp-x86_64.pl $(PERLASM_SCHEME) > $@
+ENDRAW[Makefile]
diff --git a/engines/axp.opt b/engines/axp.opt
deleted file mode 100644
index 1dc71bf..0000000
--- a/engines/axp.opt
+++ /dev/null
@@ -1 +0,0 @@
-SYMBOL_VECTOR=(bind_engine=PROCEDURE,v_check=PROCEDURE)
diff --git a/engines/build.info b/engines/build.info
index 0c8e04b..b5362ac 100644
--- a/engines/build.info
+++ b/engines/build.info
@@ -20,3 +20,10 @@ ELSE
DEPEND[libossltest]=../libcrypto
INCLUDE[libossltest]={- rel2abs(catdir($builddir,"../include")) -} ../include
ENDIF
+
+BEGINRAW[Makefile]
+{- $builddir -}/e_padlock-x86.s: {- $sourcedir -}/asm/e_padlock-x86.pl
+ $(PERL) {- $sourcedir -}/asm/e_padlock-x86.pl $(PERLASM_SCHEME) $(CFLAGS) $(PROCESSOR) > $@
+{- $builddir -}/e_padlock-x86_64.s: {- $sourcedir -}/asm/e_padlock-x86_64.pl
+ $(PERL) {- $sourcedir -}/asm/e_padlock-x86_64.pl $(PERLASM_SCHEME) > $@
+ENDRAW[Makefile]
diff --git a/engines/ia64.opt b/engines/ia64.opt
deleted file mode 100644
index 1dc71bf..0000000
--- a/engines/ia64.opt
+++ /dev/null
@@ -1 +0,0 @@
-SYMBOL_VECTOR=(bind_engine=PROCEDURE,v_check=PROCEDURE)
diff --git a/engines/makeengines.com b/engines/makeengines.com
deleted file mode 100644
index 944e415..0000000
--- a/engines/makeengines.com
+++ /dev/null
@@ -1,1118 +0,0 @@
-$!
-$! MAKEENGINES.COM
-$! Written By: Richard Levitte
-$! richard at levitte.org
-$!
-$! This command file compiles and creates the various engines in form
-$! of shared images. They are placed in [.xxx.EXE.ENGINES], where "xxx"
-$! is ALPHA, IA64 or VAX, depending on your hardware.
-$!
-$! P1 if this is ENGINES or ALL, the engines will build, otherwise not.
-$!
-$! P2 DEBUG or NODEBUG to compile with or without debugger information.
-$!
-$! P3 VAXC for VAX C
-$! DECC for DEC C
-$! GNUC for GNU C (untested)
-$!
-$! P4 if defined, sets the TCP/IP libraries to use. UCX or TCPIP is
-$! used by default since most other implementations come with a
-$! compatibility library. The value must be one of the following:
-$!
-$! UCX for UCX
-$! SOCKETSHR for SOCKETSHR+NETLIB
-$! TCPIP for TCPIP (post UCX)
-$!
-$! P5 if defined, tells the compiler not to use special threads.
-$!
-$! P6 if defined, denotes which engines to build. If not defined,
-$! all available engines are built.
-$!
-$! P7, if defined, specifies the C pointer size. Ignored on VAX.
-$! ("64=ARGV" gives more efficient code with HP C V7.3 or newer.)
-$! Supported values are:
-$!
-$! "" Compile with default (/NOPOINTER_SIZE)
-$! 32 Compile with /POINTER_SIZE=32 (SHORT)
-$! 64 Compile with /POINTER_SIZE=64[=ARGV] (LONG[=ARGV])
-$! (Automatically select ARGV if compiler supports it.)
-$! 64= Compile with /POINTER_SIZE=64 (LONG).
-$! 64=ARGV Compile with /POINTER_SIZE=64=ARGV (LONG=ARGV).
-$!
-$! P8, if defined, specifies a directory where ZLIB files (zlib.h,
-$! libz.olb) may be found. Optionally, a non-default object library
-$! name may be included ("dev:[dir]libz_64.olb", for example).
-$!
-$!-----------------------------------------------------------------------------
-$!
-$! Announce/identify.
-$!
-$ proc = f$environment( "procedure")
-$ write sys$output "@@@ "+ -
- f$parse( proc, , , "name")+ f$parse( proc, , , "type")
-$!
-$ on control_c then goto exit
-$!
-$! Set the default TCP/IP library to link against if needed
-$!
-$ TCPIP_LIB = ""
-$ ZLIB_LIB = ""
-$!
-$! Check What Architecture We Are Using.
-$!
-$ IF (F$GETSYI("CPU").LT.128)
-$ THEN
-$!
-$! The Architecture Is VAX.
-$!
-$ ARCH = "VAX"
-$!
-$! Else...
-$!
-$ ELSE
-$!
-$! The Architecture Is Alpha, IA64 or whatever comes in the future.
-$!
-$ ARCH = F$EDIT( F$GETSYI( "ARCH_NAME"), "UPCASE")
-$ IF (ARCH .EQS. "") THEN ARCH = "UNK"
-$!
-$! End The Architecture Check.
-$!
-$ ENDIF
-$!
-$ ARCHD = ARCH
-$ LIB32 = "32"
-$ OPT_FILE = ""
-$ POINTER_SIZE = ""
-$!
-$! Set the names of the engines we want to build
-$! NOTE: Some might think this list ugly. However, it's made this way to
-$! reflect the LIBNAMES variable in Makefile as closely as possible,
-$! thereby making it fairly easy to verify that the lists are the same.
-$! NOTE: gmp isn't built, as it's mostly a test engine and brings in another
-$! library that isn't necessarely ported to VMS.
-$!
-$ ENGINES = "," + P6
-$ IF ENGINES .EQS. "," THEN -
- ENGINES = ",padlock,capi,"
-$!
-$! GOST requires a 64-bit integer type, unavailable on VAX.
-$!
-$ IF (ARCH .NES. "VAX") THEN -
- ENGINES = ENGINES+ ",gost"
-$!
-$! Check options.
-$!
-$ OPT_PHASE = P1
-$ ACCEPT_PHASE = "ALL,ENGINES"
-$ OPT_DEBUG = P2
-$ OPT_COMPILER = P3
-$ OPT_TCPIP_LIB = P4
-$ OPT_SPECIAL_THREADS = P5
-$ OPT_POINTER_SIZE = P7
-$ ZLIB = P8
-$
-$ GOSUB CHECK_OPTIONS
-$!
-$! Set the goal directories, and create them if necessary
-$!
-$ OBJ_DIR := SYS$DISK:[-.'ARCHD'.OBJ.ENGINES]
-$ EXE_DIR := SYS$DISK:[-.'ARCHD'.EXE.ENGINES]
-$ IF F$PARSE(OBJ_DIR) .EQS. "" THEN CREATE/DIRECTORY 'OBJ_DIR'
-$ IF F$PARSE(EXE_DIR) .EQS. "" THEN CREATE/DIRECTORY 'EXE_DIR'
-$!
-$! Set the goal files, and create them if necessary
-$!
-$ CRYPTO_LIB := SYS$DISK:[-.'ARCHD'.EXE.CRYPTO]SSL_LIBCRYPTO'LIB32'.OLB
-$ IF F$SEARCH(CRYPTO_LIB) .EQS. "" THEN LIBRARY/CREATE/OBJECT 'CRYPTO_LIB'
-$!
-$! Specify the destination directory in any /MAP option.
-$!
-$ if (LINKMAP .eqs. "MAP")
-$ then
-$ LINKMAP = LINKMAP+ "=''EXE_DIR'"
-$ endif
-$!
-$! Add the location prefix to the linker options file name.
-$!
-$ if (OPT_FILE .nes. "")
-$ then
-$ OPT_FILE = EXE_DIR+ OPT_FILE
-$ endif
-$!
-$! Initialise.
-$!
-$ GOSUB INITIALISE
-$ GOSUB CHECK_OPT_FILE
-$!
-$! Define what goes into each engine. VAX includes a transfer vector.
-$!
-$ ENGINE_ = ""
-$ TV_OBJ = ""
-$ IF ARCH .EQS. "VAX"
-$ THEN
-$ ENGINE_ = "engine_vector.mar"
-$ TV_OBJ_NAME = OBJ_DIR + F$PARSE(ENGINE_,,,"NAME","SYNTAX_ONLY") + ".OBJ"
-$ TV_OBJ = ",''TV_OBJ_NAME'"
-$ ENDIF
-$ ENGINE_padlock = "e_padlock"
-$ ENGINE_capi = "e_capi"
-$
-$ ENGINE_gost_SUBDIR = "ccgost"
-$ ENGINE_gost = "e_gost_err,gost2001_keyx,gost2001,gost89,gost94_keyx,"+ -
- "gost_ameth,gost_asn1,gost_crypt,gost_ctl,gost_eng,"+ -
- "gosthash,gost_keywrap,gost_md,gost_params,gost_pmeth,"+ -
- "gost_sign"
-$!
-$! Define which programs need to be linked with a TCP/IP library
-$!
-$ TCPIP_ENGINES = ",,"
-$ IF COMPILER .EQS. "VAXC" THEN -
- TCPIP_ENGINES = ",,"
-$!
-$! Set up two loops, one that keeps track of the engines,
-$! and one that keeps track of all the files going into
-$! the current engine.
-$!
-$! Here's the start of the engine loop.
-$!
-$ ENGINE_COUNTER = 0
-$ ENGINE_NEXT:
-$!
-$! Extract the current engine name, and if we've reached the end, stop
-$!
-$ ENGINE_NAME = F$ELEMENT(ENGINE_COUNTER,",",ENGINES)
-$ IF (ENGINE_NAME.EQS.",") THEN GOTO ENGINE_DONE
-$!
-$ ENGINE_COUNTER = ENGINE_COUNTER + 1
-$!
-$! Set up the engine library names.
-$!
-$ LIB_ENGINE = "ENGINE_" + ENGINE_NAME
-$!
-$! Check if the library module name actually is defined
-$!
-$ IF F$TYPE('LIB_ENGINE') .EQS. ""
-$ THEN
-$ WRITE SYS$ERROR ""
-$ WRITE SYS$ERROR "The module ",ENGINE_NAME," does not exist. Continuing..."
-$ WRITE SYS$ERROR ""
-$ GOTO ENGINE_NEXT
-$ ENDIF
-$!
-$! Talk to the user
-$!
-$ IF ENGINE_NAME .NES. ""
-$ THEN
-$ WRITE SYS$OUTPUT "Compiling The ",ENGINE_NAME," Library Files. (",BUILDALL,")"
-$ ELSE
-$ WRITE SYS$OUTPUT "Compiling Support Files. (",BUILDALL,")"
-$ ENDIF
-$!
-$! Create a .OPT file for the object files (for a real engine name).
-$!
-$ IF ENGINE_NAME .NES. ""
-$ THEN
-$ OPEN /WRITE OBJECTS 'EXE_DIR''ENGINE_NAME'.OPT
-$ ENDIF
-$!
-$! Here's the start of per-engine module loop.
-$!
-$ FILE_COUNTER = 0
-$ FILE_NEXT:
-$!
-$! Extract the file name from the file list, and if we've reached the end, stop
-$!
-$ FILE_NAME = F$ELEMENT(FILE_COUNTER,",",'LIB_ENGINE')
-$ IF (FILE_NAME.EQS.",") THEN GOTO FILE_DONE
-$!
-$ FILE_COUNTER = FILE_COUNTER + 1
-$!
-$ IF FILE_NAME .EQS. "" THEN GOTO FILE_NEXT
-$!
-$! Set up the source and object reference
-$!
-$ IF F$TYPE('LIB_ENGINE'_SUBDIR) .EQS. ""
-$ THEN
-$ SOURCE_FILE = F$PARSE(FILE_NAME,"SYS$DISK:[].C",,,"SYNTAX_ONLY")
-$ ELSE
-$ SOURCE_FILE = F$PARSE(FILE_NAME,"SYS$DISK:[."+'LIB_ENGINE'_SUBDIR+"].C",,,"SYNTAX_ONLY")
-$ ENDIF
-$ OBJECT_FILE = OBJ_DIR + F$PARSE(FILE_NAME,,,"NAME","SYNTAX_ONLY") + ".OBJ"
-$!
-$! If we get some problem, we just go on trying to build the next module.
-$ ON WARNING THEN GOTO FILE_NEXT
-$!
-$! Check if the module we want to compile is actually there.
-$!
-$ IF F$SEARCH(SOURCE_FILE) .EQS. ""
-$ THEN
-$ WRITE SYS$OUTPUT ""
-$ WRITE SYS$OUTPUT "The File ",SOURCE_FILE," Doesn't Exist."
-$ WRITE SYS$OUTPUT ""
-$ GOTO EXIT
-$ ENDIF
-$!
-$! Talk to the user.
-$!
-$ WRITE SYS$OUTPUT " ",FILE_NAME,""
-$!
-$! Do the dirty work.
-$!
-$ ON ERROR THEN GOTO FILE_NEXT
-$ IF F$EDIT(F$PARSE(SOURCE_FILE,,,"TYPE","SYNTAX_ONLY"),"UPCASE") .EQS. ".MAR"
-$ THEN
-$ MACRO/OBJECT='OBJECT_FILE' 'SOURCE_FILE'
-$ ELSE
-$ CC/OBJECT='OBJECT_FILE' 'SOURCE_FILE'
-$ ENDIF
-$!
-$! Write the entry to the .OPT file (for a real engine name).
-$!
-$ IF ENGINE_NAME .NES. ""
-$ THEN
-$ WRITE OBJECTS OBJECT_FILE
-$ ENDIF
-$!
-$! Next file
-$!
-$ GOTO FILE_NEXT
-$!
-$ FILE_DONE:
-$!
-$! Do not link the support files.
-$!
-$ IF ENGINE_NAME .EQS. "" THEN GOTO ENGINE_NEXT
-$!
-$! Close the linker options file (for a real engine name).
-$!
-$ CLOSE OBJECTS
-$!
-$! Now, there are two ways to handle this. We can either build
-$! shareable images or stick the engine object file into libcrypto.
-$! For now, the latter is NOT supported.
-$!
-$!!!!! LIBRARY/REPLACE 'CRYPTO_LIB' 'OBJECT_FILE'
-$!
-$! For shareable libraries, we need to do things a little differently
-$! depending on if we link with a TCP/IP library or not.
-$!
-$ ENGINE_OPT := SYS$DISK:[]'ARCH'.OPT
-$ LINK /'DEBUGGER' /'LINKMAP' /'TRACEBACK' /SHARE='EXE_DIR''ENGINE_NAME'.EXE -
- 'EXE_DIR''ENGINE_NAME'.OPT /OPTIONS -
- 'TV_OBJ', -
- 'CRYPTO_LIB' /LIBRARY, -
- 'ENGINE_OPT' /OPTIONS -
- 'TCPIP_LIB' -
- 'ZLIB_LIB' -
- ,'OPT_FILE' /OPTIONS
-$!
-$! Next engine
-$!
-$ GOTO ENGINE_NEXT
-$!
-$ ENGINE_DONE:
-$!
-$! Talk to the user
-$!
-$ WRITE SYS$OUTPUT "All Done..."
-$ EXIT:
-$ GOSUB CLEANUP
-$ EXIT
-$!
-$! Check For The Link Option FIle.
-$!
-$ CHECK_OPT_FILE:
-$!
-$! Check To See If We Need To Make A VAX C Option File.
-$!
-$ IF (COMPILER.EQS."VAXC")
-$ THEN
-$!
-$! Check To See If We Already Have A VAX C Linker Option File.
-$!
-$ IF (F$SEARCH(OPT_FILE).EQS."")
-$ THEN
-$!
-$! We Need A VAX C Linker Option File.
-$!
-$ CREATE 'OPT_FILE'
-$DECK
-!
-! Default System Options File To Link Against
-! The Sharable VAX C Runtime Library.
-!
-SYS$SHARE:VAXCRTL.EXE/SHARE
-$EOD
-$!
-$! End The Option File Check.
-$!
-$ ENDIF
-$!
-$! End The VAXC Check.
-$!
-$ ENDIF
-$!
-$! Check To See If We Need A GNU C Option File.
-$!
-$ IF (COMPILER.EQS."GNUC")
-$ THEN
-$!
-$! Check To See If We Already Have A GNU C Linker Option File.
-$!
-$ IF (F$SEARCH(OPT_FILE).EQS."")
-$ THEN
-$!
-$! We Need A GNU C Linker Option File.
-$!
-$ CREATE 'OPT_FILE'
-$DECK
-!
-! Default System Options File To Link Against
-! The Sharable C Runtime Library.
-!
-GNU_CC:[000000]GCCLIB/LIBRARY
-SYS$SHARE:VAXCRTL/SHARE
-$EOD
-$!
-$! End The Option File Check.
-$!
-$ ENDIF
-$!
-$! End The GNU C Check.
-$!
-$ ENDIF
-$!
-$! Check To See If We Need A DEC C Option File.
-$!
-$ IF (COMPILER.EQS."DECC")
-$ THEN
-$!
-$! Check To See If We Already Have A DEC C Linker Option File.
-$!
-$ IF (F$SEARCH(OPT_FILE).EQS."")
-$ THEN
-$!
-$! Figure Out If We Need A non-VAX Or A VAX Linker Option File.
-$!
-$ IF ARCH .EQS. "VAX"
-$ THEN
-$!
-$! We Need A DEC C Linker Option File For VAX.
-$!
-$ CREATE 'OPT_FILE'
-$DECK
-!
-! Default System Options File To Link Against
-! The Sharable DEC C Runtime Library.
-!
-SYS$SHARE:DECC$SHR.EXE/SHARE
-$EOD
-$!
-$! Else...
-$!
-$ ELSE
-$!
-$! Create The non-VAX Linker Option File.
-$!
-$ CREATE 'OPT_FILE'
-$DECK
-!
-! Default System Options File For non-VAX To Link Against
-! The Sharable C Runtime Library.
-!
-SYS$SHARE:CMA$OPEN_LIB_SHR/SHARE
-SYS$SHARE:CMA$OPEN_RTL/SHARE
-$EOD
-$!
-$! End The DEC C Option File Check.
-$!
-$ ENDIF
-$!
-$! End The Option File Search.
-$!
-$ ENDIF
-$!
-$! End The DEC C Check.
-$!
-$ ENDIF
-$!
-$! Tell The User What Linker Option File We Are Using.
-$!
-$ WRITE SYS$OUTPUT "Using Linker Option File ",OPT_FILE,"."
-$!
-$! Time To RETURN.
-$!
-$ RETURN
-$!
-$! Check The User's Options.
-$!
-$ CHECK_OPTIONS:
-$!
-$! Check To See If OPT_PHASE Is Blank.
-$!
-$ IF (OPT_PHASE.EQS."ALL")
-$ THEN
-$!
-$! OPT_PHASE Is Blank, So Build Everything.
-$!
-$ BUILDALL = "ALL"
-$!
-$! Else...
-$!
-$ ELSE
-$!
-$! Else, Check To See If OPT_PHASE Has A Valid Argument.
-$!
-$ IF ("," + ACCEPT_PHASE + ",") - ("," + OPT_PHASE + ",") -
- .NES. ("," + ACCEPT_PHASE + ",")
-$ THEN
-$!
-$! A Valid Argument.
-$!
-$ BUILDALL = OPT_PHASE
-$!
-$! Else...
-$!
-$ ELSE
-$!
-$! Tell The User We Don't Know What They Want.
-$!
-$ WRITE SYS$OUTPUT ""
-$ WRITE SYS$OUTPUT "The option ",OPT_PHASE," is invalid. The valid options are:"
-$ WRITE SYS$OUTPUT ""
-$ IF ("," + ACCEPT_PHASE + ",") - ",ALL," -
- .NES. ("," + ACCEPT_PHASE + ",") THEN -
- WRITE SYS$OUTPUT " ALL : just build everything."
-$ IF ("," + ACCEPT_PHASE + ",") - ",ENGINES," -
- .NES. ("," + ACCEPT_PHASE + ",") THEN -
- WRITE SYS$OUTPUT " ENGINES : to compile just the [.xxx.EXE.ENGINES]*.EXE hareable images."
-$ WRITE SYS$OUTPUT ""
-$ WRITE SYS$OUTPUT " where 'xxx' stands for:"
-$ WRITE SYS$OUTPUT ""
-$ WRITE SYS$OUTPUT " ALPHA[64]: Alpha architecture."
-$ WRITE SYS$OUTPUT " IA64[64] : IA64 architecture."
-$ WRITE SYS$OUTPUT " VAX : VAX architecture."
-$ WRITE SYS$OUTPUT ""
-$!
-$! Time To EXIT.
-$!
-$ EXIT
-$!
-$! End The Valid Argument Check.
-$!
-$ ENDIF
-$!
-$! End The OPT_PHASE Check.
-$!
-$ ENDIF
-$!
-$! Check To See If OPT_DEBUG Is Blank.
-$!
-$ IF (OPT_DEBUG.EQS."NODEBUG")
-$ THEN
-$!
-$! OPT_DEBUG Is NODEBUG, So Compile Without The Debugger Information.
-$!
-$ DEBUGGER = "NODEBUG"
-$ LINKMAP = "NOMAP"
-$ TRACEBACK = "NOTRACEBACK"
-$ GCC_OPTIMIZE = "OPTIMIZE"
-$ CC_OPTIMIZE = "OPTIMIZE"
-$ MACRO_OPTIMIZE = "OPTIMIZE"
-$ WRITE SYS$OUTPUT "No Debugger Information Will Be Produced During Compile."
-$ WRITE SYS$OUTPUT "Compiling With Compiler Optimization."
-$ ELSE
-$!
-$! Check To See If We Are To Compile With Debugger Information.
-$!
-$ IF (OPT_DEBUG.EQS."DEBUG")
-$ THEN
-$!
-$! Compile With Debugger Information.
-$!
-$ DEBUGGER = "DEBUG"
-$ LINKMAP = "MAP"
-$ TRACEBACK = "TRACEBACK"
-$ GCC_OPTIMIZE = "NOOPTIMIZE"
-$ CC_OPTIMIZE = "NOOPTIMIZE"
-$ MACRO_OPTIMIZE = "NOOPTIMIZE"
-$ WRITE SYS$OUTPUT "Debugger Information Will Be Produced During Compile."
-$ WRITE SYS$OUTPUT "Compiling Without Compiler Optimization."
-$ ELSE
-$!
-$! They Entered An Invalid Option.
-$!
-$ WRITE SYS$OUTPUT ""
-$ WRITE SYS$OUTPUT "The Option ",OPT_DEBUG," Is Invalid. The Valid Options Are:"
-$ WRITE SYS$OUTPUT ""
-$ WRITE SYS$OUTPUT " DEBUG : Compile With The Debugger Information."
-$ WRITE SYS$OUTPUT " NODEBUG : Compile Without The Debugger Information."
-$ WRITE SYS$OUTPUT ""
-$!
-$! Time To EXIT.
-$!
-$ EXIT
-$!
-$! End The Valid Argument Check.
-$!
-$ ENDIF
-$!
-$! End The OPT_DEBUG Check.
-$!
-$ ENDIF
-$!
-$! Special Threads For OpenVMS v7.1 Or Later
-$!
-$! Written By: Richard Levitte
-$! richard at levitte.org
-$!
-$!
-$! Check To See If We Have A Option For OPT_SPECIAL_THREADS.
-$!
-$ IF (OPT_SPECIAL_THREADS.EQS."")
-$ THEN
-$!
-$! Get The Version Of VMS We Are Using.
-$!
-$ ISSEVEN :=
-$ TMP = F$ELEMENT(0,"-",F$EXTRACT(1,4,F$GETSYI("VERSION")))
-$ TMP = F$INTEGER(F$ELEMENT(0,".",TMP)+F$ELEMENT(1,".",TMP))
-$!
-$! Check To See If The VMS Version Is v7.1 Or Later.
-$!
-$ IF (TMP.GE.71)
-$ THEN
-$!
-$! We Have OpenVMS v7.1 Or Later, So Use The Special Threads.
-$!
-$ ISSEVEN := ,PTHREAD_USE_D4
-$!
-$! End The VMS Version Check.
-$!
-$ ENDIF
-$!
-$! End The OPT_SPECIAL_THREADS Check.
-$!
-$ ENDIF
-$!
-$! Check OPT_POINTER_SIZE (P7).
-$!
-$ IF (OPT_POINTER_SIZE .NES. "") .AND. (ARCH .NES. "VAX")
-$ THEN
-$!
-$ IF (OPT_POINTER_SIZE .EQS. "32")
-$ THEN
-$ POINTER_SIZE = " /POINTER_SIZE=32"
-$ ELSE
-$ POINTER_SIZE = F$EDIT( OPT_POINTER_SIZE, "COLLAPSE, UPCASE")
-$ IF ((POINTER_SIZE .EQS. "64") .OR. -
- (POINTER_SIZE .EQS. "64=") .OR. -
- (POINTER_SIZE .EQS. "64=ARGV"))
-$ THEN
-$ ARCHD = ARCH+ "_64"
-$ LIB32 = ""
-$ POINTER_SIZE = " /POINTER_SIZE=64"
-$ ELSE
-$!
-$! Tell The User Entered An Invalid Option.
-$!
-$ WRITE SYS$OUTPUT ""
-$ WRITE SYS$OUTPUT "The Option ", OPT_POINTER_SIZE, -
- " Is Invalid. The Valid Options Are:"
-$ WRITE SYS$OUTPUT ""
-$ WRITE SYS$OUTPUT -
- " """" : Compile with default (short) pointers."
-$ WRITE SYS$OUTPUT -
- " 32 : Compile with 32-bit (short) pointers."
-$ WRITE SYS$OUTPUT -
- " 64 : Compile with 64-bit (long) pointers (auto ARGV)."
-$ WRITE SYS$OUTPUT -
- " 64= : Compile with 64-bit (long) pointers (no ARGV)."
-$ WRITE SYS$OUTPUT -
- " 64=ARGV : Compile with 64-bit (long) pointers (ARGV)."
-$ WRITE SYS$OUTPUT ""
-$!
-$! Time To EXIT.
-$!
-$ EXIT
-$!
-$ ENDIF
-$!
-$ ENDIF
-$!
-$! End The OPT_POINTER_SIZE Check.
-$!
-$ ENDIF
-$!
-$! Set basic C compiler /INCLUDE directories.
-$!
-$ CC_INCLUDES = "SYS$DISK:[],SYS$DISK:[.VENDOR_DEFNS]"
-$!
-$! Check To See If OPT_COMPILER Is Blank.
-$!
-$ IF (OPT_COMPILER.EQS."")
-$ THEN
-$!
-$! O.K., The User Didn't Specify A Compiler, Let's Try To
-$! Find Out Which One To Use.
-$!
-$! Check To See If We Have GNU C.
-$!
-$ IF (F$TRNLNM("GNU_CC").NES."")
-$ THEN
-$!
-$! Looks Like GNUC, Set To Use GNUC.
-$!
-$ OPT_COMPILER = "GNUC"
-$!
-$! Else...
-$!
-$ ELSE
-$!
-$! Check To See If We Have VAXC Or DECC.
-$!
-$ IF (ARCH.NES."VAX").OR.(F$TRNLNM("DECC$CC_DEFAULT").NES."")
-$ THEN
-$!
-$! Looks Like DECC, Set To Use DECC.
-$!
-$ OPT_COMPILER = "DECC"
-$!
-$! Else...
-$!
-$ ELSE
-$!
-$! Looks Like VAXC, Set To Use VAXC.
-$!
-$ OPT_COMPILER = "VAXC"
-$!
-$! End The VAXC Compiler Check.
-$!
-$ ENDIF
-$!
-$! End The DECC & VAXC Compiler Check.
-$!
-$ ENDIF
-$!
-$! End The Compiler Check.
-$!
-$ ENDIF
-$!
-$! Check To See If We Have A Option For OPT_TCPIP_LIB.
-$!
-$ IF (OPT_TCPIP_LIB.EQS."")
-$ THEN
-$!
-$! Find out what socket library we have available
-$!
-$ IF F$PARSE("SOCKETSHR:") .NES. ""
-$ THEN
-$!
-$! We have SOCKETSHR, and it is my opinion that it's the best to use.
-$!
-$ OPT_TCPIP_LIB = "SOCKETSHR"
-$!
-$! Tell the user
-$!
-$ WRITE SYS$OUTPUT "Using SOCKETSHR for TCP/IP"
-$!
-$! Else, let's look for something else
-$!
-$ ELSE
-$!
-$! Like UCX (the reason to do this before Multinet is that the UCX
-$! emulation is easier to use...)
-$!
-$ IF F$TRNLNM("UCX$IPC_SHR") .NES. "" -
- .OR. F$PARSE("SYS$SHARE:UCX$IPC_SHR.EXE") .NES. "" -
- .OR. F$PARSE("SYS$LIBRARY:UCX$IPC.OLB") .NES. ""
-$ THEN
-$!
-$! Last resort: a UCX or UCX-compatible library
-$!
-$ OPT_TCPIP_LIB = "UCX"
-$!
-$! Tell the user
-$!
-$ WRITE SYS$OUTPUT "Using UCX or an emulation thereof for TCP/IP"
-$!
-$! That was all...
-$!
-$ ENDIF
-$ ENDIF
-$ ENDIF
-$!
-$! Set Up Initial CC Definitions, Possibly With User Ones
-$!
-$ CCDEFS = "TCPIP_TYPE_''OPT_TCPIP_LIB',DSO_VMS"
-$ IF F$TYPE(USER_CCDEFS) .NES. "" THEN CCDEFS = CCDEFS + "," + USER_CCDEFS
-$ CCEXTRAFLAGS = ""
-$ IF F$TYPE(USER_CCFLAGS) .NES. "" THEN CCEXTRAFLAGS = USER_CCFLAGS
-$ CCDISABLEWARNINGS = "" !!! "LONGLONGTYPE,LONGLONGSUFX"
-$ IF F$TYPE(USER_CCDISABLEWARNINGS) .NES. "" THEN -
- CCDISABLEWARNINGS = CCDISABLEWARNINGS + "," + USER_CCDISABLEWARNINGS
-$!
-$! Check To See If We Have A ZLIB Option.
-$!
-$ IF (ZLIB .NES. "")
-$ THEN
-$!
-$! Check for expected ZLIB files.
-$!
-$ err = 0
-$ file1 = f$parse( "zlib.h", ZLIB, , , "SYNTAX_ONLY")
-$ if (f$search( file1) .eqs. "")
-$ then
-$ WRITE SYS$OUTPUT ""
-$ WRITE SYS$OUTPUT "The Option ", ZLIB, " Is Invalid."
-$ WRITE SYS$OUTPUT " Can't find header: ''file1'"
-$ err = 1
-$ endif
-$ file1 = f$parse( "A.;", ZLIB)- "A.;"
-$!
-$ file2 = f$parse( ZLIB, "libz.olb", , , "SYNTAX_ONLY")
-$ if (f$search( file2) .eqs. "")
-$ then
-$ if (err .eq. 0)
-$ then
-$ WRITE SYS$OUTPUT ""
-$ WRITE SYS$OUTPUT "The Option ", ZLIB, " Is Invalid."
-$ endif
-$ WRITE SYS$OUTPUT " Can't find library: ''file2'"
-$ WRITE SYS$OUTPUT ""
-$ err = err+ 2
-$ endif
-$ if (err .eq. 1)
-$ then
-$ WRITE SYS$OUTPUT ""
-$ endif
-$!
-$ if (err .ne. 0)
-$ then
-$ EXIT
-$ endif
-$!
-$ CCDEFS = """ZLIB=1"", "+ CCDEFS
-$ CC_INCLUDES = CC_INCLUDES+ ", "+ file1
-$ ZLIB_LIB = ", ''file2' /library"
-$!
-$! Print info
-$!
-$ WRITE SYS$OUTPUT "ZLIB library spec: ", file2
-$!
-$! End The ZLIB Check.
-$!
-$ ENDIF
-$!
-$! Check To See If The User Entered A Valid Parameter.
-$!
-$ IF (OPT_COMPILER.EQS."VAXC").OR.(OPT_COMPILER.EQS."DECC").OR.(OPT_COMPILER.EQS."GNUC")
-$ THEN
-$!
-$! Check To See If The User Wanted DECC.
-$!
-$ IF (OPT_COMPILER.EQS."DECC")
-$ THEN
-$!
-$! Looks Like DECC, Set To Use DECC.
-$!
-$ COMPILER = "DECC"
-$!
-$! Tell The User We Are Using DECC.
-$!
-$ WRITE SYS$OUTPUT "Using DECC 'C' Compiler."
-$!
-$! Use DECC...
-$!
-$ CC = "CC"
-$ IF ARCH.EQS."VAX" .AND. F$TRNLNM("DECC$CC_DEFAULT").NES."/DECC" -
- THEN CC = "CC/DECC"
-$ CC = CC + " /''CC_OPTIMIZE' /''DEBUGGER' /STANDARD=RELAXED"+ -
- "''POINTER_SIZE' /NOLIST /PREFIX=ALL" + -
- " /INCLUDE=(''CC_INCLUDES') " + -
- CCEXTRAFLAGS
-$!
-$! Define The Linker Options File Name.
-$!
-$ OPT_FILE = "VAX_DECC_OPTIONS.OPT"
-$!
-$! End DECC Check.
-$!
-$ ENDIF
-$!
-$! Check To See If We Are To Use VAXC.
-$!
-$ IF (OPT_COMPILER.EQS."VAXC")
-$ THEN
-$!
-$! Looks Like VAXC, Set To Use VAXC.
-$!
-$ COMPILER = "VAXC"
-$!
-$! Tell The User We Are Using VAX C.
-$!
-$ WRITE SYS$OUTPUT "Using VAXC 'C' Compiler."
-$!
-$! Compile Using VAXC.
-$!
-$ CC = "CC"
-$ IF ARCH.NES."VAX"
-$ THEN
-$ WRITE SYS$OUTPUT "There is no VAX C on Alpha!"
-$ EXIT
-$ ENDIF
-$ IF F$TRNLNM("DECC$CC_DEFAULT").EQS."/DECC" THEN CC = "CC/VAXC"
-$ CC = CC + "/''CC_OPTIMIZE'/''DEBUGGER'/NOLIST" + -
- "/INCLUDE=(''CC_INCLUDES')" + -
- CCEXTRAFLAGS
-$ CCDEFS = """VAXC""," + CCDEFS
-$!
-$! Define <sys> As SYS$COMMON:[SYSLIB]
-$!
-$ DEFINE/NOLOG SYS SYS$COMMON:[SYSLIB]
-$!
-$! Define The Linker Options File Name.
-$!
-$ OPT_FILE = "VAX_VAXC_OPTIONS.OPT"
-$!
-$! End VAXC Check
-$!
-$ ENDIF
-$!
-$! Check To See If We Are To Use GNU C.
-$!
-$ IF (OPT_COMPILER.EQS."GNUC")
-$ THEN
-$!
-$! Looks Like GNUC, Set To Use GNUC.
-$!
-$ COMPILER = "GNUC"
-$!
-$! Tell The User We Are Using GNUC.
-$!
-$ WRITE SYS$OUTPUT "Using GNU 'C' Compiler."
-$!
-$! Use GNU C...
-$!
-$ CC = "GCC/NOCASE_HACK/''GCC_OPTIMIZE'/''DEBUGGER'/NOLIST" + -
- "/INCLUDE=(''CC_INCLUDES')" + -
- CCEXTRAFLAGS
-$!
-$! Define The Linker Options File Name.
-$!
-$ OPT_FILE = "VAX_GNUC_OPTIONS.OPT"
-$!
-$! End The GNU C Check.
-$!
-$ ENDIF
-$!
-$! Set up default defines
-$!
-$ CCDEFS = """FLAT_INC=1""," + CCDEFS
-$!
-$! Finish up the definition of CC.
-$!
-$ IF COMPILER .EQS. "DECC"
-$ THEN
-$ IF CCDISABLEWARNINGS .NES. ""
-$ THEN
-$ CCDISABLEWARNINGS = " /WARNING=(DISABLE=(" + CCDISABLEWARNINGS + "))"
-$ ENDIF
-$ ELSE
-$ CCDISABLEWARNINGS = ""
-$ ENDIF
-$ CC = CC + " /DEFINE=(" + CCDEFS + ")" + CCDISABLEWARNINGS
-$!
-$! Show user the result
-$!
-$ WRITE/SYMBOL SYS$OUTPUT "Main C Compiling Command: ",CC
-$!
-$! Else The User Entered An Invalid Argument.
-$!
-$ ELSE
-$!
-$! Tell The User We Don't Know What They Want.
-$!
-$ WRITE SYS$OUTPUT ""
-$ WRITE SYS$OUTPUT "The Option ",OPT_COMPILER," Is Invalid. The Valid Options Are:"
-$ WRITE SYS$OUTPUT ""
-$ WRITE SYS$OUTPUT " VAXC : To Compile With VAX C."
-$ WRITE SYS$OUTPUT " DECC : To Compile With DEC C."
-$ WRITE SYS$OUTPUT " GNUC : To Compile With GNU C."
-$ WRITE SYS$OUTPUT ""
-$!
-$! Time To EXIT.
-$!
-$ EXIT
-$!
-$! End The Valid Argument Check.
-$!
-$ ENDIF
-$!
-$! Build a MACRO command for the architecture at hand
-$!
-$ IF ARCH .EQS. "VAX"
-$ THEN
-$ MACRO = "MACRO/''DEBUGGER'"
-$ ELSE
-$ MACRO = "MACRO/MIGRATION/''DEBUGGER'/''MACRO_OPTIMIZE'"
-$ ENDIF
-$!
-$! Show user the result
-$!
-$ WRITE/SYMBOL SYS$OUTPUT "Main MACRO Compiling Command: ",MACRO
-$!
-$! Time to check the contents, and to make sure we get the correct library.
-$!
-$ IF OPT_TCPIP_LIB.EQS."SOCKETSHR" .OR. OPT_TCPIP_LIB.EQS."MULTINET" -
- .OR. OPT_TCPIP_LIB.EQS."UCX" .OR. OPT_TCPIP_LIB.EQS."TCPIP" -
- .OR. OPT_TCPIP_LIB.EQS."NONE"
-$ THEN
-$!
-$! Check to see if SOCKETSHR was chosen
-$!
-$ IF OPT_TCPIP_LIB.EQS."SOCKETSHR"
-$ THEN
-$!
-$! Set the library to use SOCKETSHR
-$!
-$ TCPIP_LIB = ",SYS$DISK:[-.VMS]SOCKETSHR_SHR.OPT /OPTIONS"
-$!
-$! Done with SOCKETSHR
-$!
-$ ENDIF
-$!
-$! Check to see if MULTINET was chosen
-$!
-$ IF OPT_TCPIP_LIB.EQS."MULTINET"
-$ THEN
-$!
-$! Set the library to use UCX emulation.
-$!
-$ OPT_TCPIP_LIB = "UCX"
-$!
-$! Done with MULTINET
-$!
-$ ENDIF
-$!
-$! Check to see if UCX was chosen
-$!
-$ IF OPT_TCPIP_LIB.EQS."UCX"
-$ THEN
-$!
-$! Set the library to use UCX.
-$!
-$ TCPIP_LIB = "SYS$DISK:[-.VMS]UCX_SHR_DECC.OPT /OPTIONS"
-$ IF F$TRNLNM("UCX$IPC_SHR") .NES. ""
-$ THEN
-$ TCPIP_LIB = ",SYS$DISK:[-.VMS]UCX_SHR_DECC_LOG.OPT /OPTIONS"
-$ ELSE
-$ IF COMPILER .NES. "DECC" .AND. ARCH .EQS. "VAX" THEN -
- TCPIP_LIB = ",SYS$DISK:[-.VMS]UCX_SHR_VAXC.OPT /OPTIONS"
-$ ENDIF
-$!
-$! Done with UCX
-$!
-$ ENDIF
-$!
-$! Check to see if TCPIP was chosen
-$!
-$ IF OPT_TCPIP_LIB.EQS."TCPIP"
-$ THEN
-$!
-$! Set the library to use TCPIP (post UCX).
-$!
-$ TCPIP_LIB = ",SYS$DISK:[-.VMS]TCPIP_SHR_DECC.OPT /OPTIONS"
-$!
-$! Done with TCPIP
-$!
-$ ENDIF
-$!
-$! Check to see if NONE was chosen
-$!
-$ IF OPT_TCPIP_LIB.EQS."NONE"
-$ THEN
-$!
-$! Do not use a TCPIP library.
-$!
-$ TCPIP_LIB = ""
-$!
-$! Done with TCPIP
-$!
-$ ENDIF
-$!
-$! Print info
-$!
-$ WRITE SYS$OUTPUT "TCP/IP library spec: ", TCPIP_LIB- ","
-$!
-$! Else The User Entered An Invalid Argument.
-$!
-$ ELSE
-$!
-$! Tell The User We Don't Know What They Want.
-$!
-$ WRITE SYS$OUTPUT ""
-$ WRITE SYS$OUTPUT "The Option ",OPT_TCPIP_LIB," Is Invalid. The Valid Options Are:"
-$ WRITE SYS$OUTPUT ""
-$ WRITE SYS$OUTPUT " SOCKETSHR : To link with SOCKETSHR TCP/IP library."
-$ WRITE SYS$OUTPUT " UCX : To link with UCX TCP/IP library."
-$ WRITE SYS$OUTPUT " TCPIP : To link with TCPIP (post UCX) TCP/IP library."
-$ WRITE SYS$OUTPUT ""
-$!
-$! Time To EXIT.
-$!
-$ EXIT
-$!
-$! Done with TCP/IP libraries
-$!
-$ ENDIF
-$!
-$! Time To RETURN...
-$!
-$ RETURN
-$!
-$ INITIALISE:
-$!
-$! Save old value of the logical name OPENSSL
-$!
-$ __SAVE_OPENSSL = F$TRNLNM("OPENSSL","LNM$PROCESS_TABLE")
-$!
-$! Save directory information
-$!
-$ __HERE = F$PARSE(F$PARSE("A.;",F$ENVIRONMENT("PROCEDURE"))-"A.;","[]A.;") - "A.;"
-$ __HERE = F$EDIT(__HERE,"UPCASE")
-$ __TOP = __HERE - "ENGINES]"
-$ __INCLUDE = __TOP + "INCLUDE.OPENSSL]"
-$!
-$! Set up the logical name OPENSSL to point at the include directory
-$!
-$ DEFINE OPENSSL /NOLOG '__INCLUDE'
-$!
-$! Done
-$!
-$ RETURN
-$!
-$ CLEANUP:
-$!
-$! Restore the saved logical name OPENSSL, if it had a value.
-$!
-$ if (f$type( __SAVE_OPENSSL) .nes. "")
-$ then
-$ IF __SAVE_OPENSSL .EQS. ""
-$ THEN
-$ DEASSIGN OPENSSL
-$ ELSE
-$ DEFINE /NOLOG OPENSSL '__SAVE_OPENSSL'
-$ ENDIF
-$ endif
-$!
-$! Close any open files.
-$!
-$ if (f$trnlnm( "objects", "LNM$PROCESS", 0, "SUPERVISOR") .nes. "") then -
- close objects
-$!
-$! Done
-$!
-$ RETURN
-$!
diff --git a/engines/vax.opt b/engines/vax.opt
deleted file mode 100644
index 72e6bd8..0000000
--- a/engines/vax.opt
+++ /dev/null
@@ -1,9 +0,0 @@
-!
-! Ensure transfer vector is at beginning of image
-!
-CLUSTER=FIRST
-COLLECT=FIRST,$$ENGINE
-!
-! make psects nonshareable so image can be installed.
-!
-PSECT_ATTR=$CHAR_STRING_CONSTANTS,NOWRT
diff --git a/include/openssl/__decc_include_epilogue.h b/include/openssl/__decc_include_epilogue.h
new file mode 100644
index 0000000..584384f
--- /dev/null
+++ b/include/openssl/__decc_include_epilogue.h
@@ -0,0 +1,7 @@
+/*
+ * This file is only used by HP C on VMS, and is included automatically
+ * after each header file from this directory
+ */
+
+/* restore state. Must correspond to the save in __decc_include_prologue.h */
+#pragma names restore
diff --git a/include/openssl/__decc_include_prologue.h b/include/openssl/__decc_include_prologue.h
new file mode 100644
index 0000000..455181c
--- /dev/null
+++ b/include/openssl/__decc_include_prologue.h
@@ -0,0 +1,11 @@
+/*
+ * This file is only used by HP C on VMS, and is included automatically
+ * after each header file from this directory
+ */
+
+/* save state */
+#pragma names save
+/* have the compiler shorten symbols larger than 31 chars to 23 chars
+ * followed by a 8 hex char CRC
+ */
+#pragma names as_is,shortened
diff --git a/include/openssl/symhacks.h b/include/openssl/symhacks.h
index f78a584..394f914 100644
--- a/include/openssl/symhacks.h
+++ b/include/openssl/symhacks.h
@@ -57,373 +57,8 @@
# include <openssl/e_os2.h>
-/*
- * Hacks to solve the problem with linkers incapable of handling very long
- * symbol names. In the case of VMS, the limit is 31 characters on VMS for
- * VAX.
- */
-/*
- * Note that this affects util/libeay.num and util/ssleay.num... you may
- * change those manually, but that's not recommended, as those files are
- * controlled centrally and updated on Unix, and the central definition may
- * disagree with yours, which in turn may come with shareable library
- * incompatibilities.
- */
-# ifdef OPENSSL_SYS_VMS
-
-/* Hack a long name in crypto/asn1/a_mbstr.c */
-# undef ASN1_STRING_set_default_mask_asc
-# define ASN1_STRING_set_default_mask_asc ASN1_STRING_set_def_mask_asc
-
-/* Hack the names created with DECLARE_PEM_rw(NETSCAPE_CERT_SEQUENCE) */
-# undef PEM_read_NETSCAPE_CERT_SEQUENCE
-# define PEM_read_NETSCAPE_CERT_SEQUENCE PEM_read_NS_CERT_SEQ
-# undef PEM_write_NETSCAPE_CERT_SEQUENCE
-# define PEM_write_NETSCAPE_CERT_SEQUENCE PEM_write_NS_CERT_SEQ
-# undef PEM_read_bio_NETSCAPE_CERT_SEQUENCE
-# define PEM_read_bio_NETSCAPE_CERT_SEQUENCE PEM_read_bio_NS_CERT_SEQ
-# undef PEM_write_bio_NETSCAPE_CERT_SEQUENCE
-# define PEM_write_bio_NETSCAPE_CERT_SEQUENCE PEM_write_bio_NS_CERT_SEQ
-# undef PEM_write_cb_bio_NETSCAPE_CERT_SEQUENCE
-# define PEM_write_cb_bio_NETSCAPE_CERT_SEQUENCE PEM_write_cb_bio_NS_CERT_SEQ
-
-/* Hack the names created with DECLARE_PEM_rw(PKCS8_PRIV_KEY_INFO) */
-# undef PEM_read_PKCS8_PRIV_KEY_INFO
-# define PEM_read_PKCS8_PRIV_KEY_INFO PEM_read_P8_PRIV_KEY_INFO
-# undef PEM_write_PKCS8_PRIV_KEY_INFO
-# define PEM_write_PKCS8_PRIV_KEY_INFO PEM_write_P8_PRIV_KEY_INFO
-# undef PEM_read_bio_PKCS8_PRIV_KEY_INFO
-# define PEM_read_bio_PKCS8_PRIV_KEY_INFO PEM_read_bio_P8_PRIV_KEY_INFO
-# undef PEM_write_bio_PKCS8_PRIV_KEY_INFO
-# define PEM_write_bio_PKCS8_PRIV_KEY_INFO PEM_write_bio_P8_PRIV_KEY_INFO
-# undef PEM_write_cb_bio_PKCS8_PRIV_KEY_INFO
-# define PEM_write_cb_bio_PKCS8_PRIV_KEY_INFO PEM_wrt_cb_bio_P8_PRIV_KEY_INFO
-
-/* Hack other PEM names */
-# undef PEM_write_bio_PKCS8PrivateKey_nid
-# define PEM_write_bio_PKCS8PrivateKey_nid PEM_write_bio_PKCS8PrivKey_nid
-
-/* Hack some long X509 names */
-# undef X509_REVOKED_get_ext_by_critical
-# define X509_REVOKED_get_ext_by_critical X509_REVOKED_get_ext_by_critic
-# undef X509_policy_tree_get0_user_policies
-# define X509_policy_tree_get0_user_policies X509_pcy_tree_get0_usr_policies
-# undef X509_policy_node_get0_qualifiers
-# define X509_policy_node_get0_qualifiers X509_pcy_node_get0_qualifiers
-# undef X509_STORE_CTX_get_explicit_policy
-# define X509_STORE_CTX_get_explicit_policy X509_STORE_CTX_get_expl_policy
-# undef X509_STORE_CTX_get0_current_issuer
-# define X509_STORE_CTX_get0_current_issuer X509_STORE_CTX_get0_cur_issuer
-
-/* Hack some long CRYPTO names */
-# undef CRYPTO_set_dynlock_destroy_callback
-# define CRYPTO_set_dynlock_destroy_callback CRYPTO_set_dynlock_destroy_cb
-# undef CRYPTO_set_dynlock_create_callback
-# define CRYPTO_set_dynlock_create_callback CRYPTO_set_dynlock_create_cb
-# undef CRYPTO_set_dynlock_lock_callback
-# define CRYPTO_set_dynlock_lock_callback CRYPTO_set_dynlock_lock_cb
-# undef CRYPTO_get_dynlock_lock_callback
-# define CRYPTO_get_dynlock_lock_callback CRYPTO_get_dynlock_lock_cb
-# undef CRYPTO_get_dynlock_destroy_callback
-# define CRYPTO_get_dynlock_destroy_callback CRYPTO_get_dynlock_destroy_cb
-# undef CRYPTO_get_dynlock_create_callback
-# define CRYPTO_get_dynlock_create_callback CRYPTO_get_dynlock_create_cb
-
-/* Hack some long SSL/TLS names */
-# undef SSL_CTX_set_default_verify_paths
-# define SSL_CTX_set_default_verify_paths SSL_CTX_set_def_verify_paths
-# undef SSL_get_ex_data_X509_STORE_CTX_idx
-# define SSL_get_ex_data_X509_STORE_CTX_idx SSL_get_ex_d_X509_STORE_CTX_idx
-# undef SSL_add_file_cert_subjects_to_stack
-# define SSL_add_file_cert_subjects_to_stack SSL_add_file_cert_subjs_to_stk
-# undef SSL_add_dir_cert_subjects_to_stack
-# define SSL_add_dir_cert_subjects_to_stack SSL_add_dir_cert_subjs_to_stk
-# undef SSL_CTX_use_certificate_chain_file
-# define SSL_CTX_use_certificate_chain_file SSL_CTX_use_cert_chain_file
-# undef SSL_CTX_set_cert_verify_callback
-# define SSL_CTX_set_cert_verify_callback SSL_CTX_set_cert_verify_cb
-# undef SSL_CTX_set_default_passwd_cb_userdata
-# define SSL_CTX_set_default_passwd_cb_userdata SSL_CTX_set_def_passwd_cb_ud
-# undef SSL_COMP_get_compression_methods
-# define SSL_COMP_get_compression_methods SSL_COMP_get_compress_methods
-# undef ssl_add_clienthello_renegotiate_ext
-# define ssl_add_clienthello_renegotiate_ext ssl_add_clienthello_reneg_ext
-# undef ssl_add_serverhello_renegotiate_ext
-# define ssl_add_serverhello_renegotiate_ext ssl_add_serverhello_reneg_ext
-# undef ssl_parse_clienthello_renegotiate_ext
-# define ssl_parse_clienthello_renegotiate_ext ssl_parse_clienthello_reneg_ext
-# undef ssl_parse_serverhello_renegotiate_ext
-# define ssl_parse_serverhello_renegotiate_ext ssl_parse_serverhello_reneg_ext
-# undef SSL_srp_server_param_with_username
-# define SSL_srp_server_param_with_username SSL_srp_server_param_with_un
-# undef SSL_CTX_set_srp_client_pwd_callback
-# define SSL_CTX_set_srp_client_pwd_callback SSL_CTX_set_srp_client_pwd_cb
-# undef SSL_CTX_set_srp_verify_param_callback
-# define SSL_CTX_set_srp_verify_param_callback SSL_CTX_set_srp_vfy_param_cb
-# undef SSL_CTX_set_srp_username_callback
-# define SSL_CTX_set_srp_username_callback SSL_CTX_set_srp_un_cb
-# undef ssl_add_clienthello_use_srtp_ext
-# define ssl_add_clienthello_use_srtp_ext ssl_add_clihello_use_srtp_ext
-# undef ssl_add_serverhello_use_srtp_ext
-# define ssl_add_serverhello_use_srtp_ext ssl_add_serhello_use_srtp_ext
-# undef ssl_parse_clienthello_use_srtp_ext
-# define ssl_parse_clienthello_use_srtp_ext ssl_parse_clihello_use_srtp_ext
-# undef ssl_parse_serverhello_use_srtp_ext
-# define ssl_parse_serverhello_use_srtp_ext ssl_parse_serhello_use_srtp_ext
-# undef SSL_CTX_set_next_protos_advertised_cb
-# define SSL_CTX_set_next_protos_advertised_cb SSL_CTX_set_next_protos_adv_cb
-# undef SSL_CTX_set_next_proto_select_cb
-# define SSL_CTX_set_next_proto_select_cb SSL_CTX_set_next_proto_sel_cb
-# undef SSL_CTX_set_not_resumable_session_callback
-# define SSL_CTX_set_not_resumable_session_callback \
- SSL_CTX_set_not_resumbl_sess_cb
-# undef SSL_set_not_resumable_session_callback
-# define SSL_set_not_resumable_session_callback SSL_set_not_resumbl_sess_cb
-# undef ssl_check_clienthello_tlsext_late
-# define ssl_check_clienthello_tlsext_late ssl_chk_clienthello_tlsext_late
-# undef ssl3_cbc_record_digest_supported
-# define ssl3_cbc_record_digest_supported ssl3_cbc_rcd_digest_supported
-# undef SSL_COMP_set0_compression_methods
-# define SSL_COMP_set0_compression_methods SSL_COMP_set0_compr_methods
-# undef SSL_COMP_free_compression_methods
-# define SSL_COMP_free_compression_methods SSL_COMP_free_compr_methods
-
-/* Hack some long ENGINE names */
-# undef ENGINE_get_default_BN_mod_exp_crt
-# define ENGINE_get_default_BN_mod_exp_crt ENGINE_get_def_BN_mod_exp_crt
-# undef ENGINE_set_default_BN_mod_exp_crt
-# define ENGINE_set_default_BN_mod_exp_crt ENGINE_set_def_BN_mod_exp_crt
-# undef ENGINE_set_load_privkey_function
-# define ENGINE_set_load_privkey_function ENGINE_set_load_privkey_fn
-# undef ENGINE_get_load_privkey_function
-# define ENGINE_get_load_privkey_function ENGINE_get_load_privkey_fn
-# undef ENGINE_unregister_pkey_asn1_meths
-# define ENGINE_unregister_pkey_asn1_meths ENGINE_unreg_pkey_asn1_meths
-# undef ENGINE_register_all_pkey_asn1_meths
-# define ENGINE_register_all_pkey_asn1_meths ENGINE_reg_all_pkey_asn1_meths
-# undef ENGINE_set_default_pkey_asn1_meths
-# define ENGINE_set_default_pkey_asn1_meths ENGINE_set_def_pkey_asn1_meths
-# undef ENGINE_get_pkey_asn1_meth_engine
-# define ENGINE_get_pkey_asn1_meth_engine ENGINE_get_pkey_asn1_meth_eng
-# undef ENGINE_set_load_ssl_client_cert_function
-# define ENGINE_set_load_ssl_client_cert_function \
- ENGINE_set_ld_ssl_clnt_cert_fn
-# undef ENGINE_get_ssl_client_cert_function
-# define ENGINE_get_ssl_client_cert_function ENGINE_get_ssl_client_cert_fn
-
-/* Hack some long OCSP names */
-# undef OCSP_REQUEST_get_ext_by_critical
-# define OCSP_REQUEST_get_ext_by_critical OCSP_REQUEST_get_ext_by_crit
-# undef OCSP_BASICRESP_get_ext_by_critical
-# define OCSP_BASICRESP_get_ext_by_critical OCSP_BASICRESP_get_ext_by_crit
-# undef OCSP_SINGLERESP_get_ext_by_critical
-# define OCSP_SINGLERESP_get_ext_by_critical OCSP_SINGLERESP_get_ext_by_crit
-
-/* Hack some long EVP names */
-# undef EVP_PKEY_meth_set_verify_recover
-# define EVP_PKEY_meth_set_verify_recover EVP_PKEY_meth_set_vrfy_recover
-
-/* Hack some long EC names */
-# undef EC_GROUP_set_point_conversion_form
-# define EC_GROUP_set_point_conversion_form EC_GROUP_set_point_conv_form
-# undef EC_GROUP_get_point_conversion_form
-# define EC_GROUP_get_point_conversion_form EC_GROUP_get_point_conv_form
-# undef EC_GROUP_clear_free_all_extra_data
-# define EC_GROUP_clear_free_all_extra_data EC_GROUP_clr_free_all_xtra_data
-# undef EC_KEY_set_public_key_affine_coordinates
-# define EC_KEY_set_public_key_affine_coordinates \
- EC_KEY_set_pub_key_aff_coords
-# undef EC_POINT_set_Jprojective_coordinates_GFp
-# define EC_POINT_set_Jprojective_coordinates_GFp \
- EC_POINT_set_Jproj_coords_GFp
-# undef EC_POINT_get_Jprojective_coordinates_GFp
-# define EC_POINT_get_Jprojective_coordinates_GFp \
- EC_POINT_get_Jproj_coords_GFp
-# undef EC_POINT_set_affine_coordinates_GFp
-# define EC_POINT_set_affine_coordinates_GFp EC_POINT_set_affine_coords_GFp
-# undef EC_POINT_get_affine_coordinates_GFp
-# define EC_POINT_get_affine_coordinates_GFp EC_POINT_get_affine_coords_GFp
-# undef EC_POINT_set_compressed_coordinates_GFp
-# define EC_POINT_set_compressed_coordinates_GFp EC_POINT_set_compr_coords_GFp
-# undef EC_POINT_set_affine_coordinates_GF2m
-# define EC_POINT_set_affine_coordinates_GF2m EC_POINT_set_affine_coords_GF2m
-# undef EC_POINT_get_affine_coordinates_GF2m
-# define EC_POINT_get_affine_coordinates_GF2m EC_POINT_get_affine_coords_GF2m
-# undef EC_POINT_set_compressed_coordinates_GF2m
-# define EC_POINT_set_compressed_coordinates_GF2m \
- EC_POINT_set_compr_coords_GF2m
-# undef ec_GF2m_simple_group_clear_finish
-# define ec_GF2m_simple_group_clear_finish ec_GF2m_simple_grp_clr_finish
-# undef ec_GF2m_simple_group_check_discriminant
-# define ec_GF2m_simple_group_check_discriminant ec_GF2m_simple_grp_chk_discrim
-# undef ec_GF2m_simple_point_clear_finish
-# define ec_GF2m_simple_point_clear_finish ec_GF2m_simple_pt_clr_finish
-# undef ec_GF2m_simple_point_set_to_infinity
-# define ec_GF2m_simple_point_set_to_infinity ec_GF2m_simple_pt_set_to_inf
-# undef ec_GF2m_simple_points_make_affine
-# define ec_GF2m_simple_points_make_affine ec_GF2m_simple_pts_make_affine
-# undef ec_GF2m_simple_point_set_affine_coordinates
-# define ec_GF2m_simple_point_set_affine_coordinates \
- ec_GF2m_smp_pt_set_af_coords
-# undef ec_GF2m_simple_point_get_affine_coordinates
-# define ec_GF2m_simple_point_get_affine_coordinates \
- ec_GF2m_smp_pt_get_af_coords
-# undef ec_GF2m_simple_set_compressed_coordinates
-# define ec_GF2m_simple_set_compressed_coordinates \
- ec_GF2m_smp_set_compr_coords
-# undef ec_GFp_simple_group_set_curve_GFp
-# define ec_GFp_simple_group_set_curve_GFp ec_GFp_simple_grp_set_curve_GFp
-# undef ec_GFp_simple_group_get_curve_GFp
-# define ec_GFp_simple_group_get_curve_GFp ec_GFp_simple_grp_get_curve_GFp
-# undef ec_GFp_simple_group_clear_finish
-# define ec_GFp_simple_group_clear_finish ec_GFp_simple_grp_clear_finish
-# undef ec_GFp_simple_group_set_generator
-# define ec_GFp_simple_group_set_generator ec_GFp_simple_grp_set_generator
-# undef ec_GFp_simple_group_get0_generator
-# define ec_GFp_simple_group_get0_generator ec_GFp_simple_grp_gt0_generator
-# undef ec_GFp_simple_group_get_cofactor
-# define ec_GFp_simple_group_get_cofactor ec_GFp_simple_grp_get_cofactor
-# undef ec_GFp_simple_point_clear_finish
-# define ec_GFp_simple_point_clear_finish ec_GFp_simple_pt_clear_finish
-# undef ec_GFp_simple_point_set_to_infinity
-# define ec_GFp_simple_point_set_to_infinity ec_GFp_simple_pt_set_to_inf
-# undef ec_GFp_simple_points_make_affine
-# define ec_GFp_simple_points_make_affine ec_GFp_simple_pts_make_affine
-# undef ec_GFp_simple_set_Jprojective_coordinates_GFp
-# define ec_GFp_simple_set_Jprojective_coordinates_GFp \
- ec_GFp_smp_set_Jproj_coords_GFp
-# undef ec_GFp_simple_get_Jprojective_coordinates_GFp
-# define ec_GFp_simple_get_Jprojective_coordinates_GFp \
- ec_GFp_smp_get_Jproj_coords_GFp
-# undef ec_GFp_simple_point_set_affine_coordinates_GFp
-# define ec_GFp_simple_point_set_affine_coordinates_GFp \
- ec_GFp_smp_pt_set_af_coords_GFp
-# undef ec_GFp_simple_point_get_affine_coordinates_GFp
-# define ec_GFp_simple_point_get_affine_coordinates_GFp \
- ec_GFp_smp_pt_get_af_coords_GFp
-# undef ec_GFp_simple_set_compressed_coordinates_GFp
-# define ec_GFp_simple_set_compressed_coordinates_GFp \
- ec_GFp_smp_set_compr_coords_GFp
-# undef ec_GFp_simple_point_set_affine_coordinates
-# define ec_GFp_simple_point_set_affine_coordinates \
- ec_GFp_smp_pt_set_af_coords
-# undef ec_GFp_simple_point_get_affine_coordinates
-# define ec_GFp_simple_point_get_affine_coordinates \
- ec_GFp_smp_pt_get_af_coords
-# undef ec_GFp_simple_set_compressed_coordinates
-# define ec_GFp_simple_set_compressed_coordinates \
- ec_GFp_smp_set_compr_coords
-# undef ec_GFp_simple_group_check_discriminant
-# define ec_GFp_simple_group_check_discriminant ec_GFp_simple_grp_chk_discrim
-
-/* Hack som long STORE names */
-# undef STORE_method_set_initialise_function
-# define STORE_method_set_initialise_function STORE_meth_set_initialise_fn
-# undef STORE_method_set_cleanup_function
-# define STORE_method_set_cleanup_function STORE_meth_set_cleanup_fn
-# undef STORE_method_set_generate_function
-# define STORE_method_set_generate_function STORE_meth_set_generate_fn
-# undef STORE_method_set_modify_function
-# define STORE_method_set_modify_function STORE_meth_set_modify_fn
-# undef STORE_method_set_revoke_function
-# define STORE_method_set_revoke_function STORE_meth_set_revoke_fn
-# undef STORE_method_set_delete_function
-# define STORE_method_set_delete_function STORE_meth_set_delete_fn
-# undef STORE_method_set_list_start_function
-# define STORE_method_set_list_start_function STORE_meth_set_list_start_fn
-# undef STORE_method_set_list_next_function
-# define STORE_method_set_list_next_function STORE_meth_set_list_next_fn
-# undef STORE_method_set_list_end_function
-# define STORE_method_set_list_end_function STORE_meth_set_list_end_fn
-# undef STORE_method_set_update_store_function
-# define STORE_method_set_update_store_function STORE_meth_set_update_store_fn
-# undef STORE_method_set_lock_store_function
-# define STORE_method_set_lock_store_function STORE_meth_set_lock_store_fn
-# undef STORE_method_set_unlock_store_function
-# define STORE_method_set_unlock_store_function STORE_meth_set_unlock_store_fn
-# undef STORE_method_get_initialise_function
-# define STORE_method_get_initialise_function STORE_meth_get_initialise_fn
-# undef STORE_method_get_cleanup_function
-# define STORE_method_get_cleanup_function STORE_meth_get_cleanup_fn
-# undef STORE_method_get_generate_function
-# define STORE_method_get_generate_function STORE_meth_get_generate_fn
-# undef STORE_method_get_modify_function
-# define STORE_method_get_modify_function STORE_meth_get_modify_fn
-# undef STORE_method_get_revoke_function
-# define STORE_method_get_revoke_function STORE_meth_get_revoke_fn
-# undef STORE_method_get_delete_function
-# define STORE_method_get_delete_function STORE_meth_get_delete_fn
-# undef STORE_method_get_list_start_function
-# define STORE_method_get_list_start_function STORE_meth_get_list_start_fn
-# undef STORE_method_get_list_next_function
-# define STORE_method_get_list_next_function STORE_meth_get_list_next_fn
-# undef STORE_method_get_list_end_function
-# define STORE_method_get_list_end_function STORE_meth_get_list_end_fn
-# undef STORE_method_get_update_store_function
-# define STORE_method_get_update_store_function STORE_meth_get_update_store_fn
-# undef STORE_method_get_lock_store_function
-# define STORE_method_get_lock_store_function STORE_meth_get_lock_store_fn
-# undef STORE_method_get_unlock_store_function
-# define STORE_method_get_unlock_store_function STORE_meth_get_unlock_store_fn
-
-/* Hack some long TS names */
-# undef TS_RESP_CTX_set_status_info_cond
-# define TS_RESP_CTX_set_status_info_cond TS_RESP_CTX_set_stat_info_cond
-# undef TS_RESP_CTX_set_clock_precision_digits
-# define TS_RESP_CTX_set_clock_precision_digits TS_RESP_CTX_set_clk_prec_digits
-# undef TS_CONF_set_clock_precision_digits
-# define TS_CONF_set_clock_precision_digits TS_CONF_set_clk_prec_digits
-
-/* Hack some long CMS names */
-# undef CMS_RecipientInfo_ktri_get0_algs
-# define CMS_RecipientInfo_ktri_get0_algs CMS_RecipInfo_ktri_get0_algs
-# undef CMS_RecipientInfo_ktri_get0_signer_id
-# define CMS_RecipientInfo_ktri_get0_signer_id CMS_RecipInfo_ktri_get0_sigr_id
-# undef CMS_OtherRevocationInfoFormat_it
-# define CMS_OtherRevocationInfoFormat_it CMS_OtherRevocInfoFormat_it
-# undef CMS_KeyAgreeRecipientIdentifier_it
-# define CMS_KeyAgreeRecipientIdentifier_it CMS_KeyAgreeRecipIdentifier_it
-# undef CMS_OriginatorIdentifierOrKey_it
-# define CMS_OriginatorIdentifierOrKey_it CMS_OriginatorIdOrKey_it
-# undef cms_SignerIdentifier_get0_signer_id
-# define cms_SignerIdentifier_get0_signer_id cms_SignerId_get0_signer_id
-# undef CMS_RecipientInfo_kari_get0_orig_id
-# define CMS_RecipientInfo_kari_get0_orig_id CMS_RecipInfo_kari_get0_orig_id
-# undef CMS_RecipientInfo_kari_get0_reks
-# define CMS_RecipientInfo_kari_get0_reks CMS_RecipInfo_kari_get0_reks
-# undef CMS_RecipientInfo_kari_set0_pkey
-# define CMS_RecipientInfo_kari_set0_pkey CMS_RecipInfo_kari_set0_pkey
-# undef CMS_RecipientInfo_kari_orig_id_cmp
-# define CMS_RecipientInfo_kari_orig_id_cmp CMS_RecipInfo_kari_orig_id_cmp
-# undef CMS_RecipientEncryptedKey_cert_cmp
-# define CMS_RecipientEncryptedKey_cert_cmp CMS_RecipEncryptedKey_cert_cmp
-# undef CMS_RecipientEncryptedKey_get0_id
-# define CMS_RecipientEncryptedKey_get0_id CMS_RecipEncryptedKey_get0_id
-
-/* Hack some long DTLS1 names */
-# undef dtls1_retransmit_buffered_messages
-# define dtls1_retransmit_buffered_messages dtls1_retransmit_buffered_msgs
-
-/* Hack some long SRP names */
-# undef SRP_generate_server_master_secret
-# define SRP_generate_server_master_secret SRP_gen_server_master_secret
-# undef SRP_generate_client_master_secret
-# define SRP_generate_client_master_secret SRP_gen_client_master_secret
-
-/* Hack some long UI names */
-# undef UI_method_get_prompt_constructor
-# define UI_method_get_prompt_constructor UI_method_get_prompt_constructr
-# undef UI_method_set_prompt_constructor
-# define UI_method_set_prompt_constructor UI_method_set_prompt_constructr
-
-/* Hack some long RSA names */
-# undef RSA_padding_check_PKCS1_OAEP_mgf1
-# define RSA_padding_check_PKCS1_OAEP_mgf1 RSA_padding_chk_PKCS1_OAEP_mgf1
-
-# endif /* defined OPENSSL_SYS_VMS */
-
/* Case insensitive linking causes problems.... */
-# if defined(OPENSSL_SYS_VMS) || defined(OPENSSL_SYS_OS2)
+# if defined(OPENSSL_SYS_OS2) || defined(OPENSSL_SYS_VMS)
# undef ERR_load_CRYPTO_strings
# define ERR_load_CRYPTO_strings ERR_load_CRYPTOlib_strings
# undef OCSP_crlID_new
diff --git a/install.com b/install.com
deleted file mode 100644
index 6a0ea2d..0000000
--- a/install.com
+++ /dev/null
@@ -1,136 +0,0 @@
-$! INSTALL.COM -- Installs the files in a given directory tree
-$!
-$! Author: Richard Levitte <richard at levitte.org>
-$! Time of creation: 22-MAY-1998 10:13
-$!
-$! P1 root of the directory tree
-$! P2 "64" for 64-bit pointers.
-$!
-$!
-$! Announce/identify.
-$!
-$ proc = f$environment( "procedure")
-$ write sys$output "@@@ "+ -
- f$parse( proc, , , "name")+ f$parse( proc, , , "type")
-$!
-$ def_orig = f$environment( "default")
-$ on error then goto tidy
-$ on control_c then goto tidy
-$!
-$ if (p1 .eqs. "")
-$ then
-$ write sys$output "First argument missing."
-$ write sys$output -
- "It should be the directory where you want things installed."
-$ exit
-$ endif
-$!
-$ if (f$getsyi("cpu") .lt. 128)
-$ then
-$ arch = "VAX"
-$ else
-$ arch = f$edit( f$getsyi( "arch_name"), "upcase")
-$ if (arch .eqs. "") then arch = "UNK"
-$ endif
-$!
-$ archd = arch
-$!
-$ if (p2 .nes. "")
-$ then
-$ if (p2 .eqs. "64")
-$ then
-$ archd = arch+ "_64"
-$ else
-$ if (p2 .nes. "32")
-$ then
-$ write sys$output "Second argument invalid."
-$ write sys$output "It should be "32", "64", or nothing."
-$ exit
-$ endif
-$ endif
-$ endif
-$!
-$ root = f$parse( p1, "[]A.;0", , , "syntax_only, no_conceal") - "A.;0"
-$ root_dev = f$parse( root, , , "device", "syntax_only")
-$ root_dir = f$parse( root, , , "directory", "syntax_only") -
- - ".][000000" - "[000000." - "][" - "[" - "]"
-$ root = root_dev + "[" + root_dir
-$!
-$ define /nolog wrk_sslroot 'root'.] /trans=conc
-$ define /nolog wrk_sslcerts wrk_sslroot:[certs]
-$ define /nolog wrk_sslinclude wrk_sslroot:[include]
-$ define /nolog wrk_ssllib wrk_sslroot:[lib]
-$ define /nolog wrk_sslprivate wrk_sslroot:[private]
-$ define /nolog wrk_sslxexe wrk_sslroot:['archd'_exe]
-$ define /nolog wrk_sslxlib wrk_sslroot:['arch'_lib]
-$!
-$! Exhibit the destination directory.
-$!
-$ write sys$output " Installing to (WRK_SSLROOT) ="
-$ write sys$output " ''f$trnlnm( "wrk_sslroot")'"
-$ write sys$output ""
-$!
-$ if f$parse("wrk_sslroot:[000000]") .eqs. "" then -
- create /directory /log wrk_sslroot:[000000]
-$ if f$parse("wrk_sslxexe:") .eqs. "" then -
- create /directory /log wrk_sslxexe:
-$ if f$parse("wrk_sslxlib:") .eqs. "" then -
- create /directory /log wrk_sslxlib:
-$ if f$parse("wrk_ssllib:") .eqs. "" then -
- create /directory /log wrk_ssllib:
-$ if f$parse("wrk_sslinclude:") .eqs. "" then -
- create /directory /log wrk_sslinclude:
-$ if f$parse("wrk_sslcerts:") .eqs. "" then -
- create /directory /log wrk_sslcerts:
-$ if f$parse("wrk_sslprivate:") .eqs. "" then -
- create /directory /log wrk_sslprivate:
-$ if f$parse("wrk_sslroot:[VMS]") .EQS. "" THEN -
- create /directory /log wrk_sslroot:[VMS]
-$!
-$ sdirs := CRYPTO, SSL, APPS, VMS !!!, RSAREF, TEST, TOOLS
-$ exheader := e_os2.h
-$!
-$ copy /protection = w:re 'exheader' wrk_sslinclude: /log
-$!
-$ i = 0
-$ loop_sdirs:
-$ d = f$edit( f$element(i, ",", sdirs), "trim")
-$ i = i + 1
-$ if d .eqs. "," then goto loop_sdirs_end
-$ write sys$output "Installing ", d, " files."
-$ set default [.'d']
-$ @ install-'d'.com 'root'] 'p2'
-$ set default 'def_orig'
-$ goto loop_sdirs
-$ loop_sdirs_end:
-$!
-$ write sys$output ""
-$ write sys$output " Installation done!"
-$ write sys$output ""
-$ if (f$search( root+ "...]*.*;-1") .nes. "")
-$ then
-$ write sys$output " You might want to purge ", root, "...]"
-$ write sys$output ""
-$ endif
-$!
-$ tidy:
-$!
-$ set default 'def_orig'
-$!
-$ call deass wrk_sslroot
-$ call deass wrk_sslcerts
-$ call deass wrk_sslinclude
-$ call deass wrk_ssllib
-$ call deass wrk_sslprivate
-$ call deass wrk_sslxexe
-$ call deass wrk_sslxlib
-$!
-$ exit
-$!
-$ deass: subroutine
-$ if (f$trnlnm( p1, "LNM$PROCESS") .nes. "")
-$ then
-$ deassign /process 'p1'
-$ endif
-$ endsubroutine
-$!
diff --git a/makevms.com b/makevms.com
deleted file mode 100755
index bfaf261..0000000
--- a/makevms.com
+++ /dev/null
@@ -1,1548 +0,0 @@
-$!
-$! MAKEVMS.COM
-$! Original Author: UNKNOWN
-$! Rewritten By: Robert Byer
-$! Vice-President
-$! A-Com Computing, Inc.
-$! byer at mail.all-net.net
-$!
-$! Changes by Richard Levitte <richard at levitte.org>
-$! Zoltan Arpadffy <zoli at polarhome.com>
-$!
-$! This procedure creates the SSL libraries of "[.xxx.EXE.CRYPTO]LIBCRYPTO.OLB"
-$! "[.xxx.EXE.SSL]LIBSSL.OLB"
-$! The "xxx" denotes the machine architecture of ALPHA, IA64 or VAX.
-$!
-$! This procedures accepts two command line options listed below.
-$!
-$! P1 specifies one of the following build options:
-$!
-$! ALL Just build "everything".
-$! CONFIG Just build the "[.CRYPTO._xxx]OPENSSLCONF.H" file.
-$! BUILDINF Just build the "[.CRYPTO._xxx]BUILDINF.H" file.
-$! SOFTLINKS Just fix the Unix soft links.
-$! BUILDALL Same as ALL, except CONFIG, BUILDINF and SOFTILNKS aren't done.
-$! CRYPTO Just build the "[.xxx.EXE.CRYPTO]LIBCRYPTO.OLB" library.
-$! CRYPTO/x Just build the x part of the
-$! "[.xxx.EXE.CRYPTO]LIBCRYPTO.OLB" library.
-$! SSL Just build the "[.xxx.EXE.SSL]LIBSSL.OLB" library.
-$! TEST Just build the "[.xxx.EXE.TEST]" test programs for OpenSSL.
-$! APPS Just build the "[.xxx.EXE.APPS]" application programs for OpenSSL.
-$! ENGINES Just build the "[.xxx.EXE.ENGINES]" application programs for OpenSSL.
-$!
-$! P2, if defined, specifies the C pointer size. Ignored on VAX.
-$! ("64=ARGV" gives more efficient code with HP C V7.3 or newer.)
-$! Supported values are:
-$!
-$! "" Compile with default (/NOPOINTER_SIZE).
-$! 32 Compile with /POINTER_SIZE=32 (SHORT).
-$! 64 Compile with /POINTER_SIZE=64[=ARGV] (LONG[=ARGV]).
-$! (Automatically select ARGV if compiler supports it.)
-$! 64= Compile with /POINTER_SIZE=64 (LONG).
-$! 64=ARGV Compile with /POINTER_SIZE=64=ARGV (LONG=ARGV).
-$!
-$! P3 specifies DEBUG or NODEBUG, to compile with or without debugging
-$! information.
-$!
-$! P4 specifies which compiler to try to compile under.
-$!
-$! VAXC For VAX C.
-$! DECC For DEC C.
-$! GNUC For GNU C.
-$! LINK To only link the programs from existing object files.
-$! (not yet implemented)
-$!
-$! If you don't specify a compiler, it will try to determine which
-$! "C" compiler to use.
-$!
-$! P5, if defined, sets a TCP/IP library to use, through one of the following
-$! keywords:
-$!
-$! UCX for UCX or UCX emulation
-$! TCPIP for TCP/IP Services or TCP/IP Services emulation
-$! (this is prefered over UCX)
-$! SOCKETSHR for SOCKETSHR+NETLIB
-$! NONE to avoid specifying which TCP/IP implementation to
-$! use at build time (this works with DEC C). This is
-$! the default.
-$!
-$! P6, if defined, sets a compiler thread NOT needed on OpenVMS 7.1 (and up).
-$!
-$! P7, if defined, specifies a directory where ZLIB files (zlib.h,
-$! libz.olb) may be found. Optionally, a non-default object library
-$! name may be included ("dev:[dir]libz_64.olb", for example).
-$!
-$!
-$! Announce/identify.
-$!
-$ proc = f$environment( "procedure")
-$ write sys$output "@@@ "+ -
- f$parse( proc, , , "name")+ f$parse( proc, , , "type")
-$!
-$ DEF_ORIG = F$ENVIRONMENT( "DEFAULT")
-$ ON ERROR THEN GOTO TIDY
-$ ON CONTROL_C THEN GOTO TIDY
-$!
-$! Check if we're in a batch job, and make sure we get to
-$! the directory this script is in
-$!
-$ IF F$MODE() .EQS. "BATCH"
-$ THEN
-$ COMNAME=F$ENVIRONMENT("PROCEDURE")
-$ COMPATH=F$PARSE("A.;",COMNAME) - "A.;"
-$ SET DEF 'COMPATH'
-$ ENDIF
-$!
-$! Check What Architecture We Are Using.
-$!
-$ IF (F$GETSYI("CPU").LT.128)
-$ THEN
-$!
-$! The Architecture Is VAX.
-$!
-$ ARCH = "VAX"
-$!
-$! Else...
-$!
-$ ELSE
-$!
-$! The Architecture Is Alpha, IA64 or whatever comes in the future.
-$!
-$ ARCH = F$EDIT( F$GETSYI( "ARCH_NAME"), "UPCASE")
-$ IF (ARCH .EQS. "") THEN ARCH = "UNK"
-$!
-$! End The Architecture Check.
-$!
-$ ENDIF
-$!
-$ ARCHD = ARCH
-$ LIB32 = "32"
-$ POINTER_SIZE = ""
-$!
-$! Get VMS version.
-$!
-$ VMS_VERSION = f$edit( f$getsyi( "VERSION"), "TRIM")
-$!
-$! Check To Make Sure We Have Valid Command Line Parameters.
-$!
-$ GOSUB CHECK_OPTIONS
-$!
-$! Check To See What We Are To Do.
-$!
-$ IF (BUILDCOMMAND.EQS."ALL")
-$ THEN
-$!
-$! Start with building the OpenSSL configuration file.
-$!
-$ GOSUB CONFIG
-$!
-$! Create The "BUILDINF.H" Include File.
-$!
-$ GOSUB BUILDINF
-$!
-$! Fix The Unix Softlinks.
-$!
-$ GOSUB SOFTLINKS
-$!
-$ ENDIF
-$!
-$ IF (BUILDCOMMAND.EQS."ALL".OR.BUILDCOMMAND.EQS."BUILDALL")
-$ THEN
-$!
-$! Build The [.xxx.EXE.CRYPTO]LIBCRYPTO.OLB Library.
-$!
-$ GOSUB CRYPTO
-$!
-$! Build The [.xxx.EXE.SSL]LIBSSL.OLB Library.
-$!
-$ GOSUB SSL
-$!
-$! Build The [.xxx.EXE.TEST] OpenSSL Test Utilities.
-$!
-$ GOSUB TEST
-$!
-$! Build The [.xxx.EXE.APPS] OpenSSL Application Utilities.
-$!
-$ GOSUB APPS
-$!
-$! Build The [.xxx.EXE.ENGINES] OpenSSL Shareable Engines.
-$!
-$ GOSUB ENGINES
-$!
-$! Else...
-$!
-$ ELSE
-$!
-$! Build Just What The User Wants Us To Build.
-$!
-$ GOSUB 'BUILDCOMMAND'
-$!
-$ ENDIF
-$!
-$! Time To EXIT.
-$!
-$ GOTO TIDY
-$!
-$! Rebuild The [.CRYPTO._xxx]OPENSSLCONF.H" file.
-$!
-$ CONFIG:
-$!
-$! Tell The User We Are Creating The [.CRYPTO._xxx]OPENSSLCONF.H File.
-$!
-$ WRITE SYS$OUTPUT "Creating [.CRYPTO.''ARCHD']OPENSSLCONF.H Include File."
-$!
-$! First, make sure the directory exists.
-$!
-$ IF F$PARSE("SYS$DISK:[.CRYPTO.''ARCHD']") .EQS. "" THEN -
- CREATE/DIRECTORY SYS$DISK:[.CRYPTO.'ARCHD']
-$!
-$! Different tar/UnZip versions/option may have named the file differently
-$ IF F$SEARCH("[.crypto]opensslconf.h_in") .NES. ""
-$ THEN
-$ OPENSSLCONF_H_IN = "[.crypto]opensslconf.h_in"
-$ ELSE
-$ IF F$SEARCH( "[.crypto]opensslconf_h.in") .NES. ""
-$ THEN
-$ OPENSSLCONF_H_IN = "[.crypto]opensslconf_h.in"
-$ ELSE
-$ ! For ODS-5
-$ IF F$SEARCH( "[.crypto]opensslconf.h.in") .NES. ""
-$ THEN
-$ OPENSSLCONF_H_IN = "[.crypto]opensslconf.h.in"
-$ ELSE
-$ WRITE SYS$ERROR "Couldn't find a [.crypto]opensslconf.h.in. Exiting!"
-$ $STATUS = %X00018294 ! "%RMS-F-FNF, file not found".
-$ GOTO TIDY
-$ ENDIF
-$ ENDIF
-$ ENDIF
-$!
-$! Create The [.CRYPTO._xxx]OPENSSLCONF.H File.
-$! Make sure it has the right format.
-$!
-$ OSCH_NAME = "SYS$DISK:[.CRYPTO.''ARCHD']OPENSSLCONF.H"
-$ CREATE /FDL=SYS$INPUT: 'OSCH_NAME'
-RECORD
- FORMAT stream_lf
-$ OPEN /APPEND H_FILE 'OSCH_NAME'
-$!
-$! Write The [.CRYPTO._xxx]OPENSSLCONF.H File.
-$!
-$ WRITE H_FILE "/* This file was automatically built using makevms.com */"
-$ WRITE H_FILE "/* and ''OPENSSLCONF_H_IN' */"
-$!
-$! Write a few macros that indicate how this system was built.
-$!
-$ WRITE H_FILE ""
-$ WRITE H_FILE "#ifndef OPENSSL_SYS_VMS"
-$ WRITE H_FILE "# define OPENSSL_SYS_VMS"
-$ WRITE H_FILE "#endif"
-$
-$!
-$! Defined the full SDIRS here. It will be pruned depending on configuration.
-$! This is an exact copy of what's found in Makefile.in, with spaces replaced
-$! with commas.
-$!
-$ SDIRS := -
- objects,-
- md2,md4,md5,sha,mdc2,hmac,ripemd,whrlpool,-
- des,aes,rc2,rc4,rc5,idea,bf,cast,camellia,seed,modes,-
- bn,ec,rsa,dsa,ecdsa,dh,ecdh,dso,engine,-
- buffer,bio,stack,lhash,rand,err,-
- evp,asn1,pem,x509,x509v3,conf,txt_db,pkcs7,pkcs12,comp,ocsp,ui,-
- cms,pqueue,ts,jpake,srp,store,cmac
-$
-$! One of the best way to figure out what the list should be is to do
-$! the following on a Unix system:
-$! grep OPENSSL_NO_ crypto/include/internal/*.h crypto/*/*.h ssl/*.h engines/*.h engines/*/*.h|grep ':# *if'|sed -e 's/^.*def //'|sort|uniq
-$! For that reason, the list will also always end up in alphabetical order
-$ CONFIG_LOGICALS := AES,-
- ASM,INLINE_ASM,-
- BF,-
- CAMELLIA,-
- CAST,-
- CMS,-
- COMP,-
- DEPRECATED,-
- DES,-
- DGRAM,-
- DH,-
- DSA,-
- EC,-
- EC2M,-
- ECDH,-
- ECDSA,-
- EC_NISTP_64_GCC_128,-
- ENGINE,-
- ERR,-
- GMP,-
- GOST,-
- HEARTBEATS,-
- HMAC,-
- IDEA,-
- JPAKE,-
- MD2,-
- MD4,-
- MD5,-
- MDC2,-
- NEXTPROTONEG,-
- OCB,-
- OCSP,-
- PSK,-
- RC2,-
- RC4,-
- RC5,-
- RFC3779,-
- RMD160,-
- RSA,-
- SCT,-
- SCRYPT,-
- SCTP,-
- SEED,-
- SOCK,-
- SRP,-
- SRTP,-
- SSL3_METHOD,-
- SSL_TRACE,-
- STATIC_ENGINE,-
- STDIO,-
- STORE,-
- UNIT_TEST,-
- WHIRLPOOL
-$ CONFIG_EXPERIMENTAL := JPAKE,-
- STORE
-$! The following rules, which dictate how some algorithm choices affect
-$! others, are picked from Configure.
-$! Quick syntax:
-$! list = item[ ; list]
-$! item = algos / dependents
-$! algos = algo [, algos]
-$! dependents = dependent [, dependents]
-$! When a list of algos is specified in one item, it means that they must
-$! all be disabled for the rule to apply.
-$! When a list of dependents is specified in one item, it means that they
-$! will all be disabled if the rule applies.
-$! Rules are checked sequentially. If a rule disables an algorithm, it will
-$! affect all following rules that depend on that algorithm being disabled.
-$! To force something to be enabled or disabled, have no algorithms in the
-$! algos part.
-$ CONFIG_DISABLE_RULES := RIJNDAEL/AES;-
- RMD160/RIPEMD;-
- DES/MDC2;-
- EC/ECDSA,ECDH;-
- MD5/SSL3,TLS1;-
- SHA/SSL3,TLS1;-
- RSA,DSA/SSL3,TLS1;-
- DH/SSL3,TLS1;-
- EC/GOST;-
- DSA/GOST;-
- DH/GOST;-
- /STATIC_ENGINE;-
- /DEPRECATED;-
- /EC_NISTP_64_GCC_128;-
- /GMP;-
- /MD2;-
- /RC5;-
- /RFC3779;-
- /SCTP;-
- /SSL_TRACE;-
- /UNIT_TEST
-$ CONFIG_ENABLE_RULES := ZLIB_DYNAMIC/ZLIB;-
- /THREADS
-$
-$! Architecture specific rule addtions
-$ IF ARCH .EQS. "VAX"
-$ THEN
-$ ! Disable algorithms that require 64-bit integers in C
-$ CONFIG_DISABLE_RULES = CONFIG_DISABLE_RULES + -
- ";/GOST" + -
- ";/WHIRLPOOL"
-$ ENDIF
-$
-$! Keep track of things to remove from SDIRS, have the items surrounded
-$! with commas
-$ SKIP_SDIRS = ","
-$
-$ CONFIG_LOG_I = 0
-$ CONFIG_LOG_LOOP11:
-$ CONFIG_LOG_E = F$EDIT(F$ELEMENT(CONFIG_LOG_I,",",CONFIG_LOGICALS),"TRIM")
-$ CONFIG_LOG_I = CONFIG_LOG_I + 1
-$ IF CONFIG_LOG_E .EQS. "" THEN GOTO CONFIG_LOG_LOOP11
-$ IF CONFIG_LOG_E .EQS. "," THEN GOTO CONFIG_LOG_LOOP11_END
-$ IF F$TRNLNM("OPENSSL_NO_"+CONFIG_LOG_E)
-$ THEN
-$ CONFIG_DISABLED_'CONFIG_LOG_E' := YES
-$ CONFIG_ENABLED_'CONFIG_LOG_E' := NO
-$ CONFIG_CHANGED_'CONFIG_LOG_E' := YES
-$ IF (SKIP_SDIRS - (","+CONFIG_LOG_E+",")) .EQS. SKIP_SDIRS THEN -
- SKIP_SDIRS = SKIP_SDIRS + CONFIG_LOG_E + ","
-$ ELSE
-$ CONFIG_DISABLED_'CONFIG_LOG_E' := NO
-$ CONFIG_ENABLED_'CONFIG_LOG_E' := YES
-$ ! Because all non-experimental algorithms are assumed
-$ ! enabled by default
-$ CONFIG_CHANGED_'CONFIG_LOG_E' := NO
-$ IF (SKIP_SDIRS - (","+CONFIG_LOG_E+",")) .NES. SKIP_SDIRS THEN -
- SKIP_SDIRS = SKIP_SDIRS - (CONFIG_LOG_E + ",")
-$ ENDIF
-$ GOTO CONFIG_LOG_LOOP11
-$ CONFIG_LOG_LOOP11_END:
-$
-$ CONFIG_LOG_I = 0
-$ CONFIG_LOG_LOOP12:
-$ CONFIG_LOG_E = F$EDIT(F$ELEMENT(CONFIG_LOG_I,",",CONFIG_EXPERIMENTAL),"TRIM")
-$ CONFIG_LOG_I = CONFIG_LOG_I + 1
-$ IF CONFIG_LOG_E .EQS. "" THEN GOTO CONFIG_LOG_LOOP12
-$ IF CONFIG_LOG_E .EQS. "," THEN GOTO CONFIG_LOG_LOOP12_END
-$ IF F$TRNLNM("OPENSSL_EXPERIMENTAL_"+CONFIG_LOG_E)
-$ THEN
-$ CONFIG_DISABLED_'CONFIG_LOG_E' := NO
-$ CONFIG_ENABLED_'CONFIG_LOG_E' := YES
-$ CONFIG_CHANGED_'CONFIG_LOG_E' := YES
-$ IF (SKIP_SDIRS - (","+CONFIG_LOG_E+",")) .NES. SKIP_SDIRS THEN -
- SKIP_SDIRS = SKIP_SDIRS - (CONFIG_LOG_E + ",")
-$ ELSE
-$ CONFIG_DISABLED_'CONFIG_LOG_E' := YES
-$ CONFIG_ENABLED_'CONFIG_LOG_E' := NO
-$ ! Because all experimental algorithms are assumed
-$ ! disabled by default
-$ CONFIG_CHANGED_'CONFIG_LOG_E' := NO
-$ IF (SKIP_SDIRS - (","+CONFIG_LOG_E+",")) .EQS. SKIP_SDIRS THEN -
- SKIP_SDIRS = SKIP_SDIRS + CONFIG_LOG_E + ","
-$ ENDIF
-$ GOTO CONFIG_LOG_LOOP12
-$ CONFIG_LOG_LOOP12_END:
-$
-$! Apply cascading disable rules
-$ CONFIG_DISABLE_I = 0
-$ CONFIG_DISABLE_LOOP0:
-$ CONFIG_DISABLE_E = F$EDIT(F$ELEMENT(CONFIG_DISABLE_I,";", -
- CONFIG_DISABLE_RULES),"TRIM")
-$ CONFIG_DISABLE_I = CONFIG_DISABLE_I + 1
-$ IF CONFIG_DISABLE_E .EQS. "" THEN GOTO CONFIG_DISABLE_LOOP0
-$ IF CONFIG_DISABLE_E .EQS. ";" THEN GOTO CONFIG_DISABLE_LOOP0_END
-$
-$ CONFIG_DISABLE_ALGOS = F$EDIT(F$ELEMENT(0,"/",CONFIG_DISABLE_E),"TRIM")
-$ CONFIG_DISABLE_DEPENDENTS = F$EDIT(F$ELEMENT(1,"/",CONFIG_DISABLE_E),"TRIM")
-$ TO_DISABLE := YES
-$ CONFIG_ALGO_I = 0
-$ CONFIG_DISABLE_LOOP1:
-$ CONFIG_ALGO_E = F$EDIT(F$ELEMENT(CONFIG_ALGO_I,",", -
- CONFIG_DISABLE_ALGOS),"TRIM")
-$ CONFIG_ALGO_I = CONFIG_ALGO_I + 1
-$ IF CONFIG_ALGO_E .EQS. "" THEN GOTO CONFIG_DISABLE_LOOP1
-$ IF CONFIG_ALGO_E .EQS. "," THEN GOTO CONFIG_DISABLE_LOOP1_END
-$ IF F$TYPE(CONFIG_DISABLED_'CONFIG_ALGO_E') .EQS. ""
-$ THEN
-$ TO_DISABLE := NO
-$ ELSE
-$ IF .NOT. CONFIG_DISABLED_'CONFIG_ALGO_E' THEN TO_DISABLE := NO
-$ ENDIF
-$ GOTO CONFIG_DISABLE_LOOP1
-$ CONFIG_DISABLE_LOOP1_END:
-$
-$ IF TO_DISABLE
-$ THEN
-$ CONFIG_DEPENDENT_I = 0
-$ CONFIG_DISABLE_LOOP2:
-$ CONFIG_DEPENDENT_E = F$EDIT(F$ELEMENT(CONFIG_DEPENDENT_I,",", -
- CONFIG_DISABLE_DEPENDENTS),"TRIM")
-$ CONFIG_DEPENDENT_I = CONFIG_DEPENDENT_I + 1
-$ IF CONFIG_DEPENDENT_E .EQS. "" THEN GOTO CONFIG_DISABLE_LOOP2
-$ IF CONFIG_DEPENDENT_E .EQS. "," THEN GOTO CONFIG_DISABLE_LOOP2_END
-$ CONFIG_DISABLED_'CONFIG_DEPENDENT_E' := YES
-$ CONFIG_ENABLED_'CONFIG_DEPENDENT_E' := NO
-$ ! Better not to assume defaults at this point...
-$ CONFIG_CHANGED_'CONFIG_DEPENDENT_E' := YES
-$ IF (SKIP_SDIRS - (","+CONFIG_DEPENDENT_E+",")) .EQS. SKIP_SDIRS THEN -
- SKIP_SDIRS = SKIP_SDIRS + CONFIG_DEPENDENT_E + ","
-$ WRITE SYS$ERROR -
- "''CONFIG_DEPENDENT_E' disabled by rule ''CONFIG_DISABLE_E'"
-$ GOTO CONFIG_DISABLE_LOOP2
-$ CONFIG_DISABLE_LOOP2_END:
-$ ENDIF
-$ GOTO CONFIG_DISABLE_LOOP0
-$ CONFIG_DISABLE_LOOP0_END:
-$
-$! Apply cascading enable rules
-$ CONFIG_ENABLE_I = 0
-$ CONFIG_ENABLE_LOOP0:
-$ CONFIG_ENABLE_E = F$EDIT(F$ELEMENT(CONFIG_ENABLE_I,";", -
- CONFIG_ENABLE_RULES),"TRIM")
-$ CONFIG_ENABLE_I = CONFIG_ENABLE_I + 1
-$ IF CONFIG_ENABLE_E .EQS. "" THEN GOTO CONFIG_ENABLE_LOOP0
-$ IF CONFIG_ENABLE_E .EQS. ";" THEN GOTO CONFIG_ENABLE_LOOP0_END
-$
-$ CONFIG_ENABLE_ALGOS = F$EDIT(F$ELEMENT(0,"/",CONFIG_ENABLE_E),"TRIM")
-$ CONFIG_ENABLE_DEPENDENTS = F$EDIT(F$ELEMENT(1,"/",CONFIG_ENABLE_E),"TRIM")
-$ TO_ENABLE := YES
-$ CONFIG_ALGO_I = 0
-$ CONFIG_ENABLE_LOOP1:
-$ CONFIG_ALGO_E = F$EDIT(F$ELEMENT(CONFIG_ALGO_I,",", -
- CONFIG_ENABLE_ALGOS),"TRIM")
-$ CONFIG_ALGO_I = CONFIG_ALGO_I + 1
-$ IF CONFIG_ALGO_E .EQS. "" THEN GOTO CONFIG_ENABLE_LOOP1
-$ IF CONFIG_ALGO_E .EQS. "," THEN GOTO CONFIG_ENABLE_LOOP1_END
-$ IF F$TYPE(CONFIG_ENABLED_'CONFIG_ALGO_E') .EQS. ""
-$ THEN
-$ TO_ENABLE := NO
-$ ELSE
-$ IF .NOT. CONFIG_ENABLED_'CONFIG_ALGO_E' THEN TO_ENABLE := NO
-$ ENDIF
-$ GOTO CONFIG_ENABLE_LOOP1
-$ CONFIG_ENABLE_LOOP1_END:
-$
-$ IF TO_ENABLE
-$ THEN
-$ CONFIG_DEPENDENT_I = 0
-$ CONFIG_ENABLE_LOOP2:
-$ CONFIG_DEPENDENT_E = F$EDIT(F$ELEMENT(CONFIG_DEPENDENT_I,",", -
- CONFIG_ENABLE_DEPENDENTS),"TRIM")
-$ CONFIG_DEPENDENT_I = CONFIG_DEPENDENT_I + 1
-$ IF CONFIG_DEPENDENT_E .EQS. "" THEN GOTO CONFIG_ENABLE_LOOP2
-$ IF CONFIG_DEPENDENT_E .EQS. "," THEN GOTO CONFIG_ENABLE_LOOP2_END
-$ CONFIG_DISABLED_'CONFIG_DEPENDENT_E' := NO
-$ CONFIG_ENABLED_'CONFIG_DEPENDENT_E' := YES
-$ ! Better not to assume defaults at this point...
-$ CONFIG_CHANGED_'CONFIG_DEPENDENT_E' := YES
-$ IF (SKIP_SDIRS - (","+CONFIG_DEPENDENT_E+",")) .NES. SKIP_SDIRS THEN -
- SKIP_SDIRS = SKIP_SDIRS - (CONFIG_DEPENDENT_E + ",")
-$ WRITE SYS$ERROR -
- "''CONFIG_DEPENDENT_E' enabled by rule ''CONFIG_ENABLE_E'"
-$ GOTO CONFIG_ENABLE_LOOP2
-$ CONFIG_ENABLE_LOOP2_END:
-$ ENDIF
-$ GOTO CONFIG_ENABLE_LOOP0
-$ CONFIG_ENABLE_LOOP0_END:
-$
-$! Fix SDIRS
-$ SDIRS = ","+F$EDIT(SDIRS,"COLLAPSE")+","
-$ CONFIG_SKIP_I = 0
-$ CONFIG_SDIRS_LOOP1:
-$ CONFIG_SKIP_E = F$EDIT(F$ELEMENT(CONFIG_SKIP_I,",",SKIP_SDIRS),"TRIM")
-$ CONFIG_SKIP_I = CONFIG_SKIP_I + 1
-$ IF CONFIG_SKIP_E .EQS. "" THEN GOTO CONFIG_SDIRS_LOOP1
-$ IF CONFIG_SKIP_E .EQS. "," THEN GOTO CONFIG_SDIRS_LOOP1_END
-$ IF (SDIRS - (","+CONFIG_SKIP_E+",")) .NES. SDIRS THEN -
- SDIRS = SDIRS - (CONFIG_SKIP_E+",")
-$ GOTO CONFIG_SDIRS_LOOP1
-$ CONFIG_SDIRS_LOOP1_END:
-$
-$! Write to the configuration
-$ CONFIG_LOG_I = 0
-$ CONFIG_LOG_LOOP2:
-$ CONFIG_LOG_E = F$EDIT(F$ELEMENT(CONFIG_LOG_I,",",CONFIG_LOGICALS),"TRIM")
-$ CONFIG_LOG_I = CONFIG_LOG_I + 1
-$ IF CONFIG_LOG_E .EQS. "" THEN GOTO CONFIG_LOG_LOOP2
-$ IF CONFIG_LOG_E .EQS. "," THEN GOTO CONFIG_LOG_LOOP2_END
-$ IF CONFIG_DISABLED_'CONFIG_LOG_E'
-$ THEN
-$ WRITE H_FILE "#ifndef OPENSSL_NO_",CONFIG_LOG_E
-$ WRITE H_FILE "# define OPENSSL_NO_",CONFIG_LOG_E
-$ WRITE H_FILE "#endif"
-$ ELSE
-$ IF CONFIG_CHANGED_'CONFIG_LOG_E'
-$ THEN
-$ WRITE H_FILE "#ifndef OPENSSL_EXPERIMENTAL_",CONFIG_LOG_E
-$ WRITE H_FILE "# ifndef OPENSSL_NO_",CONFIG_LOG_E
-$ WRITE H_FILE "# define OPENSSL_NO_",CONFIG_LOG_E
-$ WRITE H_FILE "# endif"
-$ WRITE H_FILE "#endif"
-$
-$ IF F$TYPE(USER_CCDEFS) .NES. ""
-$ THEN
-$ USER_CCDEFS = USER_CCDEFS + ",OPENSSL_EXPERIMENTAL_" + CONFIG_LOG_E
-$ ELSE
-$ USER_CCDEFS = "OPENSSL_EXPERIMENTAL_" + CONFIG_LOG_E
-$ ENDIF
-$ ENDIF
-$ ENDIF
-$ GOTO CONFIG_LOG_LOOP2
-$ CONFIG_LOG_LOOP2_END:
-$
-$ WRITE/SYMBOL SYS$ERROR "SDIRS = """,SDIRS,""""
-$!
-$ WRITE H_FILE ""
-$ WRITE H_FILE "/* STCP support comes with TCPIP 5.7 ECO 2 "
-$ WRITE H_FILE " * enable on newer systems / 2012-02-24 arpadffy */"
-$ WRITE H_FILE "#define OPENSSL_NO_SCTP"
-$ WRITE H_FILE ""
-$!
-$! Add in the common "crypto/opensslconf.h.in".
-$!
-$ TYPE 'OPENSSLCONF_H_IN' /OUTPUT=H_FILE:
-$!
-$ IF ARCH .NES. "VAX"
-$ THEN
-$!
-$! Write the non-VAX specific data
-$!
-$ WRITE H_FILE "#if defined(HEADER_RC4_H)"
-$ WRITE H_FILE "#undef RC4_INT"
-$ WRITE H_FILE "#define RC4_INT unsigned int"
-$ WRITE H_FILE "#endif"
-$!
-$ WRITE H_FILE "#if defined(HEADER_DES_LOCL_H)"
-$ WRITE H_FILE "typedef unsigned int OSSL_DES_LONG;"
-$ WRITE H_FILE "#endif"
-$!
-$ WRITE H_FILE "#if defined(HEADER_BN_H)"
-$ WRITE H_FILE "#undef BN_LLONG" ! Never define with SIXTY_FOUR_BIT
-$ WRITE H_FILE "#undef SIXTY_FOUR_BIT_LONG"
-$ WRITE H_FILE "#undef SIXTY_FOUR_BIT"
-$ WRITE H_FILE "#define SIXTY_FOUR_BIT"
-$ WRITE H_FILE "#undef THIRTY_TWO_BIT"
-$ WRITE H_FILE "#endif"
-$
-$ WRITE H_FILE "#undef OPENSSL_EXPORT_VAR_AS_FUNCTION"
-$!
-$! Else...
-$!
-$ ELSE
-$!
-$! Write the VAX specific data
-$!
-$ WRITE H_FILE "#if defined(HEADER_RC4_H)"
-$ WRITE H_FILE "#undef RC4_INT"
-$ WRITE H_FILE "#define RC4_INT unsigned char"
-$ WRITE H_FILE "#endif"
-$!
-$ WRITE H_FILE "#if defined(HEADER_DES_LOCL_H)"
-$ WRITE H_FILE "typedef unsigned int OSSL_DES_LONG;"
-$ WRITE H_FILE "#endif"
-$!
-$ WRITE H_FILE "#if defined(HEADER_BN_H)"
-$ WRITE H_FILE "#undef BN_LLONG" ! VAX C/DEC C doesn't have long long
-$ WRITE H_FILE "#undef SIXTY_FOUR_BIT_LONG"
-$ WRITE H_FILE "#undef SIXTY_FOUR_BIT"
-$ WRITE H_FILE "#undef THIRTY_TWO_BIT"
-$ WRITE H_FILE "#define THIRTY_TWO_BIT"
-$ WRITE H_FILE "#endif"
-$!
-$ WRITE H_FILE "#undef OPENSSL_EXPORT_VAR_AS_FUNCTION"
-$ WRITE H_FILE "#define OPENSSL_EXPORT_VAR_AS_FUNCTION"
-$!
-$! End
-$!
-$ ENDIF
-$!
-$! Close the [.CRYPTO._xxx]OPENSSLCONF.H file
-$!
-$ CLOSE H_FILE
-$!
-$! Purge The [.CRYPTO._xxx]OPENSSLCONF.H file
-$!
-$ PURGE SYS$DISK:[.CRYPTO.'ARCHD']OPENSSLCONF.H
-$!
-$! That's All, Time To RETURN.
-$!
-$ RETURN
-$!
-$! Rebuild The "[.CRYPTO._xxx]BUILDINF.H" file.
-$!
-$ BUILDINF:
-$!
-$! Tell The User We Are Creating The [.CRYPTO._xxx]BUILDINF.H File.
-$!
-$ WRITE SYS$OUTPUT "Creating [.CRYPTO.''ARCHD']BUILDINF.H Include File."
-$!
-$! Create The [.CRYPTO._xxx]BUILDINF.H File.
-$!
-$ BIH_NAME = "SYS$DISK:[.CRYPTO.''ARCHD']BUILDINF.H"
-$ CREATE /FDL=SYS$INPUT: 'BIH_NAME'
-RECORD
- FORMAT stream_lf
-$!
-$ OPEN /APPEND H_FILE 'bih_name'
-$!
-$! Get The Current Date & Time.
-$!
-$ TIME = F$TIME()
-$!
-$! Write The [.CRYPTO._xxx]BUILDINF.H File.
-$!
-$ CFLAGS = ""
-$ if (POINTER_SIZE .nes. "")
-$ then
-$ CFLAGS = CFLAGS+ "/POINTER_SIZE=''POINTER_SIZE'"
-$ endif
-$ if (ZLIB .nes. "")
-$ then
-$ if (CFLAGS .nes. "") then CFLAGS = CFLAGS+ " "
-$ CFLAGS = CFLAGS+ "/DEFINE=ZLIB"
-$ endif
-$!
-$ WRITE H_FILE "#define CFLAGS ""''CFLAGS'"""
-$ WRITE H_FILE "#define PLATFORM ""VMS ''ARCHD' ''VMS_VERSION'"""
-$ WRITE H_FILE "#define DATE ""''TIME'"" "
-$!
-$! Close The [.CRYPTO._xxx]BUILDINF.H File.
-$!
-$ CLOSE H_FILE
-$!
-$! Purge The [.CRYPTO._xxx]BUILDINF.H File.
-$!
-$ PURGE SYS$DISK:[.CRYPTO.'ARCHD']BUILDINF.H
-$!
-$! Delete [.CRYPTO]BUILDINF.H File, as there might be some residue from Unix.
-$!
-$ IF F$SEARCH("[.CRYPTO]BUILDINF.H") .NES. "" THEN -
- DELETE SYS$DISK:[.CRYPTO]BUILDINF.H;*
-$!
-$! That's All, Time To RETURN.
-$!
-$ RETURN
-$!
-$! Copy a lot of files around.
-$!
-$ SOFTLINKS:
-$!
-$!!!! Tell The User We Are Partly Rebuilding The [.APPS] Directory.
-$!!!!
-$!!! WRITE SYS$OUTPUT "Rebuilding The '[.APPS]MD4.C', '[.APPS]MD5.C' And '[.APPS]RD160.C' Files."
-$!!!!
-$!!! DELETE SYS$DISK:[.APPS]MD4.C;*,MD5.C;*,RMD160.C;*
-$!!!!
-$!!!! Copy MD4.C from [.CRYPTO.MD4] into [.APPS]
-$!!!!
-$!!! COPY SYS$DISK:[.CRYPTO.MD4]MD4.C SYS$DISK:[.APPS]
-$!!!!
-$!!!! Copy MD5.C from [.CRYPTO.MD5] into [.APPS]
-$!!!! Tell The User We Are Rebuilding The [.include.openssl] Directory.
-$!!!!
-$!!!! Copy RMD160.C from [.CRYPTO.RIPEMD] into [.APPS]
-$!!!!
-$!!! COPY SYS$DISK:[.CRYPTO.RIPEMD]RMD160.C SYS$DISK:[.APPS]
-$!
-$! Ensure that the [.include.openssl] directory contains a full set of
-$! real header files. The distribution kit may have left real or fake
-$! symlinks there. Rather than think about what's there, simply delete
-$! the destination files (fake or real symlinks) before copying the real
-$! header files in. (Copying a real header file onto a real symlink
-$! merely duplicates the real header file at its source.)
-$!
-$! Tell The User We Are Rebuilding The [.include.openssl] Directory.
-$!
-$ WRITE SYS$OUTPUT "Rebuilding The '[.include.openssl]' Directory."
-$!
-$! First, make sure the directory exists. If it did exist, delete all
-$! the existing header files (or fake or real symlinks).
-$!
-$ if f$parse( "sys$disk:[.include.openssl]") .eqs. ""
-$ then
-$ create /directory sys$disk:[.include.openssl]
-$ else
-$ delete sys$disk:[.include.openssl]*.h;*
-$ endif
-$!
-$! Copy All The ".H" Files From The Main Directory.
-$!
-$ EXHEADER := e_os2.h
-$ copy 'exheader' sys$disk:[.include.openssl]
-$!
-$! Copy All The ".H" Files From The [.CRYPTO] Directory Tree.
-$!
-$ HEADER_SDIRS := , -
- 'ARCHD', -
- OBJECTS, -
- MD2, MD4, MD5, SHA, MDC2, HMAC, RIPEMD, WHRLPOOL, -
- DES, AES, RC2, RC4, RC5, IDEA, BF, CAST, CAMELLIA, SEED, MODES, -
- BN, EC, RSA, DSA, ECDSA, DH, ECDH, DSO, ENGINE, -
- BUFFER, BIO, STACK, LHASH, RAND, ERR, -
- EVP, ASN1, PEM, X509, X509V3, CONF, TXT_DB, PKCS7, PKCS12, -
- COMP, OCSP, UI, -
- CMS, PQUEUE, TS, JPAKE, SRP, STORE, CMAC
-$!
-$ EXHEADER_ := crypto.h, opensslv.h, ebcdic.h, symhacks.h, ossl_typ.h
-$ EXHEADER_'ARCHD' := opensslconf.h
-$ EXHEADER_OBJECTS := objects.h, obj_mac.h
-$ EXHEADER_MD2 := md2.h
-$ EXHEADER_MD4 := md4.h
-$ EXHEADER_MD5 := md5.h
-$ EXHEADER_SHA := sha.h
-$ EXHEADER_MDC2 := mdc2.h
-$ EXHEADER_HMAC := hmac.h
-$ EXHEADER_RIPEMD := ripemd.h
-$ EXHEADER_WHRLPOOL := whrlpool.h
-$ EXHEADER_DES := des.h
-$ EXHEADER_AES := aes.h
-$ EXHEADER_RC2 := rc2.h
-$ EXHEADER_RC4 := rc4.h
-$ EXHEADER_RC5 := rc5.h
-$ EXHEADER_IDEA := idea.h
-$ EXHEADER_BF := blowfish.h
-$ EXHEADER_CAST := cast.h
-$ EXHEADER_CAMELLIA := camellia.h
-$ EXHEADER_SEED := seed.h
-$ EXHEADER_MODES := modes.h
-$ EXHEADER_BN := bn.h
-$ EXHEADER_EC := ec.h
-$ EXHEADER_RSA := rsa.h
-$ EXHEADER_DSA := dsa.h
-$ EXHEADER_ECDSA := ecdsa.h
-$ EXHEADER_DH := dh.h
-$ EXHEADER_ECDH := ecdh.h
-$ EXHEADER_DSO := dso.h
-$ EXHEADER_ENGINE := engine.h
-$ EXHEADER_BUFFER := buffer.h
-$ EXHEADER_BIO := bio.h
-$ EXHEADER_STACK := stack.h, safestack.h
-$ EXHEADER_LHASH := lhash.h
-$ EXHEADER_RAND := rand.h
-$ EXHEADER_ERR := err.h
-$ EXHEADER_EVP := evp.h
-$ EXHEADER_ASN1 := asn1.h, asn1_mac.h, asn1t.h
-$ EXHEADER_PEM := pem.h, pem2.h
-$ EXHEADER_X509 := x509.h, x509_vfy.h
-$ EXHEADER_X509V3 := x509v3.h
-$ EXHEADER_CONF := conf.h, conf_api.h
-$ EXHEADER_TXT_DB := txt_db.h
-$ EXHEADER_PKCS7 := pkcs7.h
-$ EXHEADER_PKCS12 := pkcs12.h
-$ EXHEADER_COMP := comp.h
-$ EXHEADER_OCSP := ocsp.h
-$ EXHEADER_UI := ui.h
-$ EXHEADER_CMS := cms.h
-$ EXHEADER_PQUEUE := pqueue.h
-$ EXHEADER_TS := ts.h
-$ EXHEADER_JPAKE := jpake.h
-$ EXHEADER_SRP := srp.h
-$!!! EXHEADER_STORE := store.h, str_compat.h
-$ EXHEADER_STORE := store.h
-$ EXHEADER_CMAC := cmac.h
-$!
-$ i = 0
-$ loop_header_sdirs:
-$ sdir = f$edit( f$element( i, ",", header_sdirs), "trim")
-$ i = i + 1
-$ if (sdir .eqs. ",") then goto loop_header_sdirs_end
-$ hdr_list = exheader_'sdir'
-$ if (sdir .nes. "") then sdir = "."+ sdir
-$ copy [.crypto'sdir']'hdr_list' sys$disk:[.include.openssl]
-$ goto loop_header_sdirs
-$ loop_header_sdirs_end:
-$!
-$! Copy All The ".H" Files From The [.SSL] Directory.
-$!
-$! (keep these in the same order as ssl/Makefile)
-$ EXHEADER := ssl.h, ssl2.h, ssl3.h, ssl23.h, tls1.h, dtls1.h, srtp.h
-$ copy sys$disk:[.ssl]'exheader' sys$disk:[.include.openssl]
-$!
-$! Purge the [.include.openssl] header files.
-$!
-$ purge sys$disk:[.include.openssl]*.h
-$!
-$! That's All, Time To RETURN.
-$!
-$ RETURN
-$!
-$! Build The "[.xxx.EXE.CRYPTO]SSL_LIBCRYPTO''LIB32'.OLB" Library.
-$!
-$ CRYPTO:
-$!
-$! Tell The User What We Are Doing.
-$!
-$ WRITE SYS$OUTPUT ""
-$ WRITE SYS$OUTPUT -
- "Building The [.",ARCHD,".EXE.CRYPTO]SSL_LIBCRYPTO''LIB32'.OLB Library."
-$!
-$! Go To The [.CRYPTO] Directory.
-$!
-$ SET DEFAULT SYS$DISK:[.CRYPTO]
-$!
-$! Build The [.xxx.EXE.CRYPTO]LIBCRYPTO.OLB Library.
-$!
-$ @CRYPTO-LIB LIBRARY 'DEBUGGER' "''COMPILER'" "''TCPIP_TYPE'" -
- "''ISSEVEN'" "''BUILDPART'" "''POINTER_SIZE'" "''ZLIB'"
-$!
-$! Go Back To The Main Directory.
-$!
-$ SET DEFAULT [-]
-$!
-$! Time To RETURN.
-$!
-$ RETURN
-$!
-$! Build The "[.xxx.EXE.SSL]SSL_LIBSSL''LIB32'.OLB" Library.
-$!
-$ SSL:
-$!
-$! Tell The User What We Are Doing.
-$!
-$ WRITE SYS$OUTPUT ""
-$ WRITE SYS$OUTPUT -
- "Building The [.",ARCHD,".EXE.SSL]SSL_LIBSSL''LIB32'.OLB Library."
-$!
-$! Go To The [.SSL] Directory.
-$!
-$ SET DEFAULT SYS$DISK:[.SSL]
-$!
-$! Build The [.xxx.EXE.SSL]LIBSSL.OLB Library.
-$!
-$ @SSL-LIB LIBRARY 'DEBUGGER' "''COMPILER'" "''TCPIP_TYPE'" -
- "''ISSEVEN'" "''POINTER_SIZE'" "''ZLIB'"
-$!
-$! Go Back To The Main Directory.
-$!
-$ SET DEFAULT [-]
-$!
-$! Time To Return.
-$!
-$ RETURN
-$!
-$! Build The OpenSSL Test Programs.
-$!
-$ TEST:
-$!
-$! Tell The User What We Are Doing.
-$!
-$ WRITE SYS$OUTPUT ""
-$ WRITE SYS$OUTPUT "Building The OpenSSL [.",ARCHD,".EXE.TEST] Test Utilities."
-$!
-$! Go To The [.TEST] Directory.
-$!
-$ SET DEFAULT SYS$DISK:[.TEST]
-$!
-$! Build The Test Programs.
-$!
-$ @MAKETESTS 'DEBUGGER' "''COMPILER'" "''TCPIP_TYPE'" "''ISSEVEN'" -
- "''POINTER_SIZE'" "''ZLIB'"
-$!
-$! Go Back To The Main Directory.
-$!
-$ SET DEFAULT [-]
-$!
-$! That's All, Time To RETURN.
-$!
-$ RETURN
-$!
-$! Build The OpenSSL Application Programs.
-$!
-$ APPS:
-$!
-$! Tell The User What We Are Doing.
-$!
-$ WRITE SYS$OUTPUT ""
-$ WRITE SYS$OUTPUT "Building OpenSSL [.",ARCHD,".EXE.APPS] Applications."
-$!
-$! Go To The [.APPS] Directory.
-$!
-$ SET DEFAULT SYS$DISK:[.APPS]
-$!
-$! Build The Application Programs.
-$!
-$ @MAKEAPPS 'DEBUGGER' "''COMPILER'" "''TCPIP_TYPE'" "''ISSEVEN'" -
- "" "''POINTER_SIZE'" "''ZLIB'"
-$!
-$! Go Back To The Main Directory.
-$!
-$ SET DEFAULT [-]
-$!
-$! That's All, Time To RETURN.
-$!
-$ RETURN
-$!
-$! Build The OpenSSL Application Programs.
-$!
-$ ENGINES:
-$!
-$! Tell The User What We Are Doing.
-$!
-$ WRITE SYS$OUTPUT ""
-$ WRITE SYS$OUTPUT "Building OpenSSL [.",ARCHD,".EXE.ENGINES] Engines."
-$!
-$! Go To The [.ENGINES] Directory.
-$!
-$ SET DEFAULT SYS$DISK:[.ENGINES]
-$!
-$! Build The Application Programs.
-$!
-$ @MAKEENGINES ENGINES 'DEBUGGER' "''COMPILER'" "''TCPIP_TYPE'" -
- "''ISSEVEN'" "''BUILDPART'" "''POINTER_SIZE'" "''ZLIB'"
-$!
-$! Go Back To The Main Directory.
-$!
-$ SET DEFAULT [-]
-$!
-$! That's All, Time To RETURN.
-$!
-$ RETURN
-$!
-$! Check The User's Options.
-$!
-$ CHECK_OPTIONS:
-$!
-$! Check if there's a "part", and separate it out
-$!
-$ BUILDPART = F$ELEMENT(1,"/",P1)
-$ IF BUILDPART .EQS. "/"
-$ THEN
-$ BUILDPART = ""
-$ ELSE
-$ P1 = F$EXTRACT(0,F$LENGTH(P1) - F$LENGTH(BUILDPART) - 1, P1)
-$ ENDIF
-$!
-$! Check To See If P1 Is Blank.
-$!
-$ IF (P1.EQS."ALL")
-$ THEN
-$!
-$! P1 Is ALL, So Build Everything.
-$!
-$ BUILDCOMMAND = "ALL"
-$!
-$! Else...
-$!
-$ ELSE
-$!
-$! Else, Check To See If P1 Has A Valid Argument.
-$!
-$ IF (P1.EQS."CONFIG").OR.(P1.EQS."BUILDINF").OR.(P1.EQS."SOFTLINKS") -
- .OR.(P1.EQS."BUILDALL") -
- .OR.(P1.EQS."CRYPTO").OR.(P1.EQS."SSL") -
- .OR.(P1.EQS."TEST").OR.(P1.EQS."APPS") -
- .OR.(P1.EQS."ENGINES")
-$ THEN
-$!
-$! A Valid Argument.
-$!
-$ BUILDCOMMAND = P1
-$!
-$! Else...
-$!
-$ ELSE
-$!
-$! Tell The User We Don't Know What They Want.
-$!
-$ WRITE SYS$OUTPUT ""
-$ WRITE SYS$OUTPUT "USAGE: @MAKEVMS.COM [Target] [Pointer size] [Debug option] <Compiler>"
-$ WRITE SYS$OUTPUT ""
-$ WRITE SYS$OUTPUT "Example: @MAKEVMS.COM ALL """" NODEBUG "
-$ WRITE SYS$OUTPUT ""
-$ WRITE SYS$OUTPUT "The Target ",P1," Is Invalid. The Valid Target Options Are:"
-$ WRITE SYS$OUTPUT ""
-$ WRITE SYS$OUTPUT " ALL : Just Build Everything."
-$ WRITE SYS$OUTPUT " CONFIG : Just build the [.CRYPTO._xxx]OPENSSLCONF.H file."
-$ WRITE SYS$OUTPUT " BUILDINF : Just build the [.CRYPTO._xxx]BUILDINF.H file."
-$ WRITE SYS$OUTPUT " SOFTLINKS: Just Fix The Unix soft links."
-$ WRITE SYS$OUTPUT " BUILDALL : Same as ALL, except CONFIG, BUILDINF and SOFTILNKS aren't done."
-$ WRITE SYS$OUTPUT " CRYPTO : To Build Just The [.xxx.EXE.CRYPTO]LIBCRYPTO.OLB Library."
-$ WRITE SYS$OUTPUT " CRYPTO/x : To Build Just The x Part Of The"
-$ WRITE SYS$OUTPUT " [.xxx.EXE.CRYPTO]LIBCRYPTO.OLB Library."
-$ WRITE SYS$OUTPUT " SSL : To Build Just The [.xxx.EXE.SSL]LIBSSL.OLB Library."
-$ WRITE SYS$OUTPUT " TEST : To Build Just The OpenSSL Test Programs."
-$ WRITE SYS$OUTPUT " APPS : To Build Just The OpenSSL Application Programs."
-$ WRITE SYS$OUTPUT " ENGINES : To Build Just The ENGINES"
-$ WRITE SYS$OUTPUT ""
-$ WRITE SYS$OUTPUT " Where 'xxx' Stands For:"
-$ WRITE SYS$OUTPUT ""
-$ WRITE SYS$OUTPUT " ALPHA[64]: Alpha Architecture."
-$ WRITE SYS$OUTPUT " IA64[64] : IA64 Architecture."
-$ WRITE SYS$OUTPUT " VAX : VAX Architecture."
-$ WRITE SYS$OUTPUT ""
-$!
-$! Time To EXIT.
-$!
-$ GOTO TIDY
-$!
-$! End The Valid Argument Check.
-$!
-$ ENDIF
-$!
-$! End The P1 Check.
-$!
-$ ENDIF
-$!
-$! Check P2 (POINTER_SIZE).
-$!
-$ IF (P2 .NES. "") .AND. (ARCH .NES. "VAX")
-$ THEN
-$!
-$ IF (P2 .EQS. "32")
-$ THEN
-$ POINTER_SIZE = "32"
-$ ELSE
-$ POINTER_SIZE = F$EDIT( P2, "COLLAPSE, UPCASE")
-$ IF ((POINTER_SIZE .EQS. "64") .OR. -
- (POINTER_SIZE .EQS. "64=") .OR. -
- (POINTER_SIZE .EQS. "64=ARGV"))
-$ THEN
-$ ARCHD = ARCH+ "_64"
-$ LIB32 = ""
-$ ELSE
-$!
-$! Tell The User Entered An Invalid Option.
-$!
-$ WRITE SYS$OUTPUT ""
-$ WRITE SYS$OUTPUT "The Option ", P2, -
- " Is Invalid. The Valid Options Are:"
-$ WRITE SYS$OUTPUT ""
-$ WRITE SYS$OUTPUT -
- " """" : Compile with default (short) pointers."
-$ WRITE SYS$OUTPUT -
- " 32 : Compile with 32-bit (short) pointers."
-$ WRITE SYS$OUTPUT -
- " 64 : Compile with 64-bit (long) pointers (auto ARGV)."
-$ WRITE SYS$OUTPUT -
- " 64= : Compile with 64-bit (long) pointers (no ARGV)."
-$ WRITE SYS$OUTPUT -
- " 64=ARGV : Compile with 64-bit (long) pointers (ARGV)."
-$ WRITE SYS$OUTPUT ""
-$!
-$! Time To EXIT.
-$!
-$ GOTO TIDY
-$!
-$ ENDIF
-$!
-$ ENDIF
-$!
-$! End The P2 (POINTER_SIZE) Check.
-$!
-$ ENDIF
-$!
-$! Check To See If P3 Is Blank.
-$!
-$ IF (P3.EQS."NODEBUG")
-$ THEN
-$!
-$! P3 Is NODEBUG, So Compile Without Debugger Information.
-$!
-$ DEBUGGER = "NODEBUG"
-$!
-$! Else...
-$!
-$ ELSE
-$!
-$! Check To See If We Are To Compile With Debugger Information.
-$!
-$ IF (P3.EQS."DEBUG")
-$ THEN
-$!
-$! Compile With Debugger Information.
-$!
-$ DEBUGGER = "DEBUG"
-$!
-$! Else...
-$!
-$ ELSE
-$!
-$! Tell The User Entered An Invalid Option.
-$!
-$ WRITE SYS$OUTPUT ""
-$ WRITE SYS$OUTPUT "The Option ",P3," Is Invalid. The Valid Options Are:"
-$ WRITE SYS$OUTPUT ""
-$ WRITE SYS$OUTPUT " DEBUG : Compile With The Debugger Information."
-$ WRITE SYS$OUTPUT " NODEBUG : Compile Without The Debugger Information."
-$ WRITE SYS$OUTPUT ""
-$!
-$! Time To EXIT.
-$!
-$ GOTO TIDY
-$!
-$! End The Valid Argument Check.
-$!
-$ ENDIF
-$!
-$! End The P3 Check.
-$!
-$ ENDIF
-$!
-$! Check To See If P4 Is Blank.
-$!
-$ IF (P4.EQS."")
-$ THEN
-$!
-$! O.K., The User Didn't Specify A Compiler, Let's Try To
-$! Find Out Which One To Use.
-$!
-$! Check To See If We Have GNU C.
-$!
-$ IF (F$TRNLNM("GNU_CC").NES."")
-$ THEN
-$!
-$! Looks Like GNUC, Set To Use GNUC.
-$!
-$ COMPILER = "GNUC"
-$!
-$! Tell The User We Are Using GNUC.
-$!
-$ WRITE SYS$OUTPUT "Using GNU 'C' Compiler."
-$!
-$! End The GNU C Compiler Check.
-$!
-$ ENDIF
-$!
-$! Check To See If We Have VAXC Or DECC.
-$!
-$ IF (F$GETSYI("CPU").GE.128).OR.(F$TRNLNM("DECC$CC_DEFAULT").EQS."/DECC")
-$ THEN
-$!
-$! Looks Like DECC, Set To Use DECC.
-$!
-$ COMPILER = "DECC"
-$!
-$! Tell The User We Are Using DECC.
-$!
-$ WRITE SYS$OUTPUT "Using DECC 'C' Compiler."
-$!
-$! Else...
-$!
-$ ELSE
-$!
-$! Looks Like VAXC, Set To Use VAXC.
-$!
-$ COMPILER = "VAXC"
-$!
-$! Tell The User We Are Using VAX C.
-$!
-$ WRITE SYS$OUTPUT "Using VAXC 'C' Compiler."
-$!
-$! End The DECC & VAXC Compiler Check.
-$!
-$ ENDIF
-$!
-$! Else...
-$!
-$ ELSE
-$!
-$! Check To See If The User Entered A Valid Parameter.
-$!
-$ IF (P4.EQS."VAXC").OR.(P4.EQS."DECC").OR.(P4.EQS."GNUC")!.OR.(P4.EQS."LINK")
-$ THEN
-$!
-$! Check To See If The User Wanted To Just LINK.
-$!
-$ IF (P4.EQS."LINK")
-$ THEN
-$!
-$! Looks Like LINK-only
-$!
-$ COMPILER = "LINK"
-$!
-$! Tell The User We Are Only Linking.
-$!
-$ WRITE SYS$OUTPUT "LINK Only. This actually NOT YET SUPPORTED!"
-$!
-$! End LINK Check.
-$!
-$ ENDIF
-$!
-$! Check To See If The User Wanted DECC.
-$!
-$ IF (P4.EQS."DECC")
-$ THEN
-$!
-$! Looks Like DECC, Set To Use DECC.
-$!
-$ COMPILER = "DECC"
-$!
-$! Tell The User We Are Using DECC.
-$!
-$ WRITE SYS$OUTPUT "Using DECC 'C' Compiler."
-$!
-$! End DECC Check.
-$!
-$ ENDIF
-$!
-$! Check To See If We Are To Use VAXC.
-$!
-$ IF (P4.EQS."VAXC")
-$ THEN
-$!
-$! Looks Like VAXC, Set To Use VAXC.
-$!
-$ COMPILER = "VAXC"
-$!
-$! Tell The User We Are Using VAX C.
-$!
-$ WRITE SYS$OUTPUT "Using VAXC 'C' Compiler."
-$!
-$! End VAXC Check
-$!
-$ ENDIF
-$!
-$! Check To See If We Are To Use GNU C.
-$!
-$ IF (P4.EQS."GNUC")
-$ THEN
-$!
-$! Looks Like GNUC, Set To Use GNUC.
-$!
-$ COMPILER = "GNUC"
-$!
-$! Tell The User We Are Using GNUC.
-$!
-$ WRITE SYS$OUTPUT "Using GNU 'C' Compiler."
-$!
-$! End The GNU C Check.
-$!
-$ ENDIF
-$!
-$! Else The User Entered An Invalid Argument.
-$!
-$ ELSE
-$!
-$! Tell The User We Don't Know What They Want.
-$!
-$ WRITE SYS$OUTPUT ""
-$ WRITE SYS$OUTPUT "The Option ",P4," Is Invalid. The Valid Options Are:"
-$ WRITE SYS$OUTPUT ""
-$ WRITE SYS$OUTPUT " VAXC : To Compile With VAX C."
-$ WRITE SYS$OUTPUT " DECC : To Compile With DEC C."
-$ WRITE SYS$OUTPUT " GNUC : To Compile With GNU C."
-$ WRITE SYS$OUTPUT ""
-$!
-$! Time To EXIT.
-$!
-$ GOTO TIDY
-$!
-$! End The Valid Argument Check.
-$!
-$ ENDIF
-$!
-$! End The P4 Check.
-$!
-$ ENDIF
-$!
-$! Time to check the contents of P5, and to make sure we get the correct
-$! library.
-$!
-$ IF P5.EQS."SOCKETSHR" .OR. P5.EQS."MULTINET" .OR. P5.EQS."UCX" -
- .OR. P5.EQS."TCPIP" .OR. P5.EQS."NONE"
-$ THEN
-$!
-$! Check to see if SOCKETSHR was chosen
-$!
-$ IF P5.EQS."SOCKETSHR"
-$ THEN
-$!
-$! Set the library to use SOCKETSHR
-$!
-$ TCPIP_LIB = "SYS$DISK:[-.VMS]SOCKETSHR_SHR.OPT /OPTIONS"
-$!
-$! Tell the user
-$!
-$ WRITE SYS$OUTPUT "Using SOCKETSHR for TCP/IP"
-$!
-$! Done with SOCKETSHR
-$!
-$ ENDIF
-$!
-$! Check to see if MULTINET was chosen
-$!
-$ IF P5.EQS."MULTINET"
-$ THEN
-$!
-$! Set the library to use UCX emulation.
-$!
-$ P5 = "UCX"
-$!
-$! Tell the user
-$!
-$ WRITE SYS$OUTPUT "Using MultiNet via UCX emulation for TCP/IP"
-$!
-$! Done with MULTINET
-$!
-$ ENDIF
-$!
-$! Check to see if UCX was chosen
-$!
-$ IF P5.EQS."UCX"
-$ THEN
-$!
-$! Set the library to use UCX.
-$!
-$ TCPIP_LIB = "SYS$DISK:[-.VMS]UCX_SHR_DECC.OPT /OPTIONS"
-$!
-$! Tell the user
-$!
-$ WRITE SYS$OUTPUT "Using UCX or an emulation thereof for TCP/IP"
-$!
-$! Done with UCX
-$!
-$ ENDIF
-$!
-$! Check to see if TCPIP was chosen
-$!
-$ IF P5.EQS."TCPIP"
-$ THEN
-$!
-$! Set the library to use TCPIP (post UCX).
-$!
-$ TCPIP_LIB = "SYS$DISK:[-.VMS]TCPIP_SHR_DECC.OPT /OPTIONS"
-$!
-$! Tell the user
-$!
-$ WRITE SYS$OUTPUT "Using TCPIP (post UCX) for TCP/IP"
-$!
-$! Done with TCPIP
-$!
-$ ENDIF
-$!
-$! Check to see if NONE was chosen
-$!
-$ IF P5.EQS."NONE"
-$ THEN
-$!
-$! Do not use a TCPIP library.
-$!
-$ TCPIP_LIB = ""
-$!
-$! Tell the user
-$!
-$ WRITE SYS$OUTPUT "A specific TCPIP library will not be used."
-$!
-$! Done with NONE.
-$!
-$ ENDIF
-$!
-$! Set the TCPIP_TYPE symbol
-$!
-$ TCPIP_TYPE = P5
-$!
-$! Print info
-$!
-$ WRITE SYS$OUTPUT "TCP/IP library spec: ", TCPIP_LIB
-$!
-$! Else The User Entered An Invalid Argument.
-$!
-$ ELSE
-$ IF P5 .NES. ""
-$ THEN
-$!
-$! Tell The User We Don't Know What They Want.
-$!
-$ WRITE SYS$OUTPUT ""
-$ WRITE SYS$OUTPUT "The Option ",P5," Is Invalid. The Valid Options Are:"
-$ WRITE SYS$OUTPUT ""
-$ WRITE SYS$OUTPUT " SOCKETSHR : To link with SOCKETSHR TCP/IP library."
-$ WRITE SYS$OUTPUT " UCX : To link with UCX TCP/IP library."
-$ WRITE SYS$OUTPUT " TCPIP : To link with TCPIP TCP/IP (post UCX) library."
-$ WRITE SYS$OUTPUT " NONE : To not link with a specific TCP/IP library."
-$ WRITE SYS$OUTPUT ""
-$!
-$! Time To EXIT.
-$!
-$ GOTO TIDY
-$ ELSE
-$!
-$! If TCPIP is not defined, then hardcode it to make
-$! it clear that no TCPIP is desired.
-$!
-$ IF P5 .EQS. ""
-$ THEN
-$ TCPIP_LIB = ""
-$ TCPIP_TYPE = "NONE"
-$ ELSE
-$!
-$! Set the TCPIP_TYPE symbol
-$!
-$ TCPIP_TYPE = P5
-$ ENDIF
-$ ENDIF
-$!
-$! Done with TCP/IP libraries
-$!
-$ ENDIF
-$!
-$! Special Threads For OpenVMS v7.1 Or Later
-$!
-$! Written By: Richard Levitte
-$! richard at levitte.org
-$!
-$!
-$! Check To See If We Have A Option For P6.
-$!
-$ IF (P6.EQS."")
-$ THEN
-$!
-$! Get The Version Of VMS We Are Using.
-$!
-$ ISSEVEN :=
-$ TMP = F$ELEMENT(0,"-",F$EXTRACT(1,4,VMS_VERSION))
-$ TMP = F$INTEGER(F$ELEMENT(0,".",TMP)+F$ELEMENT(1,".",TMP))
-$!
-$! Check To See If The VMS Version Is v7.1 Or Later.
-$!
-$ IF (TMP.GE.71)
-$ THEN
-$!
-$! We Have OpenVMS v7.1 Or Later, So Use The Special Threads.
-$!
-$ ISSEVEN := ,PTHREAD_USE_D4
-$!
-$! End The VMS Version Check.
-$!
-$ ENDIF
-$!
-$! End The P6 Check.
-$!
-$ ENDIF
-$!
-$!
-$! Check To See If We Have A ZLIB Option.
-$!
-$ ZLIB = P7
-$ IF (ZLIB .NES. "")
-$ THEN
-$!
-$! Check for expected ZLIB files.
-$!
-$ err = 0
-$ file1 = f$parse( "zlib.h", ZLIB, , , "SYNTAX_ONLY")
-$ if (f$search( file1) .eqs. "")
-$ then
-$ WRITE SYS$OUTPUT ""
-$ WRITE SYS$OUTPUT "The Option ", ZLIB, " Is Invalid."
-$ WRITE SYS$OUTPUT " Can't find header: ''file1'"
-$ err = 1
-$ endif
-$!
-$ file2 = f$parse( ZLIB, "libz.olb", , , "SYNTAX_ONLY")
-$ if (f$search( file2) .eqs. "")
-$ then
-$ if (err .eq. 0)
-$ then
-$ WRITE SYS$OUTPUT ""
-$ WRITE SYS$OUTPUT "The Option ", ZLIB, " Is Invalid."
-$ endif
-$ WRITE SYS$OUTPUT " Can't find library: ''file2'"
-$ WRITE SYS$OUTPUT ""
-$ err = err+ 2
-$ endif
-$ if (err .eq. 1)
-$ then
-$ WRITE SYS$OUTPUT ""
-$ endif
-$!
-$ if (err .ne. 0)
-$ then
-$ GOTO TIDY
-$ endif
-$!
-$! Print info
-$!
-$ WRITE SYS$OUTPUT "ZLIB library spec: ", file2
-$!
-$! End The ZLIB Check.
-$!
-$ ENDIF
-$!
-$! Time To RETURN...
-$!
-$ RETURN
-$!
-$ TIDY:
-$!
-$! Close any open files.
-$!
-$ if (f$trnlnm( "h_file", "LNM$PROCESS", 0, "SUPERVISOR") .nes. "") then -
- close h_file
-$!
-$! Restore the original default device:[directory].
-$!
-$ SET DEFAULT 'DEF_ORIG'
-$!
-$ EXIT
-$!
diff --git a/ssl/install-ssl.com b/ssl/install-ssl.com
deleted file mode 100755
index c213357..0000000
--- a/ssl/install-ssl.com
+++ /dev/null
@@ -1,116 +0,0 @@
-$! INSTALL-SSL.COM -- Installs the files in a given directory tree
-$!
-$! Author: Richard Levitte <richard at levitte.org>
-$! Time of creation: 22-MAY-1998 10:13
-$!
-$! P1 root of the directory tree
-$! P2 "64" for 64-bit pointers.
-$!
-$!
-$! Announce/identify.
-$!
-$ proc = f$environment( "procedure")
-$ write sys$output "@@@ "+ -
- f$parse( proc, , , "name")+ f$parse( proc, , , "type")
-$!
-$ on error then goto tidy
-$ on control_c then goto tidy
-$!
-$ if p1 .eqs. ""
-$ then
-$ write sys$output "First argument missing."
-$ write sys$output -
- "It should be the directory where you want things installed."
-$ exit
-$ endif
-$!
-$ if (f$getsyi( "cpu") .lt. 128)
-$ then
-$ arch = "VAX"
-$ else
-$ arch = f$edit( f$getsyi( "arch_name"), "upcase")
-$ if (arch .eqs. "") then arch = "UNK"
-$ endif
-$!
-$ archd = arch
-$ lib32 = "32"
-$ shr = "_SHR32"
-$!
-$ if (p2 .nes. "")
-$ then
-$ if (p2 .eqs. "64")
-$ then
-$ archd = arch+ "_64"
-$ lib32 = ""
-$ shr = "_SHR"
-$ else
-$ if (p2 .nes. "32")
-$ then
-$ write sys$output "Second argument invalid."
-$ write sys$output "It should be "32", "64", or nothing."
-$ exit
-$ endif
-$ endif
-$ endif
-$!
-$ root = f$parse( p1, "[]A.;0", , , "syntax_only, no_conceal") - "A.;0"
-$ root_dev = f$parse(root,,,"device","syntax_only")
-$ root_dir = f$parse(root,,,"directory","syntax_only") - -
- "[000000." - "][" - "[" - "]"
-$ root = root_dev + "[" + root_dir
-$!
-$ define /nolog wrk_sslroot 'root'.] /trans=conc
-$ define /nolog wrk_sslinclude wrk_sslroot:[include]
-$ define /nolog wrk_sslxlib wrk_sslroot:['arch'_lib]
-$!
-$ if f$parse("wrk_sslroot:[000000]") .eqs. "" then -
- create /directory /log wrk_sslroot:[000000]
-$ if f$parse("wrk_sslinclude:") .eqs. "" then -
- create /directory /log wrk_sslinclude:
-$ if f$parse("wrk_sslxlib:") .eqs. "" then -
- create /directory /log wrk_sslxlib:
-$!
-$ exheader := ssl.h, ssl2.h, ssl3.h, tls1.h, dtls1.h, srtp.h
-$ libs := ssl_libssl
-$!
-$ xexe_dir := [-.'archd'.exe.ssl]
-$!
-$ copy /protection = w:re 'exheader' wrk_sslinclude: /log
-$!
-$ i = 0
-$ loop_lib:
-$ e = f$edit(f$element(i, ",", libs),"trim")
-$ i = i + 1
-$ if e .eqs. "," then goto loop_lib_end
-$ set noon
-$! Object library.
-$ file = xexe_dir+ e+ lib32+ ".olb"
-$ if f$search( file) .nes. ""
-$ then
-$ copy /protection = w:re 'file' wrk_sslxlib: /log
-$ endif
-$! Shareable image.
-$ file = xexe_dir+ e+ shr+ ".exe"
-$ if f$search( file) .nes. ""
-$ then
-$ copy /protection = w:re 'file' wrk_sslxlib: /log
-$ endif
-$ set on
-$ goto loop_lib
-$ loop_lib_end:
-$!
-$ tidy:
-$!
-$ call deass wrk_sslroot
-$ call deass wrk_sslinclude
-$ call deass wrk_sslxlib
-$!
-$ exit
-$!
-$ deass: subroutine
-$ if (f$trnlnm( p1, "LNM$PROCESS") .nes. "")
-$ then
-$ deassign /process 'p1'
-$ endif
-$ endsubroutine
-$!
diff --git a/ssl/ssl-lib.com b/ssl/ssl-lib.com
deleted file mode 100644
index 5ccdbf3..0000000
--- a/ssl/ssl-lib.com
+++ /dev/null
@@ -1,956 +0,0 @@
-$!
-$! SSL-LIB.COM
-$! Written By: Robert Byer
-$! Vice-President
-$! A-Com Computing, Inc.
-$! byer at mail.all-net.net
-$!
-$! Changes by Richard Levitte <richard at levitte.org>
-$!
-$! This command file compiles and creates the "[.xxx.EXE.SSL]LIBSSL.OLB"
-$! library for OpenSSL. The "xxx" denotes the machine architecture of
-$! ALPHA, IA64 or VAX.
-$!
-$! It is written to detect what type of machine you are compiling on
-$! (i.e. ALPHA or VAX) and which "C" compiler you have (i.e. VAXC, DECC
-$! or GNU C) or you can specify which compiler to use.
-$!
-$! Specify the following as P1 to build just that part or ALL to just
-$! build everything.
-$!
-$! LIBRARY To just compile the [.xxx.EXE.SSL]LIBSSL.OLB Library.
-$!
-$! Specify DEBUG or NODEBUG as P2 to compile with or without debugger
-$! information.
-$!
-$! Specify which compiler at P3 to try to compile under.
-$!
-$! VAXC For VAX C.
-$! DECC For DEC C.
-$! GNUC For GNU C.
-$!
-$! If you don't specify a compiler, it will try to determine which
-$! "C" compiler to use.
-$!
-$! P4, if defined, sets a TCP/IP library to use, through one of the following
-$! keywords:
-$!
-$! UCX for UCX
-$! TCPIP for TCPIP (post UCX)
-$! SOCKETSHR for SOCKETSHR+NETLIB
-$!
-$! P5, if defined, sets a compiler thread NOT needed on OpenVMS 7.1 (and up)
-$!
-$! P6, if defined, specifies the C pointer size. Ignored on VAX.
-$! ("64=ARGV" gives more efficient code with HP C V7.3 or newer.)
-$! Supported values are:
-$!
-$! "" Compile with default (/NOPOINTER_SIZE)
-$! 32 Compile with /POINTER_SIZE=32 (SHORT)
-$! 64 Compile with /POINTER_SIZE=64[=ARGV] (LONG[=ARGV])
-$! (Automatically select ARGV if compiler supports it.)
-$! 64= Compile with /POINTER_SIZE=64 (LONG).
-$! 64=ARGV Compile with /POINTER_SIZE=64=ARGV (LONG=ARGV).
-$!
-$! P7, if defined, specifies a directory where ZLIB files (zlib.h,
-$! libz.olb) may be found. Optionally, a non-default object library
-$! name may be included ("dev:[dir]libz_64.olb", for example).
-$!
-$!
-$! Announce/identify.
-$!
-$ proc = f$environment( "procedure")
-$ write sys$output "@@@ "+ -
- f$parse( proc, , , "name")+ f$parse( proc, , , "type")
-$!
-$! Define A TCP/IP Library That We Will Need To Link To.
-$! (That Is, If We Need To Link To One.)
-$!
-$ TCPIP_LIB = ""
-$ ZLIB_LIB = ""
-$!
-$! Check What Architecture We Are Using.
-$!
-$ IF (F$GETSYI("CPU").LT.128)
-$ THEN
-$!
-$! The Architecture Is VAX.
-$!
-$ ARCH = "VAX"
-$!
-$! Else...
-$!
-$ ELSE
-$!
-$! The Architecture Is Alpha, IA64 or whatever comes in the future.
-$!
-$ ARCH = F$EDIT( F$GETSYI( "ARCH_NAME"), "UPCASE")
-$ IF (ARCH .EQS. "") THEN ARCH = "UNK"
-$!
-$! End The Architecture Check.
-$!
-$ ENDIF
-$!
-$ ARCHD = ARCH
-$ LIB32 = "32"
-$ OPT_FILE = ""
-$ POINTER_SIZE = ""
-$!
-$! Check To Make Sure We Have Valid Command Line Parameters.
-$!
-$ GOSUB CHECK_OPTIONS
-$!
-$! Define The OBJ and EXE Directories.
-$!
-$ OBJ_DIR := SYS$DISK:[-.'ARCHD'.OBJ.SSL]
-$ EXE_DIR := SYS$DISK:[-.'ARCHD'.EXE.SSL]
-$!
-$! Specify the destination directory in any /MAP option.
-$!
-$ if (LINKMAP .eqs. "MAP")
-$ then
-$ LINKMAP = LINKMAP+ "=''EXE_DIR'"
-$ endif
-$!
-$! Add the location prefix to the linker options file name.
-$!
-$ if (OPT_FILE .nes. "")
-$ then
-$ OPT_FILE = EXE_DIR+ OPT_FILE
-$ endif
-$!
-$! Initialise logical names and such
-$!
-$ GOSUB INITIALISE
-$!
-$! Tell The User What Kind of Machine We Run On.
-$!
-$ WRITE SYS$OUTPUT "Host system architecture: ''ARCHD'"
-$!
-$! Check To See If The Architecture Specific OBJ Directory Exists.
-$!
-$ IF (F$PARSE(OBJ_DIR).EQS."")
-$ THEN
-$!
-$! It Dosen't Exist, So Create It.
-$!
-$ CREATE/DIR 'OBJ_DIR'
-$!
-$! End The Architecture Specific OBJ Directory Check.
-$!
-$ ENDIF
-$!
-$! Check To See If The Architecture Specific Directory Exists.
-$!
-$ IF (F$PARSE(EXE_DIR).EQS."")
-$ THEN
-$!
-$! It Dosen't Exist, So Create It.
-$!
-$ CREATE/DIR 'EXE_DIR'
-$!
-$! End The Architecture Specific Directory Check.
-$!
-$ ENDIF
-$!
-$! Define The Library Name.
-$!
-$ SSL_LIB := 'EXE_DIR'SSL_LIBSSL'LIB32'.OLB
-$!
-$! Define The CRYPTO-LIB We Are To Use.
-$!
-$ CRYPTO_LIB := SYS$DISK:[-.'ARCHD'.EXE.CRYPTO]SSL_LIBCRYPTO'LIB32'.OLB
-$!
-$! Check To See What We Are To Do.
-$!
-$ IF (BUILDALL.EQS."TRUE")
-$ THEN
-$!
-$! Since Nothing Special Was Specified, Do Everything.
-$!
-$ GOSUB LIBRARY
-$!
-$! Else...
-$!
-$ ELSE
-$!
-$! Build Just What The User Wants Us To Build.
-$!
-$ GOSUB 'BUILDALL'
-$!
-$! End The BUILDALL Check.
-$!
-$ ENDIF
-$!
-$! Time To EXIT.
-$!
-$ EXIT:
-$ GOSUB CLEANUP
-$ EXIT
-$!
-$! Compile The Library.
-$!
-$ LIBRARY:
-$!
-$! Check To See If We Already Have A "[.xxx.EXE.SSL]SSL_LIBSSL''LIB32'.OLB" Library...
-$!
-$ IF (F$SEARCH(SSL_LIB).EQS."")
-$ THEN
-$!
-$! Guess Not, Create The Library.
-$!
-$ LIBRARY/CREATE/OBJECT 'SSL_LIB'
-$!
-$! End The Library Exist Check.
-$!
-$ ENDIF
-$!
-$! Define The Different SSL "library" Files.
-$!
-$ LIB_SSL = "s3_srvr, s3_clnt, s3_lib, s3_enc,s3_pkt,s3_both,s3_cbc,"+ -
- "t1_meth, t1_srvr, t1_clnt, t1_lib, t1_enc, t1_ext,"+ -
- "d1_meth, d1_srvr, d1_clnt, d1_lib, d1_pkt,"+ -
- "d1_both,d1_srtp,"+ -
- "ssl_lib,ssl_cert,ssl_sess,"+ -
- "ssl_ciph,ssl_stat,ssl_rsa,"+ -
- "ssl_asn1,ssl_txt,ssl_init,ssl_conf,"+ -
- "bio_ssl,ssl_err,t1_reneg,tls_srp,t1_trce,ssl_utst"
-$!
-$! Tell The User That We Are Compiling The Library.
-$!
-$ WRITE SYS$OUTPUT "Building The ",SSL_LIB," Library."
-$!
-$! Define A File Counter And Set It To "0"
-$!
-$ FILE_COUNTER = 0
-$!
-$! Top Of The File Loop.
-$!
-$ NEXT_FILE:
-$!
-$! O.K, Extract The File Name From The File List.
-$!
-$ FILE_NAME = F$EDIT(F$ELEMENT(FILE_COUNTER,",",LIB_SSL),"TRIM")
-$!
-$! Check To See If We Are At The End Of The File List.
-$!
-$ IF (FILE_NAME.EQS.",") THEN GOTO FILE_DONE
-$!
-$! Increment The Counter.
-$!
-$ FILE_COUNTER = FILE_COUNTER + 1
-$!
-$! Create The Source File Name.
-$!
-$ SOURCE_FILE = "SYS$DISK:[]" + FILE_NAME + ".C"
-$!
-$! Create The Object File Name.
-$!
-$ OBJECT_FILE = OBJ_DIR + FILE_NAME + ".OBJ"
-$ ON WARNING THEN GOTO NEXT_FILE
-$!
-$! Check To See If The File We Want To Compile Is Actually There.
-$!
-$ IF (F$SEARCH(SOURCE_FILE).EQS."")
-$ THEN
-$!
-$! Tell The User That The File Dosen't Exist.
-$!
-$ WRITE SYS$OUTPUT ""
-$ WRITE SYS$OUTPUT "The File ",SOURCE_FILE," Dosen't Exist."
-$ WRITE SYS$OUTPUT ""
-$!
-$! Exit The Build.
-$!
-$ EXIT
-$!
-$! End The File Exists Check.
-$!
-$ ENDIF
-$!
-$! Tell The User What File We Are Compiling.
-$!
-$ WRITE SYS$OUTPUT " ",FILE_NAME,".c"
-$!
-$! Compile The File.
-$!
-$ ON ERROR THEN GOTO NEXT_FILE
-$ CC/OBJECT='OBJECT_FILE' 'SOURCE_FILE'
-$!
-$! Add It To The Library.
-$!
-$ LIBRARY/REPLACE/OBJECT 'SSL_LIB' 'OBJECT_FILE'
-$!
-$! Time To Clean Up The Object File.
-$!
-$ DELETE 'OBJECT_FILE';*
-$!
-$! Go Back And Get The Next File Name.
-$!
-$ GOTO NEXT_FILE
-$!
-$! All Done With This Library.
-$!
-$ FILE_DONE:
-$!
-$! Tell The User That We Are All Done.
-$!
-$ WRITE SYS$OUTPUT "Library ",SSL_LIB," Compiled."
-$!
-$! Time To RETURN.
-$!
-$ RETURN
-$!
-$! Check The User's Options.
-$!
-$ CHECK_OPTIONS:
-$!
-$! Check To See If P1 Is Blank.
-$!
-$ IF (P1.EQS."ALL")
-$ THEN
-$!
-$! P1 Is Blank, So Build Everything.
-$!
-$ BUILDALL = "TRUE"
-$!
-$! Else...
-$!
-$ ELSE
-$!
-$! Else, Check To See If P1 Has A Valid Argument.
-$!
-$ IF (P1.EQS."LIBRARY")
-$ THEN
-$!
-$! A Valid Argument.
-$!
-$ BUILDALL = P1
-$!
-$! Else...
-$!
-$ ELSE
-$!
-$! Tell The User We Don't Know What They Want.
-$!
-$ WRITE SYS$OUTPUT ""
-$ WRITE SYS$OUTPUT "The Option ",P1," Is Invalid. The Valid Options Are:"
-$ WRITE SYS$OUTPUT ""
-$ WRITE SYS$OUTPUT " ALL : Just Build Everything."
-$ WRITE SYS$OUTPUT " LIBRARY : To Compile Just The [.xxx.EXE.SSL]LIBSSL.OLB Library."
-$ WRITE SYS$OUTPUT ""
-$ WRITE SYS$OUTPUT " Where 'xxx' Stands For:"
-$ WRITE SYS$OUTPUT ""
-$ WRITE SYS$OUTPUT " ALPHA[64]: Alpha Architecture."
-$ WRITE SYS$OUTPUT " IA64[64] : IA64 Architecture."
-$ WRITE SYS$OUTPUT " VAX : VAX Architecture."
-$ WRITE SYS$OUTPUT ""
-$!
-$! Time To EXIT.
-$!
-$ EXIT
-$!
-$! End The Valid Argument Check.
-$!
-$ ENDIF
-$!
-$! End The P1 Check.
-$!
-$ ENDIF
-$!
-$! Check To See If P2 Is Blank.
-$!
-$ IF (P2.EQS."NODEBUG")
-$ THEN
-$!
-$! P2 Is NODEBUG, So Compile Without Debugger Information.
-$!
-$ DEBUGGER = "NODEBUG"
-$ LINKMAP = "NOMAP"
-$ TRACEBACK = "NOTRACEBACK"
-$ GCC_OPTIMIZE = "OPTIMIZE"
-$ CC_OPTIMIZE = "OPTIMIZE"
-$ WRITE SYS$OUTPUT "No Debugger Information Will Be Produced During Compile."
-$ WRITE SYS$OUTPUT "Compiling With Compiler Optimization."
-$!
-$! Else...
-$!
-$ ELSE
-$!
-$! Check To See If We Are To Compile With Debugger Information.
-$!
-$ IF (P2.EQS."DEBUG")
-$ THEN
-$!
-$! Compile With Debugger Information.
-$!
-$ DEBUGGER = "DEBUG"
-$ LINKMAP = "MAP"
-$ TRACEBACK = "TRACEBACK"
-$ GCC_OPTIMIZE = "NOOPTIMIZE"
-$ CC_OPTIMIZE = "NOOPTIMIZE"
-$ WRITE SYS$OUTPUT "Debugger Information Will Be Produced During Compile."
-$ WRITE SYS$OUTPUT "Compiling Without Compiler Optimization."
-$ ELSE
-$!
-$! Tell The User Entered An Invalid Option.
-$!
-$ WRITE SYS$OUTPUT ""
-$ WRITE SYS$OUTPUT "The Option ",P2," Is Invalid. The Valid Options Are:"
-$ WRITE SYS$OUTPUT ""
-$ WRITE SYS$OUTPUT " DEBUG : Compile With The Debugger Information."
-$ WRITE SYS$OUTPUT " NODEBUG : Compile Without The Debugger Information."
-$ WRITE SYS$OUTPUT ""
-$!
-$! Time To EXIT.
-$!
-$ EXIT
-$!
-$! End The Valid Argument Check.
-$!
-$ ENDIF
-$!
-$! End The P2 Check.
-$!
-$ ENDIF
-$!
-$! Special Threads For OpenVMS v7.1 Or Later
-$!
-$! Written By: Richard Levitte
-$! richard at levitte.org
-$!
-$!
-$! Check To See If We Have A Option For P5.
-$!
-$ IF (P5.EQS."")
-$ THEN
-$!
-$! Get The Version Of VMS We Are Using.
-$!
-$ ISSEVEN :=
-$ TMP = F$ELEMENT(0,"-",F$EXTRACT(1,4,F$GETSYI("VERSION")))
-$ TMP = F$INTEGER(F$ELEMENT(0,".",TMP)+F$ELEMENT(1,".",TMP))
-$!
-$! Check To See If The VMS Version Is v7.1 Or Later.
-$!
-$ IF (TMP.GE.71)
-$ THEN
-$!
-$! We Have OpenVMS v7.1 Or Later, So Use The Special Threads.
-$!
-$ ISSEVEN := ,PTHREAD_USE_D4
-$!
-$! End The VMS Version Check.
-$!
-$ ENDIF
-$!
-$! End The P5 Check.
-$!
-$ ENDIF
-$!
-$! Check P6 (POINTER_SIZE).
-$!
-$ IF (P6 .NES. "") .AND. (ARCH .NES. "VAX")
-$ THEN
-$!
-$ IF (P6 .EQS. "32")
-$ THEN
-$ POINTER_SIZE = " /POINTER_SIZE=32"
-$ ELSE
-$ POINTER_SIZE = F$EDIT( P6, "COLLAPSE, UPCASE")
-$ IF ((POINTER_SIZE .EQS. "64") .OR. -
- (POINTER_SIZE .EQS. "64=") .OR. -
- (POINTER_SIZE .EQS. "64=ARGV"))
-$ THEN
-$ ARCHD = ARCH+ "_64"
-$ LIB32 = ""
-$ POINTER_SIZE = " /POINTER_SIZE=64"
-$ ELSE
-$!
-$! Tell The User Entered An Invalid Option.
-$!
-$ WRITE SYS$OUTPUT ""
-$ WRITE SYS$OUTPUT "The Option ", P6, -
- " Is Invalid. The Valid Options Are:"
-$ WRITE SYS$OUTPUT ""
-$ WRITE SYS$OUTPUT -
- " """" : Compile with default (short) pointers."
-$ WRITE SYS$OUTPUT -
- " 32 : Compile with 32-bit (short) pointers."
-$ WRITE SYS$OUTPUT -
- " 64 : Compile with 64-bit (long) pointers (auto ARGV)."
-$ WRITE SYS$OUTPUT -
- " 64= : Compile with 64-bit (long) pointers (no ARGV)."
-$ WRITE SYS$OUTPUT -
- " 64=ARGV : Compile with 64-bit (long) pointers (ARGV)."
-$ WRITE SYS$OUTPUT ""
-$!
-$! Time To EXIT.
-$!
-$ EXIT
-$!
-$ ENDIF
-$!
-$ ENDIF
-$!
-$! End The P6 (POINTER_SIZE) Check.
-$!
-$ ENDIF
-$!
-$! Set basic C compiler /INCLUDE directories.
-$!
-$ CC_INCLUDES = "SYS$DISK:[-.CRYPTO],SYS$DISK:[-]"
-$!
-$! Check To See If P3 Is Blank.
-$!
-$ IF (P3.EQS."")
-$ THEN
-$!
-$! O.K., The User Didn't Specify A Compiler, Let's Try To
-$! Find Out Which One To Use.
-$!
-$! Check To See If We Have GNU C.
-$!
-$ IF (F$TRNLNM("GNU_CC").NES."")
-$ THEN
-$!
-$! Looks Like GNUC, Set To Use GNUC.
-$!
-$ P3 = "GNUC"
-$!
-$! End The GNU C Compiler Check.
-$!
-$ ELSE
-$!
-$! Check To See If We Have VAXC Or DECC.
-$!
-$ IF (ARCH.NES."VAX").OR.(F$TRNLNM("DECC$CC_DEFAULT").NES."")
-$ THEN
-$!
-$! Looks Like DECC, Set To Use DECC.
-$!
-$ P3 = "DECC"
-$!
-$! Else...
-$!
-$ ELSE
-$!
-$! Looks Like VAXC, Set To Use VAXC.
-$!
-$ P3 = "VAXC"
-$!
-$! End The VAXC Compiler Check.
-$!
-$ ENDIF
-$!
-$! End The DECC & VAXC Compiler Check.
-$!
-$ ENDIF
-$!
-$! End The Compiler Check.
-$!
-$ ENDIF
-$!
-$! Check To See If We Have A Option For P4.
-$!
-$ IF (P4.EQS."")
-$ THEN
-$!
-$! Find out what socket library we have available
-$!
-$ IF F$PARSE("SOCKETSHR:") .NES. ""
-$ THEN
-$!
-$! We have SOCKETSHR, and it is my opinion that it's the best to use.
-$!
-$ P4 = "SOCKETSHR"
-$!
-$! Tell the user
-$!
-$ WRITE SYS$OUTPUT "Using SOCKETSHR for TCP/IP"
-$!
-$! Else, let's look for something else
-$!
-$ ELSE
-$!
-$! Like UCX (the reason to do this before Multinet is that the UCX
-$! emulation is easier to use...)
-$!
-$ IF F$TRNLNM("UCX$IPC_SHR") .NES. "" -
- .OR. F$PARSE("SYS$SHARE:UCX$IPC_SHR.EXE") .NES. "" -
- .OR. F$PARSE("SYS$LIBRARY:UCX$IPC.OLB") .NES. ""
-$ THEN
-$!
-$! Last resort: a UCX or UCX-compatible library
-$!
-$ P4 = "UCX"
-$!
-$! Tell the user
-$!
-$ WRITE SYS$OUTPUT "Using UCX or an emulation thereof for TCP/IP"
-$!
-$! That was all...
-$!
-$ ENDIF
-$ ENDIF
-$ ENDIF
-$!
-$! Set Up Initial CC Definitions, Possibly With User Ones
-$!
-$ CCDEFS = "TCPIP_TYPE_''P4'"
-$ IF F$TYPE(USER_CCDEFS) .NES. "" THEN CCDEFS = CCDEFS + "," + USER_CCDEFS
-$ CCEXTRAFLAGS = ""
-$ IF F$TYPE(USER_CCFLAGS) .NES. "" THEN CCEXTRAFLAGS = USER_CCFLAGS
-$ CCDISABLEWARNINGS = "" !!! "LONGLONGTYPE,LONGLONGSUFX,FOUNDCR"
-$ IF F$TYPE(USER_CCDISABLEWARNINGS) .NES. "" THEN -
- CCDISABLEWARNINGS = CCDISABLEWARNINGS + "," + USER_CCDISABLEWARNINGS
-$!
-$! Check To See If We Have A ZLIB Option.
-$!
-$ ZLIB = P7
-$ IF (ZLIB .NES. "")
-$ THEN
-$!
-$! Check for expected ZLIB files.
-$!
-$ err = 0
-$ file1 = f$parse( "zlib.h", ZLIB, , , "SYNTAX_ONLY")
-$ if (f$search( file1) .eqs. "")
-$ then
-$ WRITE SYS$OUTPUT ""
-$ WRITE SYS$OUTPUT "The Option ", ZLIB, " Is Invalid."
-$ WRITE SYS$OUTPUT " Can't find header: ''file1'"
-$ err = 1
-$ endif
-$ file1 = f$parse( "A.;", ZLIB)- "A.;"
-$!
-$ file2 = f$parse( ZLIB, "libz.olb", , , "SYNTAX_ONLY")
-$ if (f$search( file2) .eqs. "")
-$ then
-$ if (err .eq. 0)
-$ then
-$ WRITE SYS$OUTPUT ""
-$ WRITE SYS$OUTPUT "The Option ", ZLIB, " Is Invalid."
-$ endif
-$ WRITE SYS$OUTPUT " Can't find library: ''file2'"
-$ WRITE SYS$OUTPUT ""
-$ err = err+ 2
-$ endif
-$ if (err .eq. 1)
-$ then
-$ WRITE SYS$OUTPUT ""
-$ endif
-$!
-$ if (err .ne. 0)
-$ then
-$ EXIT
-$ endif
-$!
-$ CCDEFS = """ZLIB=1"", "+ CCDEFS
-$ CC_INCLUDES = CC_INCLUDES+ ", "+ file1
-$ ZLIB_LIB = ", ''file2' /library"
-$!
-$! Print info
-$!
-$ WRITE SYS$OUTPUT "ZLIB library spec: ", file2
-$!
-$! End The ZLIB Check.
-$!
-$ ENDIF
-$!
-$! Check To See If The User Entered A Valid Parameter.
-$!
-$ IF (P3.EQS."VAXC").OR.(P3.EQS."DECC").OR.(P3.EQS."GNUC")
-$ THEN
-$!
-$! Check To See If The User Wanted DECC.
-$!
-$ IF (P3.EQS."DECC")
-$ THEN
-$!
-$! Looks Like DECC, Set To Use DECC.
-$!
-$ COMPILER = "DECC"
-$!
-$! Tell The User We Are Using DECC.
-$!
-$ WRITE SYS$OUTPUT "Using DECC 'C' Compiler."
-$!
-$! Use DECC...
-$!
-$ CC = "CC"
-$ IF ARCH.EQS."VAX" .AND. F$TRNLNM("DECC$CC_DEFAULT").NES."/DECC" -
- THEN CC = "CC/DECC"
-$ CC = CC + " /''CC_OPTIMIZE' /''DEBUGGER' /STANDARD=RELAXED"+ -
- "''POINTER_SIZE' /NOLIST /PREFIX=ALL" + -
- " /INCLUDE=(''CC_INCLUDES') " + CCEXTRAFLAGS
-$!
-$! Define The Linker Options File Name.
-$!
-$ OPT_FILE = "VAX_DECC_OPTIONS.OPT"
-$!
-$! End DECC Check.
-$!
-$ ENDIF
-$!
-$! Check To See If We Are To Use VAXC.
-$!
-$ IF (P3.EQS."VAXC")
-$ THEN
-$!
-$! Looks Like VAXC, Set To Use VAXC.
-$!
-$ COMPILER = "VAXC"
-$!
-$! Tell The User We Are Using VAX C.
-$!
-$ WRITE SYS$OUTPUT "Using VAXC 'C' Compiler."
-$!
-$! Compile Using VAXC.
-$!
-$ CC = "CC"
-$ IF ARCH.NES."VAX"
-$ THEN
-$ WRITE SYS$OUTPUT "There is no VAX C on ''ARCH'!"
-$ EXIT
-$ ENDIF
-$ IF F$TRNLNM("DECC$CC_DEFAULT").EQS."/DECC" THEN CC = "CC/VAXC"
-$ CC = CC + "/''CC_OPTIMIZE'/''DEBUGGER'/NOLIST" + -
- "/INCLUDE=(''CC_INCLUDES')" + CCEXTRAFLAGS
-$ CCDEFS = CCDEFS + ",""VAXC"""
-$!
-$! Define <sys> As SYS$COMMON:[SYSLIB]
-$!
-$ DEFINE/NOLOG SYS SYS$COMMON:[SYSLIB]
-$!
-$! Define The Linker Options File Name.
-$!
-$ OPT_FILE = "VAX_VAXC_OPTIONS.OPT"
-$!
-$! End VAXC Check
-$!
-$ ENDIF
-$!
-$! Check To See If We Are To Use GNU C.
-$!
-$ IF (P3.EQS."GNUC")
-$ THEN
-$!
-$! Looks Like GNUC, Set To Use GNUC.
-$!
-$ COMPILER = "GNUC"
-$!
-$! Tell The User We Are Using GNUC.
-$!
-$ WRITE SYS$OUTPUT "Using GNU 'C' Compiler."
-$!
-$! Use GNU C...
-$!
-$ IF F$TYPE(GCC) .EQS. "" THEN GCC := GCC
-$ CC = GCC+"/NOCASE_HACK/''GCC_OPTIMIZE'/''DEBUGGER'/NOLIST" + -
- "/INCLUDE=(''CC_INCLUDES')" + CCEXTRAFLAGS
-$!
-$! Define The Linker Options File Name.
-$!
-$ OPT_FILE = "VAX_GNUC_OPTIONS.OPT"
-$!
-$! End The GNU C Check.
-$!
-$ ENDIF
-$!
-$! Set up default defines
-$!
-$ CCDEFS = """FLAT_INC=1""," + CCDEFS
-$!
-$! Finish up the definition of CC.
-$!
-$ IF COMPILER .EQS. "DECC"
-$ THEN
-$ IF CCDISABLEWARNINGS .EQS. ""
-$ THEN
-$ CC4DISABLEWARNINGS = "DOLLARID"
-$ ELSE
-$ CC4DISABLEWARNINGS = CCDISABLEWARNINGS + ",DOLLARID"
-$ CCDISABLEWARNINGS = " /WARNING=(DISABLE=(" + CCDISABLEWARNINGS + "))"
-$ ENDIF
-$ CC4DISABLEWARNINGS = " /WARNING=(DISABLE=(" + CC4DISABLEWARNINGS + "))"
-$ ELSE
-$ CCDISABLEWARNINGS = ""
-$ CC4DISABLEWARNINGS = ""
-$ ENDIF
-$ CC2 = CC + " /DEFINE=(" + CCDEFS + ",_POSIX_C_SOURCE)" + CCDISABLEWARNINGS
-$ CC3 = CC + " /DEFINE=(" + CCDEFS + ISSEVEN + ")" + CCDISABLEWARNINGS
-$ CC = CC + " /DEFINE=(" + CCDEFS + ")" + CCDISABLEWARNINGS
-$ IF COMPILER .EQS. "DECC"
-$ THEN
-$ CC4 = CC - CCDISABLEWARNINGS + CC4DISABLEWARNINGS
-$ ELSE
-$ CC4 = CC
-$ ENDIF
-$!
-$! Show user the result
-$!
-$ WRITE/SYMBOL SYS$OUTPUT "Main Compiling Command: ",CC
-$!
-$! Else The User Entered An Invalid Argument.
-$!
-$ ELSE
-$!
-$! Tell The User We Don't Know What They Want.
-$!
-$ WRITE SYS$OUTPUT ""
-$ WRITE SYS$OUTPUT "The Option ",P3," Is Invalid. The Valid Options Are:"
-$ WRITE SYS$OUTPUT ""
-$ WRITE SYS$OUTPUT " VAXC : To Compile With VAX C."
-$ WRITE SYS$OUTPUT " DECC : To Compile With DEC C."
-$ WRITE SYS$OUTPUT " GNUC : To Compile With GNU C."
-$ WRITE SYS$OUTPUT ""
-$!
-$! Time To EXIT.
-$!
-$ EXIT
-$ ENDIF
-$!
-$! Time to check the contents, and to make sure we get the correct library.
-$!
-$ IF P4.EQS."SOCKETSHR" .OR. P4.EQS."MULTINET" .OR. P4.EQS."UCX" -
- .OR. P4.EQS."TCPIP" .OR. P4.EQS."NONE"
-$ THEN
-$!
-$! Check to see if SOCKETSHR was chosen
-$!
-$ IF P4.EQS."SOCKETSHR"
-$ THEN
-$!
-$! Set the library to use SOCKETSHR
-$!
-$ TCPIP_LIB = ",SYS$DISK:[-.VMS]SOCKETSHR_SHR.OPT /OPTIONS"
-$!
-$! Done with SOCKETSHR
-$!
-$ ENDIF
-$!
-$! Check to see if MULTINET was chosen
-$!
-$ IF P4.EQS."MULTINET"
-$ THEN
-$!
-$! Set the library to use UCX emulation.
-$!
-$ P4 = "UCX"
-$!
-$! Done with MULTINET
-$!
-$ ENDIF
-$!
-$! Check to see if UCX was chosen
-$!
-$ IF P4.EQS."UCX"
-$ THEN
-$!
-$! Set the library to use UCX.
-$!
-$ TCPIP_LIB = ",SYS$DISK:[-.VMS]UCX_SHR_DECC.OPT /OPTIONS"
-$ IF F$TRNLNM("UCX$IPC_SHR") .NES. ""
-$ THEN
-$ TCPIP_LIB = ",SYS$DISK:[-.VMS]UCX_SHR_DECC_LOG.OPT /OPTIONS"
-$ ELSE
-$ IF COMPILER .NES. "DECC" .AND. ARCH .EQS. "VAX" THEN -
- TCPIP_LIB = ",SYS$DISK:[-.VMS]UCX_SHR_VAXC.OPT /OPTIONS"
-$ ENDIF
-$!
-$! Done with UCX
-$!
-$ ENDIF
-$!
-$! Check to see if TCPIP was chosen
-$!
-$ IF P4.EQS."TCPIP"
-$ THEN
-$!
-$! Set the library to use TCPIP (post UCX).
-$!
-$ TCPIP_LIB = ",SYS$DISK:[-.VMS]TCPIP_SHR_DECC.OPT /OPTIONS"
-$!
-$! Done with TCPIP
-$!
-$ ENDIF
-$!
-$! Check to see if NONE was chosen
-$!
-$ IF P4.EQS."NONE"
-$ THEN
-$!
-$! Do not use a TCPIP library.
-$!
-$ TCPIP_LIB = ""
-$!
-$! Done with NONE
-$!
-$ ENDIF
-$!
-$! Print info
-$!
-$ WRITE SYS$OUTPUT "TCP/IP library spec: ", TCPIP_LIB- ","
-$!
-$! Else The User Entered An Invalid Argument.
-$!
-$ ELSE
-$!
-$! Tell The User We Don't Know What They Want.
-$!
-$ WRITE SYS$OUTPUT ""
-$ WRITE SYS$OUTPUT "The Option ",P4," Is Invalid. The Valid Options Are:"
-$ WRITE SYS$OUTPUT ""
-$ WRITE SYS$OUTPUT " SOCKETSHR : To link with SOCKETSHR TCP/IP library."
-$ WRITE SYS$OUTPUT " UCX : To link with UCX TCP/IP library."
-$ WRITE SYS$OUTPUT " TCPIP : To link with TCPIP (post UCX) TCP/IP library."
-$ WRITE SYS$OUTPUT ""
-$!
-$! Time To EXIT.
-$!
-$ EXIT
-$!
-$! Done with TCP/IP libraries
-$!
-$ ENDIF
-$!
-$! Time To RETURN...
-$!
-$ RETURN
-$!
-$ INITIALISE:
-$!
-$! Save old value of the logical name OPENSSL
-$!
-$ __SAVE_OPENSSL = F$TRNLNM("OPENSSL","LNM$PROCESS_TABLE")
-$!
-$! Save directory information
-$!
-$ __HERE = F$PARSE(F$PARSE("A.;",F$ENVIRONMENT("PROCEDURE"))-"A.;","[]A.;") - "A.;"
-$ __HERE = F$EDIT(__HERE,"UPCASE")
-$ __TOP = __HERE - "SSL]"
-$ __INCLUDE = __TOP + "INCLUDE.OPENSSL]"
-$!
-$! Set up the logical name OPENSSL to point at the include directory
-$!
-$ DEFINE OPENSSL/NOLOG '__INCLUDE'
-$!
-$! Done
-$!
-$ RETURN
-$!
-$ CLEANUP:
-$!
-$! Restore the logical name OPENSSL if it had a value
-$!
-$ IF __SAVE_OPENSSL .EQS. ""
-$ THEN
-$ DEASSIGN OPENSSL
-$ ELSE
-$ DEFINE/NOLOG OPENSSL '__SAVE_OPENSSL'
-$ ENDIF
-$!
-$! Done
-$!
-$ RETURN
diff --git a/test/clean_test.com b/test/clean_test.com
deleted file mode 100755
index 7df633f..0000000
--- a/test/clean_test.com
+++ /dev/null
@@ -1,35 +0,0 @@
-$!
-$! Delete various test results files.
-$!
-$ def_orig = f$environment( "default")
-$ proc = f$environment( "procedure")
-$ proc_dev_dir = f$parse( "A.;", proc) - "A.;"
-$!
-$ on control_c then goto tidy
-$ on error then goto tidy
-$!
-$ set default 'proc_dev_dir'
-$!
-$ files := *.cms;*, *.srl;*, *.ss;*, -
- cms.err;*, cms.out;*, newreq.pem;*, -
- p.txt-zlib-cipher;*, -
- smtst.txt;*, testkey.pem;*, testreq.pem;*, -
- test_*.err;*, test_*.out;*, -
- .rnd;*
-$!
-$ delim = ","
-$ i = 0
-$ loop:
-$ file = f$edit( f$element( i, delim, files), "trim")
-$ if (file .eqs. delim) then goto loop_end
-$ if (f$search( file) .nes. "") then -
- delete 'p1' 'file'
-$ i = i+ 1
-$ goto loop
-$ loop_end:
-$!
-$ tidy:
-$
-$ if (f$type( def_orig) .nes. "") then -
- set default 'def_orig'
-$!
diff --git a/test/maketests.com b/test/maketests.com
deleted file mode 100644
index b0ff39d..0000000
--- a/test/maketests.com
+++ /dev/null
@@ -1,1099 +0,0 @@
-$!
-$! MAKETESTS.COM
-$! Written By: Robert Byer
-$! Vice-President
-$! A-Com Computing, Inc.
-$! byer at mail.all-net.net
-$!
-$! Changes by Richard Levitte <richard at levitte.org>
-$!
-$! This command files compiles and creates all the various different
-$! "test" programs for the different types of encryption for OpenSSL.
-$! It was written so it would try to determine what "C" compiler to
-$! use or you can specify which "C" compiler to use.
-$!
-$! The test "executables" will be placed in a directory called
-$! [.xxx.EXE.TEST] where "xxx" denotes ALPHA, IA64, or VAX, depending
-$! on your machine architecture.
-$!
-$! Specify DEBUG or NODEBUG P1 to compile with or without debugger
-$! information.
-$!
-$! Specify which compiler at P2 to try to compile under.
-$!
-$! VAXC For VAX C.
-$! DECC For DEC C.
-$! GNUC For GNU C.
-$!
-$! If you don't specify a compiler, it will try to determine which
-$! "C" compiler to use.
-$!
-$! P3, if defined, sets a TCP/IP library to use, through one of the following
-$! keywords:
-$!
-$! UCX for UCX
-$! SOCKETSHR for SOCKETSHR+NETLIB
-$!
-$! P4, if defined, sets a compiler thread NOT needed on OpenVMS 7.1 (and up)
-$!
-$!
-$! P5, if defined, specifies the C pointer size. Ignored on VAX.
-$! ("64=ARGV" gives more efficient code with HP C V7.3 or newer.)
-$! Supported values are:
-$!
-$! "" Compile with default (/NOPOINTER_SIZE)
-$! 32 Compile with /POINTER_SIZE=32 (SHORT)
-$! 64 Compile with /POINTER_SIZE=64[=ARGV] (LONG[=ARGV])
-$! (Automatically select ARGV if compiler supports it.)
-$! 64= Compile with /POINTER_SIZE=64 (LONG).
-$! 64=ARGV Compile with /POINTER_SIZE=64=ARGV (LONG=ARGV).
-$!
-$! P6, if defined, specifies a directory where ZLIB files (zlib.h,
-$! libz.olb) may be found. Optionally, a non-default object library
-$! name may be included ("dev:[dir]libz_64.olb", for example).
-$!
-$!
-$! Announce/identify.
-$!
-$ proc = f$environment( "procedure")
-$ write sys$output "@@@ "+ -
- f$parse( proc, , , "name")+ f$parse( proc, , , "type")
-$!
-$! Define A TCP/IP Library That We Will Need To Link To.
-$! (That is, If We Need To Link To One.)
-$!
-$ TCPIP_LIB = ""
-$ ZLIB_LIB = ""
-$!
-$! Check Which Architecture We Are Using.
-$!
-$ if (f$getsyi( "cpu") .lt. 128)
-$ then
-$ ARCH = "VAX"
-$ else
-$ ARCH = f$edit( f$getsyi( "ARCH_NAME"), "UPCASE")
-$ if (ARCH .eqs. "") then ARCH = "UNK"
-$ endif
-$!
-$ ARCHD = ARCH
-$ LIB32 = "32"
-$ OPT_FILE = ""
-$ POINTER_SIZE = ""
-$!
-$! Check To Make Sure We Have Valid Command Line Parameters.
-$!
-$ GOSUB CHECK_OPTIONS
-$!
-$! Define The OBJ and EXE Directories.
-$!
-$ OBJ_DIR := SYS$DISK:[-.'ARCHD'.OBJ.TEST]
-$ EXE_DIR := SYS$DISK:[-.'ARCHD'.EXE.TEST]
-$!
-$! Specify the destination directory in any /MAP option.
-$!
-$ if (LINKMAP .eqs. "MAP")
-$ then
-$ LINKMAP = LINKMAP+ "=''EXE_DIR'"
-$ endif
-$!
-$! Add the location prefix to the linker options file name.
-$!
-$ if (OPT_FILE .nes. "")
-$ then
-$ OPT_FILE = EXE_DIR+ OPT_FILE
-$ endif
-$!
-$! Initialise logical names and such
-$!
-$ GOSUB INITIALISE
-$!
-$! Tell The User What Kind of Machine We Run On.
-$!
-$ WRITE SYS$OUTPUT "Host system architecture: ''ARCHD'"
-$!
-$! Define The CRYPTO-LIB We Are To Use.
-$!
-$ CRYPTO_LIB := SYS$DISK:[-.'ARCHD'.EXE.CRYPTO]SSL_LIBCRYPTO'LIB32'.OLB
-$!
-$! Define The SSL We Are To Use.
-$!
-$ SSL_LIB := SYS$DISK:[-.'ARCHD'.EXE.SSL]SSL_LIBSSL'LIB32'.OLB
-$!
-$! Create the OBJ and EXE Directories, if needed.
-$!
-$ IF (F$PARSE(OBJ_DIR).EQS."") THEN -
- CREATE /DIRECTORY 'OBJ_DIR'
-$ IF (F$PARSE(EXE_DIR).EQS."") THEN -
- CREATE /DIRECTORY 'EXE_DIR'
-$!
-$! Check To See If We Have The Proper Libraries.
-$!
-$ GOSUB LIB_CHECK
-$!
-$! Check To See If We Have A Linker Option File.
-$!
-$ GOSUB CHECK_OPT_FILE
-$!
-$! Define The TEST Files.
-$! NOTE: Some might think this list ugly. However, it's made this way to
-$! reflect the EXE variable in Makefile as closely as possible,
-$! thereby making it fairly easy to verify that the lists are the same.
-$!
-$ TEST_FILES = "BNTEST,ECTEST,ECDSATEST,ECDHTEST,IDEATEST,"+ -
- "MD2TEST,MD4TEST,MD5TEST,HMACTEST,WP_TEST,"+ -
- "RC2TEST,RC4TEST,RC5TEST,"+ -
- "DESTEST,SHA1TEST,SHA256T,SHA512T,"+ -
- "MDC2TEST,RMDTEST,"+ -
- "RANDTEST,DHTEST,ENGINETEST,"+ -
- "GOST2814789TEST,"+ -
- "BFTEST,CASTTEST,SSLTEST,"+ -
- "EXPTEST,DSATEST,RSA_TEST,"+ -
- "EVP_TEST,EVP_EXTRA_TEST,IGETEST,"+ -
- "JPAKETEST,SRPTEST,V3NAMETEST,"+ -
- "HEARTBEAT_TEST,P5_CRPT2_TEST,"+ -
- "CONSTANT_TIME_TEST"
-$! Should we add MTTEST,PQ_TEST,LH_TEST,DIVTEST,TABTEST as well?
-$!
-$! Additional directory information.
-$ T_D_BNTEST := [-.crypto.bn]
-$ T_D_ECTEST := [-.crypto.ec]
-$ T_D_ECDSATEST := [-.crypto.ecdsa]
-$ T_D_ECDHTEST := [-.crypto.ecdh]
-$ T_D_IDEATEST := [-.crypto.idea]
-$ T_D_MD2TEST := [-.crypto.md2]
-$ T_D_MD4TEST := [-.crypto.md4]
-$ T_D_MD5TEST := [-.crypto.md5]
-$ T_D_HMACTEST := [-.crypto.hmac]
-$ T_D_WP_TEST := [-.crypto.whrlpool]
-$ T_D_RC2TEST := [-.crypto.rc2]
-$ T_D_RC4TEST := [-.crypto.rc4]
-$ T_D_RC5TEST := [-.crypto.rc5]
-$ T_D_DESTEST := [-.crypto.des]
-$ T_D_SHATEST := [-.crypto.sha]
-$ T_D_SHA1TEST := [-.crypto.sha]
-$ T_D_SHA256T := [-.crypto.sha]
-$ T_D_SHA512T := [-.crypto.sha]
-$ T_D_MDC2TEST := [-.crypto.mdc2]
-$ T_D_RMDTEST := [-.crypto.ripemd]
-$ T_D_RANDTEST := [-.crypto.rand]
-$ T_D_DHTEST := [-.crypto.dh]
-$ T_D_ENGINETEST := [-.crypto.engine]
-$ T_D_GOST2814789TEST := [-.engines.ccgost]
-$ T_D_BFTEST := [-.crypto.bf]
-$ T_D_CASTTEST := [-.crypto.cast]
-$ T_D_SSLTEST := [-.ssl]
-$ T_D_EXPTEST := [-.crypto.bn]
-$ T_D_DSATEST := [-.crypto.dsa]
-$ T_D_RSA_TEST := [-.crypto.rsa]
-$ T_D_EVP_TEST := [-.crypto.evp]
-$ T_D_EVP_EXTRA_TEST := [-.crypto.evp]
-$ T_D_IGETEST := [-.test]
-$ T_D_JPAKETEST := [-.crypto.jpake]
-$ T_D_SRPTEST := [-.crypto.srp]
-$ T_D_V3NAMETEST := [-.crypto.x509v3]
-$ T_D_HEARTBEAT_TEST := [-.ssl]
-$ T_D_P5_CRPT2_TEST := [-.crypto.evp]
-$ T_D_CONSTANT_TIME_TEST := [-.crypto]
-$!
-$ TCPIP_PROGRAMS = ",,"
-$ IF COMPILER .EQS. "VAXC" THEN -
- TCPIP_PROGRAMS = ",SSLTEST,"
-$!
-$! Define A File Counter And Set It To "0".
-$!
-$ FILE_COUNTER = 0
-$!
-$! Top Of The File Loop.
-$!
-$ NEXT_FILE:
-$!
-$! O.K, Extract The File Name From The File List.
-$!
-$ FILE_NAME = F$ELEMENT(FILE_COUNTER,",",TEST_FILES)
-$!
-$! Check To See If We Are At The End Of The File List.
-$!
-$ IF (FILE_NAME.EQS.",") THEN GOTO FILE_DONE
-$!
-$! Increment The Counter.
-$!
-$ FILE_COUNTER = FILE_COUNTER + 1
-$!
-$! Create The Source File Name.
-$!
-$ SOURCE_FILE = "SYS$DISK:" + T_D_'FILE_NAME' + FILE_NAME + ".C"
-$!
-$! Create The Object File Name.
-$!
-$ OBJECT_FILE = OBJ_DIR + FILE_NAME + ".OBJ"
-$!
-$! Create The Executable File Name.
-$!
-$ EXE_FILE = EXE_DIR + FILE_NAME + ".EXE"
-$ ON WARNING THEN GOTO NEXT_FILE
-$!
-$! Check To See If The File We Want To Compile Actually Exists.
-$!
-$ IF (F$SEARCH(SOURCE_FILE).EQS."")
-$ THEN
-$!
-$! Tell The User That The File Dosen't Exist.
-$!
-$ WRITE SYS$OUTPUT ""
-$ WRITE SYS$OUTPUT "The File ",SOURCE_FILE," Dosen't Exist."
-$ WRITE SYS$OUTPUT ""
-$!
-$! Exit The Build.
-$!
-$ GOTO EXIT
-$ ENDIF
-$!
-$! Tell The User What We Are Building.
-$!
-$ WRITE SYS$OUTPUT "Building The ",FILE_NAME," Test Program."
-$!
-$! Compile The File.
-$!
-$ ON ERROR THEN GOTO NEXT_FILE
-$ CC /OBJECT='OBJECT_FILE' 'SOURCE_FILE'
-$ ON WARNING THEN GOTO NEXT_FILE
-$!
-$! Check If What We Are About To Compile Works Without A TCP/IP Library.
-$!
-$ IF ((TCPIP_LIB.EQS."").AND.((TCPIP_PROGRAMS-FILE_NAME).NES.TCPIP_PROGRAMS))
-$ THEN
-$!
-$! Inform The User That A TCP/IP Library Is Needed To Compile This Program.
-$!
-$ WRITE SYS$OUTPUT -
- FILE_NAME," Needs A TCP/IP Library. Can't Link. Skipping..."
-$ GOTO NEXT_FILE
-$!
-$! End The TCP/IP Library Check.
-$!
-$ ENDIF
-$!
-$! Link The Program, Check To See If We Need To Link With RSAREF Or Not.
-$! Check To See If We Are To Link With A Specific TCP/IP Library.
-$!
-$! Don't Link With The RSAREF Routines And TCP/IP Library.
-$!
-$ LINK /'DEBUGGER' /'LINKMAP' /'TRACEBACK' /EXECTABLE = 'EXE_FILE' -
- 'OBJECT_FILE', -
- 'SSL_LIB' /LIBRARY, -
- 'CRYPTO_LIB' /LIBRARY -
- 'TCPIP_LIB' -
- 'ZLIB_LIB' -
- ,'OPT_FILE' /OPTIONS
-$!
-$! Go Back And Do It Again.
-$!
-$ GOTO NEXT_FILE
-$!
-$! All Done With This Library Part.
-$!
-$ FILE_DONE:
-$!
-$! All Done, Time To Exit.
-$!
-$ EXIT:
-$ GOSUB CLEANUP
-$ EXIT
-$!
-$! Check For The Link Option FIle.
-$!
-$ CHECK_OPT_FILE:
-$!
-$! Check To See If We Need To Make A VAX C Option File.
-$!
-$ IF (COMPILER.EQS."VAXC")
-$ THEN
-$!
-$! Check To See If We Already Have A VAX C Linker Option File.
-$!
-$ IF (F$SEARCH(OPT_FILE).EQS."")
-$ THEN
-$!
-$! We Need A VAX C Linker Option File.
-$!
-$ CREATE 'OPT_FILE'
-$DECK
-!
-! Default System Options File To Link Against
-! The Sharable VAX C Runtime Library.
-!
-SYS$SHARE:VAXCRTL.EXE /SHAREABLE
-$EOD
-$!
-$! End The Option File Check.
-$!
-$ ENDIF
-$!
-$! End The VAXC Check.
-$!
-$ ENDIF
-$!
-$! Check To See If We Need A GNU C Option File.
-$!
-$ IF (COMPILER.EQS."GNUC")
-$ THEN
-$!
-$! Check To See If We Already Have A GNU C Linker Option File.
-$!
-$ IF (F$SEARCH(OPT_FILE).EQS."")
-$ THEN
-$!
-$! We Need A GNU C Linker Option File.
-$!
-$ CREATE 'OPT_FILE'
-$DECK
-!
-! Default System Options File To Link Against
-! The Sharable C Runtime Library.
-!
-GNU_CC:[000000]GCCLIB.OLB /LIBRARY
-SYS$SHARE:VAXCRTL.EXE /SHAREABLE
-$EOD
-$!
-$! End The Option File Check.
-$!
-$ ENDIF
-$!
-$! End The GNU C Check.
-$!
-$ ENDIF
-$!
-$! Check To See If We Need A DEC C Option File.
-$!
-$ IF (COMPILER.EQS."DECC")
-$ THEN
-$!
-$! Check To See If We Already Have A DEC C Linker Option File.
-$!
-$ IF (F$SEARCH(OPT_FILE).EQS."")
-$ THEN
-$!
-$! Figure Out If We Need A non-VAX Or A VAX Linker Option File.
-$!
-$ IF (ARCH.EQS."VAX")
-$ THEN
-$!
-$! We Need A DEC C Linker Option File For VAX.
-$!
-$ CREATE 'OPT_FILE'
-$DECK
-!
-! Default System Options File To Link Against
-! The Sharable DEC C Runtime Library.
-!
-SYS$SHARE:DECC$SHR.EXE /SHAREABLE
-$EOD
-$!
-$! Else...
-$!
-$ ELSE
-$!
-$! Create The non-VAX Linker Option File.
-$!
-$ CREATE 'OPT_FILE'
-$DECK
-!
-! Default System Options File For non-VAX To Link Against
-! The Sharable C Runtime Library.
-!
-SYS$SHARE:CMA$OPEN_LIB_SHR.EXE /SHAREABLE
-SYS$SHARE:CMA$OPEN_RTL.EXE /SHAREABLE
-$EOD
-$!
-$! End The DEC C Option File Check.
-$!
-$ ENDIF
-$!
-$! End The Option File Search.
-$!
-$ ENDIF
-$!
-$! End The DEC C Check.
-$!
-$ ENDIF
-$!
-$! Tell The User What Linker Option File We Are Using.
-$!
-$ WRITE SYS$OUTPUT "Using Linker Option File ",OPT_FILE,"."
-$!
-$! Time To RETURN.
-$!
-$ RETURN
-$!
-$! Check To See If We Have The Appropiate Libraries.
-$!
-$ LIB_CHECK:
-$!
-$! Look For The Library LIBCRYPTO.OLB.
-$!
-$ IF (F$SEARCH(CRYPTO_LIB).EQS."")
-$ THEN
-$!
-$! Tell The User We Can't Find The LIBCRYPTO.OLB Library.
-$!
-$ WRITE SYS$OUTPUT ""
-$ WRITE SYS$OUTPUT "Can't Find The Library ",CRYPTO_LIB,"."
-$ WRITE SYS$OUTPUT "We Can't Link Without It."
-$ WRITE SYS$OUTPUT ""
-$!
-$! Since We Can't Link Without It, Exit.
-$!
-$ EXIT
-$!
-$! End The Crypto Library Check.
-$!
-$ ENDIF
-$!
-$! Look For The Library LIBSSL.OLB.
-$!
-$ IF (F$SEARCH(SSL_LIB).EQS."")
-$ THEN
-$!
-$! Tell The User We Can't Find The LIBSSL.OLB Library.
-$!
-$ WRITE SYS$OUTPUT ""
-$ WRITE SYS$OUTPUT "Can't Find The Library ",SSL_LIB,"."
-$ WRITE SYS$OUTPUT "Some Of The Test Programs Need To Link To It."
-$ WRITE SYS$OUTPUT ""
-$!
-$! Since We Can't Link Without It, Exit.
-$!
-$ EXIT
-$!
-$! End The SSL Library Check.
-$!
-$ ENDIF
-$!
-$! Time To Return.
-$!
-$ RETURN
-$!
-$! Check The User's Options.
-$!
-$ CHECK_OPTIONS:
-$!
-$! Set basic C compiler /INCLUDE directories.
-$!
-$ CC_INCLUDES = "SYS$DISK:[],SYS$DISK:[-],SYS$DISK:[-.CRYPTO]"
-$!
-$! Check To See If P1 Is Blank.
-$!
-$ IF (P1.EQS."NODEBUG")
-$ THEN
-$!
-$! P1 Is NODEBUG, So Compile Without Debugger Information.
-$!
-$ DEBUGGER = "NODEBUG"
-$ LINKMAP = "NOMAP"
-$ TRACEBACK = "NOTRACEBACK"
-$ GCC_OPTIMIZE = "OPTIMIZE"
-$ CC_OPTIMIZE = "OPTIMIZE"
-$ WRITE SYS$OUTPUT "No Debugger Information Will Be Produced During Compile."
-$ WRITE SYS$OUTPUT "Compiling With Compiler Optimization."
-$!
-$! Else...
-$!
-$ ELSE
-$!
-$! Check To See If We Are To Compile With Debugger Information.
-$!
-$ IF (P1.EQS."DEBUG")
-$ THEN
-$!
-$! Compile With Debugger Information.
-$!
-$ DEBUGGER = "DEBUG"
-$ LINKMAP = "MAP"
-$ TRACEBACK = "TRACEBACK"
-$ GCC_OPTIMIZE = "NOOPTIMIZE"
-$ CC_OPTIMIZE = "NOOPTIMIZE"
-$ WRITE SYS$OUTPUT "Debugger Information Will Be Produced During Compile."
-$ WRITE SYS$OUTPUT "Compiling Without Compiler Optimization."
-$!
-$! Else...
-$!
-$ ELSE
-$!
-$! Tell The User Entered An Invalid Option.
-$!
-$ WRITE SYS$OUTPUT ""
-$ WRITE SYS$OUTPUT "The Option ",P1," Is Invalid. The Valid Options Are:"
-$ WRITE SYS$OUTPUT ""
-$ WRITE SYS$OUTPUT " DEBUG : Compile With The Debugger Information."
-$ WRITE SYS$OUTPUT " NODEBUG : Compile Without The Debugger Information."
-$ WRITE SYS$OUTPUT ""
-$!
-$! Time To EXIT.
-$!
-$ EXIT
-$!
-$! End The Valid Argument Check.
-$!
-$ ENDIF
-$!
-$! End The P1 Check.
-$!
-$ ENDIF
-$!
-$! Check P5 (POINTER_SIZE).
-$!
-$ IF (P5 .NES. "") .AND. (ARCH .NES. "VAX")
-$ THEN
-$!
-$ IF (P5 .EQS. "32")
-$ THEN
-$ POINTER_SIZE = " /POINTER_SIZE=32"
-$ ELSE
-$ POINTER_SIZE = F$EDIT( P5, "COLLAPSE, UPCASE")
-$ IF ((POINTER_SIZE .EQS. "64") .OR. -
- (POINTER_SIZE .EQS. "64=") .OR. -
- (POINTER_SIZE .EQS. "64=ARGV"))
-$ THEN
-$ ARCHD = ARCH+ "_64"
-$ LIB32 = ""
-$ IF (F$EXTRACT( 2, 1, POINTER_SIZE) .EQS. "=")
-$ THEN
-$! Explicit user choice: "64" or "64=ARGV".
-$ IF (POINTER_SIZE .EQS. "64=") THEN POINTER_SIZE = "64"
-$ ELSE
-$ SET NOON
-$ DEFINE /USER_MODE SYS$OUTPUT NL:
-$ DEFINE /USER_MODE SYS$ERROR NL:
-$ CC /NOLIST /NOOBJECT /POINTER_SIZE=64=ARGV NL:
-$ IF ($STATUS .AND. %X0FFF0000) .EQ. %X00030000
-$ THEN
-$ ! If we got here, it means DCL complained like this:
-$ ! %DCL-W-NOVALU, value not allowed - remove value specification
-$ ! \64=\
-$ !
-$ ! If the compiler was run, logicals defined in /USER would
-$ ! have been deassigned automatically. However, when DCL
-$ ! complains, they aren't, so we do it here (it might be
-$ ! unnecessary, but just in case there will be another error
-$ ! message further on that we don't want to miss)
-$ DEASSIGN /USER_MODE SYS$ERROR
-$ DEASSIGN /USER_MODE SYS$OUTPUT
-$ ELSE
-$ POINTER_SIZE = POINTER_SIZE + "=ARGV"
-$ ENDIF
-$ SET ON
-$ ENDIF
-$ POINTER_SIZE = " /POINTER_SIZE=''POINTER_SIZE'"
-$ ELSE
-$!
-$! Tell The User Entered An Invalid Option.
-$!
-$ WRITE SYS$OUTPUT ""
-$ WRITE SYS$OUTPUT "The Option ", P5, -
- " Is Invalid. The Valid Options Are:"
-$ WRITE SYS$OUTPUT ""
-$ WRITE SYS$OUTPUT -
- " """" : Compile with default (short) pointers."
-$ WRITE SYS$OUTPUT -
- " 32 : Compile with 32-bit (short) pointers."
-$ WRITE SYS$OUTPUT -
- " 64 : Compile with 64-bit (long) pointers (auto ARGV)."
-$ WRITE SYS$OUTPUT -
- " 64= : Compile with 64-bit (long) pointers (no ARGV)."
-$ WRITE SYS$OUTPUT -
- " 64=ARGV : Compile with 64-bit (long) pointers (ARGV)."
-$ WRITE SYS$OUTPUT ""
-$!
-$! Time To EXIT.
-$!
-$ EXIT
-$!
-$ ENDIF
-$!
-$ ENDIF
-$!
-$! End The P5 (POINTER_SIZE) Check.
-$!
-$ ENDIF
-$!
-$! Check To See If P2 Is Blank.
-$!
-$ IF (P2.EQS."")
-$ THEN
-$!
-$! O.K., The User Didn't Specify A Compiler, Let's Try To
-$! Find Out Which One To Use.
-$!
-$! Check To See If We Have GNU C.
-$!
-$ IF (F$TRNLNM("GNU_CC").NES."")
-$ THEN
-$!
-$! Looks Like GNUC, Set To Use GNUC.
-$!
-$ P2 = "GNUC"
-$!
-$! End The GNU C Compiler Check.
-$!
-$ ELSE
-$!
-$! Check To See If We Have VAXC Or DECC.
-$!
-$ IF (ARCH.NES."VAX").OR.(F$TRNLNM("DECC$CC_DEFAULT").NES."")
-$ THEN
-$!
-$! Looks Like DECC, Set To Use DECC.
-$!
-$ P2 = "DECC"
-$!
-$! Else...
-$!
-$ ELSE
-$!
-$! Looks Like VAXC, Set To Use VAXC.
-$!
-$ P2 = "VAXC"
-$!
-$! End The VAXC Compiler Check.
-$!
-$ ENDIF
-$!
-$! End The DECC & VAXC Compiler Check.
-$!
-$ ENDIF
-$!
-$! End The Compiler Check.
-$!
-$ ENDIF
-$!
-$! Check To See If We Have A Option For P3.
-$!
-$ IF (P3.EQS."")
-$ THEN
-$!
-$! Find out what socket library we have available
-$!
-$ IF F$PARSE("SOCKETSHR:") .NES. ""
-$ THEN
-$!
-$! We have SOCKETSHR, and it is my opinion that it's the best to use.
-$!
-$ P3 = "SOCKETSHR"
-$!
-$! Tell the user
-$!
-$ WRITE SYS$OUTPUT "Using SOCKETSHR for TCP/IP"
-$!
-$! Else, let's look for something else
-$!
-$ ELSE
-$!
-$! Like UCX (the reason to do this before Multinet is that the UCX
-$! emulation is easier to use...)
-$!
-$ IF F$TRNLNM("UCX$IPC_SHR") .NES. "" -
- .OR. F$PARSE("SYS$SHARE:UCX$IPC_SHR.EXE") .NES. "" -
- .OR. F$PARSE("SYS$LIBRARY:UCX$IPC.OLB") .NES. ""
-$ THEN
-$!
-$! Last resort: a UCX or UCX-compatible library
-$!
-$ P3 = "UCX"
-$!
-$! Tell the user
-$!
-$ WRITE SYS$OUTPUT "Using UCX or an emulation thereof for TCP/IP"
-$!
-$! That was all...
-$!
-$ ENDIF
-$ ENDIF
-$ ENDIF
-$!
-$! Set Up Initial CC Definitions, Possibly With User Ones
-$!
-$ CCDEFS = "TCPIP_TYPE_''P3'"
-$ IF F$TYPE(USER_CCDEFS) .NES. "" THEN CCDEFS = CCDEFS + "," + USER_CCDEFS
-$ CCEXTRAFLAGS = ""
-$ IF F$TYPE(USER_CCFLAGS) .NES. "" THEN CCEXTRAFLAGS = USER_CCFLAGS
-$ CCDISABLEWARNINGS = "" !!! "LONGLONGTYPE,LONGLONGSUFX,FOUNDCR"
-$ IF F$TYPE(USER_CCDISABLEWARNINGS) .NES. "" THEN -
- CCDISABLEWARNINGS = CCDISABLEWARNINGS + "," + USER_CCDISABLEWARNINGS
-$!
-$! Check To See If We Have A ZLIB Option.
-$!
-$ ZLIB = P6
-$ IF (ZLIB .NES. "")
-$ THEN
-$!
-$! Check for expected ZLIB files.
-$!
-$ err = 0
-$ file1 = f$parse( "zlib.h", ZLIB, , , "SYNTAX_ONLY")
-$ if (f$search( file1) .eqs. "")
-$ then
-$ WRITE SYS$OUTPUT ""
-$ WRITE SYS$OUTPUT "The Option ", ZLIB, " Is Invalid."
-$ WRITE SYS$OUTPUT " Can't find header: ''file1'"
-$ err = 1
-$ endif
-$ file1 = f$parse( "A.;", ZLIB)- "A.;"
-$!
-$ file2 = f$parse( ZLIB, "libz.olb", , , "SYNTAX_ONLY")
-$ if (f$search( file2) .eqs. "")
-$ then
-$ if (err .eq. 0)
-$ then
-$ WRITE SYS$OUTPUT ""
-$ WRITE SYS$OUTPUT "The Option ", ZLIB, " Is Invalid."
-$ endif
-$ WRITE SYS$OUTPUT " Can't find library: ''file2'"
-$ WRITE SYS$OUTPUT ""
-$ err = err+ 2
-$ endif
-$ if (err .eq. 1)
-$ then
-$ WRITE SYS$OUTPUT ""
-$ endif
-$!
-$ if (err .ne. 0)
-$ then
-$ GOTO EXIT
-$ endif
-$!
-$ CCDEFS = """ZLIB=1"", "+ CCDEFS
-$ CC_INCLUDES = CC_INCLUDES+ ", "+ file1
-$ ZLIB_LIB = ", ''file2' /library"
-$!
-$! Print info
-$!
-$ WRITE SYS$OUTPUT "ZLIB library spec: ", file2
-$!
-$! End The P8 Check.
-$!
-$ ENDIF
-$!
-$! Check To See If The User Entered A Valid Parameter.
-$!
-$ IF (P2.EQS."VAXC").OR.(P2.EQS."DECC").OR.(P2.EQS."GNUC")
-$ THEN
-$!
-$! Check To See If The User Wanted DECC.
-$!
-$ IF (P2.EQS."DECC")
-$ THEN
-$!
-$! Looks Like DECC, Set To Use DECC.
-$!
-$ COMPILER = "DECC"
-$!
-$! Tell The User We Are Using DECC.
-$!
-$ WRITE SYS$OUTPUT "Using DECC 'C' Compiler."
-$!
-$! Use DECC...
-$!
-$ CC = "CC"
-$ IF ARCH.EQS."VAX" .AND. F$TRNLNM("DECC$CC_DEFAULT").NES."/DECC" -
- THEN CC = "CC /DECC"
-$ CC = CC + " /''CC_OPTIMIZE' /''DEBUGGER' /STANDARD=RELAXED"+ -
- "''POINTER_SIZE' /NOLIST /PREFIX=ALL" + -
- " /INCLUDE=(''CC_INCLUDES') " + CCEXTRAFLAGS
-$!
-$! Define The Linker Options File Name.
-$!
-$ OPT_FILE = "VAX_DECC_OPTIONS.OPT"
-$!
-$! End DECC Check.
-$!
-$ ENDIF
-$!
-$! Check To See If We Are To Use VAXC.
-$!
-$ IF (P2.EQS."VAXC")
-$ THEN
-$!
-$! Looks Like VAXC, Set To Use VAXC.
-$!
-$ COMPILER = "VAXC"
-$!
-$! Tell The User We Are Using VAX C.
-$!
-$ WRITE SYS$OUTPUT "Using VAXC 'C' Compiler."
-$!
-$! Compile Using VAXC.
-$!
-$ CC = "CC"
-$ IF ARCH.NES."VAX"
-$ THEN
-$ WRITE SYS$OUTPUT "There is no VAX C on ''ARCH'!"
-$ EXIT
-$ ENDIF
-$ IF F$TRNLNM("DECC$CC_DEFAULT").EQS."/DECC" THEN CC = "CC /VAXC"
-$ CC = CC + "/''CC_OPTIMIZE' /''DEBUGGER' /NOLIST" + -
- "/INCLUDE=(''CC_INCLUDES')" + CCEXTRAFLAGS
-$ CCDEFS = CCDEFS + ",""VAXC"""
-$!
-$! Define <sys> As SYS$COMMON:[SYSLIB]
-$!
-$ DEFINE /NOLOG SYS SYS$COMMON:[SYSLIB]
-$!
-$! Define The Linker Options File Name.
-$!
-$ OPT_FILE = "VAX_VAXC_OPTIONS.OPT"
-$!
-$! End VAXC Check
-$!
-$ ENDIF
-$!
-$! Check To See If We Are To Use GNU C.
-$!
-$ IF (P2.EQS."GNUC")
-$ THEN
-$!
-$! Looks Like GNUC, Set To Use GNUC.
-$!
-$ COMPILER = "GNUC"
-$!
-$! Tell The User We Are Using GNUC.
-$!
-$ WRITE SYS$OUTPUT "Using GNU 'C' Compiler."
-$!
-$! Use GNU C...
-$!
-$ CC = "GCC /NOCASE_HACK /''GCC_OPTIMIZE' /''DEBUGGER' /NOLIST" + -
- "/INCLUDE=(''CC_INCLUDES')" + CCEXTRAFLAGS
-$!
-$! Define The Linker Options File Name.
-$!
-$ OPT_FILE = "VAX_GNUC_OPTIONS.OPT"
-$!
-$! End The GNU C Check.
-$!
-$ ENDIF
-$!
-$! Set up default defines
-$!
-$ CCDEFS = """FLAT_INC=1""," + CCDEFS
-$!
-$! Finish up the definition of CC.
-$!
-$ IF COMPILER .EQS. "DECC"
-$ THEN
-$ IF CCDISABLEWARNINGS .EQS. ""
-$ THEN
-$ CC4DISABLEWARNINGS = "DOLLARID"
-$ ELSE
-$ CC4DISABLEWARNINGS = CCDISABLEWARNINGS + ",DOLLARID"
-$ CCDISABLEWARNINGS = " /WARNING=(DISABLE=(" + CCDISABLEWARNINGS + "))"
-$ ENDIF
-$ CC4DISABLEWARNINGS = " /WARNING=(DISABLE=(" + CC4DISABLEWARNINGS + "))"
-$ ELSE
-$ CCDISABLEWARNINGS = ""
-$ CC4DISABLEWARNINGS = ""
-$ ENDIF
-$ CC = CC + " /DEFINE=(" + CCDEFS + ")" + CCDISABLEWARNINGS
-$!
-$! Show user the result
-$!
-$ WRITE /SYMBOL SYS$OUTPUT "Main Compiling Command: ", CC
-$!
-$! Else The User Entered An Invalid Argument.
-$!
-$ ELSE
-$!
-$! Tell The User We Don't Know What They Want.
-$!
-$ WRITE SYS$OUTPUT ""
-$ WRITE SYS$OUTPUT "The Option ",P2," Is Invalid. The Valid Options Are:"
-$ WRITE SYS$OUTPUT ""
-$ WRITE SYS$OUTPUT " VAXC : To Compile With VAX C."
-$ WRITE SYS$OUTPUT " DECC : To Compile With DEC C."
-$ WRITE SYS$OUTPUT " GNUC : To Compile With GNU C."
-$ WRITE SYS$OUTPUT ""
-$!
-$! Time To EXIT.
-$!
-$ EXIT
-$ ENDIF
-$!
-$! Time to check the contents, and to make sure we get the correct library.
-$!
-$ IF P3.EQS."SOCKETSHR" .OR. P3.EQS."MULTINET" .OR. P3.EQS."UCX" -
- .OR. P3.EQS."TCPIP" .OR. P3.EQS."NONE"
-$ THEN
-$!
-$! Check to see if SOCKETSHR was chosen
-$!
-$ IF P3.EQS."SOCKETSHR"
-$ THEN
-$!
-$! Set the library to use SOCKETSHR
-$!
-$ TCPIP_LIB = ",SYS$DISK:[-.VMS]SOCKETSHR_SHR.OPT /OPTIONS"
-$!
-$! Done with SOCKETSHR
-$!
-$ ENDIF
-$!
-$! Check to see if MULTINET was chosen
-$!
-$ IF P3.EQS."MULTINET"
-$ THEN
-$!
-$! Set the library to use UCX emulation.
-$!
-$ P3 = "UCX"
-$!
-$! Done with MULTINET
-$!
-$ ENDIF
-$!
-$! Check to see if UCX was chosen
-$!
-$ IF P3.EQS."UCX"
-$ THEN
-$!
-$! Set the library to use UCX.
-$!
-$ TCPIP_LIB = ",SYS$DISK:[-.VMS]UCX_SHR_DECC.OPT /OPTIONS"
-$ IF F$TRNLNM("UCX$IPC_SHR") .NES. ""
-$ THEN
-$ TCPIP_LIB = ",SYS$DISK:[-.VMS]UCX_SHR_DECC_LOG.OPT /OPTIONS"
-$ ELSE
-$ IF COMPILER .NES. "DECC" .AND. ARCH .EQS. "VAX" THEN -
- TCPIP_LIB = ",SYS$DISK:[-.VMS]UCX_SHR_VAXC.OPT /OPTIONS"
-$ ENDIF
-$!
-$! Done with UCX
-$!
-$ ENDIF
-$!
-$! Check to see if TCPIP was chosen
-$!
-$ IF P3.EQS."TCPIP"
-$ THEN
-$!
-$! Set the library to use TCPIP (post UCX).
-$!
-$ TCPIP_LIB = ",SYS$DISK:[-.VMS]TCPIP_SHR_DECC.OPT /OPTIONS"
-$!
-$! Done with TCPIP
-$!
-$ ENDIF
-$!
-$! Check to see if NONE was chosen
-$!
-$ IF P3.EQS."NONE"
-$ THEN
-$!
-$! Do not use a TCPIP library.
-$!
-$ TCPIP_LIB = ""
-$!
-$! Done with NONE
-$!
-$ ENDIF
-$!
-$! Print info
-$!
-$ WRITE SYS$OUTPUT "TCP/IP library spec: ", TCPIP_LIB- ","
-$!
-$! Else The User Entered An Invalid Argument.
-$!
-$ ELSE
-$!
-$! Tell The User We Don't Know What They Want.
-$!
-$ WRITE SYS$OUTPUT ""
-$ WRITE SYS$OUTPUT "The Option ",P3," Is Invalid. The Valid Options Are:"
-$ WRITE SYS$OUTPUT ""
-$ WRITE SYS$OUTPUT " SOCKETSHR : To link with SOCKETSHR TCP/IP library."
-$ WRITE SYS$OUTPUT " UCX : To link with UCX TCP/IP library."
-$ WRITE SYS$OUTPUT " TCPIP : To link with TCPIP (post UCX) TCP/IP library."
-$ WRITE SYS$OUTPUT ""
-$!
-$! Time To EXIT.
-$!
-$ EXIT
-$!
-$! Done with TCP/IP libraries
-$!
-$ ENDIF
-$!
-$! Special Threads For OpenVMS v7.1 Or Later
-$!
-$! Written By: Richard Levitte
-$! richard at levitte.org
-$!
-$!
-$! Check To See If We Have A Option For P4.
-$!
-$ IF (P4.EQS."")
-$ THEN
-$!
-$! Get The Version Of VMS We Are Using.
-$!
-$ ISSEVEN :=
-$ TMP = F$ELEMENT(0,"-",F$EXTRACT(1,4,F$GETSYI("VERSION")))
-$ TMP = F$INTEGER(F$ELEMENT(0,".",TMP)+F$ELEMENT(1,".",TMP))
-$!
-$! Check To See If The VMS Version Is v7.1 Or Later.
-$!
-$ IF (TMP.GE.71)
-$ THEN
-$!
-$! We Have OpenVMS v7.1 Or Later, So Use The Special Threads.
-$!
-$ ISSEVEN := ,PTHREAD_USE_D4
-$!
-$! End The VMS Version Check.
-$!
-$ ENDIF
-$!
-$! End The P4 Check.
-$!
-$ ENDIF
-$!
-$! Time To RETURN...
-$!
-$ RETURN
-$!
-$ INITIALISE:
-$!
-$! Save old value of the logical name OPENSSL
-$!
-$ __SAVE_OPENSSL = F$TRNLNM("OPENSSL","LNM$PROCESS_TABLE")
-$!
-$! Save directory information
-$!
-$ __HERE = F$PARSE(F$PARSE("A.;",F$ENVIRONMENT("PROCEDURE"))-"A.;","[]A.;") - "A.;"
-$ __HERE = F$EDIT(__HERE,"UPCASE")
-$ __TOP = __HERE - "TEST]"
-$ __INCLUDE = __TOP + "INCLUDE.OPENSSL]"
-$ __INTERNAL = __TOP + "CRYPTO.INCLUDE.INTERNAL]"
-$!
-$! Set up the logical name OPENSSL to point at the include directory
-$!
-$ DEFINE OPENSSL /NOLOG '__INCLUDE'
-$ DEFINE INTERNAL /NOLOG '__INTERNAL'
-$!
-$! Done
-$!
-$ RETURN
-$!
-$ CLEANUP:
-$!
-$! Restore the logical name OPENSSL if it had a value
-$!
-$ IF __SAVE_OPENSSL .EQS. ""
-$ THEN
-$ DEASSIGN OPENSSL
-$ DEASSIGN INTERNAL
-$ ELSE
-$ DEFINE /NOLOG OPENSSL '__SAVE_OPENSSL'
-$ ENDIF
-$!
-$! Done
-$!
-$ RETURN
diff --git a/test/tests.com b/test/tests.com
deleted file mode 100644
index f01d169..0000000
--- a/test/tests.com
+++ /dev/null
@@ -1,405 +0,0 @@
-$! TESTS.COM -- Performs the necessary tests
-$!
-$! P1 tests to be performed. Empty means all.
-$! P2 Pointer size: "", "32", or "64".
-$!
-$! Announce/identify.
-$!
-$ proc = f$environment( "procedure")
-$ write sys$output "@@@ "+ -
- f$parse( proc, , , "name")+ f$parse( proc, , , "type")
-$!
-$ __proc = f$element(0,";",f$environment("procedure"))
-$ __here = f$parse(f$parse("A.;",__proc) - "A.;","[]A.;") - "A.;"
-$ __save_default = f$environment("default")
-$ __arch = "VAX"
-$ if f$getsyi("cpu") .ge. 128 then -
- __arch = f$edit( f$getsyi( "ARCH_NAME"), "UPCASE")
-$ if __arch .eqs. "" then __arch = "UNK"
-$!
-$ __archd = __arch
-$ pointer_size = ""
-$ if (p2 .eq. "64")
-$ then
-$ pointer_size = "64"
-$ __archd = __arch+ "_64"
-$ endif
-$!
-$ texe_dir := sys$disk:[-.'__archd'.exe.test]
-$ exe_dir := sys$disk:[-.'__archd'.exe.apps]
-$ engines_dir := sys$disk:[-.'__archd'.exe.engines]
-$
-$ set default '__here'
-$
-$ ROOT = F$PARSE("sys$disk:[-]A.;0",,,,"SYNTAX_ONLY,NO_CONCEAL") - "A.;0"
-$ ROOT_DEV = F$PARSE(ROOT,,,"DEVICE","SYNTAX_ONLY")
-$ ROOT_DIR = F$PARSE(ROOT,,,"DIRECTORY","SYNTAX_ONLY") -
- - ".][000000" - "[000000." - "][" - "[" - "]"
-$ ROOT = ROOT_DEV + "[" + ROOT_DIR
-$ DEFINE/NOLOG SSLROOT 'ROOT'.APPS.] /TRANS=CONC
-$ openssl_conf := sslroot:[000000]openssl-vms.cnf
-$
-$ on control_y then goto exit
-$ on error then goto exit
-$
-$ if p1 .nes. ""
-$ then
-$ tests = p1
-$ else
-$! NOTE: This list reflects the list of dependencies following the
-$! "alltests" target in Makefile. This should make it easy to see
-$! if there's a difference that needs to be taken care of.
-$ tests := -
- test_des,test_idea,test_sha,test_md4,test_md5,test_hmac,-
- test_md2,test_mdc2,test_wp,-
- test_rmd,test_rc2,test_rc4,test_rc5,test_bf,test_cast,-
- test_rand,test_bn,test_ec,test_ecdsa,test_ecdh,-
- test_enc,test_x509,test_rsa,test_crl,test_sid,-
- test_gen,test_req,test_pkcs7,test_verify,test_dh,test_dsa,-
- test_ss,test_ca,test_engine,test_evp,test_evp_extra,test_ssl,test_tsa,-
- test_ige,test_jpake,test_srp,test_cms,test_v3name,test_ocsp,-
- test_gost2814789,test_heartbeat,test_p5_crpt2,-
- test_constant_time
-$ endif
-$ tests = f$edit(tests,"COLLAPSE")
-$
-$ BNTEST := bntest
-$ ECTEST := ectest
-$ ECDSATEST := ecdsatest
-$ ECDHTEST := ecdhtest
-$ EXPTEST := exptest
-$ IDEATEST := ideatest
-$ SHA1TEST := sha1test
-$ SHA256TEST := sha256t
-$ SHA512TEST := sha512t
-$ MDC2TEST := mdc2test
-$ RMDTEST := rmdtest
-$ MD2TEST := md2test
-$ MD4TEST := md4test
-$ MD5TEST := md5test
-$ HMACTEST := hmactest
-$ WPTEST := wp_test
-$ RC2TEST := rc2test
-$ RC4TEST := rc4test
-$ RC5TEST := rc5test
-$ BFTEST := bftest
-$ CASTTEST := casttest
-$ DESTEST := destest
-$ RANDTEST := randtest
-$ DHTEST := dhtest
-$ DSATEST := dsatest
-$ METHTEST := methtest
-$ SSLTEST := ssltest
-$ RSATEST := rsa_test
-$ ENGINETEST := enginetest
-$ GOST2814789TEST := gost2814789test
-$ EVPTEST := evp_test
-$ EVPEXTRATEST := evp_extra_test
-$ P5_CRPT2_TEST := p5_crpt2_test
-$ IGETEST := igetest
-$ JPAKETEST := jpaketest
-$ SRPTEST := srptest
-$ V3NAMETEST := v3nametest
-$ HEARTBEATTEST := heartbeat_test
-$ CONSTTIMETEST := constant_time_test
-$!
-$ tests_i = 0
-$ loop_tests:
-$ tests_e = f$element(tests_i,",",tests)
-$ tests_i = tests_i + 1
-$ if tests_e .eqs. "," then goto exit
-$ write sys$output "---> ''tests_e'"
-$ gosub 'tests_e'
-$ goto loop_tests
-$
-$ test_evp:
-$ mcr 'texe_dir''evptest' 'ROOT'.CRYPTO.EVP]evptests.txt
-$ return
-$ test_evp_extra:
-$ mcr 'texe_dir''evpextratest'
-$ return
-$ test_p5_crpt2:
-$ mcr 'texe_dir''p5_crpt2_test'
-$ return
-$ test_des:
-$ mcr 'texe_dir''destest'
-$ return
-$ test_idea:
-$ mcr 'texe_dir''ideatest'
-$ return
-$ test_sha:
-$ mcr 'texe_dir''sha1test'
-$ mcr 'texe_dir''sha256test'
-$ mcr 'texe_dir''sha512test'
-$ return
-$ test_mdc2:
-$ mcr 'texe_dir''mdc2test'
-$ return
-$ test_md5:
-$ mcr 'texe_dir''md5test'
-$ return
-$ test_md4:
-$ mcr 'texe_dir''md4test'
-$ return
-$ test_hmac:
-$ mcr 'texe_dir''hmactest'
-$ return
-$ test_wp:
-$ mcr 'texe_dir''wptest'
-$ return
-$ test_md2:
-$ mcr 'texe_dir''md2test'
-$ return
-$ test_rmd:
-$ mcr 'texe_dir''rmdtest'
-$ return
-$ test_bf:
-$ mcr 'texe_dir''bftest'
-$ return
-$ test_cast:
-$ mcr 'texe_dir''casttest'
-$ return
-$ test_rc2:
-$ mcr 'texe_dir''rc2test'
-$ return
-$ test_rc4:
-$ mcr 'texe_dir''rc4test'
-$ return
-$ test_rc5:
-$ mcr 'texe_dir''rc5test'
-$ return
-$ test_rand:
-$ mcr 'texe_dir''randtest'
-$ return
-$ test_gost2814789:
-$ define/user OPENSSL_ENGINES 'engines_dir'
-$ mcr 'texe_dir''gost2814789test'
-$ return
-$ test_enc:
-$ @testenc.com 'pointer_size'
-$ return
-$ test_x509:
-$ set noon
-$ define sys$error test_x509.err
-$ write sys$output "test normal x509v1 certificate"
-$ @tx509.com "" 'pointer_size'
-$ write sys$output "test first x509v3 certificate"
-$ @tx509.com v3-cert1.pem 'pointer_size'
-$ write sys$output "test second x509v3 certificate"
-$ @tx509.com v3-cert2.pem 'pointer_size'
-$ deassign sys$error
-$ set on
-$ return
-$ test_rsa:
-$ set noon
-$ define sys$error test_rsa.err
-$ @trsa.com "" 'pointer_size'
-$ deassign sys$error
-$ mcr 'texe_dir''rsatest'
-$ set on
-$ return
-$ test_crl:
-$ set noon
-$ define sys$error test_crl.err
-$ @tcrl.com "" 'pointer_size'
-$ deassign sys$error
-$ set on
-$ return
-$ test_sid:
-$ set noon
-$ define sys$error test_sid.err
-$ @tsid.com "" 'pointer_size'
-$ deassign sys$error
-$ set on
-$ return
-$ test_req:
-$ set noon
-$ define sys$error test_req.err
-$ @treq.com "" 'pointer_size'
-$ @treq.com testreq2.pem 'pointer_size'
-$ deassign sys$error
-$ set on
-$ return
-$ test_pkcs7:
-$ set noon
-$ define sys$error test_pkcs7.err
-$ @tpkcs7.com "" 'pointer_size'
-$ @tpkcs7d.com "" 'pointer_size'
-$ deassign sys$error
-$ set on
-$ return
-$ test_bn:
-$ write sys$output -
- "starting big number library test, could take a while..."
-$ set noon
-$ define sys$error test_bn.err
-$ define sys$output test_bn.out
-$ @ bctest.com
-$ status = $status
-$ deassign sys$error
-$ deassign sys$output
-$ set on
-$ if (status)
-$ then
-$ create /fdl = sys$input bntest-vms.tmp
-FILE
- ORGANIZATION sequential
-RECORD
- FORMAT stream_lf
-$ define /user_mode sys$output bntest-vms.tmp
-$ mcr 'texe_dir''bntest'
-$ define /user_mode sys$input bntest-vms.tmp
-$ define /user_mode sys$output bntest-vms.out
-$ bc
-$ @ bntest.com bntest-vms.out
-$ status = $status
-$ if (status)
-$ then
-$ delete bntest-vms.out;*
-$ delete bntest-vms.tmp;*
-$ endif
-$ else
-$ create /fdl = sys$input bntest-vms.sh
-FILE
- ORGANIZATION sequential
-RECORD
- FORMAT stream_lf
-$ open /append bntest_file bntest-vms.sh
-$ type /output = bntest_file sys$input:
-<< __FOO__ sh -c "`sh ./bctest`" | perl -e '$i=0; while (<STDIN>) {if (/^test (.*)/) {print STDERR "\nverify $1";} elsif (!/^0$/) {die "\nFailed! bc: $_";} else {print STDERR "."; $i++;}} print STDERR "\n$i tests passed\n"'
-$ define /user_mode sys$output bntest-vms.tmp
-$ mcr 'texe_dir''bntest'
-$ copy bntest-vms.tmp bntest_file
-$ delete bntest-vms.tmp;*
-$ type /output = bntest_file sys$input:
-__FOO__
-$ close bntest_file
-$ write sys$output "-- copy the [.test]bntest-vms.sh and [.test]bctest files to a Unix system and"
-$ write sys$output "-- run bntest-vms.sh through sh or bash to verify that the bignum operations"
-$ write sys$output "-- went well."
-$ write sys$output ""
-$ endif
-$ write sys$output "test a^b%c implementations"
-$ mcr 'texe_dir''exptest'
-$ return
-$ test_ec:
-$ write sys$output "test elliptic curves"
-$ mcr 'texe_dir''ectest'
-$ return
-$ test_ecdsa:
-$ write sys$output "test ecdsa"
-$ mcr 'texe_dir''ecdsatest'
-$ return
-$ test_ecdh:
-$ write sys$output "test ecdh"
-$ mcr 'texe_dir''ecdhtest'
-$ return
-$ test_verify:
-$ write sys$output "The following command should have some OK's and some failures"
-$ write sys$output "There are definitly a few expired certificates"
-$ @tverify.com 'pointer_size'
-$ return
-$ test_dh:
-$ write sys$output "Generate a set of DH parameters"
-$ mcr 'texe_dir''dhtest'
-$ return
-$ test_dsa:
-$ write sys$output "Generate a set of DSA parameters"
-$ mcr 'texe_dir''dsatest'
-$ return
-$ test_gen:
-$ write sys$output "Generate and verify a certificate request"
-$ @testgen.com 'pointer_size'
-$ return
-$ maybe_test_ss:
-$ testss_RDT = f$cvtime(f$file_attributes("testss.com","RDT"))
-$ if f$cvtime(f$file_attributes("keyU.ss","RDT")) .les. testss_RDT then -
- goto test_ss
-$ if f$cvtime(f$file_attributes("certU.ss","RDT")) .les. testss_RDT then -
- goto test_ss
-$ if f$cvtime(f$file_attributes("certCA.ss","RDT")) .les. testss_RDT then -
- goto test_ss
-$ return
-$ test_ss:
-$ write sys$output "Generate and certify a test certificate"
-$ @testss.com 'pointer_size'
-$ return
-$ test_engine:
-$ write sys$output "Manipulate the ENGINE structures"
-$ mcr 'texe_dir''enginetest'
-$ return
-$ test_ssl:
-$ write sys$output "test SSL protocol"
-$ gosub maybe_test_ss
-$ @testssl.com keyU.ss certU.ss certCA.ss 'pointer_size'
-$ return
-$ test_ca:
-$ set noon
-$ define /user_mode sys$output test_ca.out
-$ mcr 'exe_dir'openssl no-rsa
-$ save_severity=$SEVERITY
-$ set on
-$ if save_severity
-$ then
-$ write sys$output "skipping CA.com test -- requires RSA"
-$ else
-$ write sys$output "Generate and certify a test certificate via the 'ca' program"
-$ @testca.com 'pointer_size'
-$ endif
-$ return
-$ test_aes:
-$! write sys$output "test AES"
-$! !mcr 'texe_dir''aestest'
-$ return
-$ test_tsa:
-$ set noon
-$ define /user_mode sys$output nla0:
-$ mcr 'exe_dir'openssl no-rsa
-$ save_severity=$SEVERITY
-$ set on
-$ if save_severity
-$ then
-$ write sys$output "skipping testtsa.com test -- requires RSA"
-$ else
-$ @testtsa.com "" "" "" 'pointer_size'
-$ endif
-$ return
-$ test_ige:
-$ write sys$output "Test IGE mode"
-$ mcr 'texe_dir''igetest'
-$ return
-$ test_jpake:
-$ write sys$output "Test JPAKE"
-$ mcr 'texe_dir''jpaketest'
-$ return
-$ test_cms:
-$ write sys$output "CMS consistency test"
-$ ! Define the logical name used to find openssl.exe in the perl script.
-$ define /user_mode osslx 'exe_dir'
-$ perl CMS-TEST.PL
-$ return
-$ test_srp:
-$ write sys$output "Test SRP"
-$ mcr 'texe_dir''srptest'
-$ return
-$ test_v3name:
-$ write sys$output "Test X509v3_check_*"
-$ mcr 'texe_dir''v3nametest'
-$ return
-$ test_ocsp:
-$ write sys$output "Test OCSP"
-$ @tocsp.com
-$ return
-$ test_heartbeat:
-$ mcr 'texe_dir''heartbeattest'
-$ return
-$ test_constant_time:
-$ write sys$output "Test constant time utilites"
-$ mcr 'texe_dir''consttimetest'
-$ return
-$
-$ exit:
-$ mcr 'exe_dir'openssl version -a
-$ set default '__save_default'
-$ deassign sslroot
-$ exit
diff --git a/util/deltree.com b/util/deltree.com
deleted file mode 100644
index 9f36b1a..0000000
--- a/util/deltree.com
+++ /dev/null
@@ -1,34 +0,0 @@
-$! DELTREE.COM
-$
-$ call deltree 'p1'
-$ exit $status
-$
-$ deltree: subroutine ! P1 is a name of a directory
-$ on control_y then goto dt_STOP
-$ on warning then goto dt_exit
-$ _dt_def = f$trnlnm("SYS$DISK")+f$directory()
-$ if f$parse(p1) .eqs. "" then exit
-$ set default 'f$parse(p1,,,"DEVICE")''f$parse(p1,,,"DIRECTORY")'
-$ p1 = f$parse(p1,,,"NAME") + f$parse(p1,,,"TYPE")
-$ _fp = f$parse(".DIR",p1)
-$ dt_loop:
-$ _f = f$search(_fp)
-$ if _f .eqs. "" then goto dt_loopend
-$ call deltree [.'f$parse(_f,,,"NAME")']*.*
-$ goto dt_loop
-$ dt_loopend:
-$ _fp = f$parse(p1,".;*")
-$ if f$search(_fp) .eqs. "" then goto dt_exit
-$ set noon
-$ set file/prot=(S:RWED,O:RWED,G:RWED,W:RWED) '_fp'
-$ set on
-$ delete/nolog '_fp'
-$ dt_exit:
-$ set default '_dt_def'
-$ goto dt_end
-$ dt_STOP:
-$ set default '_dt_def'
-$ stop/id=""
-$ exit
-$ dt_end:
-$ endsubroutine
diff --git a/util/dofile.pl b/util/dofile.pl
index 780759b..76dfe2b 100644
--- a/util/dofile.pl
+++ b/util/dofile.pl
@@ -10,23 +10,76 @@ use warnings;
use Getopt::Std;
-# Because we know that Text::Template isn't a core Perl module, we use
-# a fallback in case it's not installed on the system
-use File::Basename;
-use File::Spec::Functions;
-use lib catdir(dirname(__FILE__));
-use with_fallback qw(Text::Template);
-
# We actually expect to get the following hash tables from configdata:
#
# %config
# %target
# %withargs
+# %unified_info
#
# We just do a minimal test to see that we got what we expected.
# $config{target} must exist as an absolute minimum.
die "You must run this script with -Mconfigdata\n" if !exists($config{target});
+# Make a subclass of Text::Template to override append_text_to_result,
+# as recommended here:
+#
+# http://search.cpan.org/~mjd/Text-Template-1.46/lib/Text/Template.pm#Automatic_postprocessing_of_template_hunks
+
+package OpenSSL::Template;
+
+# Because we know that Text::Template isn't a core Perl module, we use
+# a fallback in case it's not installed on the system
+use File::Basename;
+use File::Spec::Functions;
+use lib catdir(dirname(__FILE__));
+use with_fallback qw(Text::Template);
+
+use parent qw/Text::Template/;
+
+# Override constructor
+sub new {
+ my ($class) = shift;
+
+ # Call the constructor of the parent class, Person.
+ my $self = $class->SUPER::new( @_ );
+ # Add few more attributes
+ $self->{_output_off} = 0; # Default to output hunks
+ bless $self, $class;
+ return $self;
+}
+
+sub append_text_to_output {
+ my $self = shift;
+
+ if ($self->{_output_off} == 0) {
+ $self->SUPER::append_text_to_output(@_);
+ }
+
+ return;
+}
+
+sub output_reset_on {
+ my $self = shift;
+ $self->{_output_off} = 0;
+}
+
+sub output_on {
+ my $self = shift;
+ if (--$self->{_output_off} < 0) {
+ $self->{_output_off} = 0;
+ }
+}
+
+sub output_off {
+ my $self = shift;
+ $self->{_output_off}++;
+}
+
+# Come back to main
+
+package main;
+
# Helper functions for the templates #################################
# It might be practical to quotify some strings and have them protected
@@ -98,7 +151,7 @@ my @autowarntext = ("WARNING: do not edit!",
my $prev_linecount = 0;
my $text =
@ARGV
- ? join("", map { my $x = Text::Template::_load_text($_);
+ ? join("", map { my $x = "{- output_reset_on() -}".Text::Template::_load_text($_);
my $linecount = $x =~ tr/\n//;
$prev_linecount = ($linecount += $prev_linecount);
$lines{$linecount} = $_;
@@ -110,13 +163,31 @@ my $text =
# Load the full template (combination of files) into Text::Template
# and fill it up with our data. Output goes directly to STDOUT
-my $template = Text::Template->new(TYPE => 'STRING', SOURCE => $text );
+my $template = OpenSSL::Template->new(TYPE => 'STRING', SOURCE => $text );
+
+sub output_reset_on {
+ $template->output_reset_on();
+ "";
+}
+sub output_on {
+ $template->output_on();
+ "";
+}
+sub output_off {
+ $template->output_off();
+ "";
+}
+
$template->fill_in(OUTPUT => \*STDOUT,
HASH => { config => \%config,
target => \%target,
withargs => \%withargs,
+ unified_info => \%unified_info,
autowarntext => \@autowarntext,
quotify1 => \"ify1,
- quotify_l => \"ify_l },
+ quotify_l => \"ify_l,
+ output_reset_on => \&output_reset_on,
+ output_on => \&output_on,
+ output_off => \&output_off },
DELIMITERS => [ "{-", "-}" ],
BROKEN => \&broken);
diff --git a/util/libeay.num b/util/libeay.num
index d53697c..6ff18ad 100755
--- a/util/libeay.num
+++ b/util/libeay.num
@@ -605,8 +605,7 @@ X509_REVOKED_free 613 1_1_0 EXIST::FUNCTION:
X509_REVOKED_get_ext 614 1_1_0 EXIST::FUNCTION:
X509_REVOKED_get_ext_by_NID 615 1_1_0 EXIST::FUNCTION:
X509_REVOKED_get_ext_by_OBJ 616 1_1_0 EXIST::FUNCTION:
-X509_REVOKED_get_ext_by_critical 617 1_1_0 EXIST:!VMS:FUNCTION:
-X509_REVOKED_get_ext_by_critic 617 1_1_0 EXIST:VMS:FUNCTION:
+X509_REVOKED_get_ext_by_critical 617 1_1_0 EXIST::FUNCTION:
X509_REVOKED_get_ext_count 618 1_1_0 EXIST::FUNCTION:
X509_REVOKED_new 619 1_1_0 EXIST::FUNCTION:
X509_SIG_free 620 1_1_0 EXIST::FUNCTION:
@@ -1136,14 +1135,10 @@ ERR_load_X509V3_strings 1164 1_1_0 EXIST::FUNCTION:
NETSCAPE_CERT_SEQUENCE_free 1165 1_1_0 EXIST::FUNCTION:
NETSCAPE_CERT_SEQUENCE_new 1166 1_1_0 EXIST::FUNCTION:
OBJ_txt2obj 1167 1_1_0 EXIST::FUNCTION:
-PEM_read_NETSCAPE_CERT_SEQUENCE 1168 1_1_0 EXIST:!VMS:FUNCTION:
-PEM_read_NS_CERT_SEQ 1168 1_1_0 EXIST:VMS:FUNCTION:
-PEM_read_bio_NETSCAPE_CERT_SEQUENCE 1169 1_1_0 EXIST:!VMS:FUNCTION:
-PEM_read_bio_NS_CERT_SEQ 1169 1_1_0 EXIST:VMS:FUNCTION:
-PEM_write_NETSCAPE_CERT_SEQUENCE 1170 1_1_0 EXIST:!VMS:FUNCTION:
-PEM_write_NS_CERT_SEQ 1170 1_1_0 EXIST:VMS:FUNCTION:
-PEM_write_bio_NETSCAPE_CERT_SEQUENCE 1171 1_1_0 EXIST:!VMS:FUNCTION:
-PEM_write_bio_NS_CERT_SEQ 1171 1_1_0 EXIST:VMS:FUNCTION:
+PEM_read_NETSCAPE_CERT_SEQUENCE 1168 1_1_0 EXIST::FUNCTION:
+PEM_read_bio_NETSCAPE_CERT_SEQUENCE 1169 1_1_0 EXIST::FUNCTION:
+PEM_write_NETSCAPE_CERT_SEQUENCE 1170 1_1_0 EXIST::FUNCTION:
+PEM_write_bio_NETSCAPE_CERT_SEQUENCE 1171 1_1_0 EXIST::FUNCTION:
X509V3_EXT_add 1172 1_1_0 EXIST::FUNCTION:
X509V3_EXT_add_alias 1173 1_1_0 EXIST::FUNCTION:
X509V3_EXT_add_conf 1174 1_1_0 EXIST::FUNCTION:
@@ -1426,21 +1421,17 @@ d2i_ASN1_SET_OF_PKCS7_RECIP_INFO 1753 1_1_0 NOEXIST::FUNCTION:
PKCS5_PBE_add 1775 1_1_0 EXIST::FUNCTION:
PEM_write_bio_PKCS8 1776 1_1_0 EXIST::FUNCTION:
i2d_PKCS8_fp 1777 1_1_0 EXIST::FUNCTION:STDIO
-PEM_read_bio_PKCS8_PRIV_KEY_INFO 1778 1_1_0 EXIST:!VMS:FUNCTION:
-PEM_read_bio_P8_PRIV_KEY_INFO 1778 1_1_0 EXIST:VMS:FUNCTION:
+PEM_read_bio_PKCS8_PRIV_KEY_INFO 1778 1_1_0 EXIST::FUNCTION:
d2i_PKCS8_bio 1779 1_1_0 EXIST::FUNCTION:
d2i_PKCS8_PRIV_KEY_INFO_fp 1780 1_1_0 EXIST::FUNCTION:STDIO
-PEM_write_bio_PKCS8_PRIV_KEY_INFO 1781 1_1_0 EXIST:!VMS:FUNCTION:
-PEM_write_bio_P8_PRIV_KEY_INFO 1781 1_1_0 EXIST:VMS:FUNCTION:
+PEM_write_bio_PKCS8_PRIV_KEY_INFO 1781 1_1_0 EXIST::FUNCTION:
PEM_read_PKCS8 1782 1_1_0 EXIST::FUNCTION:
d2i_PKCS8_PRIV_KEY_INFO_bio 1783 1_1_0 EXIST::FUNCTION:
d2i_PKCS8_fp 1784 1_1_0 EXIST::FUNCTION:STDIO
PEM_write_PKCS8 1785 1_1_0 EXIST::FUNCTION:
-PEM_read_PKCS8_PRIV_KEY_INFO 1786 1_1_0 EXIST:!VMS:FUNCTION:
-PEM_read_P8_PRIV_KEY_INFO 1786 1_1_0 EXIST:VMS:FUNCTION:
+PEM_read_PKCS8_PRIV_KEY_INFO 1786 1_1_0 EXIST::FUNCTION:
PEM_read_bio_PKCS8 1787 1_1_0 EXIST::FUNCTION:
-PEM_write_PKCS8_PRIV_KEY_INFO 1788 1_1_0 EXIST:!VMS:FUNCTION:
-PEM_write_P8_PRIV_KEY_INFO 1788 1_1_0 EXIST:VMS:FUNCTION:
+PEM_write_PKCS8_PRIV_KEY_INFO 1788 1_1_0 EXIST::FUNCTION:
PKCS5_PBE_keyivgen 1789 1_1_0 EXIST::FUNCTION:
i2d_PKCS8_bio 1790 1_1_0 EXIST::FUNCTION:
i2d_PKCS8_PRIV_KEY_INFO_fp 1791 1_1_0 EXIST::FUNCTION:STDIO
@@ -1538,8 +1529,7 @@ ASN1_OCTET_STRING_cmp 1955 1_1_0 EXIST::FUNCTION:
ASN1_BIT_STRING_new 1957 1_1_0 EXIST::FUNCTION:
X509_get_ext_d2i 1958 1_1_0 EXIST::FUNCTION:
PEM_read_bio_X509_AUX 1959 1_1_0 EXIST::FUNCTION:
-ASN1_STRING_set_default_mask_asc 1960 1_1_0 EXIST:!VMS:FUNCTION:
-ASN1_STRING_set_def_mask_asc 1960 1_1_0 EXIST:VMS:FUNCTION:
+ASN1_STRING_set_default_mask_asc 1960 1_1_0 EXIST::FUNCTION:
PEM_write_bio_RSA_PUBKEY 1961 1_1_0 EXIST::FUNCTION:RSA
ASN1_INTEGER_cmp 1963 1_1_0 EXIST::FUNCTION:
d2i_RSA_PUBKEY_fp 1964 1_1_0 EXIST::FUNCTION:RSA,STDIO
@@ -1685,8 +1675,7 @@ CRYPTO_is_mem_check_on 2160 1_1_0 NOEXIST::FUNCTION:
CRYPTO_set_mem_debug_functions 2161 1_1_0 NOEXIST::FUNCTION:
CRYPTO_set_mem_debug_options 2164 1_1_0 NOEXIST::FUNCTION:
PEM_write_PKCS8PrivateKey_nid 2165 1_1_0 EXIST::FUNCTION:STDIO
-PEM_write_bio_PKCS8PrivateKey_nid 2166 1_1_0 EXIST:!VMS:FUNCTION:
-PEM_write_bio_PKCS8PrivKey_nid 2166 1_1_0 EXIST:VMS:FUNCTION:
+PEM_write_bio_PKCS8PrivateKey_nid 2166 1_1_0 EXIST::FUNCTION:
d2i_PKCS8PrivateKey_bio 2167 1_1_0 EXIST::FUNCTION:
ASN1_NULL_free 2168 1_1_0 EXIST::FUNCTION:
d2i_ASN1_NULL 2169 1_1_0 EXIST::FUNCTION:
@@ -1819,21 +1808,15 @@ d2i_RSA_NET 2408 1_1_0 NOEXIST::FUNCTION:
DSO_bind_func 2409 1_1_0 EXIST::FUNCTION:
CRYPTO_get_new_dynlockid 2410 1_1_0 EXIST::FUNCTION:
sk_new_null 2411 1_1_0 EXIST::FUNCTION:
-CRYPTO_set_dynlock_destroy_callback 2412 1_1_0 EXIST:!VMS:FUNCTION:
-CRYPTO_set_dynlock_destroy_cb 2412 1_1_0 EXIST:VMS:FUNCTION:
+CRYPTO_set_dynlock_destroy_callback 2412 1_1_0 EXIST::FUNCTION:
CRYPTO_destroy_dynlockid 2413 1_1_0 EXIST::FUNCTION:
CRYPTO_set_dynlock_size 2414 1_1_0 NOEXIST::FUNCTION:
-CRYPTO_set_dynlock_create_callback 2415 1_1_0 EXIST:!VMS:FUNCTION:
-CRYPTO_set_dynlock_create_cb 2415 1_1_0 EXIST:VMS:FUNCTION:
-CRYPTO_set_dynlock_lock_callback 2416 1_1_0 EXIST:!VMS:FUNCTION:
-CRYPTO_set_dynlock_lock_cb 2416 1_1_0 EXIST:VMS:FUNCTION:
-CRYPTO_get_dynlock_lock_callback 2417 1_1_0 EXIST:!VMS:FUNCTION:
-CRYPTO_get_dynlock_lock_cb 2417 1_1_0 EXIST:VMS:FUNCTION:
-CRYPTO_get_dynlock_destroy_callback 2418 1_1_0 EXIST:!VMS:FUNCTION:
-CRYPTO_get_dynlock_destroy_cb 2418 1_1_0 EXIST:VMS:FUNCTION:
+CRYPTO_set_dynlock_create_callback 2415 1_1_0 EXIST::FUNCTION:
+CRYPTO_set_dynlock_lock_callback 2416 1_1_0 EXIST::FUNCTION:
+CRYPTO_get_dynlock_lock_callback 2417 1_1_0 EXIST::FUNCTION:
+CRYPTO_get_dynlock_destroy_callback 2418 1_1_0 EXIST::FUNCTION:
CRYPTO_get_dynlock_value 2419 1_1_0 EXIST::FUNCTION:
-CRYPTO_get_dynlock_create_callback 2420 1_1_0 EXIST:!VMS:FUNCTION:
-CRYPTO_get_dynlock_create_cb 2420 1_1_0 EXIST:VMS:FUNCTION:
+CRYPTO_get_dynlock_create_callback 2420 1_1_0 EXIST::FUNCTION:
c2i_ASN1_BIT_STRING 2421 1_1_0 NOEXIST::FUNCTION:
i2c_ASN1_BIT_STRING 2422 1_1_0 NOEXIST::FUNCTION:
RAND_poll 2423 1_1_0 EXIST::FUNCTION:
@@ -1887,7 +1870,6 @@ ENGINE_get_default_RSA 2470 1_1_0 EXIST::FUNCTION:ENGINE
ENGINE_get_BN_mod_exp 2471 1_1_0 NOEXIST::FUNCTION:
DSA_get_default_openssl_method 2472 1_1_0 NOEXIST::FUNCTION:
ENGINE_set_DH 2473 1_1_0 EXIST::FUNCTION:ENGINE
-ENGINE_set_def_BN_mod_exp_crt 2474 1_1_0 NOEXIST::FUNCTION:
ENGINE_set_default_BN_mod_exp_crt 2474 1_1_0 NOEXIST::FUNCTION:
ENGINE_init 2475 1_1_0 EXIST::FUNCTION:ENGINE
DH_get_default_openssl_method 2476 1_1_0 NOEXIST::FUNCTION:
@@ -1909,7 +1891,6 @@ ENGINE_get_RAND 2491 1_1_0 EXIST::FUNCTION:ENGINE
ENGINE_get_first 2492 1_1_0 EXIST::FUNCTION:ENGINE
ENGINE_by_id 2493 1_1_0 EXIST::FUNCTION:ENGINE
ENGINE_set_finish_function 2494 1_1_0 EXIST::FUNCTION:ENGINE
-ENGINE_get_def_BN_mod_exp_crt 2495 1_1_0 NOEXIST::FUNCTION:
ENGINE_get_default_BN_mod_exp_crt 2495 1_1_0 NOEXIST::FUNCTION:
RSA_get_default_openssl_method 2496 1_1_0 NOEXIST::FUNCTION:
ENGINE_set_RSA 2497 1_1_0 EXIST::FUNCTION:ENGINE
@@ -1997,8 +1978,7 @@ ASN1_PRINTABLE_new 2571 1_1_0 EXIST::FUNCTION:
HMAC_Init_ex 2572 1_1_0 EXIST::FUNCTION:
d2i_KRB5_AUTHENT 2573 1_1_0 NOEXIST::FUNCTION:
OCSP_archive_cutoff_new 2574 1_1_0 EXIST::FUNCTION:
-EC_POINT_set_Jprojective_coordinates_GFp 2575 1_1_0 EXIST:!VMS:FUNCTION:EC
-EC_POINT_set_Jproj_coords_GFp 2575 1_1_0 EXIST:VMS:FUNCTION:EC
+EC_POINT_set_Jprojective_coordinates_GFp 2575 1_1_0 EXIST::FUNCTION:EC
_ossl_old_des_is_weak_key 2576 1_1_0 NOEXIST::FUNCTION:
OCSP_BASICRESP_get_ext_by_OBJ 2577 1_1_0 EXIST::FUNCTION:
EC_POINT_oct2point 2578 1_1_0 EXIST::FUNCTION:EC
@@ -2023,8 +2003,7 @@ GENERAL_NAME_it 2594 1_1_0 EXIST:EXPORT_VAR_AS_FUNCTION:
ASN1_GENERALIZEDTIME_it 2595 1_1_0 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
ASN1_GENERALIZEDTIME_it 2595 1_1_0 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
X509_STORE_set_flags 2596 1_1_0 EXIST::FUNCTION:
-EC_POINT_set_compressed_coordinates_GFp 2597 1_1_0 EXIST:!VMS:FUNCTION:EC
-EC_POINT_set_compr_coords_GFp 2597 1_1_0 EXIST:VMS:FUNCTION:EC
+EC_POINT_set_compressed_coordinates_GFp 2597 1_1_0 EXIST::FUNCTION:EC
OCSP_response_status_str 2598 1_1_0 EXIST::FUNCTION:
d2i_OCSP_REVOKEDINFO 2599 1_1_0 EXIST::FUNCTION:
OCSP_basic_add1_cert 2600 1_1_0 EXIST::FUNCTION:
@@ -2038,8 +2017,7 @@ X509_CRL_sort 2607 1_1_0 EXIST::FUNCTION:
X509_REVOKED_set_revocationDate 2608 1_1_0 EXIST::FUNCTION:
ENGINE_register_RAND 2609 1_1_0 EXIST::FUNCTION:ENGINE
OCSP_SERVICELOC_new 2610 1_1_0 EXIST::FUNCTION:
-EC_POINT_set_affine_coordinates_GFp 2611 1_1_0 EXIST:!VMS:FUNCTION:EC
-EC_POINT_set_affine_coords_GFp 2611 1_1_0 EXIST:VMS:FUNCTION:EC
+EC_POINT_set_affine_coordinates_GFp 2611 1_1_0 EXIST::FUNCTION:EC
_ossl_old_des_options 2612 1_1_0 NOEXIST::FUNCTION:
SXNET_it 2613 1_1_0 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
SXNET_it 2613 1_1_0 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
@@ -2081,24 +2059,21 @@ X509_REVOKED_it 2642 1_1_0 EXIST:EXPORT_VAR_AS_FUNCTION:
ASN1_STRING_encode 2643 1_1_0 NOEXIST::FUNCTION:
EVP_aes_128_ecb 2644 1_1_0 EXIST::FUNCTION:AES
KRB5_AUTHENT_free 2645 1_1_0 NOEXIST::FUNCTION:
-OCSP_BASICRESP_get_ext_by_critical 2646 1_1_0 EXIST:!VMS:FUNCTION:
-OCSP_BASICRESP_get_ext_by_crit 2646 1_1_0 EXIST:VMS:FUNCTION:
+OCSP_BASICRESP_get_ext_by_critical 2646 1_1_0 EXIST::FUNCTION:
OCSP_cert_status_str 2647 1_1_0 EXIST::FUNCTION:
d2i_OCSP_REQUEST 2648 1_1_0 EXIST::FUNCTION:
UI_dup_info_string 2649 1_1_0 EXIST::FUNCTION:
_ossl_old_des_xwhite_in2out 2650 1_1_0 NOEXIST::FUNCTION:
PKCS12_it 2651 1_1_0 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
PKCS12_it 2651 1_1_0 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
-OCSP_SINGLERESP_get_ext_by_critical 2652 1_1_0 EXIST:!VMS:FUNCTION:
-OCSP_SINGLERESP_get_ext_by_crit 2652 1_1_0 EXIST:VMS:FUNCTION:
+OCSP_SINGLERESP_get_ext_by_critical 2652 1_1_0 EXIST::FUNCTION:
OCSP_CERTSTATUS_free 2653 1_1_0 EXIST::FUNCTION:
_ossl_old_des_crypt 2654 1_1_0 NOEXIST::FUNCTION:
ASN1_item_i2d 2655 1_1_0 EXIST::FUNCTION:
EVP_DecryptFinal_ex 2656 1_1_0 EXIST::FUNCTION:
ENGINE_load_openssl 2657 1_1_0 NOEXIST::FUNCTION:
ENGINE_get_cmd_defns 2658 1_1_0 EXIST::FUNCTION:ENGINE
-ENGINE_set_load_privkey_function 2659 1_1_0 EXIST:!VMS:FUNCTION:ENGINE
-ENGINE_set_load_privkey_fn 2659 1_1_0 EXIST:VMS:FUNCTION:ENGINE
+ENGINE_set_load_privkey_function 2659 1_1_0 EXIST::FUNCTION:ENGINE
EVP_EncryptFinal_ex 2660 1_1_0 EXIST::FUNCTION:
ENGINE_set_default_digests 2661 1_1_0 EXIST::FUNCTION:ENGINE
X509_get0_pubkey_bitstr 2662 1_1_0 EXIST::FUNCTION:
@@ -2239,15 +2214,13 @@ BN_mod_add 2774 1_1_0 EXIST::FUNCTION:
KRB5_AUTHDATA_free 2775 1_1_0 NOEXIST::FUNCTION:
_ossl_old_des_cbc_cksum 2776 1_1_0 NOEXIST::FUNCTION:
ASN1_item_verify 2777 1_1_0 EXIST::FUNCTION:
-EC_POINT_get_Jprojective_coordinates_GFp 2779 1_1_0 EXIST:!VMS:FUNCTION:EC
-EC_POINT_get_Jproj_coords_GFp 2779 1_1_0 EXIST:VMS:FUNCTION:EC
+EC_POINT_get_Jprojective_coordinates_GFp 2779 1_1_0 EXIST::FUNCTION:EC
ZLONG_it 2780 1_1_0 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
ZLONG_it 2780 1_1_0 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
ASN1_TIME_check 2782 1_1_0 EXIST::FUNCTION:
UI_get0_user_data 2783 1_1_0 EXIST::FUNCTION:
HMAC_CTX_cleanup 2784 1_1_0 NOEXIST::FUNCTION:
DSA_up_ref 2785 1_1_0 EXIST::FUNCTION:DSA
-_ossl_odes_ede3_cfb64_encrypt 2786 1_1_0 NOEXIST::FUNCTION:
_ossl_old_des_ede3_cfb64_encrypt 2786 1_1_0 NOEXIST::FUNCTION:
ASN1_BMPSTRING_it 2787 1_1_0 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
ASN1_BMPSTRING_it 2787 1_1_0 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
@@ -2316,7 +2289,6 @@ X509_CRL_set_lastUpdate 2837 1_1_0 EXIST::FUNCTION:
OCSP_BASICRESP_free 2838 1_1_0 EXIST::FUNCTION:
OCSP_BASICRESP_add1_ext_i2d 2839 1_1_0 EXIST::FUNCTION:
d2i_KRB5_AUTHENTBODY 2840 1_1_0 NOEXIST::FUNCTION:
-CRYPTO_set_ex_data_impl 2841 1_1_0 NOEXIST::FUNCTION:
CRYPTO_set_ex_data_implementation 2841 1_1_0 NOEXIST::FUNCTION:
KRB5_ENCDATA_new 2842 1_1_0 NOEXIST::FUNCTION:
DSO_up_ref 2843 1_1_0 EXIST::FUNCTION:
@@ -2394,8 +2366,7 @@ RSAPrivateKey_it 2906 1_1_0 EXIST:!EXPORT_VAR_AS_FUNCTION
RSAPrivateKey_it 2906 1_1_0 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:RSA
ENGINE_register_all_DH 2907 1_1_0 EXIST::FUNCTION:ENGINE
i2d_EDIPARTYNAME 2908 1_1_0 EXIST::FUNCTION:
-EC_POINT_get_affine_coordinates_GFp 2909 1_1_0 EXIST:!VMS:FUNCTION:EC
-EC_POINT_get_affine_coords_GFp 2909 1_1_0 EXIST:VMS:FUNCTION:EC
+EC_POINT_get_affine_coordinates_GFp 2909 1_1_0 EXIST::FUNCTION:EC
OCSP_CRLID_new 2910 1_1_0 EXIST::FUNCTION:
ENGINE_get_flags 2911 1_1_0 EXIST::FUNCTION:ENGINE
OCSP_ONEREQ_it 2912 1_1_0 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
@@ -2515,7 +2486,6 @@ ENGINE_get_cipher_engine 3008 1_1_0 EXIST::FUNCTION:ENGINE
ENGINE_register_all_ciphers 3009 1_1_0 EXIST::FUNCTION:ENGINE
EC_POINT_copy 3010 1_1_0 EXIST::FUNCTION:EC
BN_kronecker 3011 1_1_0 EXIST::FUNCTION:
-_ossl_odes_ede3_ofb64_encrypt 3012 1_1_0 NOEXIST::FUNCTION:
_ossl_old_des_ede3_ofb64_encrypt 3012 1_1_0 NOEXIST::FUNCTION:
UI_method_get_reader 3013 1_1_0 EXIST::FUNCTION:
OCSP_BASICRESP_get_ext_count 3014 1_1_0 EXIST::FUNCTION:
@@ -2690,8 +2660,7 @@ OCSP_response_create 3158 1_1_0 EXIST::FUNCTION:
_ossl_old_des_xcbc_encrypt 3159 1_1_0 NOEXIST::FUNCTION:
PKCS7_it 3160 1_1_0 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
PKCS7_it 3160 1_1_0 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
-OCSP_REQUEST_get_ext_by_critical 3161 1_1_0 EXIST:!VMS:FUNCTION:
-OCSP_REQUEST_get_ext_by_crit 3161 1_1_0 EXIST:VMS:FUNCTION:
+OCSP_REQUEST_get_ext_by_critical 3161 1_1_0 EXIST::FUNCTION:
ENGINE_set_flags 3162 1_1_0 EXIST::FUNCTION:ENGINE
_ossl_old_des_ecb_encrypt 3163 1_1_0 NOEXIST::FUNCTION:
OCSP_response_get1_basic 3164 1_1_0 EXIST::FUNCTION:
@@ -2704,8 +2673,7 @@ ASN1_TIME_to_generalizedtime 3169 1_1_0 EXIST::FUNCTION:
BIGNUM_it 3170 1_1_0 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
BIGNUM_it 3170 1_1_0 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
AES_cbc_encrypt 3171 1_1_0 EXIST::FUNCTION:AES
-ENGINE_get_load_privkey_function 3172 1_1_0 EXIST:!VMS:FUNCTION:ENGINE
-ENGINE_get_load_privkey_fn 3172 1_1_0 EXIST:VMS:FUNCTION:ENGINE
+ENGINE_get_load_privkey_function 3172 1_1_0 EXIST::FUNCTION:ENGINE
OCSP_RESPONSE_free 3173 1_1_0 EXIST::FUNCTION:
UI_method_set_reader 3174 1_1_0 EXIST::FUNCTION:
i2d_ASN1_T61STRING 3175 1_1_0 EXIST::FUNCTION:
@@ -2874,7 +2842,6 @@ ERR_set_mark 3332 1_1_0 EXIST::FUNCTION:
X509_STORE_CTX_set0_crls 3333 1_1_0 EXIST::FUNCTION:
ENGINE_set_STORE 3334 1_1_0 NOEXIST::FUNCTION:
ENGINE_register_ECDSA 3335 1_1_0 NOEXIST::FUNCTION:
-STORE_meth_set_list_start_fn 3336 1_1_0 NOEXIST::FUNCTION:
STORE_method_set_list_start_function 3336 1_1_0 NOEXIST::FUNCTION:
BN_BLINDING_invert_ex 3337 1_1_0 EXIST::FUNCTION:
NAME_CONSTRAINTS_free 3338 1_1_0 EXIST::FUNCTION:
@@ -2895,15 +2862,13 @@ NAME_CONSTRAINTS_it 3350 1_1_0 EXIST:EXPORT_VAR_AS_FUNCTION:
ECDH_get_default_method 3351 1_1_0 NOEXIST::FUNCTION:
PKCS12_add_safe 3352 1_1_0 EXIST::FUNCTION:
EC_KEY_new_by_curve_name 3353 1_1_0 EXIST::FUNCTION:EC
-STORE_meth_get_update_store_fn 3354 1_1_0 NOEXIST::FUNCTION:
STORE_method_get_update_store_function 3354 1_1_0 NOEXIST::FUNCTION:
ENGINE_register_ECDH 3355 1_1_0 NOEXIST::FUNCTION:
SHA512_Update 3356 1_1_0 EXIST:!VMSVAX:FUNCTION:
i2d_ECPrivateKey 3357 1_1_0 EXIST::FUNCTION:EC
BN_get0_nist_prime_192 3358 1_1_0 EXIST::FUNCTION:
STORE_modify_certificate 3359 1_1_0 NOEXIST::FUNCTION:
-EC_POINT_set_affine_coordinates_GF2m 3360 1_1_0 EXIST:!VMS:FUNCTION:EC,EC2M
-EC_POINT_set_affine_coords_GF2m 3360 1_1_0 EXIST:VMS:FUNCTION:EC,EC2M
+EC_POINT_set_affine_coordinates_GF2m 3360 1_1_0 EXIST::FUNCTION:EC,EC2M
BN_GF2m_mod_exp_arr 3361 1_1_0 EXIST::FUNCTION:EC2M
STORE_ATTR_INFO_modify_number 3362 1_1_0 NOEXIST::FUNCTION:
X509_keyid_get0 3363 1_1_0 EXIST::FUNCTION:
@@ -2919,7 +2884,6 @@ EC_GROUP_check_discriminant 3372 1_1_0 EXIST::FUNCTION:EC
i2o_ECPublicKey 3373 1_1_0 EXIST::FUNCTION:EC
EC_KEY_precompute_mult 3374 1_1_0 EXIST::FUNCTION:EC
a2i_IPADDRESS 3375 1_1_0 EXIST::FUNCTION:
-STORE_meth_set_initialise_fn 3376 1_1_0 NOEXIST::FUNCTION:
STORE_method_set_initialise_function 3376 1_1_0 NOEXIST::FUNCTION:
X509_STORE_CTX_set_depth 3377 1_1_0 EXIST::FUNCTION:
X509_VERIFY_PARAM_inherit 3378 1_1_0 EXIST::FUNCTION:
@@ -2950,8 +2914,7 @@ STORE_get_method 3401 1_1_0 NOEXIST::FUNCTION:
EC_KEY_get_key_method_data 3402 1_1_0 NOEXIST::FUNCTION:
ECDSA_sign_ex 3403 1_1_0 EXIST::FUNCTION:EC
STORE_parse_attrs_end 3404 1_1_0 NOEXIST::FUNCTION:
-EC_GROUP_get_point_conversion_form 3405 1_1_0 EXIST:!VMS:FUNCTION:EC
-EC_GROUP_get_point_conv_form 3405 1_1_0 EXIST:VMS:FUNCTION:EC
+EC_GROUP_get_point_conversion_form 3405 1_1_0 EXIST::FUNCTION:EC
STORE_method_set_store_function 3406 1_1_0 NOEXIST::FUNCTION:
STORE_ATTR_INFO_in 3407 1_1_0 NOEXIST::FUNCTION:
PEM_read_bio_ECPKParameters 3408 1_1_0 EXIST::FUNCTION:EC
@@ -2969,13 +2932,10 @@ POLICY_MAPPING_free 3419 1_1_0 EXIST::FUNCTION:
BN_GF2m_mod_div 3420 1_1_0 EXIST::FUNCTION:EC2M
X509_VERIFY_PARAM_set_flags 3421 1_1_0 EXIST::FUNCTION:
EC_KEY_free 3422 1_1_0 EXIST::FUNCTION:EC
-STORE_meth_set_list_next_fn 3423 1_1_0 NOEXIST::FUNCTION:
STORE_method_set_list_next_function 3423 1_1_0 NOEXIST::FUNCTION:
PEM_write_bio_ECPrivateKey 3424 1_1_0 EXIST::FUNCTION:EC
d2i_EC_PUBKEY 3425 1_1_0 EXIST::FUNCTION:EC
-STORE_meth_get_generate_fn 3426 1_1_0 NOEXIST::FUNCTION:
STORE_method_get_generate_function 3426 1_1_0 NOEXIST::FUNCTION:
-STORE_meth_set_list_end_fn 3427 1_1_0 NOEXIST::FUNCTION:
STORE_method_set_list_end_function 3427 1_1_0 NOEXIST::FUNCTION:
pqueue_print 3428 1_1_0 NOEXIST::FUNCTION:
EC_GROUP_have_precompute_mult 3429 1_1_0 EXIST::FUNCTION:EC
@@ -2997,8 +2957,7 @@ EC_POINT_dup 3444 1_1_0 EXIST::FUNCTION:EC
GENERAL_SUBTREE_new 3445 1_1_0 EXIST::FUNCTION:
STORE_list_crl_endp 3446 1_1_0 NOEXIST::FUNCTION:
EC_get_builtin_curves 3447 1_1_0 EXIST::FUNCTION:EC
-X509_policy_node_get0_qualifiers 3448 1_1_0 EXIST:!VMS:FUNCTION:
-X509_pcy_node_get0_qualifiers 3448 1_1_0 EXIST:VMS:FUNCTION:
+X509_policy_node_get0_qualifiers 3448 1_1_0 EXIST::FUNCTION:
STORE_list_crl_end 3449 1_1_0 NOEXIST::FUNCTION:
EVP_PKEY_set1_EC_KEY 3450 1_1_0 EXIST::FUNCTION:EC
BN_GF2m_mod_sqrt_arr 3451 1_1_0 EXIST::FUNCTION:EC2M
@@ -3026,7 +2985,6 @@ i2d_ECParameters 3472 1_1_0 EXIST::FUNCTION:EC
i2d_ECPKParameters 3473 1_1_0 EXIST::FUNCTION:EC
BN_GENCB_call 3474 1_1_0 EXIST::FUNCTION:
d2i_ECPKParameters 3475 1_1_0 EXIST::FUNCTION:EC
-STORE_meth_set_generate_fn 3476 1_1_0 NOEXIST::FUNCTION:
STORE_method_set_generate_function 3476 1_1_0 NOEXIST::FUNCTION:
ENGINE_set_ECDH 3477 1_1_0 NOEXIST::FUNCTION:
NAME_CONSTRAINTS_new 3478 1_1_0 EXIST::FUNCTION:
@@ -3037,12 +2995,10 @@ STORE_ATTR_INFO_set_cstr 3482 1_1_0 NOEXIST::FUNCTION:
STORE_list_crl_next 3483 1_1_0 NOEXIST::FUNCTION:
STORE_ATTR_INFO_in_range 3484 1_1_0 NOEXIST::FUNCTION:
ECParameters_print 3485 1_1_0 EXIST::FUNCTION:EC
-STORE_meth_set_delete_fn 3486 1_1_0 NOEXIST::FUNCTION:
STORE_method_set_delete_function 3486 1_1_0 NOEXIST::FUNCTION:
STORE_list_certificate_next 3487 1_1_0 NOEXIST::FUNCTION:
ASN1_generate_nconf 3488 1_1_0 EXIST::FUNCTION:
BN_GF2m_mod_mul 3490 1_1_0 EXIST::FUNCTION:EC2M
-STORE_meth_get_list_next_fn 3491 1_1_0 NOEXIST::FUNCTION:
STORE_method_get_list_next_function 3491 1_1_0 NOEXIST::FUNCTION:
STORE_ATTR_INFO_get0_dn 3492 1_1_0 NOEXIST::FUNCTION:
STORE_list_private_key_next 3493 1_1_0 NOEXIST::FUNCTION:
@@ -3053,7 +3009,6 @@ STORE_get_private_key 3497 1_1_0 NOEXIST::FUNCTION:
EVP_PKEY_get_attr_count 3498 1_1_0 EXIST::FUNCTION:
STORE_ATTR_INFO_new 3499 1_1_0 NOEXIST::FUNCTION:
EC_GROUP_get_curve_GF2m 3500 1_1_0 EXIST::FUNCTION:EC,EC2M
-STORE_meth_set_revoke_fn 3501 1_1_0 NOEXIST::FUNCTION:
STORE_method_set_revoke_function 3501 1_1_0 NOEXIST::FUNCTION:
STORE_store_number 3502 1_1_0 NOEXIST::FUNCTION:
BN_is_prime_ex 3503 1_1_0 EXIST::FUNCTION:
@@ -3076,20 +3031,17 @@ STORE_list_private_key_end 3520 1_1_0 NOEXIST::FUNCTION:
i2d_EC_PUBKEY 3521 1_1_0 EXIST::FUNCTION:EC
ECDSA_get_default_method 3522 1_1_0 NOEXIST::FUNCTION:
ASN1_put_eoc 3523 1_1_0 EXIST::FUNCTION:
-X509_STORE_CTX_get_explicit_policy 3524 1_1_0 EXIST:!VMS:FUNCTION:
-X509_STORE_CTX_get_expl_policy 3524 1_1_0 EXIST:VMS:FUNCTION:
+X509_STORE_CTX_get_explicit_policy 3524 1_1_0 EXIST::FUNCTION:
X509_VERIFY_PARAM_table_cleanup 3525 1_1_0 EXIST::FUNCTION:
STORE_modify_private_key 3526 1_1_0 NOEXIST::FUNCTION:
X509_VERIFY_PARAM_free 3527 1_1_0 EXIST::FUNCTION:
EC_METHOD_get_field_type 3528 1_1_0 EXIST::FUNCTION:EC
EC_GFp_nist_method 3529 1_1_0 EXIST::FUNCTION:EC
-STORE_meth_set_modify_fn 3530 1_1_0 NOEXIST::FUNCTION:
STORE_method_set_modify_function 3530 1_1_0 NOEXIST::FUNCTION:
STORE_parse_attrs_next 3531 1_1_0 NOEXIST::FUNCTION:
ENGINE_load_padlock 3532 1_1_0 NOEXIST::FUNCTION:
EC_GROUP_set_curve_name 3533 1_1_0 EXIST::FUNCTION:EC
X509_CERT_PAIR_it 3534 1_1_0 NOEXIST::FUNCTION:
-STORE_meth_get_revoke_fn 3535 1_1_0 NOEXIST::FUNCTION:
STORE_method_get_revoke_function 3535 1_1_0 NOEXIST::FUNCTION:
STORE_method_set_get_function 3536 1_1_0 NOEXIST::FUNCTION:
STORE_modify_number 3537 1_1_0 NOEXIST::FUNCTION:
@@ -3109,16 +3061,13 @@ EC_KEY_generate_key 3550 1_1_0 EXIST::FUNCTION:EC
SHA384_Update 3551 1_1_0 EXIST:!VMSVAX:FUNCTION:
BN_GF2m_arr2poly 3552 1_1_0 EXIST::FUNCTION:EC2M
STORE_method_get_get_function 3553 1_1_0 NOEXIST::FUNCTION:
-STORE_meth_set_cleanup_fn 3554 1_1_0 NOEXIST::FUNCTION:
STORE_method_set_cleanup_function 3554 1_1_0 NOEXIST::FUNCTION:
EC_GROUP_check 3555 1_1_0 EXIST::FUNCTION:EC
d2i_ECPrivateKey_bio 3556 1_1_0 EXIST::FUNCTION:EC
EC_KEY_insert_key_method_data 3557 1_1_0 NOEXIST::FUNCTION:
-STORE_meth_get_lock_store_fn 3558 1_1_0 NOEXIST::FUNCTION:
STORE_method_get_lock_store_function 3558 1_1_0 NOEXIST::FUNCTION:
X509_VERIFY_PARAM_get_depth 3559 1_1_0 EXIST::FUNCTION:
SHA224_Final 3560 1_1_0 EXIST::FUNCTION:
-STORE_meth_set_update_store_fn 3561 1_1_0 NOEXIST::FUNCTION:
STORE_method_set_update_store_function 3561 1_1_0 NOEXIST::FUNCTION:
SHA224_Update 3562 1_1_0 EXIST::FUNCTION:
d2i_ECPrivateKey 3563 1_1_0 EXIST::FUNCTION:EC
@@ -3141,7 +3090,6 @@ STORE_revoke_private_key 3579 1_1_0 NOEXIST::FUNCTION:
BN_nist_mod_224 3580 1_1_0 EXIST::FUNCTION:
SHA512_Final 3581 1_1_0 EXIST:!VMSVAX:FUNCTION:
STORE_ATTR_INFO_modify_dn 3582 1_1_0 NOEXIST::FUNCTION:
-STORE_meth_get_initialise_fn 3583 1_1_0 NOEXIST::FUNCTION:
STORE_method_get_initialise_function 3583 1_1_0 NOEXIST::FUNCTION:
STORE_delete_number 3584 1_1_0 NOEXIST::FUNCTION:
i2d_EC_PUBKEY_bio 3585 1_1_0 EXIST::FUNCTION:EC
@@ -3150,7 +3098,6 @@ EC_GROUP_get_asn1_flag 3587 1_1_0 EXIST::FUNCTION:EC
STORE_ATTR_INFO_in_ex 3588 1_1_0 NOEXIST::FUNCTION:
STORE_list_crl_start 3589 1_1_0 NOEXIST::FUNCTION:
ECDH_get_ex_new_index 3590 1_1_0 NOEXIST::FUNCTION:
-STORE_meth_get_modify_fn 3591 1_1_0 NOEXIST::FUNCTION:
STORE_method_get_modify_function 3591 1_1_0 NOEXIST::FUNCTION:
v2i_ASN1_BIT_STRING 3592 1_1_0 EXIST::FUNCTION:
STORE_store_certificate 3593 1_1_0 NOEXIST::FUNCTION:
@@ -3160,11 +3107,9 @@ STORE_ATTR_INFO_set_sha1str 3596 1_1_0 NOEXIST::FUNCTION:
BN_GF2m_mod_inv 3597 1_1_0 EXIST::FUNCTION:EC2M
BN_GF2m_mod_exp 3598 1_1_0 EXIST::FUNCTION:EC2M
STORE_modify_public_key 3599 1_1_0 NOEXIST::FUNCTION:
-STORE_meth_get_list_start_fn 3600 1_1_0 NOEXIST::FUNCTION:
STORE_method_get_list_start_function 3600 1_1_0 NOEXIST::FUNCTION:
EC_GROUP_get0_seed 3601 1_1_0 EXIST::FUNCTION:EC
STORE_store_arbitrary 3602 1_1_0 NOEXIST::FUNCTION:
-STORE_meth_set_unlock_store_fn 3603 1_1_0 NOEXIST::FUNCTION:
STORE_method_set_unlock_store_function 3603 1_1_0 NOEXIST::FUNCTION:
BN_GF2m_mod_div_arr 3604 1_1_0 EXIST::FUNCTION:EC2M
ENGINE_set_ECDSA 3605 1_1_0 NOEXIST::FUNCTION:
@@ -3179,8 +3124,7 @@ ECDH_set_ex_data 3613 1_1_0 NOEXIST::FUNCTION:
STORE_generate_key 3614 1_1_0 NOEXIST::FUNCTION:
BN_nist_mod_521 3615 1_1_0 EXIST::FUNCTION:
X509_policy_tree_get0_level 3616 1_1_0 EXIST::FUNCTION:
-EC_GROUP_set_point_conversion_form 3617 1_1_0 EXIST:!VMS:FUNCTION:EC
-EC_GROUP_set_point_conv_form 3617 1_1_0 EXIST:VMS:FUNCTION:EC
+EC_GROUP_set_point_conversion_form 3617 1_1_0 EXIST::FUNCTION:EC
PEM_read_EC_PUBKEY 3618 1_1_0 EXIST::FUNCTION:EC
i2d_ECDSA_SIG 3619 1_1_0 EXIST::FUNCTION:EC
ECDSA_OpenSSL 3620 1_1_0 NOEXIST::FUNCTION:
@@ -3189,12 +3133,10 @@ EC_KEY_get_enc_flags 3622 1_1_0 EXIST::FUNCTION:EC
ASN1_const_check_infinite_end 3623 1_1_0 EXIST::FUNCTION:
EVP_PKEY_delete_attr 3624 1_1_0 EXIST::FUNCTION:
ECDSA_set_default_method 3625 1_1_0 NOEXIST::FUNCTION:
-EC_POINT_set_compressed_coordinates_GF2m 3626 1_1_0 EXIST:!VMS:FUNCTION:EC,EC2M
-EC_POINT_set_compr_coords_GF2m 3626 1_1_0 EXIST:VMS:FUNCTION:EC,EC2M
+EC_POINT_set_compressed_coordinates_GF2m 3626 1_1_0 EXIST::FUNCTION:EC,EC2M
EC_GROUP_cmp 3627 1_1_0 EXIST::FUNCTION:EC
STORE_revoke_certificate 3628 1_1_0 NOEXIST::FUNCTION:
BN_get0_nist_prime_256 3629 1_1_0 EXIST::FUNCTION:
-STORE_meth_get_delete_fn 3630 1_1_0 NOEXIST::FUNCTION:
STORE_method_get_delete_function 3630 1_1_0 NOEXIST::FUNCTION:
SHA224_Init 3631 1_1_0 EXIST::FUNCTION:
PEM_read_ECPrivateKey 3632 1_1_0 EXIST::FUNCTION:EC
@@ -3222,13 +3164,11 @@ X509_VERIFY_PARAM_add0_policy 3652 1_1_0 EXIST::FUNCTION:
BN_GF2m_mod_solve_quad 3653 1_1_0 EXIST::FUNCTION:EC2M
SHA256 3654 1_1_0 EXIST::FUNCTION:
i2d_ECPrivateKey_fp 3655 1_1_0 EXIST::FUNCTION:EC,STDIO
-X509_policy_tree_get0_user_policies 3656 1_1_0 EXIST:!VMS:FUNCTION:
-X509_pcy_tree_get0_usr_policies 3656 1_1_0 EXIST:VMS:FUNCTION:
+X509_policy_tree_get0_user_policies 3656 1_1_0 EXIST::FUNCTION:
OPENSSL_DIR_read 3657 1_1_0 EXIST::FUNCTION:
ENGINE_register_all_ECDSA 3658 1_1_0 NOEXIST::FUNCTION:
X509_VERIFY_PARAM_lookup 3659 1_1_0 EXIST::FUNCTION:
-EC_POINT_get_affine_coordinates_GF2m 3660 1_1_0 EXIST:!VMS:FUNCTION:EC,EC2M
-EC_POINT_get_affine_coords_GF2m 3660 1_1_0 EXIST:VMS:FUNCTION:EC,EC2M
+EC_POINT_get_affine_coordinates_GF2m 3660 1_1_0 EXIST::FUNCTION:EC,EC2M
EC_GROUP_dup 3661 1_1_0 EXIST::FUNCTION:EC
ENGINE_get_default_ECDSA 3662 1_1_0 NOEXIST::FUNCTION:
EC_KEY_new 3663 1_1_0 EXIST::FUNCTION:EC
@@ -3248,7 +3188,6 @@ X509_STORE_set1_param 3676 1_1_0 EXIST::FUNCTION:
STORE_method_get_ctrl_function 3677 1_1_0 NOEXIST::FUNCTION:
STORE_free 3678 1_1_0 NOEXIST::FUNCTION:
PEM_write_ECPrivateKey 3679 1_1_0 EXIST::FUNCTION:EC
-STORE_meth_get_unlock_store_fn 3680 1_1_0 NOEXIST::FUNCTION:
STORE_method_get_unlock_store_function 3680 1_1_0 NOEXIST::FUNCTION:
STORE_get_ex_data 3681 1_1_0 NOEXIST::FUNCTION:
EC_KEY_set_public_key 3682 1_1_0 EXIST::FUNCTION:EC
@@ -3286,7 +3225,6 @@ EC_GROUP_new_by_curve_name 3711 1_1_0 EXIST::FUNCTION:EC
SHA256_Final 3712 1_1_0 EXIST::FUNCTION:
DH_generate_parameters_ex 3713 1_1_0 EXIST::FUNCTION:DH
PEM_read_bio_ECPrivateKey 3714 1_1_0 EXIST::FUNCTION:EC
-STORE_meth_get_cleanup_fn 3715 1_1_0 NOEXIST::FUNCTION:
STORE_method_get_cleanup_function 3715 1_1_0 NOEXIST::FUNCTION:
ENGINE_get_ECDH 3716 1_1_0 NOEXIST::FUNCTION:
d2i_ECDSA_SIG 3717 1_1_0 EXIST::FUNCTION:EC
@@ -3328,7 +3266,6 @@ d2i_EC_PUBKEY_fp 3751 1_1_0 EXIST::FUNCTION:EC,STDIO
PKCS7_set0_type_other 3752 1_1_0 EXIST::FUNCTION:
PEM_read_bio_X509_CERT_PAIR 3753 1_1_0 NOEXIST::FUNCTION:
pqueue_next 3754 1_1_0 NOEXIST::FUNCTION:
-STORE_meth_get_list_end_fn 3755 1_1_0 NOEXIST::FUNCTION:
STORE_method_get_list_end_function 3755 1_1_0 NOEXIST::FUNCTION:
EVP_PKEY_add1_attr_by_OBJ 3756 1_1_0 EXIST::FUNCTION:
X509_VERIFY_PARAM_set_time 3757 1_1_0 EXIST::FUNCTION:
@@ -3547,8 +3484,7 @@ CMS_unsigned_get0_data_by_OBJ 3959 1_1_0 EXIST::FUNCTION:CMS
PEM_write_bio_CMS 3960 1_1_0 EXIST::FUNCTION:CMS
CMS_unsigned_get_attr 3961 1_1_0 EXIST::FUNCTION:CMS
CMS_RecipientInfo_ktri_cert_cmp 3962 1_1_0 EXIST::FUNCTION:CMS
-CMS_RecipientInfo_ktri_get0_algs 3963 1_1_0 EXIST:!VMS:FUNCTION:CMS
-CMS_RecipInfo_ktri_get0_algs 3963 1_1_0 EXIST:VMS:FUNCTION:CMS
+CMS_RecipientInfo_ktri_get0_algs 3963 1_1_0 EXIST::FUNCTION:CMS
CMS_ContentInfo_free 3964 1_1_0 EXIST::FUNCTION:CMS
CMS_final 3965 1_1_0 EXIST::FUNCTION:CMS
CMS_add_simple_smimecap 3966 1_1_0 EXIST::FUNCTION:CMS
@@ -3619,8 +3555,7 @@ CMS_get1_certs 4028 1_1_0 EXIST::FUNCTION:CMS
CMS_signed_add1_attr_by_NID 4029 1_1_0 EXIST::FUNCTION:CMS
CMS_unsigned_add1_attr_by_txt 4030 1_1_0 EXIST::FUNCTION:CMS
CMS_dataFinal 4031 1_1_0 EXIST::FUNCTION:CMS
-CMS_RecipientInfo_ktri_get0_signer_id 4032 1_1_0 EXIST:!VMS:FUNCTION:CMS
-CMS_RecipInfo_ktri_get0_sigr_id 4032 1_1_0 EXIST:VMS:FUNCTION:CMS
+CMS_RecipientInfo_ktri_get0_signer_id 4032 1_1_0 EXIST::FUNCTION:CMS
i2d_CMS_ReceiptRequest 4033 1_1_0 EXIST::FUNCTION:CMS
CMS_add1_recipient_cert 4034 1_1_0 EXIST::FUNCTION:CMS
CMS_dataInit 4035 1_1_0 EXIST::FUNCTION:CMS
@@ -3632,10 +3567,8 @@ CMS_set1_eContentType 4040 1_1_0 EXIST::FUNCTION:CMS
CMS_ReceiptRequest_create0 4041 1_1_0 EXIST::FUNCTION:CMS
CMS_add1_signer 4042 1_1_0 EXIST::FUNCTION:CMS
CMS_RecipientInfo_set0_pkey 4043 1_1_0 EXIST::FUNCTION:CMS
-ENGINE_set_load_ssl_client_cert_function 4044 1_1_0 EXIST:!VMS:FUNCTION:ENGINE
-ENGINE_set_ld_ssl_clnt_cert_fn 4044 1_1_0 EXIST:VMS:FUNCTION:ENGINE
-ENGINE_get_ssl_client_cert_function 4045 1_1_0 EXIST:!VMS:FUNCTION:ENGINE
-ENGINE_get_ssl_client_cert_fn 4045 1_1_0 EXIST:VMS:FUNCTION:ENGINE
+ENGINE_set_load_ssl_client_cert_function 4044 1_1_0 EXIST::FUNCTION:ENGINE
+ENGINE_get_ssl_client_cert_function 4045 1_1_0 EXIST::FUNCTION:ENGINE
ENGINE_load_ssl_client_cert 4046 1_1_0 EXIST::FUNCTION:ENGINE
ENGINE_load_capi 4047 1_1_0 NOEXIST::FUNCTION:
OPENSSL_isservice 4048 1_1_0 EXIST::FUNCTION:
@@ -3729,8 +3662,7 @@ EVP_PKEY_set_type_str 4136 1_1_0 EXIST::FUNCTION:
EVP_PKEY_CTX_get_keygen_info 4137 1_1_0 EXIST::FUNCTION:
TS_REQ_set_policy_id 4138 1_1_0 EXIST::FUNCTION:
d2i_TS_RESP_fp 4139 1_1_0 EXIST::FUNCTION:STDIO
-ENGINE_get_pkey_asn1_meth_engine 4140 1_1_0 EXIST:!VMS:FUNCTION:ENGINE
-ENGINE_get_pkey_asn1_meth_eng 4140 1_1_0 EXIST:VMS:FUNCTION:ENGINE
+ENGINE_get_pkey_asn1_meth_engine 4140 1_1_0 EXIST::FUNCTION:ENGINE
WHIRLPOOL_Init 4141 1_1_0 EXIST::FUNCTION:WHIRLPOOL
TS_RESP_set_status_info 4142 1_1_0 EXIST::FUNCTION:
EVP_PKEY_keygen 4143 1_1_0 EXIST::FUNCTION:
@@ -3784,8 +3716,7 @@ PEM_write_bio_PKCS7_stream 4189 1_1_0 EXIST::FUNCTION:
TS_MSG_IMPRINT_print_bio 4190 1_1_0 EXIST::FUNCTION:
BN_asc2bn 4191 1_1_0 EXIST::FUNCTION:
TS_REQ_get_policy_id 4192 1_1_0 EXIST::FUNCTION:
-ENGINE_set_default_pkey_asn1_meths 4193 1_1_0 EXIST:!VMS:FUNCTION:ENGINE
-ENGINE_set_def_pkey_asn1_meths 4193 1_1_0 EXIST:VMS:FUNCTION:ENGINE
+ENGINE_set_default_pkey_asn1_meths 4193 1_1_0 EXIST::FUNCTION:ENGINE
d2i_TS_ACCURACY 4194 1_1_0 EXIST::FUNCTION:
DSO_global_lookup 4195 1_1_0 EXIST::FUNCTION:
TS_CONF_set_tsa_name 4196 1_1_0 EXIST::FUNCTION:
@@ -3862,8 +3793,7 @@ d2i_ESS_ISSUER_SERIAL 4265 1_1_0 EXIST::FUNCTION:
ISSUING_DIST_POINT_new 4266 1_1_0 EXIST::FUNCTION:
ASN1_TIME_adj 4267 1_1_0 EXIST::FUNCTION:
TS_OBJ_print_bio 4268 1_1_0 EXIST::FUNCTION:
-EVP_PKEY_meth_set_verify_recover 4269 1_1_0 EXIST:!VMS:FUNCTION:
-EVP_PKEY_meth_set_vrfy_recover 4269 1_1_0 EXIST:VMS:FUNCTION:
+EVP_PKEY_meth_set_verify_recover 4269 1_1_0 EXIST::FUNCTION:
TS_RESP_get_status_info 4270 1_1_0 EXIST::FUNCTION:
CMS_stream 4271 1_1_0 EXIST::FUNCTION:CMS
EVP_PKEY_CTX_set_cb 4272 1_1_0 EXIST::FUNCTION:
@@ -3962,8 +3892,7 @@ i2d_ESS_CERT_ID 4364 1_1_0 EXIST::FUNCTION:
TS_VERIFY_CTX_new 4365 1_1_0 EXIST::FUNCTION:
TS_RESP_CTX_set_extension_cb 4366 1_1_0 EXIST::FUNCTION:
ENGINE_register_all_pkey_meths 4367 1_1_0 EXIST::FUNCTION:ENGINE
-TS_RESP_CTX_set_status_info_cond 4368 1_1_0 EXIST:!VMS:FUNCTION:
-TS_RESP_CTX_set_stat_info_cond 4368 1_1_0 EXIST:VMS:FUNCTION:
+TS_RESP_CTX_set_status_info_cond 4368 1_1_0 EXIST::FUNCTION:
EVP_PKEY_verify 4369 1_1_0 EXIST::FUNCTION:
WHIRLPOOL_Final 4370 1_1_0 EXIST::FUNCTION:WHIRLPOOL
X509_CRL_METHOD_new 4371 1_1_0 EXIST::FUNCTION:
@@ -3993,8 +3922,7 @@ TS_CONF_set_signer_key 4394 1_1_0 EXIST::FUNCTION:
TS_ACCURACY_get_millis 4395 1_1_0 EXIST::FUNCTION:
TS_RESP_get_token 4396 1_1_0 EXIST::FUNCTION:
TS_ACCURACY_dup 4397 1_1_0 EXIST::FUNCTION:
-ENGINE_register_all_pkey_asn1_meths 4398 1_1_0 EXIST:!VMS:FUNCTION:ENGINE
-ENGINE_reg_all_pkey_asn1_meths 4398 1_1_0 EXIST:VMS:FUNCTION:ENGINE
+ENGINE_register_all_pkey_asn1_meths 4398 1_1_0 EXIST::FUNCTION:ENGINE
X509_CRL_set_default_method 4399 1_1_0 EXIST::FUNCTION:
CRYPTO_THREADID_hash 4400 1_1_0 EXIST::FUNCTION:
CMS_ContentInfo_print_ctx 4401 1_1_0 EXIST::FUNCTION:CMS
@@ -4059,8 +3987,7 @@ BIO_asn1_get_suffix 4458 1_1_0 EXIST::FUNCTION:
TS_REQ_free 4459 1_1_0 EXIST::FUNCTION:
EVP_PKEY_meth_free 4460 1_1_0 EXIST::FUNCTION:
TS_REQ_get_exts 4461 1_1_0 EXIST::FUNCTION:
-TS_RESP_CTX_set_clock_precision_digits 4462 1_1_0 EXIST:!VMS:FUNCTION:
-TS_RESP_CTX_set_clk_prec_digits 4462 1_1_0 EXIST:VMS:FUNCTION:
+TS_RESP_CTX_set_clock_precision_digits 4462 1_1_0 EXIST::FUNCTION:
TS_RESP_CTX_add_failure_info 4463 1_1_0 EXIST::FUNCTION:
i2d_TS_RESP_bio 4464 1_1_0 EXIST::FUNCTION:
EVP_PKEY_CTX_get0_peerkey 4465 1_1_0 EXIST::FUNCTION:
@@ -4088,16 +4015,14 @@ TS_ACCURACY_free 4486 1_1_0 EXIST::FUNCTION:
TS_RESP_get_tst_info 4487 1_1_0 EXIST::FUNCTION:
EVP_PKEY_derive_set_peer 4488 1_1_0 EXIST::FUNCTION:
PEM_read_bio_Parameters 4489 1_1_0 EXIST::FUNCTION:
-TS_CONF_set_clock_precision_digits 4490 1_1_0 EXIST:!VMS:FUNCTION:
-TS_CONF_set_clk_prec_digits 4490 1_1_0 EXIST:VMS:FUNCTION:
+TS_CONF_set_clock_precision_digits 4490 1_1_0 EXIST::FUNCTION:
ESS_ISSUER_SERIAL_dup 4491 1_1_0 EXIST::FUNCTION:
TS_ACCURACY_get_micros 4492 1_1_0 EXIST::FUNCTION:
ASN1_PCTX_get_str_flags 4493 1_1_0 EXIST::FUNCTION:
NAME_CONSTRAINTS_check 4494 1_1_0 EXIST::FUNCTION:
ASN1_BIT_STRING_check 4495 1_1_0 EXIST::FUNCTION:
X509_check_akid 4496 1_1_0 EXIST::FUNCTION:
-ENGINE_unregister_pkey_asn1_meths 4497 1_1_0 EXIST:!VMS:FUNCTION:ENGINE
-ENGINE_unreg_pkey_asn1_meths 4497 1_1_0 EXIST:VMS:FUNCTION:ENGINE
+ENGINE_unregister_pkey_asn1_meths 4497 1_1_0 EXIST::FUNCTION:ENGINE
ASN1_PCTX_free 4498 1_1_0 EXIST::FUNCTION:
PEM_write_bio_ASN1_stream 4499 1_1_0 EXIST::FUNCTION:
i2d_ASN1_bio_stream 4500 1_1_0 EXIST::FUNCTION:
@@ -4146,15 +4071,12 @@ OCSP_REQ_CTX_set1_req 4542 1_1_0 EXIST::FUNCTION:
X509_STORE_set_verify_cb 4543 1_1_0 EXIST::FUNCTION:
X509_STORE_CTX_get0_current_crl 4544 1_1_0 EXIST::FUNCTION:
X509_STORE_CTX_get0_parent_ctx 4545 1_1_0 EXIST::FUNCTION:
-X509_STORE_CTX_get0_current_issuer 4546 1_1_0 EXIST:!VMS:FUNCTION:
-X509_STORE_CTX_get0_cur_issuer 4546 1_1_0 EXIST:VMS:FUNCTION:
+X509_STORE_CTX_get0_current_issuer 4546 1_1_0 EXIST::FUNCTION:
X509_issuer_name_hash_old 4547 1_1_0 EXIST::FUNCTION:MD5
X509_subject_name_hash_old 4548 1_1_0 EXIST::FUNCTION:MD5
EVP_CIPHER_CTX_copy 4549 1_1_0 EXIST::FUNCTION:
-UI_method_get_prompt_constructor 4550 1_1_0 EXIST:!VMS:FUNCTION:
-UI_method_get_prompt_constructr 4550 1_1_0 EXIST:VMS:FUNCTION:
-UI_method_set_prompt_constructor 4551 1_1_0 EXIST:!VMS:FUNCTION:
-UI_method_set_prompt_constructr 4551 1_1_0 EXIST:VMS:FUNCTION:
+UI_method_get_prompt_constructor 4550 1_1_0 EXIST::FUNCTION:
+UI_method_set_prompt_constructor 4551 1_1_0 EXIST::FUNCTION:
EVP_read_pw_string_min 4552 1_1_0 EXIST::FUNCTION:
CRYPTO_cts128_encrypt 4553 1_1_0 EXIST::FUNCTION:
CRYPTO_cts128_decrypt_block 4554 1_1_0 EXIST::FUNCTION:
@@ -4188,8 +4110,7 @@ SRP_Calc_A 4581 1_1_0 EXIST::FUNCTION:SRP
SRP_Verify_A_mod_N 4582 1_1_0 EXIST::FUNCTION:SRP
SRP_VBASE_init 4583 1_1_0 EXIST::FUNCTION:SRP
SRP_Verify_B_mod_N 4584 1_1_0 EXIST::FUNCTION:SRP
-EC_KEY_set_public_key_affine_coordinates 4585 1_1_0 EXIST:!VMS:FUNCTION:EC
-EC_KEY_set_pub_key_aff_coords 4585 1_1_0 EXIST:VMS:FUNCTION:EC
+EC_KEY_set_public_key_affine_coordinates 4585 1_1_0 EXIST::FUNCTION:EC
EVP_aes_192_ctr 4586 1_1_0 EXIST::FUNCTION:AES
EVP_PKEY_meth_get0_info 4587 1_1_0 EXIST::FUNCTION:
EVP_PKEY_meth_copy 4588 1_1_0 EXIST::FUNCTION:
@@ -4333,15 +4254,13 @@ CMS_RecipientInfo_kari_decrypt 4724 1_1_0 EXIST::FUNCTION:CMS
CMS_SignerInfo_get0_pkey_ctx 4725 1_1_0 EXIST::FUNCTION:CMS
ECDSA_METHOD_set_flags 4726 1_1_0 NOEXIST::FUNCTION:
ECDSA_METHOD_set_sign_setup 4727 1_1_0 NOEXIST::FUNCTION:
-CMS_RecipientInfo_kari_orig_id_cmp 4728 1_1_0 EXIST:!VMS:FUNCTION:CMS
-CMS_RecipInfo_kari_orig_id_cmp 4728 1_1_0 EXIST:VMS:FUNCTION:CMS
+CMS_RecipientInfo_kari_orig_id_cmp 4728 1_1_0 EXIST::FUNCTION:CMS
CMS_RecipientInfo_kari_get0_alg 4729 1_1_0 EXIST::FUNCTION:CMS
EVP_aes_192_wrap 4730 1_1_0 EXIST::FUNCTION:AES
EVP_aes_128_cbc_hmac_sha256 4731 1_1_0 EXIST::FUNCTION:AES
DH_compute_key_padded 4732 1_1_0 EXIST::FUNCTION:DH
ECDSA_METHOD_set_sign 4733 1_1_0 NOEXIST::FUNCTION:
-CMS_RecipientEncryptedKey_cert_cmp 4734 1_1_0 EXIST:!VMS:FUNCTION:CMS
-CMS_RecipEncryptedKey_cert_cmp 4734 1_1_0 EXIST:VMS:FUNCTION:CMS
+CMS_RecipientEncryptedKey_cert_cmp 4734 1_1_0 EXIST::FUNCTION:CMS
DH_KDF_X9_42 4735 1_1_0 EXIST::FUNCTION:CMS,DH
RSA_OAEP_PARAMS_free 4736 1_1_0 EXIST::FUNCTION:RSA
EVP_des_ede3_wrap 4737 1_1_0 EXIST::FUNCTION:DES
@@ -4350,29 +4269,23 @@ RSA_OAEP_PARAMS_it 4738 1_1_0 EXIST:EXPORT_VAR_AS_FUNCTION:
ASN1_TIME_diff 4739 1_1_0 EXIST::FUNCTION:
EVP_aes_256_cbc_hmac_sha256 4740 1_1_0 EXIST::FUNCTION:AES
CMS_SignerInfo_get0_signature 4741 1_1_0 EXIST::FUNCTION:CMS
-CMS_RecipientInfo_kari_get0_reks 4742 1_1_0 EXIST:!VMS:FUNCTION:CMS
-CMS_RecipInfo_kari_get0_reks 4742 1_1_0 EXIST:VMS:FUNCTION:CMS
+CMS_RecipientInfo_kari_get0_reks 4742 1_1_0 EXIST::FUNCTION:CMS
EVP_aes_128_wrap 4743 1_1_0 EXIST::FUNCTION:AES
CMS_SignerInfo_get0_md_ctx 4744 1_1_0 EXIST::FUNCTION:CMS
OPENSSL_gmtime_diff 4745 1_1_0 EXIST::FUNCTION:
-CMS_RecipientInfo_kari_set0_pkey 4746 1_1_0 EXIST:!VMS:FUNCTION:CMS
-CMS_RecipInfo_kari_set0_pkey 4746 1_1_0 EXIST:VMS:FUNCTION:CMS
+CMS_RecipientInfo_kari_set0_pkey 4746 1_1_0 EXIST::FUNCTION:CMS
i2d_RSA_OAEP_PARAMS 4747 1_1_0 EXIST::FUNCTION:RSA
d2i_RSA_OAEP_PARAMS 4748 1_1_0 EXIST::FUNCTION:RSA
ECDH_KDF_X9_62 4749 1_1_0 EXIST::FUNCTION:EC
CMS_RecipientInfo_kari_get0_ctx 4750 1_1_0 EXIST::FUNCTION:CMS
ECDSA_METHOD_new 4751 1_1_0 NOEXIST::FUNCTION:
CMS_RecipientInfo_get0_pkey_ctx 4752 1_1_0 EXIST::FUNCTION:CMS
-CMS_RecipientEncryptedKey_get0_id 4753 1_1_0 EXIST:!VMS:FUNCTION:CMS
-CMS_RecipEncryptedKey_get0_id 4753 1_1_0 EXIST:VMS:FUNCTION:CMS
-RSA_pad_check_PKCS1_OAEP_mgf1 4754 1_1_0 NOEXIST::FUNCTION:
-RSA_padding_check_PKCS1_OAEP_mgf1 4754 1_1_0 EXIST:!VMS:FUNCTION:RSA
-RSA_padding_chk_PKCS1_OAEP_mgf1 4754 1_1_0 EXIST:VMS:FUNCTION:RSA
+CMS_RecipientEncryptedKey_get0_id 4753 1_1_0 EXIST::FUNCTION:CMS
+RSA_padding_check_PKCS1_OAEP_mgf1 4754 1_1_0 EXIST::FUNCTION:RSA
ECDSA_METHOD_set_verify 4755 1_1_0 NOEXIST::FUNCTION:
CMS_SharedInfo_encode 4756 1_1_0 EXIST::FUNCTION:CMS
RSA_padding_add_PKCS1_OAEP_mgf1 4757 1_1_0 EXIST::FUNCTION:RSA
-CMS_RecipientInfo_kari_get0_orig_id 4758 1_1_0 EXIST:!VMS:FUNCTION:CMS
-CMS_RecipInfo_kari_get0_orig_id 4758 1_1_0 EXIST:VMS:FUNCTION:CMS
+CMS_RecipientInfo_kari_get0_orig_id 4758 1_1_0 EXIST::FUNCTION:CMS
ECDSA_METHOD_free 4759 1_1_0 NOEXIST::FUNCTION:
X509_VERIFY_PARAM_get_count 4760 1_1_0 EXIST::FUNCTION:
X509_VERIFY_PARAM_get0_name 4761 1_1_0 EXIST::FUNCTION:
diff --git a/util/mkdef.pl b/util/mkdef.pl
index ff68d86..aa85ec8 100755
--- a/util/mkdef.pl
+++ b/util/mkdef.pl
@@ -1225,12 +1225,8 @@ EOF
}
elsif ($VMS)
{
- my $libref = $name eq "ssl" ? "LIBCRYPTO.EXE /SHARE" : "";
print OUT <<"EOF";
-IDENTIFICATION="V$version"
CASE_SENSITIVE=YES
-LIB$libname.OLB /LIBRARY
-$libref
SYMBOL_VECTOR=(-
EOF
$symvtextcount = 16; # length of "SYMBOL_VECTOR=(-"
@@ -1297,34 +1293,35 @@ EOF
print OUT " $s2;\n";
} elsif ($VMS) {
while(++$prevnum < $n) {
- my $symline="SPARE, SPARE -";
- if ($symvtextcount + length($symline) + 1 > 1024) {
+ my $symline=" ,SPARE -\n ,SPARE -\n";
+ if ($symvtextcount + length($symline) - 2 > 1024) {
print OUT ")\nSYMBOL_VECTOR=(-\n";
$symvtextcount = 16; # length of "SYMBOL_VECTOR=(-"
}
- if ($symvtextcount > 16) {
- $symline = ",".$symline;
+ if ($symvtextcount == 16) {
+ # Take away first comma
+ $symline =~ s/,//;
}
- print OUT " $symline\n";
- $symvtextcount += length($symline);
+ print OUT $symline;
+ $symvtextcount += length($symline) - 2;
}
(my $s_uc = $s) =~ tr/a-z/A-Z/;
my $symtype=
$v ? "DATA" : "PROCEDURE";
my $symline=
($s_uc ne $s
- ? "$s_uc/$s=$symtype, $s=$symtype"
- : "$s=$symtype, SPARE")
- ." -";
- if ($symvtextcount + length($symline) + 1 > 1024) {
+ ? " ,$s_uc/$s=$symtype -\n ,$s=$symtype -\n"
+ : " ,$s=$symtype -\n ,SPARE -\n");
+ if ($symvtextcount + length($symline) - 2 > 1024) {
print OUT ")\nSYMBOL_VECTOR=(-\n";
$symvtextcount = 16; # length of "SYMBOL_VECTOR=(-"
}
- if ($symvtextcount > 16) {
- $symline = ",".$symline;
+ if ($symvtextcount == 16) {
+ # Take away first comma
+ $symline =~ s/,//;
}
- print OUT " $symline\n";
- $symvtextcount += length($symline);
+ print OUT $symline;
+ $symvtextcount += length($symline) - 2;
} elsif($v && !$OS2) {
printf OUT " %s%-39s @%-8d DATA\n",
($W32)?"":"_",$s2,$n;
diff --git a/util/ssleay.num b/util/ssleay.num
index 3d1a34b..6e339f6 100755
--- a/util/ssleay.num
+++ b/util/ssleay.num
@@ -126,8 +126,7 @@ SSL_SESSION_set_timeout 137 1_1_0 EXIST::FUNCTION:
SSL_CTX_get_ex_data 138 1_1_0 EXIST::FUNCTION:
SSL_CTX_get_quiet_shutdown 140 1_1_0 EXIST::FUNCTION:
SSL_CTX_load_verify_locations 141 1_1_0 EXIST::FUNCTION:
-SSL_CTX_set_default_verify_paths 142 1_1_0 EXIST:!VMS:FUNCTION:
-SSL_CTX_set_def_verify_paths 142 1_1_0 EXIST:VMS:FUNCTION:
+SSL_CTX_set_default_verify_paths 142 1_1_0 EXIST::FUNCTION:
SSL_CTX_set_ex_data 143 1_1_0 EXIST::FUNCTION:
SSL_CTX_set_quiet_shutdown 145 1_1_0 EXIST::FUNCTION:
SSL_SESSION_get_ex_data 146 1_1_0 EXIST::FUNCTION:
@@ -154,8 +153,7 @@ TLSv1_server_method 171 1_1_0 EXIST::FUNCTION:
TLSv1_client_method 172 1_1_0 EXIST::FUNCTION:
BIO_new_buffer_ssl_connect 173 1_1_0 EXIST::FUNCTION:
BIO_new_ssl_connect 174 1_1_0 EXIST::FUNCTION:
-SSL_get_ex_data_X509_STORE_CTX_idx 175 1_1_0 EXIST:!VMS:FUNCTION:
-SSL_get_ex_d_X509_STORE_CTX_idx 175 1_1_0 EXIST:VMS:FUNCTION:
+SSL_get_ex_data_X509_STORE_CTX_idx 175 1_1_0 EXIST::FUNCTION:
SSL_CTX_set_tmp_dh_callback 176 1_1_0 EXIST::FUNCTION:DH
SSL_CTX_set_tmp_rsa_callback 177 1_1_0 NOEXIST::FUNCTION:
SSL_CTX_set_timeout 178 1_1_0 EXIST::FUNCTION:
@@ -165,25 +163,20 @@ SSL_CTX_set_cert_store 181 1_1_0 EXIST::FUNCTION:
SSL_want 182 1_1_0 EXIST::FUNCTION:
SSL_library_init 183 1_1_0 NOEXIST::FUNCTION:
SSL_COMP_add_compression_method 184 1_1_0 EXIST::FUNCTION:
-SSL_add_file_cert_subjects_to_stack 185 1_1_0 EXIST:!VMS:FUNCTION:
-SSL_add_file_cert_subjs_to_stk 185 1_1_0 EXIST:VMS:FUNCTION:
+SSL_add_file_cert_subjects_to_stack 185 1_1_0 EXIST::FUNCTION:
SSL_set_tmp_rsa_callback 186 1_1_0 NOEXIST::FUNCTION:
SSL_set_tmp_dh_callback 187 1_1_0 EXIST::FUNCTION:DH
-SSL_add_dir_cert_subjects_to_stack 188 1_1_0 EXIST:!VMS:FUNCTION:
-SSL_add_dir_cert_subjs_to_stk 188 1_1_0 EXIST:VMS:FUNCTION:
+SSL_add_dir_cert_subjects_to_stack 188 1_1_0 EXIST::FUNCTION:
SSL_set_session_id_context 189 1_1_0 EXIST::FUNCTION:
-SSL_CTX_use_certificate_chain_file 222 1_1_0 EXIST:!VMS:FUNCTION:
-SSL_CTX_use_cert_chain_file 222 1_1_0 EXIST:VMS:FUNCTION:
+SSL_CTX_use_certificate_chain_file 222 1_1_0 EXIST::FUNCTION:
SSL_CTX_set_verify_depth 225 1_1_0 EXIST::FUNCTION:
SSL_set_verify_depth 226 1_1_0 EXIST::FUNCTION:
SSL_CTX_get_verify_depth 228 1_1_0 EXIST::FUNCTION:
SSL_get_verify_depth 229 1_1_0 EXIST::FUNCTION:
SSL_CTX_set_session_id_context 231 1_1_0 EXIST::FUNCTION:
-SSL_CTX_set_cert_verify_callback 232 1_1_0 EXIST:!VMS:FUNCTION:
-SSL_CTX_set_cert_verify_cb 232 1_1_0 EXIST:VMS:FUNCTION:
+SSL_CTX_set_cert_verify_callback 232 1_1_0 EXIST::FUNCTION:
SSL_test_functions 233 1_1_0 EXIST::FUNCTION:UNIT_TEST
-SSL_CTX_set_default_passwd_cb_userdata 235 1_1_0 EXIST:!VMS:FUNCTION:
-SSL_CTX_set_def_passwd_cb_ud 235 1_1_0 EXIST:VMS:FUNCTION:
+SSL_CTX_set_default_passwd_cb_userdata 235 1_1_0 EXIST::FUNCTION:
SSL_set_purpose 236 1_1_0 EXIST::FUNCTION:
SSL_CTX_set_trust 237 1_1_0 EXIST::FUNCTION:
SSL_CTX_set_purpose 238 1_1_0 EXIST::FUNCTION:
@@ -224,8 +217,7 @@ SSL_get_current_compression 272 1_1_0 EXIST::FUNCTION:
DTLSv1_method 273 1_1_0 EXIST::FUNCTION:
SSL_get_current_expansion 274 1_1_0 EXIST::FUNCTION:
DTLSv1_server_method 275 1_1_0 EXIST::FUNCTION:
-SSL_COMP_get_compression_methods 276 1_1_0 EXIST:!VMS:FUNCTION:
-SSL_COMP_get_compress_methods 276 1_1_0 EXIST:VMS:FUNCTION:
+SSL_COMP_get_compression_methods 276 1_1_0 EXIST::FUNCTION:
SSL_SESSION_get_id 277 1_1_0 EXIST::FUNCTION:
SSL_CTX_sess_set_new_cb 278 1_1_0 EXIST::FUNCTION:
SSL_CTX_sess_get_get_cb 279 1_1_0 EXIST::FUNCTION:
@@ -265,11 +257,9 @@ SSL_renegotiate_abbreviated 312 1_1_0 EXIST::FUNCTION:
TLSv1_1_method 313 1_1_0 EXIST::FUNCTION:
TLSv1_1_client_method 314 1_1_0 EXIST::FUNCTION:
TLSv1_1_server_method 315 1_1_0 EXIST::FUNCTION:
-SSL_CTX_set_srp_client_pwd_callback 316 1_1_0 EXIST:!VMS:FUNCTION:SRP
-SSL_CTX_set_srp_client_pwd_cb 316 1_1_0 EXIST:VMS:FUNCTION:SRP
+SSL_CTX_set_srp_client_pwd_callback 316 1_1_0 EXIST::FUNCTION:SRP
SSL_get_srp_g 317 1_1_0 EXIST::FUNCTION:SRP
-SSL_CTX_set_srp_username_callback 318 1_1_0 EXIST:!VMS:FUNCTION:SRP
-SSL_CTX_set_srp_un_cb 318 1_1_0 EXIST:VMS:FUNCTION:SRP
+SSL_CTX_set_srp_username_callback 318 1_1_0 EXIST::FUNCTION:SRP
SSL_get_srp_userinfo 319 1_1_0 EXIST::FUNCTION:SRP
SSL_set_srp_server_param 320 1_1_0 EXIST::FUNCTION:SRP
SSL_set_srp_server_param_pw 321 1_1_0 EXIST::FUNCTION:SRP
@@ -277,22 +267,17 @@ SSL_get_srp_N 322 1_1_0 EXIST::FUNCTION:SRP
SSL_get_srp_username 323 1_1_0 EXIST::FUNCTION:SRP
SSL_CTX_set_srp_password 324 1_1_0 EXIST::FUNCTION:SRP
SSL_CTX_set_srp_strength 325 1_1_0 EXIST::FUNCTION:SRP
-SSL_CTX_set_srp_verify_param_callback 326 1_1_0 EXIST:!VMS:FUNCTION:SRP
-SSL_CTX_set_srp_vfy_param_cb 326 1_1_0 EXIST:VMS:FUNCTION:SRP
-SSL_CTX_set_srp_miss_srp_un_cb 327 1_1_0 NOEXIST::FUNCTION:
+SSL_CTX_set_srp_verify_param_callback 326 1_1_0 EXIST::FUNCTION:SRP
SSL_CTX_set_srp_missing_srp_username_callback 327 1_1_0 NOEXIST::FUNCTION:
SSL_CTX_set_srp_cb_arg 328 1_1_0 EXIST::FUNCTION:SRP
SSL_CTX_set_srp_username 329 1_1_0 EXIST::FUNCTION:SRP
SSL_CTX_SRP_CTX_init 330 1_1_0 EXIST::FUNCTION:SRP
SSL_SRP_CTX_init 331 1_1_0 EXIST::FUNCTION:SRP
SRP_Calc_A_param 332 1_1_0 EXIST::FUNCTION:SRP
-SRP_gen_server_master_secret 333 1_1_0 NOEXIST::FUNCTION:
SRP_generate_server_master_secret 333 1_1_0 NOEXIST::FUNCTION:
SSL_CTX_SRP_CTX_free 334 1_1_0 EXIST::FUNCTION:SRP
-SRP_gen_client_master_secret 335 1_1_0 NOEXIST::FUNCTION:
SRP_generate_client_master_secret 335 1_1_0 NOEXIST::FUNCTION:
-SSL_srp_server_param_with_username 336 1_1_0 EXIST:!VMS:FUNCTION:SRP
-SSL_srp_server_param_with_un 336 1_1_0 EXIST:VMS:FUNCTION:SRP
+SSL_srp_server_param_with_username 336 1_1_0 EXIST::FUNCTION:SRP
SRP_have_to_put_srp_username 337 1_1_0 NOEXIST::FUNCTION:
SSL_SRP_CTX_free 338 1_1_0 EXIST::FUNCTION:SRP
SSL_set_debug 339 1_1_0 EXIST::FUNCTION:DEPRECATEDIN_1_1_0
@@ -311,15 +296,13 @@ SSL_SESSION_get_id_len 351 1_1_0 NOEXIST::FUNCTION:
kssl_ctx_get0_client_princ 352 1_1_0 NOEXIST::FUNCTION:
SSL_export_keying_material 353 1_1_0 EXIST::FUNCTION:
SSL_set_tlsext_use_srtp 354 1_1_0 EXIST::FUNCTION:SRTP
-SSL_CTX_set_next_protos_advertised_cb 355 1_1_0 EXIST:!VMS:FUNCTION:NEXTPROTONEG
-SSL_CTX_set_next_protos_adv_cb 355 1_1_0 EXIST:VMS:FUNCTION:NEXTPROTONEG
+SSL_CTX_set_next_protos_advertised_cb 355 1_1_0 EXIST::FUNCTION:NEXTPROTONEG
SSL_get0_next_proto_negotiated 356 1_1_0 EXIST::FUNCTION:NEXTPROTONEG
SSL_get_selected_srtp_profile 357 1_1_0 EXIST::FUNCTION:SRTP
SSL_CTX_set_tlsext_use_srtp 358 1_1_0 EXIST::FUNCTION:SRTP
SSL_select_next_proto 359 1_1_0 EXIST::FUNCTION:
SSL_get_srtp_profiles 360 1_1_0 EXIST::FUNCTION:SRTP
-SSL_CTX_set_next_proto_select_cb 361 1_1_0 EXIST:!VMS:FUNCTION:NEXTPROTONEG
-SSL_CTX_set_next_proto_sel_cb 361 1_1_0 EXIST:VMS:FUNCTION:NEXTPROTONEG
+SSL_CTX_set_next_proto_select_cb 361 1_1_0 EXIST::FUNCTION:NEXTPROTONEG
SSL_SESSION_get_compress_id 362 1_1_0 EXIST::FUNCTION:
SSL_get0_param 363 1_1_0 EXIST::FUNCTION:
SSL_CTX_get0_privatekey 364 1_1_0 EXIST::FUNCTION:
@@ -333,8 +316,7 @@ SSL_CTX_set_srv_supp_data 371 1_1_0 NOEXIST::FUNCTION:
SSL_CONF_cmd_argv 372 1_1_0 EXIST::FUNCTION:
DTLSv1_2_server_method 373 1_1_0 EXIST::FUNCTION:
SSL_COMP_set0_compress_methods 374 1_1_0 NOEXIST::FUNCTION:
-SSL_COMP_set0_compression_methods 374 1_1_0 EXIST:!VMS:FUNCTION:
-SSL_COMP_set0_compr_methods 374 1_1_0 EXIST:VMS:FUNCTION:
+SSL_COMP_set0_compression_methods 374 1_1_0 EXIST::FUNCTION:
SSL_CTX_set_cert_cb 375 1_1_0 EXIST::FUNCTION:
SSL_CTX_add_client_custom_ext 376 1_1_0 EXIST::FUNCTION:
SSL_is_server 377 1_1_0 EXIST::FUNCTION:
@@ -367,21 +349,18 @@ DTLSv1_2_method 404 1_1_0 EXIST::FUNCTION:
DTLS_server_method 405 1_1_0 EXIST::FUNCTION:
SSL_CTX_use_serverinfo_file 406 1_1_0 EXIST::FUNCTION:
SSL_COMP_free_compress_methods 407 1_1_0 NOEXIST::FUNCTION:
-SSL_COMP_free_compression_methods 407 1_1_0 EXIST:!VMS:FUNCTION:
-SSL_COMP_free_compr_methods 407 1_1_0 EXIST:VMS:FUNCTION:
+SSL_COMP_free_compression_methods 407 1_1_0 EXIST::FUNCTION:
SSL_extension_supported 409 1_1_0 EXIST::FUNCTION:
SSL_CTX_get_security_callback 410 1_1_0 EXIST::FUNCTION:
SSL_SESSION_print_keylog 411 1_1_0 EXIST::FUNCTION:
-SSL_CTX_set_not_resumable_session_callback 412 1_1_0 EXIST:!VMS:FUNCTION:
-SSL_CTX_set_not_resumbl_sess_cb 412 1_1_0 EXIST:VMS:FUNCTION:
+SSL_CTX_set_not_resumable_session_callback 412 1_1_0 EXIST::FUNCTION:
SSL_get0_security_ex_data 413 1_1_0 EXIST::FUNCTION:
SSL_CTX_set_security_callback 414 1_1_0 EXIST::FUNCTION:
SSL_get1_supported_ciphers 415 1_1_0 EXIST::FUNCTION:
SSL_set_security_level 416 1_1_0 EXIST::FUNCTION:
SSL_set0_security_ex_data 417 1_1_0 EXIST::FUNCTION:
SSL_CTX_set_security_level 418 1_1_0 EXIST::FUNCTION:
-SSL_set_not_resumable_session_callback 419 1_1_0 EXIST:!VMS:FUNCTION:
-SSL_set_not_resumbl_sess_cb 419 1_1_0 EXIST:VMS:FUNCTION:
+SSL_set_not_resumable_session_callback 419 1_1_0 EXIST::FUNCTION:
SSL_get_security_callback 420 1_1_0 EXIST::FUNCTION:
SSL_get_security_level 421 1_1_0 EXIST::FUNCTION:
SSL_CTX_set0_security_ex_data 422 1_1_0 EXIST::FUNCTION:
More information about the openssl-commits
mailing list