diff options
author | Richard Levitte <levitte@openssl.org> | 2018-01-31 14:15:52 +0100 |
---|---|---|
committer | Richard Levitte <levitte@openssl.org> | 2018-01-31 23:45:12 +0100 |
commit | d6baf09fe0c9efe4fe87e16fed088b9ce2b4c3f1 (patch) | |
tree | e100416ad6f2ea885d930914c07646877f91a432 | |
parent | apps: Don't include progs.h in apps.h (diff) | |
download | openssl-d6baf09fe0c9efe4fe87e16fed088b9ce2b4c3f1.tar.xz openssl-d6baf09fe0c9efe4fe87e16fed088b9ce2b4c3f1.zip |
Apps: divide the modules in direct command modules, support library and init
Most modules are direct implementations of openssl application
sub-commands, but some constitute a support library, which can be used
by more than one program (and is, incidently, by test/uitest).
For practical purposes, we place the support library modules in a
private, static library.
Finally, there are some modules that don't have direct references in
the rest of the apps code, but are still crucial. See them as some
kind of extra crt0 or similar for your platform.
Inspiration from David von Oheimb
Reviewed-by: Rich Salz <rsalz@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/5222)
-rw-r--r-- | Configurations/00-base-templates.conf | 3 | ||||
-rw-r--r-- | Configurations/10-main.conf | 3 | ||||
-rw-r--r-- | Configurations/README | 10 | ||||
-rw-r--r-- | Configurations/windows-checker.pm | 2 | ||||
-rw-r--r-- | apps/build.info | 28 |
5 files changed, 30 insertions, 16 deletions
diff --git a/Configurations/00-base-templates.conf b/Configurations/00-base-templates.conf index 72cbde203f..0d0f8b8a7f 100644 --- a/Configurations/00-base-templates.conf +++ b/Configurations/00-base-templates.conf @@ -11,6 +11,7 @@ my %targets=( thread_defines => [], apps_aux_src => "", + apps_init_src => "", cpuid_asm_src => "mem_clr.c", uplink_aux_src => "", bn_asm_src => "bn_asm.c", @@ -134,7 +135,7 @@ my %targets=( uplink_common => { template => 1, - apps_aux_src => add("../ms/applink.c"), + apps_init_src => add("../ms/applink.c"), uplink_aux_src => add("../ms/uplink.c"), defines => add("OPENSSL_USE_APPLINK"), }, diff --git a/Configurations/10-main.conf b/Configurations/10-main.conf index 62fbb60f1e..70b01046e7 100644 --- a/Configurations/10-main.conf +++ b/Configurations/10-main.conf @@ -1852,7 +1852,8 @@ my %targets = ( dso_scheme => "vms", thread_scheme => "pthreads", - apps_aux_src => "vms_decc_init.c vms_term_sock.c", + apps_aux_src => "vms_term_sock.c", + apps_init_src => "vms_decc_init.c", }, "vms-alpha" => { diff --git a/Configurations/README b/Configurations/README index aa0c5fba8b..26cd0c6e44 100644 --- a/Configurations/README +++ b/Configurations/README @@ -212,8 +212,14 @@ 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. + apps_aux_src => Extra source to build apps/openssl and other + apps, as needed by the target and that can be + collected in a library. + apps_init_src => Init source to build apps/openssl and other + apps, as needed by the target. This code + cannot be placed in a library, as the rest + of the code isn't expected to link to it + explicitely. cpuid_asm_src => assembler implementation of cpuid code as well as OPENSSL_cleanse(). Default to mem_clr.c diff --git a/Configurations/windows-checker.pm b/Configurations/windows-checker.pm index de46fbc1df..4b7105df33 100644 --- a/Configurations/windows-checker.pm +++ b/Configurations/windows-checker.pm @@ -6,7 +6,7 @@ use Config; # we expect for the platform use File::Spec::Functions qw(:DEFAULT rel2abs); -if (rel2abs('.') !~ m|\\|) { +if (!$ENV{CONFIGURE_INSIST} && rel2abs('.') !~ m|\\|) { die <<EOF; ****************************************************************************** diff --git a/apps/build.info b/apps/build.info index 996e5a6cfa..4a36ab564a 100644 --- a/apps/build.info +++ b/apps/build.info @@ -1,21 +1,27 @@ {- our $tsget_name = $config{target} =~ /^(VC|vms)-/ ? "tsget.pl" : "tsget"; our @apps_openssl_src = - ( qw(openssl.c - asn1pars.c ca.c ciphers.c cms.c crl.c crl2p7.c dgst.c dhparam.c - dsa.c dsaparam.c ec.c ecparam.c enc.c engine.c errstr.c gendsa.c - genpkey.c genrsa.c nseq.c ocsp.c passwd.c pkcs12.c pkcs7.c pkcs8.c - pkey.c pkeyparam.c pkeyutl.c prime.c rand.c req.c rsa.c rsautl.c - 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 storeutl.c - apps.c opt.c s_cb.c s_socket.c - app_rand.c), - split(/\s+/, $target{apps_aux_src}) ); + qw(openssl.c + asn1pars.c ca.c ciphers.c cms.c crl.c crl2p7.c dgst.c dhparam.c + dsa.c dsaparam.c ec.c ecparam.c enc.c engine.c errstr.c gendsa.c + genpkey.c genrsa.c nseq.c ocsp.c passwd.c pkcs12.c pkcs7.c pkcs8.c + pkey.c pkeyparam.c pkeyutl.c prime.c rand.c req.c rsa.c rsautl.c + 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 storeutl.c); + our @apps_lib_src = + ( qw(apps.c opt.c s_cb.c s_socket.c app_rand.c), + split(/\s+/, $target{apps_aux_src}) ); + our @apps_init_src = split(/\s+/, $target{apps_init_src}); "" -} IF[{- !$disabled{apps} -}] + LIBS_NO_INST=libapps.a + SOURCE[libapps.a]={- join(" ", @apps_lib_src) -} + INCLUDE[libapps.a]=.. ../include + PROGRAMS=openssl + SOURCE[openssl]={- join(" ", @apps_init_src) -} SOURCE[openssl]={- join(" ", @apps_openssl_src) -} INCLUDE[openssl]=.. ../include - DEPEND[openssl]=../libssl + DEPEND[openssl]=libapps.a ../libssl {- join("\n ", map { (my $x = $_) =~ s|\.c$|.o|; "DEPEND[$x]=progs.h" } @apps_openssl_src) -} |