summaryrefslogtreecommitdiff
path: root/make/utilities.pm
diff options
context:
space:
mode:
Diffstat (limited to 'make/utilities.pm')
-rw-r--r--make/utilities.pm55
1 files changed, 55 insertions, 0 deletions
diff --git a/make/utilities.pm b/make/utilities.pm
index 9b52e4e94..8b8241e04 100644
--- a/make/utilities.pm
+++ b/make/utilities.pm
@@ -30,6 +30,7 @@ our @EXPORT = qw(make_rpath pkgconfig_get_include_dirs pkgconfig_get_lib_dirs pk
# \e[1;32msrc/Makefile\e[0m
my %already_added = ();
+my $if_skip_lines = 0;
sub promptstring($$$$$)
{
@@ -320,6 +321,60 @@ sub translate_functions($$)
{
die "Developers should no longer use backticks in configuration macros. Please use exec() and eval() macros instead. Offending line: $line (In module: $module)";
}
+
+ if ($line =~ /\$EndIf/)
+ {
+ if ($if_skip_lines == 1)
+ {
+ $if_skip_lines = 0;
+ return;
+ }
+ else
+ {
+ die "\$EndIf found when not in \$If/\$IfUname in $module";
+ }
+ }
+
+ if ($line =~ /\$Else/)
+ {
+ if ($if_skip_lines == 0)
+ {
+ $if_skip_lines = 1;
+ }
+ else
+ {
+ $if_skip_lines = 0;
+ }
+ return;
+ }
+
+ if ($if_skip_lines == 1)
+ {
+ return;
+ }
+
+ if ($line =~ /\$IfUname\s+(\w+)/)
+ {
+ my $uname = $1;
+ if ($uname ne $^O)
+ {
+ $if_skip_lines = 1;
+ return;
+ }
+ }
+
+ if ($line =~ /\$If:\s+(\w+)/)
+ {
+ if (defined $main::config{$1})
+ {
+ if (($main::config{$1} !~ /y/i) and ($main::config{$1} ne "1"))
+ {
+ $if_skip_lines = 1;
+ return;
+ }
+ }
+ }
+
while ($line =~ /exec\("(.+?)"\)/)
{
print "Executing program for module \e[1;32m$module\e[0m ... \e[1;32m$1\e[0m\n";