Commit d6baf09f authored by Richard Levitte's avatar Richard Levitte
Browse files

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: default avatarRich Salz <rsalz@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/5222)
parent dab2cd68
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -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"),
    },
+2 −1
Original line number Diff line number Diff line
@@ -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" => {
+8 −2
Original line number Diff line number Diff line
@@ -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
+1 −1
Original line number Diff line number Diff line
@@ -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;

******************************************************************************
+17 −11
Original line number Diff line number Diff line
{- our $tsget_name = $config{target} =~ /^(VC|vms)-/ ? "tsget.pl" : "tsget";
   our @apps_openssl_src =
       ( qw(openssl.c
       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),
          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) -}