my $v = `pkg-config --modversion $packagename 2>/dev/null`;
my $ret = `pkg-config --cflags $packagename 2>/dev/null`;
my $foo = "";
-
if ((!defined $v) || ($v eq ""))
{
$foo = `locate "$headername" | head -n 1`;
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 ($line =~ /ifuname\(\!"(\w+)"\)/)
{
- 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
+ my $uname = $1;
+ if ($uname eq $^O)
{
- $if_skip_lines = 0;
+ $line = "";
+ return "";
}
- return;
- }
- if ($if_skip_lines == 1)
- {
- return;
+ $line =~ s/ifuname\(\!"(.+?)"\)//;
}
- if ($line =~ /\$IfUname\s+(\w+)/)
+ if ($line =~ /ifuname\("(\w+)"\)/)
{
my $uname = $1;
if ($uname ne $^O)
{
- $if_skip_lines = 1;
- return;
+ $line = "";
+ return "";
}
+
+ $line =~ s/ifuname\("(.+?)"\)//;
}
- if ($line =~ /\$If:\s+(\w+)/)
+ if ($line =~ /if\("(\w+)"\)/)
{
if (defined $main::config{$1})
{
if (($main::config{$1} !~ /y/i) and ($main::config{$1} ne "1"))
{
- $if_skip_lines = 1;
- return;
+ $line = "";
+ return "";
}
}
+
+ $line =~ s/if\("(.+?)"\)//;
}
+ if ($line =~ /if\(\!"(\w+)"\)/)
+ {
+ if (!exists $main::config{$1})
+ {
+ $line = "";
+ return "";
+ }
+ else
+ {
+ if (defined $1)
+ {
+ if (exists ($main::config{$1}) and (($main::config{$1} =~ /y/i) or ($main::config{$1} eq "1")))
+ {
+ $line = "";
+ return "";
+ }
+ }
+ }
+ $line =~ s/if\(\!"(.+?)"\)//;
+ }
while ($line =~ /exec\("(.+?)"\)/)
{
print "Executing program for module \e[1;32m$module\e[0m ... \e[1;32m$1\e[0m\n";
if ($@)
{
my $err = $@;
- $err =~ s/at .+? line \d+.*//g;
+ #$err =~ s/at .+? line \d+.*//g;
print "\n\nConfiguration failed. The following error occured:\n\n$err\n";
exit;
}