r8826: Make configure generate config.mk files (with the external libraries
authorJelmer Vernooij <jelmer@samba.org>
Thu, 28 Jul 2005 11:51:37 +0000 (11:51 +0000)
committerGerald (Jerry) Carter <jerry@samba.org>
Wed, 10 Oct 2007 18:30:09 +0000 (13:30 -0500)
that were found) and a config.pm file (with all substitution variables)
(This used to be commit 52bb1374bbcfc9b9a6d098687bafe9021a1ee858)

14 files changed:
source4/build/m4/check_path.m4
source4/build/m4/check_perl.m4
source4/build/m4/core.m4 [deleted file]
source4/build/m4/env.m4
source4/build/m4/public.m4
source4/build/smb_build/config_mk.pm
source4/build/smb_build/input.pm
source4/build/smb_build/main.pl [new file with mode: 0644]
source4/build/smb_build/main.pm [deleted file]
source4/build/smb_build/makefile.pm
source4/config.list
source4/configure.in
source4/heimdal_build/config.m4
source4/lib/cmdline/config.m4

index a6e9ab258d4cfd8c325bdbbb878f63c2d0bf5636..55f04dee9a7045cddf0563a342229723d0650e9b 100644 (file)
@@ -14,16 +14,16 @@ AC_PREFIX_DEFAULT(/usr/local/samba)
 AC_ARG_WITH(fhs, 
 [  --with-fhs              Use FHS-compliant paths (default=no)],
     configdir="${sysconfdir}/samba"
 AC_ARG_WITH(fhs, 
 [  --with-fhs              Use FHS-compliant paths (default=no)],
     configdir="${sysconfdir}/samba"
-    lockdir="\${VARDIR}/cache/samba"
-    piddir="\${VARDIR}/run/samba"
-    logfilebase="\${VARDIR}/log/samba"
+    lockdir="\${localstatedir}/cache/samba"
+    piddir="\${localstatedir}/run/samba"
+    logfilebase="\${localstatedir}/log/samba"
     privatedir="\${CONFIGDIR}/private"
     libdir="\${prefix}/lib/samba"
     swatdir="\${DATADIR}/samba/swat",
     privatedir="\${CONFIGDIR}/private"
     libdir="\${prefix}/lib/samba"
     swatdir="\${DATADIR}/samba/swat",
-    configdir="\${LIBDIR}"
-    logfilebase="\${VARDIR}"
-    lockdir="\${VARDIR}/locks"
-    piddir="\${VARDIR}/locks"
+    configdir="\${libdir}"
+    logfilebase="\${localstatedir}"
+    lockdir="\${localstatedir}/locks"
+    piddir="\${localstatedir}/locks"
     privatedir="\${prefix}/private"
     swatdir="\${prefix}/swat")
 
     privatedir="\${prefix}/private"
     swatdir="\${prefix}/swat")
 
@@ -152,8 +152,6 @@ AC_ARG_ENABLE(developer, [  --enable-developer      Turn on developer warnings a
        CFLAGS="${CFLAGS} -g -Wall"
         developer=yes
        DEVELOPER_CFLAGS="-Wshadow -Werror-implicit-function-declaration -Wstrict-prototypes -Wpointer-arith -Wcast-qual -Wcast-align -Wwrite-strings -Wdeclaration-after-statement -Wmissing-format-attribute -Wformat=2 -Wno-format-y2k -DDEBUG_PASSWORD -DDEVELOPER"
        CFLAGS="${CFLAGS} -g -Wall"
         developer=yes
        DEVELOPER_CFLAGS="-Wshadow -Werror-implicit-function-declaration -Wstrict-prototypes -Wpointer-arith -Wcast-qual -Wcast-align -Wwrite-strings -Wdeclaration-after-statement -Wmissing-format-attribute -Wformat=2 -Wno-format-y2k -DDEBUG_PASSWORD -DDEVELOPER"
-        SMB_INFO_BUILD_ENV="$SMB_INFO_BUILD_ENV 
-               \$SETTINGS{DEVELOPER} = \"YES\";"
     fi])
 
 debug=no
     fi])
 
 debug=no
index 5e493db875d35910226350205700407c62dcd047..34a7e5e7699de2bcf23cd0976e35fffbe3775222 100644 (file)
@@ -8,7 +8,7 @@ dnl
 AC_PATH_PROG(PERL, perl)
 if test x"$PERL" = x""; then
        AC_MSG_WARN([No version of perl was not found!])
 AC_PATH_PROG(PERL, perl)
 if test x"$PERL" = x""; then
        AC_MSG_WARN([No version of perl was not found!])
