r12615: prepare building with ../samba4/source/configure --srcdir=../samba4/source/
authorStefan Metzmacher <metze@samba.org>
Fri, 30 Dec 2005 19:18:51 +0000 (19:18 +0000)
committerGerald (Jerry) Carter <jerry@samba.org>
Wed, 10 Oct 2007 18:49:04 +0000 (13:49 -0500)
metze
(This used to be commit bf35c74218476fc568e251bb337e794ed9d51fac)

source4/build/m4/env.m4
source4/build/smb_build/config_mk.pm
source4/build/smb_build/env.pm
source4/build/smb_build/input.pm
source4/build/smb_build/main.pl
source4/build/smb_build/makefile.pm
source4/configure.in
source4/main.mk

index f156bd34b99caab80e5e479f57604cabed5c945b..c20160fdb504827c7fc00b80d9f8ae93398ce1c1 100644 (file)
@@ -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
index f5703d5b93c61eb290b436cf96e1f6435e1f90cf..405298eef241ff0389ef8f787c7becef578602ac 100644 (file)
@@ -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};
index 1ad8e23d36c0b876625c0ce28f1556edc94e1cec..09d8eb15365d7c0786589c70dad7ebc1834f7270 100644 (file)
@@ -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};
index ad0a27512083fcf138d096e264fce191d41b5cce..ceddd75c3fc9987d554e9b1234cdd8316602b8e9 100644 (file)
@@ -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($)
 {
index 80f2e5fe9a9705e47bf3c3a03c75e54cc294a20e..2b6594d809de01a73aa97aba0dd24effd7166233 100644 (file)
@@ -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;
 
index c8040322759e182232750ccf255fba197065100b..e28aaec9d1806d411009ca66ae2f291211746fda 100644 (file)
@@ -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($$)
index bc8bfdc568342d319cc90e300f9254c4489e552f..bd64cdf1845ad73f1cf7e9b9bd1b14ba4a3b8b41 100644 (file)
@@ -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
index 2f07affffea3a5e2973c18d6e210192cd3ffe92b..e9e28bd035a6ed0e0e56456bd3a90d7f9c99c818 100644 (file)
@@ -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)