Use make variables in cflags file (now supported by cflags.pl)
authorJelmer Vernooij <jelmer@samba.org>
Mon, 11 Feb 2008 18:28:59 +0000 (19:28 +0100)
committerJelmer Vernooij <jelmer@samba.org>
Mon, 11 Feb 2008 18:28:59 +0000 (19:28 +0100)
(This used to be commit d746fcde1006b4b7b33aa65bef9d2fea3ebc9162)

source4/build/m4/public.m4
source4/script/cflags.pl

index e8fbe4b28659b888c8a24ce54de666811be2eb78..d045cf42b7415a8dd6ebded609a39485bf30051e 100644 (file)
@@ -33,7 +33,7 @@ SMB_INFO_SUBSYSTEMS="$SMB_INFO_SUBSYSTEMS
 @<:@SUBSYSTEM::$1@:>@
 OBJ_FILES = \$($1_OBJ_FILES)
 PRIVATE_DEPENDENCIES = $3
-CFLAGS = $4
+CFLAGS = \$($1_CFLAGS)
 ENABLE = YES
 # End Subsystem $1
 ###################################
@@ -58,7 +58,7 @@ OBJ_FILES = \$($1_OBJ_FILES)
 PRIVATE_DEPENDENCIES = $3
 VERSION = $4
 SO_VERSION = $5 
-CFLAGS = $6
+CFLAGS = \$($1_CFLAGS)
 LDFLAGS = \$($1_LDFLAGS)
 PC_NAME = $8
 ENABLE = YES
@@ -152,8 +152,8 @@ SMB_INFO_EXT_LIBS="$SMB_INFO_EXT_LIBS
 # Start Ext Lib $1
 @<:@EXT_LIB::$1@:>@
 LIBS = \$($1_LIBS)
-CFLAGS = $3
-CPPFLAGS = $4
+CFLAGS = \$($1_CFLAGS)
+CPPFLAGS = \$($1_CPPFLAGS)
 LDFLAGS = \$($1_LDFLAGS)
 PC_NAME = $6
 # End Ext Lib $1
index f083cefb392c5054a13b7716f496afe4e454dc3f..37b5aa7e71eca1475ffb458cf937c16982e9bb74 100755 (executable)
@@ -10,6 +10,7 @@ my $target = shift;
 
 my $vars = {};
 
+sub check_flags($$);
 sub check_flags($$)
 {
        my ($path, $name)=@_;
@@ -17,15 +18,18 @@ sub check_flags($$)
        foreach my $line (<IN>) {
                if ($line =~ /^include (.*)$/) {
                        check_flags($1, $name);
-               } elsif ($line =~ /^([A-Za-z0-9_]+) = (.*)$/) {
+               } elsif ($line =~ /^([A-Za-z0-9_]+) =(.*)$/) {
                        $vars->{$1} = $2;
                } elsif ($line =~ /^([^:]+): (.*)$/) {
                        next unless (grep(/^$target$/, (split / /, $1)));
                        my $data = $2;
                        $data =~ s/^CFLAGS\+=//;
-                       foreach (keys %$vars) {
-                               $data =~ s/\$($_)/$vars->{$_}/g;
+                       foreach my $key (keys %$vars) {
+                               my $val = $vars->{$key};
+                               $data =~ s/\$\($key\)/$val/g;
                        }
+                       # Remove undefined variables
+                       $data =~ s/\$\([A-Za-z0-9_]+\)//g;
                        print "$data ";
                }
        }