Add scripts to create "full" config.h

This commit is contained in:
Manuel Pégourié-Gonnard 2014-07-12 02:11:29 +02:00
parent 955028f858
commit bb3a7f2b20

71
scripts/config-full.pl Executable file
View file

@ -0,0 +1,71 @@
#!/usr/bin/perl
use warnings;
use strict;
# Things that shouldn't be enabled.
# Notes:
# - POLARSSL_X509_ALLOW_EXTENSIONS_NON_V3 and
# POLARSSL_X509_ALLOW_UNSUPPORTED_CRITICAL_EXTENSION could be enabled if the
# respective tests were adapted
my @excluded = qw(
POLARSSL_HAVE_INT8
POLARSSL_HAVE_INT16
POLARSSL_HAVE_SSE2
POLARSSL_PLATFORM_NO_STD_FUNCTIONS
POLARSSL_ECP_DP_M221_ENABLED
POLARSSL_ECP_DP_M383_ENABLED
POLARSSL_ECP_DP_M511_ENABLED
POLARSSL_NO_DEFAULT_ENTROPY_SOURCES
POLARSSL_NO_PLATFORM_ENTROPY
POLARSSL_SSL_HW_RECORD_ACCEL
POLARSSL_X509_ALLOW_EXTENSIONS_NON_V3
POLARSSL_X509_ALLOW_UNSUPPORTED_CRITICAL_EXTENSION
POLARSSL_ZLIB_SUPPORT
POLARSSL_PKCS11_C
_ALT\s*$
);
my $include_dir;
if( @ARGV ) {
die "Invalid number of arguments" if scalar @ARGV != 1;
($include_dir) = @ARGV;
-d $include_dir or die "No such directory: $include_dir\n";
} else {
$include_dir = 'include/polarssl';
unless( -d $include_dir ) {
chdir '..' or die;
-d $include_dir
or die "Without arguments, must be run from root or scripts\n"
}
}
my $config_file = "$include_dir/config.h";
open my $config_read, '<', $config_file or die "read $config_file: $!\n";
my @config_lines = <$config_read>;
close $config_read;
my $exclude_re = join '|', @excluded;
open my $config_write, '>', $config_file or die "write $config_file: $!\n";
my $done;
for my $line (@config_lines) {
if ($line =~ /name SECTION: Module configuration options/) {
$done = 1;
}
if (!$done && $line =~ m!^//\s?#define! && $line !~ /$exclude_re/) {
$line =~ s!^//!!;
}
print $config_write $line;
}
close $config_write;
__END__