svn commit: samba r25617 - in branches/SAMBA_4_0: . source/build/smb_build

jelmer at samba.org jelmer at samba.org
Wed Oct 10 23:58:30 GMT 2007


Author: jelmer
Date: 2007-10-10 23:58:29 +0000 (Wed, 10 Oct 2007)
New Revision: 25617

WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=25617

Log:
Make sure system include paths come after samba include paths. Patch from Timur Bakeyev.
Modified:
   branches/SAMBA_4_0/
   branches/SAMBA_4_0/source/build/smb_build/cflags.pm


Changeset:

Property changes on: branches/SAMBA_4_0
___________________________________________________________________
Name: bzr:revision-info
...skipped...
Name: bzr:revision-id:v3-trunk0
...skipped...

Modified: branches/SAMBA_4_0/source/build/smb_build/cflags.pm
===================================================================
--- branches/SAMBA_4_0/source/build/smb_build/cflags.pm	2007-10-10 23:25:22 UTC (rev 25616)
+++ branches/SAMBA_4_0/source/build/smb_build/cflags.pm	2007-10-10 23:58:29 UTC (rev 25617)
@@ -6,8 +6,15 @@
 package cflags;
 use strict;
 
-sub create_cflags($$$$)
-{
+use sort 'stable';
+
+sub by_path {
+	return  1 if($a =~ m#^\-I/#);
+    	return -1 if($b =~ m#^\-I/#);
+	return  0;
+}
+
+sub create_cflags($$$$) {
 	my $CTX = shift;
 	my $srcdir = shift;
 	my $builddir = shift;
@@ -15,27 +22,29 @@
 
 	open(CFLAGS_TXT,">$file") || die ("Can't open `$file'\n");
 
-	my $src_ne_build = 0;
-	$src_ne_build = 1 unless ($srcdir eq $builddir);
+	my $src_ne_build = ($srcdir ne $builddir) ? 1 : 0;
 
 	foreach my $key (values %{$CTX}) {
 		next unless defined ($key->{OBJ_LIST});
-
 		next unless defined ($key->{FINAL_CFLAGS});
-		next unless ($#{$key->{FINAL_CFLAGS}} >= 0);
+		next unless (@{$key->{FINAL_CFLAGS}} > 0);
 
 		# Rewrite CFLAGS so that both the source and the build
 		# directories are in the path.
-		my $cflags = "";
-		foreach my $flag (@{$key->{FINAL_CFLAGS}}) {
-			my $dir;
-			if ($src_ne_build and ($dir) = ($flag =~ /^-I([^\/].*)$/)) {
-				$cflags .= " -I$builddir/$dir";
-				$cflags .= " -I$srcdir/$dir";
-			} else {
-				$cflags .= " $flag";
+		my @cflags = ();
+		foreach my $flag (sort by_path @{$key->{FINAL_CFLAGS}}) {
+			if($src_ne_build) {
+			        if($flag =~ m#^-I([^/].*$)#) {
+				        my $dir = $1;
+				        $dir =~ s#^\$\((?:src|build)dir\)/?##;
+					push(@cflags, "-I$builddir/$dir", "-I$srcdir/$dir");
+				        next;
+			        }
 			}
+			push(@cflags, $flag);
 		}
+		
+		my $cflags = join(' ', @cflags);
 
 		foreach (@{$key->{OBJ_LIST}}) {
 			my $ofile = $_;



More information about the samba-cvs mailing list