diff options
-rwxr-xr-x | configure.pl | 56 | ||||
-rw-r--r-- | src/asn1/info.txt | 6 | ||||
-rw-r--r-- | src/bigint/mp_amd64/info.txt | 2 | ||||
-rw-r--r-- | src/bigint/mp_generic/info.txt | 2 | ||||
-rw-r--r-- | src/cipher/serpent_ia32/info.txt | 4 | ||||
-rw-r--r-- | src/core/info.txt | 3 | ||||
-rw-r--r-- | src/pk/dlies/info.txt | 2 | ||||
-rw-r--r-- | src/pk/pubkey/info.txt | 2 |
8 files changed, 47 insertions, 30 deletions
diff --git a/configure.pl b/configure.pl index b1f8a32a8..85d672cef 100755 --- a/configure.pl +++ b/configure.pl @@ -266,11 +266,12 @@ To set the compiler to use, or which OS or CPU to target, use: To change what modules to use: - --modules= - [$modules] + --enable-module(s)=[module list] - --disable-modules=module1[,module2[...]] - --disable-module=module1[,module2[...]] + --disable-module(s)=[module list] + +Known modules: + $modules To add a set of modules: --module-set=[$sets] @@ -436,6 +437,23 @@ sub autoload_modules { } } + my @to_enable; + + foreach my $req_mod (@{$modinfo{'requires'}}) { + print "Checking if $req_mod required by $mod is ok to use\n"; + + if(defined($$config{'modules'}{$req_mod})) { + if($$config{'modules'}{$req_mod} < 0) { + autoconfig("Disabling $mod since required module " . + "$req_mod is disabled"); + $$config{'modules'}{$mod} = -1; + next MOD; + } + } else { + push @to_enable, $req_mod; + } + } + my @arch_list = @{ $modinfo{'arch'} }; if(scalar @arch_list > 0 && !in_array($arch, \@arch_list) && @@ -471,24 +489,15 @@ sub autoload_modules { next; } - foreach my $req_mod (@{$modinfo{'requires'}}) { - if(defined($$config{'modules'}{$req_mod})) { - if($$config{'modules'}{$req_mod} < 0) { - autoconfig("Disabling $mod since required module " . - "$req_mod is disabled"); - $$config{'modules'}{$mod} = -1; - next MOD; - } - } else { - autoconfig("Enabling module $req_mod; " . - "required by $mod '$realname'"); + foreach my $req_mod (@to_enable) { + autoconfig("Enabling module $req_mod; " . + "required by $mod '$realname'"); - my $req_type = $MODULES{$req_mod}{'type'}; + my $req_type = $MODULES{$req_mod}{'type'}; - $loaded{$req_type}{$req_mod} = 1; - $$config{'modules'}{$req_mod} = 1; - load_module($config, $req_mod); - } + $loaded{$req_type}{$req_mod} = 1; + $$config{'modules'}{$req_mod} = 1; + load_module($config, $req_mod); } trace("Enabling $mod ($realname): loading"); @@ -615,13 +624,16 @@ sub get_options { 'make-style=s' => sub { &$save_option(@_); }, - 'module=s' => sub { add_modules($config, $_[1]); }, - 'modules=s' => sub { add_modules($config, $_[1]); }, 'module-set=s' => sub { add_module_sets($config, $_[1]); }, 'module-sets=s' => sub { add_module_sets($config, $_[1]); }, + 'enable-module=s' => sub { add_modules($config, $_[1]); }, + 'enable-modules=s' => sub { add_modules($config, $_[1]); }, 'disable-module=s' => sub { disable_modules($config, $_[1]); }, 'disable-modules=s' => sub { disable_modules($config, $_[1]); }, + + 'module=s' => sub { add_modules($config, $_[1]); }, + 'modules=s' => sub { add_modules($config, $_[1]); }, 'no-module=s' => sub { disable_modules($config, $_[1]); }, 'no-modules=s' => sub { disable_modules($config, $_[1]); }, diff --git a/src/asn1/info.txt b/src/asn1/info.txt index 5a200b473..4e561afc5 100644 --- a/src/asn1/info.txt +++ b/src/asn1/info.txt @@ -2,7 +2,11 @@ realname "ASN.1/BER/DER module" define ASN1 -load_on required +load_on request + +<requires> +bigint +</requires> <add> alg_id.cpp diff --git a/src/bigint/mp_amd64/info.txt b/src/bigint/mp_amd64/info.txt index 797d3833a..c177c2a27 100644 --- a/src/bigint/mp_amd64/info.txt +++ b/src/bigint/mp_amd64/info.txt @@ -2,7 +2,7 @@ realname "MPI Core (x86-64)" mp_bits 64 -load_on asm_ok +load_on request <add> mp_asm.h diff --git a/src/bigint/mp_generic/info.txt b/src/bigint/mp_generic/info.txt index 5ae824d6e..22c2140fb 100644 --- a/src/bigint/mp_generic/info.txt +++ b/src/bigint/mp_generic/info.txt @@ -2,6 +2,8 @@ realname "MPI Core (C++)" mp_bits 32 +load_on request + <add> mp_asm.h mp_asmi.h diff --git a/src/cipher/serpent_ia32/info.txt b/src/cipher/serpent_ia32/info.txt index 67f18beee..d6a29229d 100644 --- a/src/cipher/serpent_ia32/info.txt +++ b/src/cipher/serpent_ia32/info.txt @@ -10,10 +10,10 @@ serp_ia32.cpp serp_ia32.h </add> -<required> +<requires> asm_ia32 utils -</required> +</requires> <arch> ia32 diff --git a/src/core/info.txt b/src/core/info.txt index 802f5bcef..16f2a041f 100644 --- a/src/core/info.txt +++ b/src/core/info.txt @@ -9,11 +9,8 @@ aes sha1 sha2 hmac -bigint -math allocators filters -pubkey </requires> <add> diff --git a/src/pk/dlies/info.txt b/src/pk/dlies/info.txt index a1e24935a..1a09dcbc5 100644 --- a/src/pk/dlies/info.txt +++ b/src/pk/dlies/info.txt @@ -10,7 +10,7 @@ dlies.h </add> <requires> -asn1 +dh kdf2 pubkey </requires> diff --git a/src/pk/pubkey/info.txt b/src/pk/pubkey/info.txt index 05ff2bde0..ecb6ce2d1 100644 --- a/src/pk/pubkey/info.txt +++ b/src/pk/pubkey/info.txt @@ -2,6 +2,8 @@ realname "Public Key Base" define PUBKEY_BASE +load_on request + <requires> bigint math |