summaryrefslogtreecommitdiff
path: root/source4
diff options
context:
space:
mode:
Diffstat (limited to 'source4')
-rwxr-xr-xsource4/build/smb_build/cflags.pm20
-rw-r--r--source4/build/smb_build/main.pl4
2 files changed, 20 insertions, 4 deletions
diff --git a/source4/build/smb_build/cflags.pm b/source4/build/smb_build/cflags.pm
index 71898a582b..7ce3ba3555 100755
--- a/source4/build/smb_build/cflags.pm
+++ b/source4/build/smb_build/cflags.pm
@@ -6,9 +6,12 @@
package cflags;
use strict;
-sub create_cflags($$)
+sub create_cflags($$$$)
{
- my ($CTX, $file) = @_;
+ my $CTX = shift;
+ my $srcdir = shift;
+ my $builddir = shift;
+ my $file = shift;
open(CFLAGS_TXT,">$file") || die ("Can't open `$file'\n");
@@ -18,7 +21,18 @@ sub create_cflags($$)
next unless defined ($key->{FINAL_CFLAGS});
next unless ($#{$key->{FINAL_CFLAGS}} >= 0);
- my $cflags = join(' ', @{$key->{FINAL_CFLAGS}});
+ # 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 (($dir) = ($flag =~ /^-I([^\/].*)$/)) {
+ $cflags .= " -I$builddir/$dir";
+ $cflags .= " -I$srcdir/$dir";
+ } else {
+ $cflags .= " $flag";
+ }
+ }
foreach (@{$key->{OBJ_LIST}}) {
my $ofile = $_;
diff --git a/source4/build/smb_build/main.pl b/source4/build/smb_build/main.pl
index 765944cae1..90d99668dd 100644
--- a/source4/build/smb_build/main.pl
+++ b/source4/build/smb_build/main.pl
@@ -71,7 +71,9 @@ foreach my $key (values %$OUTPUT) {
$mkenv->write("Makefile");
header::create_smb_build_h($OUTPUT, "include/build.h");
-cflags::create_cflags($OUTPUT, "extra_cflags.txt");
+cflags::create_cflags($OUTPUT, $config::config{srcdir},
+ $config::config{builddir}, "extra_cflags.txt");
+
summary::show($OUTPUT, \%config::config);