aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xconfigure.pl56
-rw-r--r--src/asn1/info.txt6
-rw-r--r--src/bigint/mp_amd64/info.txt2
-rw-r--r--src/bigint/mp_generic/info.txt2
-rw-r--r--src/cipher/serpent_ia32/info.txt4
-rw-r--r--src/core/info.txt3
-rw-r--r--src/pk/dlies/info.txt2
-rw-r--r--src/pk/pubkey/info.txt2
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