diff options
Diffstat (limited to 'source4')
-rw-r--r-- | source4/build/m4/env.m4 | 13 | ||||
-rw-r--r-- | source4/build/smb_build/config_mk.pm | 20 | ||||
-rw-r--r-- | source4/build/smb_build/env.pm | 9 | ||||
-rw-r--r-- | source4/build/smb_build/input.pm | 3 | ||||
-rw-r--r-- | source4/build/smb_build/main.pl | 2 | ||||
-rw-r--r-- | source4/build/smb_build/makefile.pm | 2 | ||||
-rw-r--r-- | source4/configure.in | 8 | ||||
-rw-r--r-- | source4/main.mk | 2 |
8 files changed, 37 insertions, 22 deletions
diff --git a/source4/build/m4/env.m4 b/source4/build/m4/env.m4 index f156bd34b9..c20160fdb5 100644 --- a/source4/build/m4/env.m4 +++ b/source4/build/m4/env.m4 @@ -7,10 +7,19 @@ dnl AC_CANONICAL_HOST -SMB_VERSION_STRING=`cat include/version.h | grep 'SAMBA_VERSION_OFFICIAL_STRING' | cut -d '"' -f2` +AC_SUBST(srcdir) +export srcdir; + +# we always set builddir to "." as that's nicer than +# having the absolute path of the current work directory +builddir=. +AC_SUBST(builddir) +export builddir; + +SMB_VERSION_STRING=`cat ${srcdir}/include/version.h | grep 'SAMBA_VERSION_OFFICIAL_STRING' | cut -d '"' -f2` echo "SAMBA VERSION: ${SMB_VERSION_STRING}" -SAMBA_VERSION_SVN_REVISION=`cat include/version.h | grep 'SAMBA_VERSION_SVN_REVISION' | cut -d ' ' -f3-` +SAMBA_VERSION_SVN_REVISION=`cat ${srcdir}/include/version.h | grep 'SAMBA_VERSION_SVN_REVISION' | cut -d ' ' -f3-` if test -n "${SAMBA_VERSION_SVN_REVISION}";then echo "BUILD REVISION: ${SAMBA_VERSION_SVN_REVISION}" fi diff --git a/source4/build/smb_build/config_mk.pm b/source4/build/smb_build/config_mk.pm index f5703d5b93..405298eef2 100644 --- a/source4/build/smb_build/config_mk.pm +++ b/source4/build/smb_build/config_mk.pm @@ -94,19 +94,19 @@ use vars qw(@parsed_files); # # $filename - the path of the config.mk file # which should be parsed -sub run_config_mk($$) +sub run_config_mk($$$) { - sub run_config_mk($$); - my ($input, $filename) = @_; + sub run_config_mk($$$); + my ($input, $srcdir, $filename) = @_; my $result; my $linenum = -1; my $infragment = 0; my $section = "GLOBAL"; my $makefile = ""; - push (@parsed_files, $filename); + push (@parsed_files, $srcdir."/".$filename); - open(CONFIG_MK, $filename) or die("Can't open `$filename'\n"); + open(CONFIG_MK, $srcdir."/".$filename) or die("Can't open `$srcdir/$filename'\n"); my @lines = <CONFIG_MK>; close(CONFIG_MK); @@ -136,7 +136,7 @@ sub run_config_mk($$) # include if ($line =~ /^include (.*)$/) { - $makefile .= run_config_mk($input, dirname($filename)."/$1"); + $makefile .= run_config_mk($input, $srcdir, dirname($filename)."/$1"); next; } @@ -163,7 +163,7 @@ sub run_config_mk($$) next; } - die("$filename:$linenum: Bad line while parsing $filename"); + die("$srcdir."/".$filename:$linenum: Bad line while parsing $srcdir."/".$filename"); } foreach my $section (keys %{$result}) { @@ -171,18 +171,18 @@ sub run_config_mk($$) my $sectype = $section_types->{$type}; if (not defined($sectype)) { - die($filename.":[".$section."] unknown section type \"".$type."\"!"); + die($srcdir."/".$filename.":[".$section."] unknown section type \"".$type."\"!"); } $input->{$name}{NAME} = $name; $input->{$name}{TYPE} = $type; - $input->{$name}{BASEDIR} = dirname($filename); + $input->{$name}{BASEDIR} = $srcdir."/".dirname($filename); foreach my $key (values %{$result->{$section}}) { $key->{VAL} = smb_build::input::strtrim($key->{VAL}); my $vartype = $sectype->{$key->{KEY}}; if (not defined($vartype)) { - die($filename.":[".$section."]: unknown attribute type \"$key->{KEY}\"!"); + die($srcdir."/".$filename.":[".$section."]: unknown attribute type \"$key->{KEY}\"!"); } if ($vartype eq "string") { $input->{$name}{$key->{KEY}} = $key->{VAL}; diff --git a/source4/build/smb_build/env.pm b/source4/build/smb_build/env.pm index 1ad8e23d36..09d8eb1536 100644 --- a/source4/build/smb_build/env.pm +++ b/source4/build/smb_build/env.pm @@ -31,8 +31,13 @@ sub _set_config($$) $self->{config} = $config; - $self->{config}->{srcdir} = '.'; - $self->{config}->{builddir} = '.'; + if (not defined($self->{config}->{srcdir})) { + $self->{config}->{srcdir} = '.'; + } + + if (not defined($self->{config}->{builddir})) { + $self->{config}->{builddir} = '.'; + } if ($self->{config}->{prefix} eq "NONE") { $self->{config}->{prefix} = $self->{config}->{ac_default_prefix}; diff --git a/source4/build/smb_build/input.pm b/source4/build/smb_build/input.pm index ad0a275120..ceddd75c3f 100644 --- a/source4/build/smb_build/input.pm +++ b/source4/build/smb_build/input.pm @@ -5,10 +5,11 @@ # Copyright (C) Jelmer Vernooij 2004 # Released under the GNU GPL +use config; use strict; package smb_build::input; -my $srcdir = "."; +my $srcdir = $config::config{srcdir}; sub strtrim($) { diff --git a/source4/build/smb_build/main.pl b/source4/build/smb_build/main.pl index 80f2e5fe9a..2b6594d809 100644 --- a/source4/build/smb_build/main.pl +++ b/source4/build/smb_build/main.pl @@ -16,7 +16,7 @@ use strict; my $INPUT = {}; -my $mkfile = smb_build::config_mk::run_config_mk($INPUT, "main.mk"); +my $mkfile = smb_build::config_mk::run_config_mk($INPUT, $config::config{srcdir}, "main.mk"); my $subsystem_output_type; diff --git a/source4/build/smb_build/makefile.pm b/source4/build/smb_build/makefile.pm index c804032275..e28aaec9d1 100644 --- a/source4/build/smb_build/makefile.pm +++ b/source4/build/smb_build/makefile.pm @@ -480,7 +480,7 @@ sub ProtoHeader($$) $self->output("$dir/$ctx->{PUBLIC_PROTO_HEADER}: \$($ctx->{TYPE}_$ctx->{NAME}_OBJ_LIST:.o=.c)\n"); $self->output("\t\@echo \"Creating $dir/$ctx->{PRIVATE_PROTO_HEADER}$comment\"\n"); - $self->output("\t\@\$(PERL) \${srcdir}/script/mkproto.pl --private=$dir/$ctx->{PRIVATE_PROTO_HEADER} --public=$dir/$ctx->{PUBLIC_PROTO_HEADER} \$($ctx->{TYPE}_$ctx->{NAME}_OBJ_LIST)\n\n"); + $self->output("\t\@\$(PERL) \$(srcdir)/script/mkproto.pl --private=$dir/$ctx->{PRIVATE_PROTO_HEADER} --public=$dir/$ctx->{PUBLIC_PROTO_HEADER} \$($ctx->{TYPE}_$ctx->{NAME}_OBJ_LIST)\n\n"); } sub write($$) diff --git a/source4/configure.in b/source4/configure.in index bc8bfdc568..bd64cdf184 100644 --- a/source4/configure.in +++ b/source4/configure.in @@ -65,9 +65,6 @@ AC_TRY_RUN([#include "${srcdir-.}/build/tests/summary.c"], AC_MSG_ERROR([summary failure. Aborting config]); exit 1;, AC_MSG_WARN([cannot run when cross-compiling])) -builddir=`pwd` -AC_SUBST(builddir) - LIBS=`echo $LIBS | sed -e 's/ *//g'` if test x"$LIBS" != x""; then echo "LIBS: $LIBS" @@ -114,5 +111,8 @@ $SMB_INFO_SUBSYSTEMS $SMB_INFO_LIBRARIES CEOF -AC_OUTPUT_COMMANDS([$PERL -I. -Ibuild build/smb_build/main.pl],[PERL="$PERL";export PERL]) +AC_OUTPUT_COMMANDS( +[$PERL -I${builddir} -I${srcdir} -I${srcdir}/build ${srcdir}/build/smb_build/main.pl],[ +PERL="$PERL";export PERL;export srcdir; export builddir; +]) AC_OUTPUT diff --git a/source4/main.mk b/source4/main.mk index 2f07affffe..e9e28bd035 100644 --- a/source4/main.mk +++ b/source4/main.mk @@ -199,7 +199,7 @@ include/config.h: include/proto.h: $(PROTO_OBJS:.o=.c) @echo "Creating include/proto.h" - @$(PERL) script/mkproto.pl --public-define=_PROTO_H_ \ + @$(PERL) $(srcdir)/script/mkproto.pl --public-define=_PROTO_H_ \ --public=include/proto.h --private=include/proto.h \ $(PROTO_OBJS) |