mirror of
https://github.com/OpenVPN/openvpn.git
synced 2025-05-08 21:25:53 +08:00

Added new settings to settings.in to better control build process. Removed some unneeded JYFIXMEs from source code. git-svn-id: http://svn.openvpn.net/projects/openvpn/branches/BETA21/openvpn@1874 e7ae566f-a301-0410-adde-c780ea21d3b5
54 lines
1.2 KiB
Perl
54 lines
1.2 KiB
Perl
#!/usr/bin/perl
|
|
|
|
# Simple ifdef/else/endif processor.
|
|
|
|
die "usage: ifdef [-C<command-prefix>] [-Dname ...] [control-file ...] " if (@ARGV[0] =~ /^(-h|--help)$/);
|
|
|
|
%Parms = ();
|
|
|
|
$pre = "!";
|
|
while ($arg=shift(@ARGV)) {
|
|
if ($arg =~ /^-/) {
|
|
if ($arg =~ /^-D(\w+)$/) {
|
|
$Parms{$1} = 1;
|
|
} elsif ($arg =~ /-C(.*)$/) {
|
|
$pre = $1;
|
|
} else {
|
|
die "unrecognized option: $arg";
|
|
}
|
|
} else {
|
|
open(CONTROL, "< $arg") or die "cannot open $arg";
|
|
while (<CONTROL>) {
|
|
if (/^!define\s+(\w+)/) {
|
|
$Parms{$1} = 1;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
sub ifdef {
|
|
my ($var, $enabled) = @_;
|
|
my $def = 0;
|
|
$def = 1 if (defined $Parms{$var}) || ($var eq "true");
|
|
$def = 0 if $var eq "false";
|
|
while (<STDIN>) {
|
|
if (/^\s*\Q$pre\Eifdef\s+(\w+)\s*$/) {
|
|
return 1 if ifdef ($1, $def & $enabled);
|
|
} elsif (/^\s*\Q$pre\Eelseif\s+(\w+)\s*$/) {
|
|
$def = $def ^ 1;
|
|
return ifdef ($1, $def & $enabled);
|
|
} elsif (/^\s*\Q$pre\Eelse\s*$/) {
|
|
$def = $def ^ 1;
|
|
} elsif (/^\s*\Q$pre\Eendif\s*$/) {
|
|
return 0;
|
|
} elsif (/^\s*\Q$pre\E/) {
|
|
die "unrecognized command: $_";
|
|
} else {
|
|
print if $def && $enabled;
|
|
}
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
ifdef("true", 1);
|