summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xsource4/build/smb_build/cflags.pm67
-rw-r--r--source4/build/smb_build/main.pl5
-rw-r--r--source4/build/smb_build/makefile.pm53
3 files changed, 54 insertions, 71 deletions
diff --git a/source4/build/smb_build/cflags.pm b/source4/build/smb_build/cflags.pm
deleted file mode 100755
index ad6cd42c65..0000000000
--- a/source4/build/smb_build/cflags.pm
+++ /dev/null
@@ -1,67 +0,0 @@
-# SMB Build System
-#
-# Copyright (C) Jelmer Vernooij 2006
-# Released under the GNU GPL
-
-package cflags;
-use strict;
-
-my $sort_available = eval "use sort 'stable'; return 1;";
-$sort_available = 0 unless defined($sort_available);
-
-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;
- my $file = shift;
-
- open(CFLAGS_TXT,">$file") || die ("Can't open `$file'\n");
-
- 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);
-
- my @sorted_cflags = @{$key->{FINAL_CFLAGS}};
- if ($sort_available) {
- @sorted_cflags = sort by_path @{$key->{FINAL_CFLAGS}};
- }
-
- # Rewrite CFLAGS so that both the source and the build
- # directories are in the path.
- my @cflags = ();
- foreach my $flag (@sorted_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 = $_;
- my $dfile = $_;
- $dfile =~ s/\.o$/.d/;
- $dfile =~ s/\.ho$/.d/;
- print CFLAGS_TXT "$ofile $dfile: CFLAGS+= $cflags\n";
- }
- }
- close(CFLAGS_TXT);
-
- print __FILE__.": creating $file\n";
-}
-1;
diff --git a/source4/build/smb_build/main.pl b/source4/build/smb_build/main.pl
index 14f334a6ea..7312749f28 100644
--- a/source4/build/smb_build/main.pl
+++ b/source4/build/smb_build/main.pl
@@ -10,7 +10,6 @@ use smb_build::header;
use smb_build::input;
use smb_build::config_mk;
use smb_build::output;
-use smb_build::cflags;
use smb_build::summary;
use smb_build::config;
use strict;
@@ -68,6 +67,7 @@ foreach my $key (values %$OUTPUT) {
grep(/SHARED_LIBRARY/, @{$key->{OUTPUT_TYPE}});
$mkenv->PythonFiles($key) if defined($key->{PYTHON_FILES});
$mkenv->ProtoHeader($key) if defined($key->{PRIVATE_PROTO_HEADER});
+ $mkenv->CFlags($key);
}
foreach my $key (values %$OUTPUT) {
@@ -84,9 +84,6 @@ foreach my $key (values %$OUTPUT) {
$mkenv->write("data.mk");
header::create_smb_build_h($OUTPUT, "include/build.h");
-cflags::create_cflags($OUTPUT, $config::config{srcdir},
- $config::config{builddir}, "extra_cflags.txt");
-
summary::show($OUTPUT, \%config::config);
print "To build Samba, run $config::config{MAKE}\n";
diff --git a/source4/build/smb_build/makefile.pm b/source4/build/smb_build/makefile.pm
index 9e728fa162..902e8f7f42 100644
--- a/source4/build/smb_build/makefile.pm
+++ b/source4/build/smb_build/makefile.pm
@@ -398,4 +398,57 @@ endif
print __FILE__.": creating $file\n";
}
+my $sort_available = eval "use sort 'stable'; return 1;";
+$sort_available = 0 unless defined($sort_available);
+
+sub by_path {
+ return 1 if($a =~ m#^\-I/#);
+ return -1 if($b =~ m#^\-I/#);
+ return 0;
+}
+
+sub CFlags($$)
+{
+ my ($self, $key) = @_;
+
+ my $srcdir = $self->{config}->{srcdir};
+ my $builddir = $self->{config}->{builddir};
+
+ my $src_ne_build = ($srcdir ne $builddir) ? 1 : 0;
+
+ return unless defined ($key->{OBJ_LIST});
+ return unless defined ($key->{FINAL_CFLAGS});
+ return unless (@{$key->{FINAL_CFLAGS}} > 0);
+
+ my @sorted_cflags = @{$key->{FINAL_CFLAGS}};
+ if ($sort_available) {
+ @sorted_cflags = sort by_path @{$key->{FINAL_CFLAGS}};
+ }
+
+ # Rewrite CFLAGS so that both the source and the build
+ # directories are in the path.
+ my @cflags = ();
+ foreach my $flag (@sorted_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 = $_;
+ my $dfile = $_;
+ $dfile =~ s/\.o$/.d/;
+ $dfile =~ s/\.ho$/.d/;
+ $self->output("$ofile $dfile: CFLAGS+= $cflags\n");
+ }
+}
+
1;