-       AC_MSG_ERROR([Please Install perl from http://www.perl.com/])
+       AC_MSG_ERROR([Please install perl from http://www.perl.com/])
 fi
 if test x"$debug" = x"yes";then
        PERL="$PERL -W"
 fi
 if test x"$debug" = x"yes";then
        PERL="$PERL -W"
diff --git a/source4/build/m4/core.m4 b/source4/build/m4/core.m4
deleted file mode 100644 (file)
index 6471fc9..0000000
+++ /dev/null
@@ -1,68 +0,0 @@
-dnl SMB Build Core System
-dnl -------------------------------------------------------
-dnl  Copyright (C) Stefan (metze) Metzmacher 2004
-dnl  Copyright (C) Jelmer Vernooij 2004
-dnl  Released under the GNU GPL
-dnl -------------------------------------------------------
-dnl
-dnl _SMB_BUILD_CORE(
-dnl            1: outputfile
-dnl            )
-
-dnl #######################################################
-dnl ### And now the implementation                     ###
-dnl #######################################################
-
-dnl _SMB_BUILD_CORE(
-dnl            1: outputfile
-dnl            )
-AC_DEFUN([_SMB_BUILD_CORE],
-[
-
-$PERL -I$srcdir/build <<\_SMB_ACEOF
-use strict;
-
-my %SETTINGS;
-my %INPUT;
-
-use smb_build::main;
-
-###########################################################
-### First we list all info from configure              ###
-###########################################################
-#
-#########################################
-## Start Build Env
-$SMB_INFO_BUILD_ENV
-## End Build Env
-#########################################
-#########################################
-## Start Ext Libs
-$SMB_INFO_EXT_LIBS
-## End Ext Libs
-#########################################
-#########################################
-## Start Modules
-$SMB_INFO_MODULES
-## End Modules
-#########################################
-## Start Subsystems
-$SMB_INFO_SUBSYSTEMS
-## End Subsystems
-#########################################
-## Start Libraries
-$SMB_INFO_LIBRARIES
-## End Libraries
-#########################################
-## Start Binaries
-$SMB_INFO_BINARIES
-## End Binaries
-#########################################
-
-$SMB_INFO_ENABLES
-
-smb_build_main(\%INPUT, \%SETTINGS);
-
-_SMB_ACEOF
-
-])
index 7d43f920ddb5ff074bc43bba374bbe1da5b3ee35..7ab6dc61b07c1e79d7889486d06b23bbbe911552 100644 (file)
@@ -13,8 +13,6 @@ if test -n "${SAMBA_VERSION_SVN_REVISION}";then
        echo "BUILD REVISION: ${SAMBA_VERSION_SVN_REVISION}"
 fi
 
        echo "BUILD REVISION: ${SAMBA_VERSION_SVN_REVISION}"
 fi
 
-SMB_INFO_BUILD_ENV=""
-
 sinclude(build/m4/check_path.m4)
 sinclude(build/m4/check_perl.m4)
 sinclude(build/m4/check_cc.m4)
 sinclude(build/m4/check_path.m4)
 sinclude(build/m4/check_perl.m4)
 sinclude(build/m4/check_cc.m4)
index 2a6b4e38934d2bf23a17c315a4a6f07c6a8b24bc..c70514bdb67ab476517054f3a3d2fa0289d0bb33 100644 (file)
 dnl SMB Build System
 dnl ----------------
 dnl Copyright (C) 2004 Stefan Metzmacher
 dnl SMB Build System
 dnl ----------------
 dnl Copyright (C) 2004 Stefan Metzmacher
-dnl Copyright (C) 2004 Jelmer Vernooij
+dnl Copyright (C) 2004-2005 Jelmer Vernooij
 dnl Published under the GPL
 dnl
 dnl Published under the GPL
 dnl
-dnl SMB_MODULE_DEFAULT(
-dnl            1:name,
-dnl            2:default_build
-dnl            )
+dnl SMB_MODULE_DEFAULT(name,default_build)
 dnl
 dnl
-dnl SMB_SUBSYSTEM_ENABLE(
-dnl            1:name,
-dnl            2:default_build
-dnl            )
+dnl SMB_SUBSYSTEM_ENABLE(name,default_build)
 dnl
 dnl
-dnl SMB_SUBSYSTEM(
-dnl            1:name,
-dnl            2:init_obj_files,
-dnl            3:add_obj_files,
-dnl            4:required_libraries,
-dnl            5:required_subsystems
-dnl            )
+dnl SMB_SUBSYSTEM(name,init_obj_files,add_obj_files,required_subsystems)
 dnl
 dnl
-dnl SMB_EXT_LIB_ENABLE(
-dnl            1:name,
-dnl            2:default_build
-dnl            )
+dnl SMB_EXT_LIB_ENABLE(name,default_build)
 dnl
 dnl
-dnl SMB_EXT_LIB_FROM_PKGCONFIG(
-dnl            1:name,
-dnl            2:pkg-config name
-dnl            )
+dnl SMB_EXT_LIB_FROM_PKGCONFIG(name,pkg-config name)
 dnl
 dnl
-dnl SMB_EXT_LIB(
-dnl            1:name,
-dnl            2:libs,
-dnl            3:cflags,
-dnl            4:cppflags,
-dnl            5:ldflags
-dnl            )
+dnl SMB_EXT_LIB(name,libs,cflags,cppflags,ldflags)
 dnl
 dnl
-dnl SMB_LIBRARY_ENABLE(
-dnl            1:name,
-dnl            2:default_build
-dnl            )
+dnl SMB_LIBRARY_ENABLE(name,default_build)
 dnl
 dnl
-dnl SMB_BINARY_ENABLE(
-dnl            1:name,
-dnl            2:default_build
-dnl            )
+dnl SMB_BINARY_ENABLE(name,default_build)
 dnl
 dnl
-dnl SMB_MAKE_TARGET(
-dnl            1:name
-dnl            2:calledname
-dnl            )
-dnl
-dnl SMB_ENV_CHECK(
-dnl            1:dummy
-dnl            )
-dnl
-dnl SMB_AC_OUTPUT(
-dnl            1: outputfile
-dnl            )
-
 dnl #######################################################
 dnl ### And now the implementation                     ###
 dnl #######################################################
 
 dnl #######################################################
 dnl ### And now the implementation                     ###
 dnl #######################################################
 
-AC_DEFUN([STR2ARRAY], [@<:@ input::str2array(\"$1\") @:>@])
-
-
-dnl SMB_MODULE_DEFAULT(
-dnl            1:name,
-dnl            2:default_build
-dnl            )
+dnl SMB_MODULE_DEFAULT(name,default_build)
 AC_DEFUN([SMB_MODULE_DEFAULT],
 [
        [SMB_MODULE_DEFAULT][$1]="$2"
 AC_DEFUN([SMB_MODULE_DEFAULT],
 [
        [SMB_MODULE_DEFAULT][$1]="$2"
-SMB_INFO_MODULES="$SMB_INFO_MODULES
-\$INPUT{$1}{DEFAULT_BUILD} = \"$2\";"
+SMB_INFO_ENABLES="$SMB_INFO_ENABLES
+\$enabled{$1} = \"$2\";"
 ])
 
 ])
 
-dnl SMB_SUBSYSTEM_ENABLE(
-dnl            1:name,
-dnl            2:default_build
-dnl            )
+dnl SMB_SUBSYSTEM_ENABLE(name,default_build)
 AC_DEFUN([SMB_SUBSYSTEM_ENABLE],
 [
        [SMB_SUBSYSTEM_ENABLE_][$1]="$2"
 AC_DEFUN([SMB_SUBSYSTEM_ENABLE],
 [
        [SMB_SUBSYSTEM_ENABLE_][$1]="$2"
-SMB_INFO_SUBSYSTEMS="$SMB_INFO_SUBSYSTEMS
-\$INPUT{$1}{ENABLE} = \"$2\";"
+SMB_INFO_ENABLES="$SMB_INFO_ENABLES
+\$enabled{$1} = \"$2\";"
 ])
 
 ])
 
-dnl SMB_SUBSYSTEM(
-dnl            1:name,
-dnl            2:init_obj_files,
-dnl            3:add_obj_files,
-dnl            4:required_libs,
-dnl            5:required_subsystems
-dnl            )
+dnl SMB_SUBSYSTEM(name,init_obj_files,add_obj_files,required_subsystems)
 AC_DEFUN([SMB_SUBSYSTEM],
 [
 
 AC_DEFUN([SMB_SUBSYSTEM],
 [
 
@@ -113,35 +55,25 @@ AC_DEFUN([SMB_SUBSYSTEM],
 SMB_INFO_SUBSYSTEMS="$SMB_INFO_SUBSYSTEMS
 ###################################
 # Start Subsystem $1
 SMB_INFO_SUBSYSTEMS="$SMB_INFO_SUBSYSTEMS
 ###################################
 # Start Subsystem $1
-\$INPUT{$1} = {
-       TYPE => \"SUBSYSTEM\",
-       NAME => \"$1\",
-       INIT_OBJ_FILES => ][STR2ARRAY([$2])][,
-       ADD_OBJ_FILES => ][STR2ARRAY([$3])][,
-       REQUIRED_LIBRARIES => ][STR2ARRAY([$4])][,
-       REQUIRED_SUBSYSTEMS => ][STR2ARRAY([$5])][,
-       ENABLE => \"YES\"
-};
+@<:@SUBSYSTEM::$1@:>@
+INIT_OBJ_FILES = $2
+ADD_OBJ_FILES = $3
+REQUIRED_SUBSYSTEMS = $4
+ENABLE = YES
 # End Subsystem $1
 ###################################
 "
 ])
 
 # End Subsystem $1
 ###################################
 "
 ])
 
-dnl SMB_EXT_LIB_ENABLE(
-dnl            1:name,
-dnl            2:default_build
-dnl            )
+dnl SMB_EXT_LIB_ENABLE(name,default_build)
 AC_DEFUN([SMB_EXT_LIB_ENABLE],
 [
 [SMB_EXT_LIB_ENABLE_][$1]="$2"
 SMB_INFO_ENABLES="$SMB_INFO_ENABLES
 AC_DEFUN([SMB_EXT_LIB_ENABLE],
 [
 [SMB_EXT_LIB_ENABLE_][$1]="$2"
 SMB_INFO_ENABLES="$SMB_INFO_ENABLES
-\$INPUT{EXT_LIB_$1}{ENABLE} = \"$2\";"
+\$enabled{EXT_LIB_$1} = \"$2\";"
 ])
 
 ])
 
-dnl SMB_EXT_LIB_FROM_PKGCONFIG(
-dnl            1:name,
-dnl            2:pkg-config name
-dnl )
+dnl SMB_EXT_LIB_FROM_PKGCONFIG(name,pkg-config name)
 AC_DEFUN([SMB_EXT_LIB_FROM_PKGCONFIG], 
 [
        dnl Figure out the correct variables and call SMB_EXT_LIB()
 AC_DEFUN([SMB_EXT_LIB_FROM_PKGCONFIG], 
 [
        dnl Figure out the correct variables and call SMB_EXT_LIB()
@@ -201,76 +133,35 @@ AC_DEFUN([SMB_EXT_LIB_FROM_PKGCONFIG],
        fi
 ])
 
        fi
 ])
 
-dnl SMB_EXT_LIB(
-dnl            1:name,
-dnl            2:libs,
-dnl            3:cflags,
-dnl            4:cppflags,
-dnl            5:ldflags
-dnl            )
+dnl SMB_EXT_LIB(name,libs,cflags,cppflags,ldflags)
 AC_DEFUN([SMB_EXT_LIB],
 [
 
 SMB_INFO_EXT_LIBS="$SMB_INFO_EXT_LIBS
 ###################################
 # Start Ext Lib $1
 AC_DEFUN([SMB_EXT_LIB],
 [
 
 SMB_INFO_EXT_LIBS="$SMB_INFO_EXT_LIBS
 ###################################
 # Start Ext Lib $1
-\$INPUT{EXT_LIB_$1} = {
-       TYPE => \"EXT_LIB\",
-       NAME => \"EXT_LIB_$1\",
-       LIBS => ][STR2ARRAY([$2])][,
-       CFLAGS => ][STR2ARRAY([$3])][,
-       CPPFLAGS => ][STR2ARRAY([$4])][,
-       LDFLAGS => ][STR2ARRAY([$5])][
-};
+@<:@EXT_LIB::EXT_LIB_$1@:>@
+LIBS = $2
+CFLAGS = $3
+CPPFLAGS = $4
+LDFLAGS = $5
 # End Ext Lib $1
 ###################################
 "
 ])
 
 # End Ext Lib $1
 ###################################
 "
 ])
 
-
-dnl SMB_LIBRARY_ENABLE(
-dnl            1:name,
-dnl            2:default_build
-dnl            )
+dnl SMB_LIBRARY_ENABLE(name,default_build)
 AC_DEFUN([SMB_LIBRARY_ENABLE],
 [
 SMB_INFO_ENABLES="$SMB_INFO_ENABLES
 AC_DEFUN([SMB_LIBRARY_ENABLE],
 [
 SMB_INFO_ENABLES="$SMB_INFO_ENABLES
-\$INPUT{$1}{ENABLE} = \"$2\";"
+\$enabled{$1} = \"$2\";"
 ])
 
 ])
 
-dnl SMB_BINARY_ENABLE(
-dnl            1:name,
-dnl            2:default_build
-dnl            )
+dnl SMB_BINARY_ENABLE(name,default_build)
 AC_DEFUN([SMB_BINARY_ENABLE],
 [
        [SMB_BINARY_ENABLE_][$1]="$2";
 
 AC_DEFUN([SMB_BINARY_ENABLE],
 [
        [SMB_BINARY_ENABLE_][$1]="$2";
 
-SMB_INFO_BINARIES="$SMB_INFO_BINARIES
-\$INPUT{$1}{ENABLE} = \"$2\";"
-])
-
-dnl SMB_MAKE_TARGET(
-dnl            1:name
-dnl            2:calledname
-dnl            )
-AC_DEFUN([SMB_MAKE_TARGET],
-[
-       echo "#SMB_MAKE_TARGET TOTO"
-])
-
-dnl SMB_ENV_CHECK(
-dnl            1:dummy
-dnl            )
-AC_DEFUN([SMB_ENV_CHECK],
-[
-       _SMB_BUILD_ENV($1)
-])
-
-dnl SMB_AC_OUTPUT(
-dnl            1: outputfile
-dnl            )
-AC_DEFUN([SMB_AC_OUTPUT],
-[
-       AC_OUTPUT([$1],[],[_SMB_BUILD_CORE([[$1][.in]])])
+SMB_INFO_ENABLES="$SMB_INFO_ENABLES
+\$enabled{$1} = \"$2\";"
 ])
 ])
index ba8badc3d1fb2098a8214128663cff0f56ba0ec2..d26d85f5b99e56e926f5b1fe3ffa038b1679e4d1 100644 (file)
@@ -19,6 +19,10 @@ my %attribute_types = (
        "ADD_OBJ_FILES" => "list",
        "OBJ_FILES" => "list",
        "SUBSYSTEM" => "string",
        "ADD_OBJ_FILES" => "list",
        "OBJ_FILES" => "list",
        "SUBSYSTEM" => "string",
+       "CFLAGS" => "list",
+       "CPPFLAGS" => "list",
+       "LDFLAGS" => "list",
+       "LIBS" => "list",
        "INIT_FUNCTION" => "string",
        "MAJOR_VERSION" => "string",
        "MINOR_VERSION" => "string",
        "INIT_FUNCTION" => "string",
        "MAJOR_VERSION" => "string",
        "MINOR_VERSION" => "string",
@@ -168,7 +172,7 @@ sub import_file($$)
                $input->{$name}{TYPE} = $type;
 
                foreach my $key (values %{$result->{$section}}) {
                $input->{$name}{TYPE} = $type;
 
                foreach my $key (values %{$result->{$section}}) {
-                       $key->{VAL} = input::strtrim($key->{VAL});
+                       $key->{VAL} = smb_build::input::strtrim($key->{VAL});
                        my $vartype = $attribute_types{$key->{KEY}};
                        if (not defined($vartype)) {
                                die("Unknown attribute $key->{KEY}");
                        my $vartype = $attribute_types{$key->{KEY}};
                        if (not defined($vartype)) {
                                die("Unknown attribute $key->{KEY}");
@@ -176,7 +180,7 @@ sub import_file($$)
                        if ($vartype eq "string") {
                                $input->{$name}{$key->{KEY}} = $key->{VAL};
                        } elsif ($vartype eq "list") {
                        if ($vartype eq "string") {
                                $input->{$name}{$key->{KEY}} = $key->{VAL};
                        } elsif ($vartype eq "list") {
-                               $input->{$name}{$key->{KEY}} = [input::str2array($key->{VAL})];
+                               $input->{$name}{$key->{KEY}} = [smb_build::input::str2array($key->{VAL})];
                        } elsif ($vartype eq "bool") {
                                if (($key->{VAL} ne "YES") and ($key->{VAL} ne "NO")) {
                                        die("Invalid value for bool attribute $key->{KEY}: $key->{VAL}");
                        } elsif ($vartype eq "bool") {
                                if (($key->{VAL} ne "YES") and ($key->{VAL} ne "NO")) {
                                        die("Invalid value for bool attribute $key->{KEY}: $key->{VAL}");
@@ -186,4 +190,20 @@ sub import_file($$)
                }
        }
 }
                }
        }
 }
+
+sub import_files($$)
+{
+       my ($input, $config_list) = @_;
+
+       open(IN, $config_list) or die("Can't open $config_list: $!");
+       my @mkfiles = grep{!/^#/} <IN>;
+       close(IN);
+
+       $| = 1;
+
+       foreach (@mkfiles) {
+               s/\n//g;
+               import_file($input, $_);
+       }
+}
 1;
 1;
index d469550a76275cff1c60ccafb0a8a8a71c9f065e..fc14c1d2e937e572ee6852786e4d351b43cc3bb0 100644 (file)
@@ -8,7 +8,7 @@
 ###########################################################
 
 use strict;
 ###########################################################
 
 use strict;
-package input;
+package smb_build::input;
 
 my $subsystem_default_output_type = "OBJLIST";
 my $srcdir = ".";
 
 my $subsystem_default_output_type = "OBJLIST";
 my $srcdir = ".";
@@ -51,6 +51,7 @@ sub check_module($$)
 
        die("Module $mod->{NAME} does not have a SUBSYSTEM set") if not defined($mod->{SUBSYSTEM});
 
 
        die("Module $mod->{NAME} does not have a SUBSYSTEM set") if not defined($mod->{SUBSYSTEM});
 
+
        ($mod->{DEFAULT_BUILD} = "STATIC") if not defined($mod->{DEFAULT_BUILD});
        
        my $use_default = 0;
        ($mod->{DEFAULT_BUILD} = "STATIC") if not defined($mod->{DEFAULT_BUILD});
        
        my $use_default = 0;
@@ -62,12 +63,17 @@ sub check_module($$)
                return;
        }
 
                return;
        }
 
-       if ($mod->{ENABLE} ne "YES")
+       if (($mod->{ENABLE} eq "STATIC") or 
+               ($mod->{ENABLE} eq "NOT") or 
+               ($mod->{ENABLE} eq "SHARED")) {
+               $mod->{DEFAULT_BUILD} = $mod->{ENABLE};
+       } elsif ($mod->{ENABLE} ne "YES")
        {
                $mod->{CHOSEN_BUILD} = "NOT";
        }
 
        {
                $mod->{CHOSEN_BUILD} = "NOT";
        }
 
-       if (not defined($mod->{CHOSEN_BUILD}) or $mod->{CHOSEN_BUILD} eq "DEFAULT") {
+       if (not defined($mod->{CHOSEN_BUILD}) or $mod->{CHOSEN_BUILD} eq "DEFAULT") 
+       {
                $mod->{CHOSEN_BUILD} = $mod->{DEFAULT_BUILD};
        }
 
                $mod->{CHOSEN_BUILD} = $mod->{DEFAULT_BUILD};
        }
 
@@ -145,14 +151,22 @@ sub calc_unique_deps($$)
 # check_input($INPUT)
 #
 # $INPUT -     the global INPUT context
 # check_input($INPUT)
 #
 # $INPUT -     the global INPUT context
-sub check($)
+# $enabled - list of enabled subsystems/libs
+sub check($$)
 {
 {
-       my $INPUT = shift;
+       my ($INPUT, $enabled) = @_;
 
        ($subsystem_default_output_type = $ENV{SUBSYSTEM_OUTPUT_TYPE}) if (defined($ENV{"SUBSYSTEM_OUTPUT_TYPE"}));
 
        foreach my $part (values %$INPUT) {
 
        ($subsystem_default_output_type = $ENV{SUBSYSTEM_OUTPUT_TYPE}) if (defined($ENV{"SUBSYSTEM_OUTPUT_TYPE"}));
 
        foreach my $part (values %$INPUT) {
-               ($part->{ENABLE} = "YES") if not defined($part->{ENABLE});
+               if (defined($enabled->{$part->{NAME}})) { 
+                       $part->{ENABLE} = $enabled->{$part->{NAME}};
+                       next;
+               }
+               
+               unless(defined($part->{ENABLE})) {
+                       $part->{ENABLE} = "YES";
+               }
        }
 
        foreach my $k (keys %$INPUT) {
        }
 
        foreach my $k (keys %$INPUT) {
@@ -166,12 +180,6 @@ sub check($)
                check_library($INPUT, $part) if ($part->{TYPE} eq "LIBRARY");
                check_binary($INPUT, $part) if ($part->{TYPE} eq "BINARY");
                check_target($INPUT, $part) if ($part->{TYPE} eq "TARGET");
                check_library($INPUT, $part) if ($part->{TYPE} eq "LIBRARY");
                check_binary($INPUT, $part) if ($part->{TYPE} eq "BINARY");
                check_target($INPUT, $part) if ($part->{TYPE} eq "TARGET");
-
-               #FIXME: REQUIRED_LIBRARIES needs to go
-               if (defined($part->{REQUIRED_LIBRARIES})) {
-                       push(@{$part->{REQUIRED_SUBSYSTEMS}}, @{$part->{REQUIRED_LIBRARIES}});
-                       delete ($part->{REQUIRED_LIBRARIES});
-               }
        }
 
        my %depend = %$INPUT;
        }
 
        my %depend = %$INPUT;
diff --git a/source4/build/smb_build/main.pl b/source4/build/smb_build/main.pl
new file mode 100644 (file)
index 0000000..abe63ff
--- /dev/null
@@ -0,0 +1,31 @@
+###########################################################
+### SMB Build System                                   ###
+### - the main program                                 ###
+###                                                    ###
+###  Copyright (C) Stefan (metze) Metzmacher 2004      ###
+###  Copyright (C) Jelmer Vernooij 2005
+###  Released under the GNU GPL                                ###
+###########################################################
+
+use smb_build::makefile;
+use smb_build::smb_build_h;
+use smb_build::input;
+use smb_build::config_mk;
+use smb_build::output;
+use smb_build::dot;
+use config;
+use strict;
+
+my $INPUT = {};
+
+config_mk::import_files($INPUT, "config.list");
+my $DEPEND = smb_build::input::check($INPUT, \%config::enabled);
+my $OUTPUT = output::create_output($DEPEND);
+makefile::create_makefile_in($OUTPUT, "Makefile.in");
+smb_build_h::create_smb_build_h($OUTPUT, "include/smb_build.h");
+
+open DOTTY, ">samba4-deps.dot";
+print DOTTY dot::generate($DEPEND);
+close DOTTY;
+
+1;
diff --git a/source4/build/smb_build/main.pm b/source4/build/smb_build/main.pm
deleted file mode 100644 (file)
index 950d02a..0000000
+++ /dev/null
@@ -1,47 +0,0 @@
-###########################################################
-### SMB Build System                                   ###
-### - the main program                                 ###
-###                                                    ###
-###  Copyright (C) Stefan (metze) Metzmacher 2004      ###
-###  Released under the GNU GPL                                ###
-###########################################################
-
-use smb_build::makefile;
-use smb_build::smb_build_h;
-use smb_build::input;
-use smb_build::config_mk;
-use smb_build::output;
-use smb_build::dot;
-use strict;
-
-my $config_list = "config.list";
-
-sub smb_build_main($$)
-{
-       my ($INPUT, $settings) = @_;
-
-       open(IN, $config_list) or die("Can't open $config_list: $!");
-       my @mkfiles = grep{!/^#/} <IN>;
-       close(IN);
-
-       $| = 1;
-
-       foreach (@mkfiles) {
-               s/\n//g;
-               config_mk::import_file($INPUT, $_);
-       }
-
-       my $DEPEND = input::check($INPUT);
-       
-       my $OUTPUT = output::create_output($DEPEND);
-
-       makefile::create_makefile_in($OUTPUT, $settings, "Makefile.in");
-
-       smb_build_h::create_smb_build_h($OUTPUT, "include/smb_build.h");
-
-       open DOTTY, ">samba4-deps.dot";
-       print DOTTY dot::generate($DEPEND);
-       close DOTTY;
-}
-
-1;
index 38d93f636ce1b4ae911b99ab1ebe19bdc3534de9..a720ea30694ebad888b53834149a6087463f9b58 100644 (file)
@@ -509,9 +509,8 @@ bin/.TARGET_$ctx->{NAME}:
 ";
 }
 
 ";
 }
 
-sub _prepare_proto_rules($)
+sub _prepare_proto_rules()
 {
 {
-       my $settings = shift;
        my $output = "";
 
        $output .= << '__EOD__';
        my $output = "";
 
        $output .= << '__EOD__';
@@ -761,10 +760,9 @@ __EOD__
        return $output;
 }
 
        return $output;
 }
 
-sub _prepare_rule_lists($$)
+sub _prepare_rule_lists($)
 {
        my $depend = shift;
 {
        my $depend = shift;
-       my $settings = shift;
        my $output = "";
 
        foreach my $key (values %{$depend}) {
        my $output = "";
 
        foreach my $key (values %{$depend}) {
@@ -779,7 +777,7 @@ sub _prepare_rule_lists($$)
 
        my $idl_ctx;
        $output .= _prepare_IDL($idl_ctx);
 
        my $idl_ctx;
        $output .= _prepare_IDL($idl_ctx);
-       $output .= _prepare_proto_rules($settings);
+       $output .= _prepare_proto_rules();
        $output .= _prepare_install_rules($depend);
 
        return $output;
        $output .= _prepare_install_rules($depend);
 
        return $output;
@@ -793,9 +791,9 @@ sub _prepare_rule_lists($$)
 # $OUTPUT -    the global OUTPUT context
 #
 # $output -            the resulting output buffer
 # $OUTPUT -    the global OUTPUT context
 #
 # $output -            the resulting output buffer
-sub _prepare_makefile_in($$)
+sub _prepare_makefile_in($)
 {
 {
-       my ($CTX, $settings) = @_;
+       my ($CTX) = @_;
        my $output;
 
        $output  = "########################################\n";
        my $output;
 
        $output  = "########################################\n";
@@ -828,7 +826,7 @@ sub _prepare_makefile_in($$)
        $output .= _prepare_man_rule("7");
        $output .= _prepare_manpages($CTX);
        $output .= _prepare_target_settings($CTX);
        $output .= _prepare_man_rule("7");
        $output .= _prepare_manpages($CTX);
        $output .= _prepare_target_settings($CTX);
-       $output .= _prepare_rule_lists($CTX, $settings);
+       $output .= _prepare_rule_lists($CTX);
 
        my @all = ();
        
 
        my @all = ();
        
@@ -850,12 +848,12 @@ sub _prepare_makefile_in($$)
 # $OUTPUT      -       the global OUTPUT context
 #
 # $output -            the resulting output buffer
 # $OUTPUT      -       the global OUTPUT context
 #
 # $output -            the resulting output buffer
-sub create_makefile_in($$$)
+sub create_makefile_in($$)
 {
 {
-       my ($CTX, $settings,$file) = @_;
+       my ($CTX, $file) = @_;
 
        open(MAKEFILE_IN,">$file") || die ("Can't open $file\n");
 
        open(MAKEFILE_IN,">$file") || die ("Can't open $file\n");
-       print MAKEFILE_IN _prepare_makefile_in($CTX, $settings);
+       print MAKEFILE_IN _prepare_makefile_in($CTX);
        close(MAKEFILE_IN);
 
        print "config.smb_build.pl: creating $file\n";
        close(MAKEFILE_IN);
 
        print "config.smb_build.pl: creating $file\n";
index 21cf430fcccf85fb386f021d8580859ec05d4b22..2aeb0f20f7d7541fe31d26f11c3d17641787eb56 100644 (file)
@@ -1,4 +1,5 @@
 # master list of build config files for Samba4
 # master list of build config files for Samba4
+config.mk
 heimdal_build/config.mk
 dsdb/config.mk
 gtk/config.mk
 heimdal_build/config.mk
 dsdb/config.mk
 gtk/config.mk
index 51589e9fe80dc21ead88ffb2f2a2d7724a0e2f65..f678d9c7e8c70edf7bb0612c59bcc8e37a0d1a83 100644 (file)
@@ -5,6 +5,7 @@ dnl disabled 2.53 requirement - we do work with 2.52 on suse 7.3 for example
 dnl AC_PREREQ(2.53)
 
 AC_INIT([samba],[],[samba-technical@samba.org])
 dnl AC_PREREQ(2.53)
 
 AC_INIT([samba],[],[samba-technical@samba.org])
+
 AC_CONFIG_SRCDIR([include/includes.h])
 AC_CONFIG_HEADER(include/config.h)
 
 AC_CONFIG_SRCDIR([include/includes.h])
 AC_CONFIG_HEADER(include/config.h)
 
@@ -85,4 +86,27 @@ dnl Remove -I/usr/include/? from CFLAGS and CPPFLAGS
 CFLAGS_REMOVE_USR_INCLUDE(CFLAGS)
 CFLAGS_REMOVE_USR_INCLUDE(CPPFLAGS)
 
 CFLAGS_REMOVE_USR_INCLUDE(CFLAGS)
 CFLAGS_REMOVE_USR_INCLUDE(CPPFLAGS)
 
-SMB_AC_OUTPUT(Makefile)
+echo "configure: creating config.pl"
+cat >config.pm<<CEOF
+# config.pm - Autogenerate by configure. DO NOT EDIT!
+
+package config;
+use strict;
+
+use vars qw(%enabled AC_FOREACH([AC_Var], m4_defn([_AC_SUBST_VARS]), [\$AC_Var ]));
+
+AC_FOREACH([AC_Var], m4_defn([_AC_SUBST_VARS]), [
+\$AC_Var = "$AC_Var";])
+
+$SMB_INFO_ENABLES
+CEOF
+
+echo "configure: creating config.mk"
+cat >config.mk<<CEOF
+# config.mk - Autogenerated by configure, DO NOT EDIT!
+$SMB_INFO_EXT_LIBS
+$SMB_INFO_SUBSYSTEMS
+$SMB_INFO_LIBRARIES
+CEOF
+
+AC_OUTPUT(Makefile,,[$PERL -Ibuild build/smb_build/main.pl])
index bffb3c5605f04df88d6279a4dc8c64e143ba270c..7f083e9314d45c448d07ae4bdf3450102f6c5fcf 100644 (file)
@@ -177,7 +177,7 @@ AC_CHECK_DECL(h_errno,
 #endif])
 
 # these are disabled unless heimdal is found below
 #endif])
 
 # these are disabled unless heimdal is found below
-SMB_MODULE_DEFAULT(KERBEROS_LIB, NOT)
+SMB_SUBSYSTEM_ENABLE(KERBEROS_LIB, NO)
 SMB_BINARY_ENABLE(asn1_compile, NO)
 SMB_BINARY_ENABLE(compile_et, NO)
 
 SMB_BINARY_ENABLE(asn1_compile, NO)
 SMB_BINARY_ENABLE(compile_et, NO)
 
@@ -194,7 +194,7 @@ if test -d heimdal; then
        AC_DEFINE(HAVE_KRB5,1,[Whether kerberos is available])
        CFLAGS="${CFLAGS} -Iheimdal_build -Iheimdal/lib/krb5 -Iheimdal/lib/gssapi -Iheimdal/lib/asn1 -Iheimdal/lib/com_err -Iheimdal/lib/hdb -Iheimdal/kdc"
        HAVE_KRB5=YES
        AC_DEFINE(HAVE_KRB5,1,[Whether kerberos is available])
        CFLAGS="${CFLAGS} -Iheimdal_build -Iheimdal/lib/krb5 -Iheimdal/lib/gssapi -Iheimdal/lib/asn1 -Iheimdal/lib/com_err -Iheimdal/lib/hdb -Iheimdal/kdc"
        HAVE_KRB5=YES
-       SMB_MODULE_DEFAULT(KERBEROS_LIB, STATIC)
+       SMB_SUBSYSTEM_ENABLE(KERBEROS_LIB, YES)
        SMB_BINARY_ENABLE(asn1_compile, YES)
        SMB_BINARY_ENABLE(compile_et, YES)
 fi
        SMB_BINARY_ENABLE(asn1_compile, YES)
        SMB_BINARY_ENABLE(compile_et, YES)
 fi
index 45c3a70f9f6c629740ff1eba990109482b204fdf..4f6606b8dbb6e0cc76e051acee32664edd0960a9 100644 (file)
@@ -76,7 +76,6 @@ SMB_EXT_LIB(READLINE, [${TMP_LIBCMDLINE_LIBS}])
 
 SMB_SUBSYSTEM(LIBCMDLINE,[],
                [${TMP_LIBCMDLINE_OBJS}],
 
 SMB_SUBSYSTEM(LIBCMDLINE,[],
                [${TMP_LIBCMDLINE_OBJS}],
-               [],
                [LIBPOPT EXT_LIB_READLINE EXT_LIB_ALLLIBS LIBCMDLINE_CREDENTIALS])
 
 AC_CACHE_CHECK([whether getpass should be replaced],samba_cv_REPLACE_GETPASS,[
                [LIBPOPT EXT_LIB_READLINE EXT_LIB_ALLLIBS LIBCMDLINE_CREDENTIALS])
 
 AC_CACHE_CHECK([whether getpass should be replaced],samba_cv_REPLACE_GETPASS,[