diff options
-rw-r--r-- | source4/build/m4/rewrite.m4 | 4 | ||||
-rw-r--r-- | source4/build/smb_build/input.pm | 13 | ||||
-rw-r--r-- | source4/build/smb_build/main.pl | 16 |
3 files changed, 27 insertions, 6 deletions
diff --git a/source4/build/m4/rewrite.m4 b/source4/build/m4/rewrite.m4 index bd643faa53..35eda9a3a7 100644 --- a/source4/build/m4/rewrite.m4 +++ b/source4/build/m4/rewrite.m4 @@ -102,8 +102,11 @@ AC_CHECK_FUNCS(strftime sigprocmask sigblock sigaction) AC_CHECK_FUNCS(setgroups sysconf getpwanam srandom random srand rand usleep) AC_CHECK_FUNCS(backtrace setbuffer) +AC_SUBST(BLDSHARED) +AC_SUBST(BLDMERGED) # Assume non-shared by default and override below BLDSHARED="false" +BLDMERGED="true" # these are the defaults, good for lots of systems HOST_OS="$host_os" @@ -257,6 +260,7 @@ case "$host_os" in ;; *vos*) AC_DEFINE(STAT_ST_BLOCKSIZE,4096) BLDSHARED="false" + BLDMERGED="false" LDSHFLAGS="" ;; *) diff --git a/source4/build/smb_build/input.pm b/source4/build/smb_build/input.pm index 9b3c0afc60..dd56c5d9c8 100644 --- a/source4/build/smb_build/input.pm +++ b/source4/build/smb_build/input.pm @@ -10,7 +10,10 @@ use strict; package smb_build::input; -my $subsystem_default_output_type = "MERGEDOBJ"; +use vars qw($library_output_type $subsystem_output_type); + +$library_output_type = "OBJ_LIST"; +$subsystem_output_type = "OBJ_LIST"; my $srcdir = "."; sub strtrim($) @@ -41,7 +44,7 @@ sub check_subsystem($$) } unless(defined($subsys->{OUTPUT_TYPE})) { - $subsys->{OUTPUT_TYPE} = $subsystem_default_output_type; + $subsys->{OUTPUT_TYPE} = $subsystem_output_type; } } @@ -86,7 +89,7 @@ sub check_module($$) $mod->{ENABLE} = "YES"; push (@{$INPUT->{$mod->{SUBSYSTEM}}{REQUIRED_SUBSYSTEMS}}, $mod->{NAME}); printf("Module: %s...static\n",$mod->{NAME}); - $mod->{OUTPUT_TYPE} = $subsystem_default_output_type; + $mod->{OUTPUT_TYPE} = $subsystem_output_type; } else { $mod->{ENABLE} = "NO"; printf("Module: %s...not\n",$mod->{NAME}); @@ -103,7 +106,7 @@ sub check_library($$) return; } - $lib->{OUTPUT_TYPE} = "SHARED_LIBRARY"; + $lib->{OUTPUT_TYPE} = $library_output_type; } sub check_binary($$) @@ -145,8 +148,6 @@ sub check($$) { my ($INPUT, $enabled) = @_; - ($subsystem_default_output_type = $ENV{SUBSYSTEM_OUTPUT_TYPE}) if (defined($ENV{"SUBSYSTEM_OUTPUT_TYPE"})); - foreach my $part (values %$INPUT) { if (defined($enabled->{$part->{NAME}})) { $part->{ENABLE} = $enabled->{$part->{NAME}}; diff --git a/source4/build/smb_build/main.pl b/source4/build/smb_build/main.pl index 0e8f81d759..3643c2d89a 100644 --- a/source4/build/smb_build/main.pl +++ b/source4/build/smb_build/main.pl @@ -20,6 +20,22 @@ use strict; my $INPUT = {}; my $mkfile = smb_build::config_mk::run_config_mk($INPUT, "main.mk"); + +if (defined($ENV{"SUBSYSTEM_OUTPUT_TYPE"})) { + $smb_build::input::subsystem_output_type = $ENV{SUBSYSTEM_OUTPUT_TYPE}; +} elsif ($config::config{BLDMERGED} eq "true") { + $smb_build::input::subsystem_output_type = "MERGEDOBJ"; +} + +if (defined($ENV{"LIBRARY_OUTPUT_TYPE"})) { + $smb_build::input::subsystem_output_type = $ENV{LIBRARY_OUTPUT_TYPE}; +} elsif ($config::config{BLDSHARED} eq "true") { + # FIXME: This should really be SHARED_LIBRARY + $smb_build::input::subsystem_output_type = "MERGEDOBJ"; +} elsif ($config::config{BLDMERGED} eq "true") { + $smb_build::input::subsystem_output_type = "MERGEDOBJ"; +} + my $DEPEND = smb_build::input::check($INPUT, \%config::enabled); my $OUTPUT = output::create_output($DEPEND); my $mkenv = new smb_build::makefile(\%config::config, $OUTPUT, $mkfile); |