From 70762fe16bc68f3cfe02adb1b791a4dbae12d27d Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Sat, 9 Feb 2008 16:01:53 +0100 Subject: Support 'mkinclude' command in .mk files. (This used to be commit ee7f54c86d2b467869db8dea33f60e19ed3c742f) --- source4/build/smb_build/config_mk.pm | 2 ++ 1 file changed, 2 insertions(+) (limited to 'source4/build') diff --git a/source4/build/smb_build/config_mk.pm b/source4/build/smb_build/config_mk.pm index aa075490bc..b7dc9697a9 100644 --- a/source4/build/smb_build/config_mk.pm +++ b/source4/build/smb_build/config_mk.pm @@ -251,6 +251,8 @@ sub run_config_mk($$$$) next; } + $line =~ s/^mkinclude /include /; + # empty line if ($line =~ /^[ \t]*$/) { $section = "GLOBAL"; -- cgit From 9fccd8361320e82a7819e73f44bc62cf37f88c60 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Sat, 9 Feb 2008 16:41:44 +0100 Subject: Move some static makefile variables to rules.mk. (This used to be commit 3c64fc7dc631a79154957e45f8961e2ee519743f) --- source4/build/smb_build/makefile.pm | 39 ------------------------------------- 1 file changed, 39 deletions(-) (limited to 'source4/build') diff --git a/source4/build/smb_build/makefile.pm b/source4/build/smb_build/makefile.pm index 452e4254a3..0b1cc7eac2 100644 --- a/source4/build/smb_build/makefile.pm +++ b/source4/build/smb_build/makefile.pm @@ -120,45 +120,6 @@ sub _prepare_suffix_rules($) $self->output(<< "__EOD__" FIRST_PREREQ = $first_prereq -# Dependencies command -DEPENDS = \$(CC) -M -MG -MP -MT \$(<:.c=.o) -MT \$@ \\ - \$(CFLAGS) `\$(PERL) \$(srcdir)/script/cflags.pl \$@` \\ - \$(CPPFLAGS) \$(FIRST_PREREQ) -o \$@ -# Dependencies for host objects -HDEPENDS = \$(CC) -M -MG -MP -MT \$(<:.c=.ho) -MT \$@ \\ - \$(HOSTCC_FLAGS) `\$(PERL) \$(srcdir)/script/cflags.pl \$@` \\ - \$(CPPFLAGS) \$(FIRST_PREREQ) -o \$@ -# Dependencies for precompiled headers -PCHDEPENDS = \$(CC) -M -MG -MT include/includes.h.gch -MT \$@ \\ - \$(CFLAGS) \$(CPPFLAGS) \$(FIRST_PREREQ) -o \$@ - -# \$< is broken in older BSD versions: -# when \$@ is foo/bar.o, \$< could be torture/foo/bar.c -# if it also exists. So better use \$* which is foo/bar -# and append .c manually to get foo/bar.c -# -# If we have GNU Make, it is safe to use \$<, which also lets -# building with \$srcdir != \$builddir work. - -# Run a static analysis checker -CHECK = \$(CC_CHECKER) \$(CFLAGS) `\$(PERL) \$(srcdir)/script/cflags.pl \$@` \\ - \$(PICFLAG) \$(CPPLAGS) -c \$(FIRST_PREREQ) -o \$@ - -# Run the configured compiler -COMPILE = \$(CC) \$(CFLAGS) \$(PICFLAG) \\ - `\$(PERL) \$(srcdir)/script/cflags.pl \$@` \\ - \$(CPPFLAGS) \\ - -c \$(FIRST_PREREQ) -o \$@ - -# Run the compiler for the build host -HCOMPILE = \$(HOSTCC) \$(HOSTCC_FLAGS) `\$(PERL) \$(srcdir)/script/cflags.pl \$@` \\ - \$(CPPFLAGS) -c \$(FIRST_PREREQ) -o \$@ - -# Precompile headers -PCHCOMPILE = @\$(CC) -Ilib/replace \\ - \$(CFLAGS) `\$(PERL) \$(srcdir)/script/cflags.pl \$@` \\ - \$(PICFLAG) \$(CPPFLAGS) -c \$(FIRST_PREREQ) -o \$@ - __EOD__ ); } -- cgit From c8c9d70221b5d5b5e58ebb306911aa2f9b6ac2a6 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Sat, 9 Feb 2008 17:07:02 +0100 Subject: Move first_prereq test to m4 code. (This used to be commit c0fef09c5d88158b620f38b6f74498a8b6323bd9) --- source4/build/m4/check_make.m4 | 8 ++++++++ source4/build/smb_build/makefile.pm | 8 +------- 2 files changed, 9 insertions(+), 7 deletions(-) (limited to 'source4/build') diff --git a/source4/build/m4/check_make.m4 b/source4/build/m4/check_make.m4 index 4780f43e1c..d7799649a7 100644 --- a/source4/build/m4/check_make.m4 +++ b/source4/build/m4/check_make.m4 @@ -46,3 +46,11 @@ AC_ARG_ENABLE(automatic-dependencies, [ automatic_dependencies=no ]) AC_MSG_RESULT($automatic_dependencies) AC_SUBST(automatic_dependencies) + +FIRST_PREREQ="\$*.c" +AC_SUBST(FIRST_PREREQ) + +if test x$GNU_MAKE = xyes; then + FIRST_PREREQ="\$<" +fi + diff --git a/source4/build/smb_build/makefile.pm b/source4/build/smb_build/makefile.pm index 0b1cc7eac2..5799d89c57 100644 --- a/source4/build/smb_build/makefile.pm +++ b/source4/build/smb_build/makefile.pm @@ -111,14 +111,9 @@ __EOD__ sub _prepare_suffix_rules($) { my ($self) = @_; - my $first_prereq = '$*.c'; - - if ($self->{config}->{GNU_MAKE} eq 'yes') { - $first_prereq = '$<'; - } $self->output(<< "__EOD__" -FIRST_PREREQ = $first_prereq +FIRST_PREREQ = $self->{config}->{FIRST_PREREQ} __EOD__ ); @@ -461,7 +456,6 @@ sub Binary($$) push (@{$self->{torture_progs}}, "$installdir/$ctx->{BINARY}"); } - push (@{$self->{binaries}}, "$localdir/$ctx->{BINARY}"); $self->_prepare_list($ctx, "OBJ_LIST"); -- cgit From 432574366f8a1421680c0e9f67a6dfa7e6d90717 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Sun, 10 Feb 2008 22:58:03 +0100 Subject: Start working on generating .mk file from configure for inclusion in Makefile. (This used to be commit 091f1e7314f05253ae1c10b3d04557be584ed19f) --- source4/build/m4/public.m4 | 35 ++++++++++++++++++++++++++--------- 1 file changed, 26 insertions(+), 9 deletions(-) (limited to 'source4/build') diff --git a/source4/build/m4/public.m4 b/source4/build/m4/public.m4 index 4192128bbd..4af246fe47 100644 --- a/source4/build/m4/public.m4 +++ b/source4/build/m4/public.m4 @@ -21,13 +21,18 @@ dnl ####################################################### dnl SMB_SUBSYSTEM(name,obj_files,required_subsystems,cflags) AC_DEFUN([SMB_SUBSYSTEM], [ +MAKE_SETTINGS="$MAKE_SETTINGS +$1_OBJ_FILES = $2 +$1_CFLAGS = $4 +" + SMB_INFO_SUBSYSTEMS="$SMB_INFO_SUBSYSTEMS ################################### # Start Subsystem $1 @<:@SUBSYSTEM::$1@:>@ -OBJ_FILES = $2 +OBJ_FILES = $($1_OBJ_FILES) PRIVATE_DEPENDENCIES = $3 -CFLAGS = $4 +CFLAGS = $($1_CFLAGS) ENABLE = YES # End Subsystem $1 ################################### @@ -37,16 +42,22 @@ ENABLE = YES dnl SMB_LIBRARY(name,obj_files,required_subsystems,version,so_version,cflags,ldflags,pcname) AC_DEFUN([SMB_LIBRARY], [ +MAKE_SETTINGS="$MAKE_SETTINGS +$1_OBJ_FILES = $2 +$1_CFLAGS = $6 +$1_LDFLAGS = $7 +" + SMB_INFO_LIBRARIES="$SMB_INFO_LIBRARIES ################################### # Start Library $1 @<:@LIBRARY::$1@:>@ -OBJ_FILES = $2 +OBJ_FILES = $($1_OBJ_FILES) PRIVATE_DEPENDENCIES = $3 VERSION = $4 SO_VERSION = $5 -CFLAGS = $6 -LDFLAGS = $7 +CFLAGS = $($1_CFLAGS) +LDFLAGS = $($1_LDFLAGS) PC_NAME = $8 ENABLE = YES # End Library $1 @@ -127,15 +138,21 @@ include $1 dnl SMB_EXT_LIB(name,libs,cflags,cppflags,ldflags,pcname) AC_DEFUN([SMB_EXT_LIB], [ +MAKE_SETTINGS="$MAKE_SETTINGS +$1_LIBS = $2 +$1_CFLAGS = $3 +$1_CPPFLAGS = $4 +$1_LDFLAGS = $5 +" SMB_INFO_EXT_LIBS="$SMB_INFO_EXT_LIBS ################################### # Start Ext Lib $1 @<:@EXT_LIB::$1@:>@ -LIBS = $2 -CFLAGS = $3 -CPPFLAGS = $4 -LDFLAGS = $5 +LIBS = $($1_LIBS) +CFLAGS = $($1_CFLAGS) +CPPFLAGS = $($1_CPPFLAGS) +LDFLAGS = $($1_LDFLAGS) PC_NAME = $6 # End Ext Lib $1 ################################### -- cgit From 73be46cf452165555a85986029bf3011120a2b51 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Sun, 10 Feb 2008 23:32:31 +0100 Subject: Move some variables to a separate .mk file that could also be included by a non-smb_build build system. (This used to be commit f44b838b682760e54aa981fe2e991495395d2394) --- source4/build/m4/public.m4 | 18 +++++++++--------- source4/build/smb_build/makefile.pm | 1 + 2 files changed, 10 insertions(+), 9 deletions(-) (limited to 'source4/build') diff --git a/source4/build/m4/public.m4 b/source4/build/m4/public.m4 index 4af246fe47..467b63055c 100644 --- a/source4/build/m4/public.m4 +++ b/source4/build/m4/public.m4 @@ -30,9 +30,9 @@ SMB_INFO_SUBSYSTEMS="$SMB_INFO_SUBSYSTEMS ################################### # Start Subsystem $1 @<:@SUBSYSTEM::$1@:>@ -OBJ_FILES = $($1_OBJ_FILES) +OBJ_FILES = \$($1_OBJ_FILES) PRIVATE_DEPENDENCIES = $3 -CFLAGS = $($1_CFLAGS) +CFLAGS = $4 ENABLE = YES # End Subsystem $1 ################################### @@ -52,12 +52,12 @@ SMB_INFO_LIBRARIES="$SMB_INFO_LIBRARIES ################################### # Start Library $1 @<:@LIBRARY::$1@:>@ -OBJ_FILES = $($1_OBJ_FILES) +OBJ_FILES = \$($1_OBJ_FILES) PRIVATE_DEPENDENCIES = $3 VERSION = $4 SO_VERSION = $5 -CFLAGS = $($1_CFLAGS) -LDFLAGS = $($1_LDFLAGS) +CFLAGS = $6 +LDFLAGS = \$($1_LDFLAGS) PC_NAME = $8 ENABLE = YES # End Library $1 @@ -149,10 +149,10 @@ SMB_INFO_EXT_LIBS="$SMB_INFO_EXT_LIBS ################################### # Start Ext Lib $1 @<:@EXT_LIB::$1@:>@ -LIBS = $($1_LIBS) -CFLAGS = $($1_CFLAGS) -CPPFLAGS = $($1_CPPFLAGS) -LDFLAGS = $($1_LDFLAGS) +LIBS = \$($1_LIBS) +CFLAGS = $3 +CPPFLAGS = $4 +LDFLAGS = \$($1_LDFLAGS) PC_NAME = $6 # End Ext Lib $1 ################################### diff --git a/source4/build/smb_build/makefile.pm b/source4/build/smb_build/makefile.pm index 5799d89c57..dfa7387c75 100644 --- a/source4/build/smb_build/makefile.pm +++ b/source4/build/smb_build/makefile.pm @@ -46,6 +46,7 @@ sub new($$$) $self->output("# Autogenerated by build/smb_build/makefile.pm #\n"); $self->output("################################################\n"); $self->output("\n"); + $self->output("include mkconfig.mk\n"); $self->output("default: all\n\n"); -- cgit From 1813b711c42a46c86391d0a44dd0be1466fd3b9c Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Mon, 11 Feb 2008 00:21:20 +0100 Subject: Automatically write AC_SUBST() vars to mkconfig.mk and use them. (This used to be commit a22bb7725b0b825a90e955f883a34341e9f0f69e) --- source4/build/smb_build/makefile.pm | 101 +++--------------------------------- 1 file changed, 8 insertions(+), 93 deletions(-) (limited to 'source4/build') diff --git a/source4/build/smb_build/makefile.pm b/source4/build/smb_build/makefile.pm index dfa7387c75..c28229c23b 100644 --- a/source4/build/smb_build/makefile.pm +++ b/source4/build/smb_build/makefile.pm @@ -50,8 +50,6 @@ sub new($$$) $self->output("default: all\n\n"); - $self->_prepare_path_vars(); - $self->_prepare_suffix_rules(); $self->_prepare_compiler_linker(); if (!$self->{automatic_deps}) { @@ -69,57 +67,6 @@ sub output($$) $self->{output} .= $text; } -sub _prepare_path_vars($) -{ - my ($self) = @_; - - $self->output(<< "__EOD__" -prefix = $self->{config}->{prefix} -exec_prefix = $self->{config}->{exec_prefix} -selftest_prefix = $self->{config}->{selftest_prefix} - -builddir = $self->{config}->{builddir} -srcdir = $self->{config}->{srcdir} -datarootdir = $self->{config}->{datarootdir} - -VPATH = \$(builddir):\$(srcdir):heimdal_build:heimdal/lib/asn1:heimdal/lib/krb5:heimdal/lib/gssapi:heimdal/lib/hdb:heimdal/lib/roken:heimdal/lib/des - -BASEDIR = $self->{config}->{prefix} -BINDIR = $self->{config}->{bindir} -SBINDIR = $self->{config}->{sbindir} -LIBDIR = $self->{config}->{libdir} -TORTUREDIR = $self->{config}->{libdir}/torture -MODULESDIR = $self->{config}->{modulesdir} -INCLUDEDIR = $self->{config}->{includedir} -CONFIGDIR = $self->{config}->{sysconfdir} -DATADIR = $self->{config}->{datadir} -SWATDIR = \$(DATADIR)/swat -JSDIR = \$(DATADIR)/js -SETUPDIR = \$(DATADIR)/setup -VARDIR = $self->{config}->{localstatedir} -LOGFILEBASE = $self->{config}->{logfilebase} -NCALRPCDIR = $self->{config}->{localstatedir}/ncalrpc -LOCKDIR = $self->{config}->{lockdir} -PIDDIR = $self->{config}->{piddir} -MANDIR = $self->{config}->{mandir} -PRIVATEDIR = $self->{config}->{privatedir} -WINBINDD_SOCKET_DIR = $self->{config}->{winbindd_socket_dir} - -__EOD__ -); -} - -sub _prepare_suffix_rules($) -{ - my ($self) = @_; - - $self->output(<< "__EOD__" -FIRST_PREREQ = $self->{config}->{FIRST_PREREQ} - -__EOD__ -); -} - sub _prepare_compiler_linker($) { my ($self) = @_; @@ -140,54 +87,22 @@ sub _prepare_compiler_linker($) } $self->output(<< "__EOD__" -SHELL=$self->{config}->{SHELL} -PERL=$self->{config}->{PERL} -PYTHON=$self->{config}->{PYTHON} -SWIG=$self->{config}->{SWIG} - -CPP=$self->{config}->{CPP} CPPFLAGS=$builddir_headers-I\$(srcdir)/include -I\$(srcdir) -I\$(srcdir)/lib -I\$(srcdir)/lib/replace -I\$(srcdir)/lib/talloc -D_SAMBA_BUILD_=4 -DHAVE_CONFIG_H $self->{config}->{CPPFLAGS} -CC=$self->{config}->{CC} -CFLAGS=$self->{config}->{CFLAGS} -CFLAG_NO_UNUSED_MACROS=$self->{config}->{CFLAG_NO_UNUSED_MACROS} -PICFLAG=$self->{config}->{PICFLAG} - INSTALL_LINK_FLAGS=$extra_link_flags BNLD=$self->{config}->{LD} BNLD_FLAGS=$self->{config}->{LDFLAGS} -L$libdir -STLD=$self->{config}->{STLD} -STLD_FLAGS=$self->{config}->{STLD_FLAGS} - -SHLD=$self->{config}->{SHLD} SHLD_FLAGS=$self->{config}->{SHLD_FLAGS} -L\$(builddir)/bin/shared -MDLD=$self->{config}->{MDLD} MDLD_FLAGS=$self->{config}->{MDLD_FLAGS} -L\$(builddir)/bin/shared -SHLIBEXT=$self->{config}->{SHLIBEXT} - -HOSTCC=$self->{config}->{HOSTCC} HOSTCC_FLAGS=-D_SAMBA_HOSTCC_ \$(CFLAGS) -HOSTLD=$self->{config}->{HOSTLD} HOSTLD_FLAGS=$self->{config}->{LDFLAGS} -XSLTPROC=$self->{config}->{XSLTPROC} - -LIB_PATH_VAR=$self->{config}->{LIB_PATH_VAR} - -LEX=$self->{config}->{LEX} -YACC=$self->{config}->{YACC} -YAPP=$self->{config}->{YAPP} - -GCOV=$self->{config}->{GCOV} - -DEFAULT_TEST_OPTIONS=$self->{config}->{DEFAULT_TEST_OPTIONS} - __EOD__ ); } @@ -281,16 +196,16 @@ sub SharedModule($$) } else { push (@{$self->{shared_modules}}, "$ctx->{TARGET_SHARED_LIBRARY}"); push (@{$self->{plugins}}, "$ctx->{SHAREDDIR}/$ctx->{LIBRARY_REALNAME}"); - $self->{install_plugins} .= "\t\@echo Installing $ctx->{SHAREDDIR}/$ctx->{LIBRARY_REALNAME} as \$(DESTDIR)\$(MODULESDIR)/$sane_subsystem/$ctx->{LIBRARY_REALNAME}\n"; - $self->{install_plugins} .= "\t\@mkdir -p \$(DESTDIR)\$(MODULESDIR)/$sane_subsystem/\n"; - $self->{install_plugins} .= "\t\@cp $ctx->{SHAREDDIR}/$ctx->{LIBRARY_REALNAME} \$(DESTDIR)\$(MODULESDIR)/$sane_subsystem/$ctx->{LIBRARY_REALNAME}\n"; - $self->{uninstall_plugins} .= "\t\@echo Uninstalling \$(DESTDIR)\$(MODULESDIR)/$sane_subsystem/$ctx->{LIBRARY_REALNAME}\n"; - $self->{uninstall_plugins} .= "\t\@-rm \$(DESTDIR)\$(MODULESDIR)/$sane_subsystem/$ctx->{LIBRARY_REALNAME}\n"; + $self->{install_plugins} .= "\t\@echo Installing $ctx->{SHAREDDIR}/$ctx->{LIBRARY_REALNAME} as \$(DESTDIR)\$(modulesdir)/$sane_subsystem/$ctx->{LIBRARY_REALNAME}\n"; + $self->{install_plugins} .= "\t\@mkdir -p \$(DESTDIR)\$(modulesdir)/$sane_subsystem/\n"; + $self->{install_plugins} .= "\t\@cp $ctx->{SHAREDDIR}/$ctx->{LIBRARY_REALNAME} \$(DESTDIR)\$(modulesdir)/$sane_subsystem/$ctx->{LIBRARY_REALNAME}\n"; + $self->{uninstall_plugins} .= "\t\@echo Uninstalling \$(DESTDIR)\$(modulesdir)/$sane_subsystem/$ctx->{LIBRARY_REALNAME}\n"; + $self->{uninstall_plugins} .= "\t\@-rm \$(DESTDIR)\$(modulesdir)/$sane_subsystem/$ctx->{LIBRARY_REALNAME}\n"; if (defined($ctx->{ALIASES})) { foreach (@{$ctx->{ALIASES}}) { - $self->{install_plugins} .= "\t\@rm -f \$(DESTDIR)\$(MODULESDIR)/$sane_subsystem/$_.\$(SHLIBEXT)\n"; - $self->{install_plugins} .= "\t\@ln -fs $ctx->{LIBRARY_REALNAME} \$(DESTDIR)\$(MODULESDIR)/$sane_subsystem/$_.\$(SHLIBEXT)\n"; - $self->{uninstall_plugins} .= "\t\@-rm \$(DESTDIR)\$(MODULESDIR)/$sane_subsystem/$_.\$(SHLIBEXT)\n"; + $self->{install_plugins} .= "\t\@rm -f \$(DESTDIR)\$(modulesdir)/$sane_subsystem/$_.\$(SHLIBEXT)\n"; + $self->{install_plugins} .= "\t\@ln -fs $ctx->{LIBRARY_REALNAME} \$(DESTDIR)\$(modulesdir)/$sane_subsystem/$_.\$(SHLIBEXT)\n"; + $self->{uninstall_plugins} .= "\t\@-rm \$(DESTDIR)\$(modulesdir)/$sane_subsystem/$_.\$(SHLIBEXT)\n"; } } } -- cgit From 8ba668bb05478640609b31739270a0b6b8738067 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Mon, 11 Feb 2008 01:02:16 +0100 Subject: Move some more variables to static .mk file. (This used to be commit a72d3ffaded5624732972708c305b8f84f47fed7) --- source4/build/smb_build/makefile.pm | 16 +++------------- 1 file changed, 3 insertions(+), 13 deletions(-) (limited to 'source4/build') diff --git a/source4/build/smb_build/makefile.pm b/source4/build/smb_build/makefile.pm index c28229c23b..865d231c0c 100644 --- a/source4/build/smb_build/makefile.pm +++ b/source4/build/smb_build/makefile.pm @@ -92,17 +92,7 @@ CPPFLAGS=$builddir_headers-I\$(srcdir)/include -I\$(srcdir) -I\$(srcdir)/lib -I\ INSTALL_LINK_FLAGS=$extra_link_flags -BNLD=$self->{config}->{LD} -BNLD_FLAGS=$self->{config}->{LDFLAGS} -L$libdir - -SHLD_FLAGS=$self->{config}->{SHLD_FLAGS} -L\$(builddir)/bin/shared - -MDLD_FLAGS=$self->{config}->{MDLD_FLAGS} -L\$(builddir)/bin/shared - -HOSTCC_FLAGS=-D_SAMBA_HOSTCC_ \$(CFLAGS) - -HOSTLD_FLAGS=$self->{config}->{LDFLAGS} - +INTERN_LDFLAGS = -L$libdir __EOD__ ); } @@ -245,7 +235,7 @@ __EOD__ $ctx->{SHAREDDIR}/$ctx->{LIBRARY_REALNAME}: \$($ctx->{TYPE}_$ctx->{NAME}_DEPEND_LIST) \$($ctx->{TYPE}_$ctx->{NAME}_FULL_OBJ_LIST) $init_obj \@echo Linking \$\@ \@mkdir -p $ctx->{SHAREDDIR} - \@\$(MDLD) \$(MDLD_FLAGS) -o \$\@ \$(INSTALL_LINK_FLAGS) \\ + \@\$(MDLD) \$(MDLD_FLAGS) \$(INTERN_LDFLAGS) -o \$\@ \$(INSTALL_LINK_FLAGS) \\ \$($ctx->{TYPE}_$ctx->{NAME}\_FULL_OBJ_LIST) $init_obj \\ \$($ctx->{TYPE}_$ctx->{NAME}_LINK_FLAGS) __EOD__ @@ -303,7 +293,7 @@ sub SharedLibrary($$) $ctx->{SHAREDDIR}/$ctx->{LIBRARY_REALNAME}: \$($ctx->{TYPE}_$ctx->{NAME}_DEPEND_LIST) \$($ctx->{TYPE}_$ctx->{NAME}_FULL_OBJ_LIST) \@echo Linking \$\@ \@mkdir -p $ctx->{SHAREDDIR} - \@\$(SHLD) \$(SHLD_FLAGS) -o \$\@ \$(INSTALL_LINK_FLAGS) \\ + \@\$(SHLD) \$(SHLD_FLAGS) \$(INTERN_LDFLAGS) -o \$\@ \$(INSTALL_LINK_FLAGS) \\ \$($ctx->{TYPE}_$ctx->{NAME}\_FULL_OBJ_LIST) \\ \$($ctx->{TYPE}_$ctx->{NAME}_LINK_FLAGS) \\ $soarg$lns -- cgit From b4c81c0c18d2354513600668d7980b0c7cdd94b8 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Mon, 11 Feb 2008 14:39:21 +0100 Subject: Make data about what subsystems/libraries are enabled available in the mkconfig.mk file. (This used to be commit 4cc93a98f984d322e41f403169cfa4945b469935) --- source4/build/m4/public.m4 | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'source4/build') diff --git a/source4/build/m4/public.m4 b/source4/build/m4/public.m4 index 467b63055c..e8fbe4b286 100644 --- a/source4/build/m4/public.m4 +++ b/source4/build/m4/public.m4 @@ -24,6 +24,7 @@ AC_DEFUN([SMB_SUBSYSTEM], MAKE_SETTINGS="$MAKE_SETTINGS $1_OBJ_FILES = $2 $1_CFLAGS = $4 +$1_ENABLE = YES " SMB_INFO_SUBSYSTEMS="$SMB_INFO_SUBSYSTEMS @@ -46,6 +47,7 @@ MAKE_SETTINGS="$MAKE_SETTINGS $1_OBJ_FILES = $2 $1_CFLAGS = $6 $1_LDFLAGS = $7 +$1_ENABLE = YES " SMB_INFO_LIBRARIES="$SMB_INFO_LIBRARIES @@ -162,8 +164,9 @@ PC_NAME = $6 dnl SMB_ENABLE(name,default_build) AC_DEFUN([SMB_ENABLE], [ - [SMB_ENABLE_][$1]="$2"; - + MAKE_SETTINGS="$MAKE_SETTINGS +$1_ENABLE = $2 +" SMB_INFO_ENABLES="$SMB_INFO_ENABLES \$enabled{$1} = \"$2\";" ]) -- cgit From 604a0af3a7694deaea880f3ee4d4482803474970 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Mon, 11 Feb 2008 01:42:29 +0100 Subject: Avoid autogenerating the Makefile but rather include a data.mk file that is autogenerated. (This used to be commit ebf6e59dfef30e1f679ea6692385a09abcb220dd) --- source4/build/smb_build/config_mk.pm | 2 -- source4/build/smb_build/main.pl | 2 +- source4/build/smb_build/makefile.pm | 4 ---- 3 files changed, 1 insertion(+), 7 deletions(-) (limited to 'source4/build') diff --git a/source4/build/smb_build/config_mk.pm b/source4/build/smb_build/config_mk.pm index b7dc9697a9..aa075490bc 100644 --- a/source4/build/smb_build/config_mk.pm +++ b/source4/build/smb_build/config_mk.pm @@ -251,8 +251,6 @@ sub run_config_mk($$$$) next; } - $line =~ s/^mkinclude /include /; - # empty line if ($line =~ /^[ \t]*$/) { $section = "GLOBAL"; diff --git a/source4/build/smb_build/main.pl b/source4/build/smb_build/main.pl index fb769103d0..ff540215f7 100644 --- a/source4/build/smb_build/main.pl +++ b/source4/build/smb_build/main.pl @@ -80,7 +80,7 @@ foreach my $key (values %$OUTPUT) { defined($key->{PUBLIC_PROTO_HEADER}); } -$mkenv->write("Makefile"); +$mkenv->write("data.mk"); header::create_smb_build_h($OUTPUT, "include/build.h"); cflags::create_cflags($OUTPUT, $config::config{srcdir}, diff --git a/source4/build/smb_build/makefile.pm b/source4/build/smb_build/makefile.pm index 865d231c0c..0393e2b258 100644 --- a/source4/build/smb_build/makefile.pm +++ b/source4/build/smb_build/makefile.pm @@ -41,14 +41,10 @@ sub new($$$) $self->{mkfile} = $mkfile; - $self->output("#!gmake\n"); $self->output("################################################\n"); $self->output("# Autogenerated by build/smb_build/makefile.pm #\n"); $self->output("################################################\n"); $self->output("\n"); - $self->output("include mkconfig.mk\n"); - - $self->output("default: all\n\n"); $self->_prepare_compiler_linker(); -- cgit From 98fdbb61260b19bc97675336993f3fcb5f470f90 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Mon, 11 Feb 2008 18:07:22 +0100 Subject: TORTUREDIR as target dir for binaries is no longer used, remove it. (This used to be commit df5b712001c16acf275d9a79fd765cf8976508d6) --- source4/build/smb_build/makefile.pm | 7 ------- 1 file changed, 7 deletions(-) (limited to 'source4/build') diff --git a/source4/build/smb_build/makefile.pm b/source4/build/smb_build/makefile.pm index 0393e2b258..50a16c543f 100644 --- a/source4/build/smb_build/makefile.pm +++ b/source4/build/smb_build/makefile.pm @@ -24,7 +24,6 @@ sub new($$$) $self->{manpages} = []; $self->{sbin_progs} = []; $self->{bin_progs} = []; - $self->{torture_progs} = []; $self->{static_libs} = []; $self->{python_dsos} = []; $self->{python_pys} = []; @@ -340,9 +339,6 @@ sub Binary($$) my $installdir; my $extradir = ""; - if (defined($ctx->{INSTALLDIR}) && $ctx->{INSTALLDIR} =~ /^TORTUREDIR/) { - $extradir = "/torture" . substr($ctx->{INSTALLDIR}, length("TORTUREDIR")); - } my $localdir = "bin$extradir"; $installdir = "bin$extradir"; @@ -354,8 +350,6 @@ sub Binary($$) push (@{$self->{sbin_progs}}, "$installdir/$ctx->{BINARY}"); } elsif ($ctx->{INSTALLDIR} eq "BINDIR") { push (@{$self->{bin_progs}}, "$installdir/$ctx->{BINARY}"); - } elsif ($ctx->{INSTALLDIR} =~ /^TORTUREDIR/) { - push (@{$self->{torture_progs}}, "$installdir/$ctx->{BINARY}"); } push (@{$self->{binaries}}, "$localdir/$ctx->{BINARY}"); @@ -455,7 +449,6 @@ sub write($$) $self->output("MANPAGES = ".array2oneperline($self->{manpages})."\n"); $self->output("BIN_PROGS = " . array2oneperline($self->{bin_progs}) . "\n"); $self->output("SBIN_PROGS = " . array2oneperline($self->{sbin_progs}) . "\n"); - $self->output("TORTURE_PROGS = " . array2oneperline($self->{torture_progs}) . "\n"); $self->output("BINARIES = " . array2oneperline($self->{binaries}) . "\n"); $self->output("STATIC_LIBS = " . array2oneperline($self->{static_libs}) . "\n"); $self->output("SHARED_LIBS = " . array2oneperline($self->{shared_libs}) . "\n"); -- cgit From 6c7a4009458b4b005b3c5f19dc284f0fcc459bcc Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Mon, 11 Feb 2008 19:10:21 +0100 Subject: Support including files in the cflags.pl script. (This used to be commit 742e50aeb54d779d383cbf73132224bad3b09777) --- source4/build/smb_build/cflags.pm | 2 ++ 1 file changed, 2 insertions(+) (limited to 'source4/build') diff --git a/source4/build/smb_build/cflags.pm b/source4/build/smb_build/cflags.pm index ad6cd42c65..a4ab90a8cd 100755 --- a/source4/build/smb_build/cflags.pm +++ b/source4/build/smb_build/cflags.pm @@ -23,6 +23,8 @@ sub create_cflags($$$$) { open(CFLAGS_TXT,">$file") || die ("Can't open `$file'\n"); + print CFLAGS_TXT "include mkconfig.mk\n"; + my $src_ne_build = ($srcdir ne $builddir) ? 1 : 0; foreach my $key (values %{$CTX}) { -- cgit From a3052e79f41afe91dc5a1c898868c632053ce599 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Mon, 11 Feb 2008 19:28:59 +0100 Subject: Use make variables in cflags file (now supported by cflags.pl) (This used to be commit d746fcde1006b4b7b33aa65bef9d2fea3ebc9162) --- source4/build/m4/public.m4 | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'source4/build') diff --git a/source4/build/m4/public.m4 b/source4/build/m4/public.m4 index e8fbe4b286..d045cf42b7 100644 --- a/source4/build/m4/public.m4 +++ b/source4/build/m4/public.m4 @@ -33,7 +33,7 @@ SMB_INFO_SUBSYSTEMS="$SMB_INFO_SUBSYSTEMS @<:@SUBSYSTEM::$1@:>@ OBJ_FILES = \$($1_OBJ_FILES) PRIVATE_DEPENDENCIES = $3 -CFLAGS = $4 +CFLAGS = \$($1_CFLAGS) ENABLE = YES # End Subsystem $1 ################################### @@ -58,7 +58,7 @@ OBJ_FILES = \$($1_OBJ_FILES) PRIVATE_DEPENDENCIES = $3 VERSION = $4 SO_VERSION = $5 -CFLAGS = $6 +CFLAGS = \$($1_CFLAGS) LDFLAGS = \$($1_LDFLAGS) PC_NAME = $8 ENABLE = YES @@ -152,8 +152,8 @@ SMB_INFO_EXT_LIBS="$SMB_INFO_EXT_LIBS # Start Ext Lib $1 @<:@EXT_LIB::$1@:>@ LIBS = \$($1_LIBS) -CFLAGS = $3 -CPPFLAGS = $4 +CFLAGS = \$($1_CFLAGS) +CPPFLAGS = \$($1_CPPFLAGS) LDFLAGS = \$($1_LDFLAGS) PC_NAME = $6 # End Ext Lib $1 -- cgit From 501005c2eb3de794f72121d62bf7769e9109a032 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Wed, 13 Feb 2008 18:59:57 +0100 Subject: Put soversions and versions for libraries with a hard-coded version in the generated .mk file. Move CPPFLAGS to be generated entirely inside configure.ac (simplifies makefile.pm). (This used to be commit a44af7c3872e900e1ea0da74ef796213030e29ac) --- source4/build/smb_build/makefile.pm | 35 +++-------------------------------- 1 file changed, 3 insertions(+), 32 deletions(-) (limited to 'source4/build') diff --git a/source4/build/smb_build/makefile.pm b/source4/build/smb_build/makefile.pm index 50a16c543f..3df1b5671b 100644 --- a/source4/build/smb_build/makefile.pm +++ b/source4/build/smb_build/makefile.pm @@ -45,8 +45,6 @@ sub new($$$) $self->output("################################################\n"); $self->output("\n"); - $self->_prepare_compiler_linker(); - if (!$self->{automatic_deps}) { $self->output("ALL_PREDEP = proto\n"); $self->output(".NOTPARALLEL:\n"); @@ -62,36 +60,6 @@ sub output($$) $self->{output} .= $text; } -sub _prepare_compiler_linker($) -{ - my ($self) = @_; - - my $builddir_headers = ""; - my $libdir; - my $extra_link_flags = ""; - - if ($self->{config}->{USESHARED} eq "true") { - $libdir = "\$(builddir)/bin/shared"; - $extra_link_flags = "-Wl,-rpath-link,\$(builddir)/bin/shared"; - } else { - $libdir = "\$(builddir)/bin/static"; - } - - if (!(abs_path($self->{config}->{srcdir}) eq abs_path($self->{config}->{builddir}))) { - $builddir_headers= "-I\$(builddir)/include -I\$(builddir) -I\$(builddir)/lib "; - } - - $self->output(<< "__EOD__" - -CPPFLAGS=$builddir_headers-I\$(srcdir)/include -I\$(srcdir) -I\$(srcdir)/lib -I\$(srcdir)/lib/replace -I\$(srcdir)/lib/talloc -D_SAMBA_BUILD_=4 -DHAVE_CONFIG_H $self->{config}->{CPPFLAGS} - -INSTALL_LINK_FLAGS=$extra_link_flags - -INTERN_LDFLAGS = -L$libdir -__EOD__ -); -} - sub _prepare_mk_files($) { my $self = shift; @@ -251,6 +219,9 @@ sub SharedLibrary($$) my $has_static_lib = 0; + $self->output("$ctx->{NAME}_SOVERSION = $ctx->{SO_VERSION}\n") if (defined($ctx->{SO_VERSION})); + $self->output("$ctx->{NAME}_VERSION = $ctx->{VERSION}\n") if (defined($ctx->{VERSION})); + push (@{$self->{shared_libs}}, "$ctx->{SHAREDDIR}/$ctx->{LIBRARY_REALNAME}") if (defined($ctx->{SO_VERSION})); push (@{$self->{installable_shared_libs}}, "$ctx->{SHAREDDIR}/$ctx->{LIBRARY_REALNAME}") if (defined($ctx->{SO_VERSION})); -- cgit From b0a7e5476b0510f69d1282bb33b9b7de67a28577 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Wed, 13 Feb 2008 21:03:01 +0100 Subject: Use more variables in generated data.mk. (This used to be commit 2dce9e4e0d5ba8785fdee3daba91e6c9f4a32040) --- source4/build/smb_build/header.pm | 1 + source4/build/smb_build/main.pl | 16 +++++++++++++--- source4/build/smb_build/makefile.pm | 35 ++++++++++++++++++++++------------- source4/build/smb_build/output.pm | 6 +++--- 4 files changed, 39 insertions(+), 19 deletions(-) (limited to 'source4/build') diff --git a/source4/build/smb_build/header.pm b/source4/build/smb_build/header.pm index b52464922b..93240f1d17 100644 --- a/source4/build/smb_build/header.pm +++ b/source4/build/smb_build/header.pm @@ -82,4 +82,5 @@ sub create_smb_build_h($$) print __FILE__.": creating $file\n"; } + 1; diff --git a/source4/build/smb_build/main.pl b/source4/build/smb_build/main.pl index ff540215f7..a85eab32de 100644 --- a/source4/build/smb_build/main.pl +++ b/source4/build/smb_build/main.pl @@ -63,16 +63,15 @@ foreach my $key (values %$OUTPUT) { if (defined($key->{PC_FILE})) { push(@{$mkenv->{pc_files}}, "$key->{BASEDIR}/$key->{PC_FILE}"); } - $mkenv->SharedLibrary($key) if ($key->{TYPE} eq "LIBRARY") and + $mkenv->SharedLibraryPrimitives($key) if ($key->{TYPE} eq "LIBRARY") and grep(/SHARED_LIBRARY/, @{$key->{OUTPUT_TYPE}}); if ($key->{TYPE} eq "LIBRARY" and ${$key->{OUTPUT_TYPE}}[0] eq "SHARED_LIBRARY") { $shared_libs_used = 1; } - $mkenv->SharedModule($key) if ($key->{TYPE} eq "MODULE" or + $mkenv->SharedModulePrimitives($key) if ($key->{TYPE} eq "MODULE" or $key->{TYPE} eq "PYTHON") and grep(/SHARED_LIBRARY/, @{$key->{OUTPUT_TYPE}}); - $mkenv->Binary($key) if grep(/BINARY/, @{$key->{OUTPUT_TYPE}}); $mkenv->PythonFiles($key) if defined($key->{PYTHON_FILES}); $mkenv->Manpage($key) if defined($key->{MANPAGE}); $mkenv->Header($key) if defined($key->{PUBLIC_HEADERS}); @@ -80,6 +79,17 @@ foreach my $key (values %$OUTPUT) { defined($key->{PUBLIC_PROTO_HEADER}); } +foreach my $key (values %$OUTPUT) { + next unless defined $key->{OUTPUT_TYPE}; + + $mkenv->SharedLibrary($key) if ($key->{TYPE} eq "LIBRARY") and + grep(/SHARED_LIBRARY/, @{$key->{OUTPUT_TYPE}}); + $mkenv->SharedModule($key) if ($key->{TYPE} eq "MODULE" or + $key->{TYPE} eq "PYTHON") and + grep(/SHARED_LIBRARY/, @{$key->{OUTPUT_TYPE}}); + $mkenv->Binary($key) if grep(/BINARY/, @{$key->{OUTPUT_TYPE}}); +} + $mkenv->write("data.mk"); header::create_smb_build_h($OUTPUT, "include/build.h"); diff --git a/source4/build/smb_build/makefile.pm b/source4/build/smb_build/makefile.pm index 3df1b5671b..9c5ae9ea1d 100644 --- a/source4/build/smb_build/makefile.pm +++ b/source4/build/smb_build/makefile.pm @@ -134,6 +134,13 @@ sub Integrated($$) $self->_prepare_list($ctx, "LINK_FLAGS"); } +sub SharedModulePrimitives($$) +{ + my ($self,$ctx) = @_; + + #FIXME +} + sub SharedModule($$) { my ($self,$ctx) = @_; @@ -213,25 +220,27 @@ __EOD__ $self->output("\n"); } -sub SharedLibrary($$) +sub SharedLibraryPrimitives($$) { my ($self,$ctx) = @_; - my $has_static_lib = 0; - $self->output("$ctx->{NAME}_SOVERSION = $ctx->{SO_VERSION}\n") if (defined($ctx->{SO_VERSION})); $self->output("$ctx->{NAME}_VERSION = $ctx->{VERSION}\n") if (defined($ctx->{VERSION})); - push (@{$self->{shared_libs}}, "$ctx->{SHAREDDIR}/$ctx->{LIBRARY_REALNAME}") if (defined($ctx->{SO_VERSION})); - push (@{$self->{installable_shared_libs}}, "$ctx->{SHAREDDIR}/$ctx->{LIBRARY_REALNAME}") if (defined($ctx->{SO_VERSION})); - - $has_static_lib = 1 if grep(/STATIC_LIBRARY/, @{$ctx->{OUTPUT_TYPE}}); - - if (not $has_static_lib) { + if (not grep(/STATIC_LIBRARY/, @{$ctx->{OUTPUT_TYPE}})) { $self->output("$ctx->{TYPE}_$ctx->{NAME}_OUTPUT = $ctx->{OUTPUT}\n"); $self->_prepare_list($ctx, "OBJ_LIST"); $self->_prepare_list($ctx, "FULL_OBJ_LIST"); } +} + +sub SharedLibrary($$) +{ + my ($self,$ctx) = @_; + + push (@{$self->{shared_libs}}, "$ctx->{SHAREDDIR}/$ctx->{LIBRARY_REALNAME}") if (defined($ctx->{SO_VERSION})); + push (@{$self->{installable_shared_libs}}, "$ctx->{SHAREDDIR}/$ctx->{LIBRARY_REALNAME}") if (defined($ctx->{SO_VERSION})); + $self->_prepare_list($ctx, "DEPEND_LIST"); $self->_prepare_list($ctx, "LINK_FLAGS"); # $self->_prepare_list_ex($ctx, "LINK_FLAGS", "-Wl,--whole-archive", "-Wl,--no-whole-archive"); @@ -338,13 +347,13 @@ __EOD__ if (defined($ctx->{USE_HOSTCC}) && $ctx->{USE_HOSTCC} eq "YES") { $self->output(<< "__EOD__" - \@\$(HOSTLD) \$(HOSTLD_FLAGS) -o \$\@ \$(INSTALL_LINK_FLAGS) \\ + \@\$(HOSTLD) \$(HOSTLD_FLAGS) -L\${builddir}/bin/static -o \$\@ \$(INSTALL_LINK_FLAGS) \\ \$\($ctx->{TYPE}_$ctx->{NAME}_LINK_FLAGS) __EOD__ ); } else { $self->output(<< "__EOD__" - \@\$(BNLD) \$(BNLD_FLAGS) -o \$\@ \$(INSTALL_LINK_FLAGS) \\ + \@\$(BNLD) \$(BNLD_FLAGS) \$(INTERN_LDFLAGS) -o \$\@ \$(INSTALL_LINK_FLAGS) \\ \$\($ctx->{TYPE}_$ctx->{NAME}_LINK_FLAGS) __EOD__ @@ -415,9 +424,9 @@ sub ProtoHeader($$) sub write($$) { - my ($self,$file) = @_; + my ($self, $file) = @_; - $self->output("MANPAGES = ".array2oneperline($self->{manpages})."\n"); + $self->output("MANPAGES = " . array2oneperline($self->{manpages})."\n"); $self->output("BIN_PROGS = " . array2oneperline($self->{bin_progs}) . "\n"); $self->output("SBIN_PROGS = " . array2oneperline($self->{sbin_progs}) . "\n"); $self->output("BINARIES = " . array2oneperline($self->{binaries}) . "\n"); diff --git a/source4/build/smb_build/output.pm b/source4/build/smb_build/output.pm index fbf14f7e91..3088a98c8c 100644 --- a/source4/build/smb_build/output.pm +++ b/source4/build/smb_build/output.pm @@ -81,8 +81,8 @@ sub generate_shared_library($) $lib->{LIBRARY_DEBUGNAME} = $lib->{LIBRARY_REALNAME}; if (defined($lib->{VERSION}) and $config::config{SONAMEFLAG} ne "#") { - $lib->{LIBRARY_SONAME} = "$lib->{LIBRARY_REALNAME}.$lib->{SO_VERSION}"; - $lib->{LIBRARY_REALNAME} = "$lib->{LIBRARY_REALNAME}.$lib->{VERSION}"; + $lib->{LIBRARY_SONAME} = "$lib->{LIBRARY_REALNAME}.\$($lib->{NAME}_SOVERSION)"; + $lib->{LIBRARY_REALNAME} = "$lib->{LIBRARY_REALNAME}.\$($lib->{NAME}_VERSION)"; } $lib->{TARGET_SHARED_LIBRARY} = "$lib->{SHAREDDIR}/$lib->{LIBRARY_REALNAME}"; @@ -107,7 +107,7 @@ sub generate_static_library($) } else { $lib->{TARGET_STATIC_LIBRARY} = ""; } - $lib->{OUTPUT_STATIC_LIBRARY} = $lib->{TARGET_STATIC_LIBRARY}; + $lib->{OUTPUT_STATIC_LIBRARY} = "-l".lc($link_name); } sub generate_binary($) -- cgit From 411776505cea3932a196e8439a8198b4e419d901 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Wed, 13 Feb 2008 21:05:58 +0100 Subject: Fix corner case. (This used to be commit 92dbbc479032ae3d0cf4b2b9e64291128185cf9c) --- source4/build/smb_build/output.pm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'source4/build') diff --git a/source4/build/smb_build/output.pm b/source4/build/smb_build/output.pm index 3088a98c8c..855d03ade2 100644 --- a/source4/build/smb_build/output.pm +++ b/source4/build/smb_build/output.pm @@ -104,10 +104,11 @@ sub generate_static_library($) if (defined($lib->{OBJ_FILES})) { $lib->{TARGET_STATIC_LIBRARY} = "bin/static/$lib->{LIBRARY_NAME}"; $lib->{STATICDIR} = 'bin/static'; + $lib->{OUTPUT_STATIC_LIBRARY} = "-l".lc($link_name); } else { $lib->{TARGET_STATIC_LIBRARY} = ""; + $lib->{OUTPUT_STATIC_LIBRARY} = ""; } - $lib->{OUTPUT_STATIC_LIBRARY} = "-l".lc($link_name); } sub generate_binary($) -- cgit From 21c0f266616e093cccbaf9378b3a915e56ba6079 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Wed, 13 Feb 2008 21:39:25 +0100 Subject: Remove some make variables that aren't necessary. (This used to be commit 8d41cb23dea4fccfc2b3fc8a816cda54af6038fb) --- source4/build/smb_build/input.pm | 2 +- source4/build/smb_build/makefile.pm | 2 -- source4/build/smb_build/output.pm | 2 +- 3 files changed, 2 insertions(+), 4 deletions(-) (limited to 'source4/build') diff --git a/source4/build/smb_build/input.pm b/source4/build/smb_build/input.pm index 6d5c4f4a1e..594daf6290 100644 --- a/source4/build/smb_build/input.pm +++ b/source4/build/smb_build/input.pm @@ -208,7 +208,7 @@ sub import_integrated($$) next if($mod->{SUBSYSTEM} ne $lib->{NAME}); next if($mod->{ENABLE} ne "YES"); - push (@{$lib->{FULL_OBJ_LIST}}, "\$($mod->{TYPE}_$mod->{NAME}_FULL_OBJ_LIST)"); + push (@{$lib->{FULL_OBJ_LIST}}, "\$($mod->{TYPE}_$mod->{NAME}_OBJ_LIST)"); push (@{$lib->{LINK_FLAGS}}, "\$($mod->{TYPE}_$mod->{NAME}_LINK_FLAGS)"); push (@{$lib->{CFLAGS}}, @{$mod->{CFLAGS}}) if defined($mod->{CFLAGS}); push (@{$lib->{PUBLIC_DEPENDENCIES}}, @{$mod->{PUBLIC_DEPENDENCIES}}) if defined($mod->{PUBLIC_DEPENDENCIES}); diff --git a/source4/build/smb_build/makefile.pm b/source4/build/smb_build/makefile.pm index 9c5ae9ea1d..96de863cd2 100644 --- a/source4/build/smb_build/makefile.pm +++ b/source4/build/smb_build/makefile.pm @@ -130,8 +130,6 @@ sub Integrated($$) my ($self,$ctx) = @_; $self->_prepare_list($ctx, "OBJ_LIST"); - $self->_prepare_list($ctx, "FULL_OBJ_LIST"); - $self->_prepare_list($ctx, "LINK_FLAGS"); } sub SharedModulePrimitives($$) diff --git a/source4/build/smb_build/output.pm b/source4/build/smb_build/output.pm index 855d03ade2..6f2d9dd209 100644 --- a/source4/build/smb_build/output.pm +++ b/source4/build/smb_build/output.pm @@ -176,7 +176,7 @@ sub create_output($$) my $elem = $depend->{$_}; next if $elem == $part; - push(@{$part->{LINK_FLAGS}}, $elem->{OUTPUT}) if defined($elem->{OUTPUT}); + push(@{$part->{LINK_FLAGS}}, "\$($elem->{TYPE}_$elem->{NAME}_OUTPUT)") if defined($elem->{OUTPUT}); push(@{$part->{LINK_FLAGS}}, @{$elem->{LIBS}}) if defined($elem->{LIBS}); push(@{$part->{LINK_FLAGS}},@{$elem->{LDFLAGS}}) if defined($elem->{LDFLAGS}); push(@{$part->{DEPEND_LIST}}, $elem->{TARGET}) if defined($elem->{TARGET}); -- cgit From e33177001cdd7d55e45bb9c6ed3f39bf33a9da84 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Thu, 14 Feb 2008 12:03:34 +0100 Subject: Remove type before variables in data.mk (This used to be commit 3c1a7c0dcc56ed5595e31a8df023a04ae95bfca5) --- source4/build/smb_build/input.pm | 6 +++--- source4/build/smb_build/makefile.pm | 42 ++++++++++++++++++------------------- source4/build/smb_build/output.pm | 4 ++-- 3 files changed, 26 insertions(+), 26 deletions(-) (limited to 'source4/build') diff --git a/source4/build/smb_build/input.pm b/source4/build/smb_build/input.pm index 594daf6290..51c89a834f 100644 --- a/source4/build/smb_build/input.pm +++ b/source4/build/smb_build/input.pm @@ -208,8 +208,8 @@ sub import_integrated($$) next if($mod->{SUBSYSTEM} ne $lib->{NAME}); next if($mod->{ENABLE} ne "YES"); - push (@{$lib->{FULL_OBJ_LIST}}, "\$($mod->{TYPE}_$mod->{NAME}_OBJ_LIST)"); - push (@{$lib->{LINK_FLAGS}}, "\$($mod->{TYPE}_$mod->{NAME}_LINK_FLAGS)"); + push (@{$lib->{FULL_OBJ_LIST}}, "\$($mod->{NAME}_OBJ_LIST)"); + push (@{$lib->{LINK_FLAGS}}, "\$($mod->{NAME}_LINK_FLAGS)"); push (@{$lib->{CFLAGS}}, @{$mod->{CFLAGS}}) if defined($mod->{CFLAGS}); push (@{$lib->{PUBLIC_DEPENDENCIES}}, @{$mod->{PUBLIC_DEPENDENCIES}}) if defined($mod->{PUBLIC_DEPENDENCIES}); push (@{$lib->{PRIVATE_DEPENDENCIES}}, @{$mod->{PRIVATE_DEPENDENCIES}}) if defined($mod->{PRIVATE_DEPENDENCIES}); @@ -284,7 +284,7 @@ sub check($$$$$) my $part = $INPUT->{$k}; $part->{LINK_FLAGS} = []; - $part->{FULL_OBJ_LIST} = ["\$($part->{TYPE}_$part->{NAME}_OBJ_LIST)"]; + $part->{FULL_OBJ_LIST} = ["\$($part->{NAME}_OBJ_LIST)"]; if ($part->{TYPE} eq "SUBSYSTEM") { check_subsystem($INPUT, $part, $subsys_ot); diff --git a/source4/build/smb_build/makefile.pm b/source4/build/smb_build/makefile.pm index 96de863cd2..3bcdab30e6 100644 --- a/source4/build/smb_build/makefile.pm +++ b/source4/build/smb_build/makefile.pm @@ -115,7 +115,7 @@ sub _prepare_list_ex($$$$$) my $tmplist = array2oneperline(\@tmparr); return if ($tmplist eq ""); - $self->output("$ctx->{TYPE}\_$ctx->{NAME}_$var =$tmplist\n"); + $self->output("$ctx->{NAME}_$var =$tmplist\n"); } sub _prepare_list($$$) @@ -168,13 +168,13 @@ sub SharedModule($$) } } - $self->output("$ctx->{TYPE}_$ctx->{NAME}_OUTPUT = $ctx->{OUTPUT}\n"); + $self->output("$ctx->{NAME}_OUTPUT = $ctx->{OUTPUT}\n"); $self->_prepare_list($ctx, "OBJ_LIST"); $self->_prepare_list($ctx, "FULL_OBJ_LIST"); $self->_prepare_list($ctx, "DEPEND_LIST"); $self->_prepare_list($ctx, "LINK_FLAGS"); - push(@{$self->{all_objs}}, "\$($ctx->{TYPE}_$ctx->{NAME}_FULL_OBJ_LIST)"); + push(@{$self->{all_objs}}, "\$($ctx->{NAME}_FULL_OBJ_LIST)"); if (defined($ctx->{INIT_FUNCTION}) and $ctx->{TYPE} ne "PYTHON") { my $init_fn = $ctx->{INIT_FUNCTION_TYPE}; @@ -200,12 +200,12 @@ __EOD__ $self->output(<< "__EOD__" # -$ctx->{SHAREDDIR}/$ctx->{LIBRARY_REALNAME}: \$($ctx->{TYPE}_$ctx->{NAME}_DEPEND_LIST) \$($ctx->{TYPE}_$ctx->{NAME}_FULL_OBJ_LIST) $init_obj +$ctx->{SHAREDDIR}/$ctx->{LIBRARY_REALNAME}: \$($ctx->{NAME}_DEPEND_LIST) \$($ctx->{NAME}_FULL_OBJ_LIST) $init_obj \@echo Linking \$\@ \@mkdir -p $ctx->{SHAREDDIR} \@\$(MDLD) \$(MDLD_FLAGS) \$(INTERN_LDFLAGS) -o \$\@ \$(INSTALL_LINK_FLAGS) \\ - \$($ctx->{TYPE}_$ctx->{NAME}\_FULL_OBJ_LIST) $init_obj \\ - \$($ctx->{TYPE}_$ctx->{NAME}_LINK_FLAGS) + \$($ctx->{NAME}\_FULL_OBJ_LIST) $init_obj \\ + \$($ctx->{NAME}_LINK_FLAGS) __EOD__ ); @@ -226,7 +226,7 @@ sub SharedLibraryPrimitives($$) $self->output("$ctx->{NAME}_VERSION = $ctx->{VERSION}\n") if (defined($ctx->{VERSION})); if (not grep(/STATIC_LIBRARY/, @{$ctx->{OUTPUT_TYPE}})) { - $self->output("$ctx->{TYPE}_$ctx->{NAME}_OUTPUT = $ctx->{OUTPUT}\n"); + $self->output("$ctx->{NAME}_OUTPUT = $ctx->{OUTPUT}\n"); $self->_prepare_list($ctx, "OBJ_LIST"); $self->_prepare_list($ctx, "FULL_OBJ_LIST"); } @@ -243,7 +243,7 @@ sub SharedLibrary($$) $self->_prepare_list($ctx, "LINK_FLAGS"); # $self->_prepare_list_ex($ctx, "LINK_FLAGS", "-Wl,--whole-archive", "-Wl,--no-whole-archive"); - push(@{$self->{all_objs}}, "\$($ctx->{TYPE}_$ctx->{NAME}_FULL_OBJ_LIST)"); + push(@{$self->{all_objs}}, "\$($ctx->{NAME}_FULL_OBJ_LIST)"); my $soarg = ""; my $lns = ""; @@ -263,12 +263,12 @@ sub SharedLibrary($$) $self->output(<< "__EOD__" # -$ctx->{SHAREDDIR}/$ctx->{LIBRARY_REALNAME}: \$($ctx->{TYPE}_$ctx->{NAME}_DEPEND_LIST) \$($ctx->{TYPE}_$ctx->{NAME}_FULL_OBJ_LIST) +$ctx->{SHAREDDIR}/$ctx->{LIBRARY_REALNAME}: \$($ctx->{NAME}_DEPEND_LIST) \$($ctx->{NAME}_FULL_OBJ_LIST) \@echo Linking \$\@ \@mkdir -p $ctx->{SHAREDDIR} \@\$(SHLD) \$(SHLD_FLAGS) \$(INTERN_LDFLAGS) -o \$\@ \$(INSTALL_LINK_FLAGS) \\ - \$($ctx->{TYPE}_$ctx->{NAME}\_FULL_OBJ_LIST) \\ - \$($ctx->{TYPE}_$ctx->{NAME}_LINK_FLAGS) \\ + \$($ctx->{NAME}\_FULL_OBJ_LIST) \\ + \$($ctx->{NAME}_LINK_FLAGS) \\ $soarg$lns __EOD__ ); @@ -283,19 +283,19 @@ sub StaticLibrary($$) push (@{$self->{static_libs}}, $ctx->{TARGET_STATIC_LIBRARY}) if ($ctx->{TYPE} eq "LIBRARY"); - $self->output("$ctx->{TYPE}_$ctx->{NAME}_OUTPUT = $ctx->{OUTPUT}\n"); + $self->output("$ctx->{NAME}_OUTPUT = $ctx->{OUTPUT}\n"); $self->_prepare_list($ctx, "OBJ_LIST"); $self->_prepare_list($ctx, "FULL_OBJ_LIST"); - push(@{$self->{all_objs}}, "\$($ctx->{TYPE}_$ctx->{NAME}_FULL_OBJ_LIST)"); + push(@{$self->{all_objs}}, "\$($ctx->{NAME}_FULL_OBJ_LIST)"); $self->output(<< "__EOD__" # -$ctx->{TARGET_STATIC_LIBRARY}: \$($ctx->{TYPE}_$ctx->{NAME}_FULL_OBJ_LIST) +$ctx->{TARGET_STATIC_LIBRARY}: \$($ctx->{NAME}_FULL_OBJ_LIST) \@echo Linking \$@ \@rm -f \$@ \@mkdir -p $ctx->{STATICDIR} - \@\$(STLD) \$(STLD_FLAGS) \$@ \$($ctx->{TYPE}_$ctx->{NAME}_FULL_OBJ_LIST) + \@\$(STLD) \$(STLD_FLAGS) \$@ \$($ctx->{NAME}_FULL_OBJ_LIST) __EOD__ ); @@ -321,7 +321,7 @@ sub Binary($$) $installdir = "bin$extradir"; - push(@{$self->{all_objs}}, "\$($ctx->{TYPE}_$ctx->{NAME}_FULL_OBJ_LIST)"); + push(@{$self->{all_objs}}, "\$($ctx->{NAME}_FULL_OBJ_LIST)"); unless (defined($ctx->{INSTALLDIR})) { } elsif ($ctx->{INSTALLDIR} eq "SBINDIR") { @@ -338,7 +338,7 @@ sub Binary($$) $self->_prepare_list($ctx, "LINK_FLAGS"); $self->output(<< "__EOD__" -$installdir/$ctx->{BINARY}: \$($ctx->{TYPE}_$ctx->{NAME}_DEPEND_LIST) \$($ctx->{TYPE}_$ctx->{NAME}_FULL_OBJ_LIST) +$installdir/$ctx->{BINARY}: \$($ctx->{NAME}_DEPEND_LIST) \$($ctx->{NAME}_FULL_OBJ_LIST) \@echo Linking \$\@ __EOD__ ); @@ -346,13 +346,13 @@ __EOD__ if (defined($ctx->{USE_HOSTCC}) && $ctx->{USE_HOSTCC} eq "YES") { $self->output(<< "__EOD__" \@\$(HOSTLD) \$(HOSTLD_FLAGS) -L\${builddir}/bin/static -o \$\@ \$(INSTALL_LINK_FLAGS) \\ - \$\($ctx->{TYPE}_$ctx->{NAME}_LINK_FLAGS) + \$\($ctx->{NAME}_LINK_FLAGS) __EOD__ ); } else { $self->output(<< "__EOD__" \@\$(BNLD) \$(BNLD_FLAGS) \$(INTERN_LDFLAGS) -o \$\@ \$(INSTALL_LINK_FLAGS) \\ - \$\($ctx->{TYPE}_$ctx->{NAME}_LINK_FLAGS) + \$\($ctx->{NAME}_LINK_FLAGS) __EOD__ ); @@ -415,9 +415,9 @@ sub ProtoHeader($$) $pub = output::add_dir_str($ctx->{BASEDIR}, $ctx->{PUBLIC_PROTO_HEADER}); } - $self->output("$pub: $ctx->{MK_FILE} \$($ctx->{TYPE}_$ctx->{NAME}_OBJ_LIST:.o=.c) \$(srcdir)/script/mkproto.pl\n"); + $self->output("$pub: $ctx->{MK_FILE} \$($ctx->{NAME}_OBJ_LIST:.o=.c) \$(srcdir)/script/mkproto.pl\n"); $self->output("\t\@echo \"$comment\"\n"); - $self->output("\t\@\$(PERL) \$(srcdir)/script/mkproto.pl --srcdir=\$(srcdir) --builddir=\$(builddir) --private=$priv --public=$pub \$($ctx->{TYPE}_$ctx->{NAME}_OBJ_LIST)\n\n"); + $self->output("\t\@\$(PERL) \$(srcdir)/script/mkproto.pl --srcdir=\$(srcdir) --builddir=\$(builddir) --private=$priv --public=$pub \$($ctx->{NAME}_OBJ_LIST)\n\n"); } sub write($$) diff --git a/source4/build/smb_build/output.pm b/source4/build/smb_build/output.pm index 6f2d9dd209..4350370fbf 100644 --- a/source4/build/smb_build/output.pm +++ b/source4/build/smb_build/output.pm @@ -116,7 +116,7 @@ sub generate_binary($) my $bin = shift; $bin->{DEPEND_LIST} = []; - push(@{$bin->{LINK_FLAGS}}, "\$($bin->{TYPE}_$bin->{NAME}\_OBJ_LIST)"); + push(@{$bin->{LINK_FLAGS}}, "\$($bin->{NAME}\_OBJ_LIST)"); $bin->{DEBUGDIR} = "bin/"; $bin->{TARGET_BINARY} = $bin->{OUTPUT_BINARY} = "$bin->{DEBUGDIR}/$bin->{NAME}"; @@ -176,7 +176,7 @@ sub create_output($$) my $elem = $depend->{$_}; next if $elem == $part; - push(@{$part->{LINK_FLAGS}}, "\$($elem->{TYPE}_$elem->{NAME}_OUTPUT)") if defined($elem->{OUTPUT}); + push(@{$part->{LINK_FLAGS}}, "\$($elem->{NAME}_OUTPUT)") if defined($elem->{OUTPUT}); push(@{$part->{LINK_FLAGS}}, @{$elem->{LIBS}}) if defined($elem->{LIBS}); push(@{$part->{LINK_FLAGS}},@{$elem->{LDFLAGS}}) if defined($elem->{LDFLAGS}); push(@{$part->{DEPEND_LIST}}, $elem->{TARGET}) if defined($elem->{TARGET}); -- cgit From 1885908fb4f679452290ec23e2e4eae176bd7c39 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Thu, 14 Feb 2008 12:15:28 +0100 Subject: Don't create symlinks pointing at themselves. (This used to be commit 96736eb556bfd7ab5b04ec40beefe23e475a438d) --- source4/build/smb_build/makefile.pm | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) (limited to 'source4/build') diff --git a/source4/build/smb_build/makefile.pm b/source4/build/smb_build/makefile.pm index 3bcdab30e6..7fd31a5114 100644 --- a/source4/build/smb_build/makefile.pm +++ b/source4/build/smb_build/makefile.pm @@ -250,13 +250,11 @@ sub SharedLibrary($$) if ($self->{config}->{SONAMEFLAG} ne "#" and defined($ctx->{LIBRARY_SONAME})) { $soarg = "$self->{config}->{SONAMEFLAG}$ctx->{LIBRARY_SONAME}"; if ($ctx->{LIBRARY_REALNAME} ne $ctx->{LIBRARY_SONAME}) { - $lns .= "\n\t\@rm -f $ctx->{SHAREDDIR}/$ctx->{LIBRARY_SONAME}"; - $lns .= "\n\t\@ln -fs $ctx->{LIBRARY_REALNAME} $ctx->{SHAREDDIR}/$ctx->{LIBRARY_SONAME}"; + $lns .= "\n\t\@test \$($ctx->{NAME}_VERSION) = \$($ctx->{NAME}_SOVERSION) || ln -fs $ctx->{LIBRARY_REALNAME} $ctx->{SHAREDDIR}/$ctx->{LIBRARY_SONAME}"; } } if (defined($ctx->{LIBRARY_SONAME})) { - $lns .= "\n\t\@rm -f $ctx->{SHAREDDIR}/$ctx->{LIBRARY_DEBUGNAME}"; $lns .= "\n\t\@ln -fs $ctx->{LIBRARY_REALNAME} $ctx->{SHAREDDIR}/$ctx->{LIBRARY_DEBUGNAME}"; } -- cgit From f5e94378967a3f5059fcf1fd09eaae68ef7ccfae Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Sat, 16 Feb 2008 16:22:05 +0100 Subject: Simplify handling of plugin installation. (This used to be commit 8f1270dd5c7688f023cf24215fa229da213e760c) --- source4/build/smb_build/makefile.pm | 29 ++++++++++++++++------------- 1 file changed, 16 insertions(+), 13 deletions(-) (limited to 'source4/build') diff --git a/source4/build/smb_build/makefile.pm b/source4/build/smb_build/makefile.pm index 7fd31a5114..427828128a 100644 --- a/source4/build/smb_build/makefile.pm +++ b/source4/build/smb_build/makefile.pm @@ -32,8 +32,6 @@ sub new($$$) $self->{headers} = []; $self->{shared_modules} = []; $self->{plugins} = []; - $self->{install_plugins} = ""; - $self->{uninstall_plugins} = ""; $self->{pc_files} = []; $self->{proto_headers} = []; $self->{output} = ""; @@ -154,16 +152,24 @@ sub SharedModule($$) } else { push (@{$self->{shared_modules}}, "$ctx->{TARGET_SHARED_LIBRARY}"); push (@{$self->{plugins}}, "$ctx->{SHAREDDIR}/$ctx->{LIBRARY_REALNAME}"); - $self->{install_plugins} .= "\t\@echo Installing $ctx->{SHAREDDIR}/$ctx->{LIBRARY_REALNAME} as \$(DESTDIR)\$(modulesdir)/$sane_subsystem/$ctx->{LIBRARY_REALNAME}\n"; - $self->{install_plugins} .= "\t\@mkdir -p \$(DESTDIR)\$(modulesdir)/$sane_subsystem/\n"; - $self->{install_plugins} .= "\t\@cp $ctx->{SHAREDDIR}/$ctx->{LIBRARY_REALNAME} \$(DESTDIR)\$(modulesdir)/$sane_subsystem/$ctx->{LIBRARY_REALNAME}\n"; - $self->{uninstall_plugins} .= "\t\@echo Uninstalling \$(DESTDIR)\$(modulesdir)/$sane_subsystem/$ctx->{LIBRARY_REALNAME}\n"; - $self->{uninstall_plugins} .= "\t\@-rm \$(DESTDIR)\$(modulesdir)/$sane_subsystem/$ctx->{LIBRARY_REALNAME}\n"; + $self->output("installplugins:: $ctx->{SHAREDDIR}/$ctx->{LIBRARY_REALNAME}\n"); + $self->output("\t\@echo Installing $ctx->{SHAREDDIR}/$ctx->{LIBRARY_REALNAME} as \$(DESTDIR)\$(modulesdir)/$sane_subsystem/$ctx->{LIBRARY_REALNAME}\n"); + $self->output("\t\@mkdir -p \$(DESTDIR)\$(modulesdir)/$sane_subsystem/\n"); + $self->output("\t\@cp $ctx->{SHAREDDIR}/$ctx->{LIBRARY_REALNAME} \$(DESTDIR)\$(modulesdir)/$sane_subsystem/$ctx->{LIBRARY_REALNAME}\n"); if (defined($ctx->{ALIASES})) { foreach (@{$ctx->{ALIASES}}) { - $self->{install_plugins} .= "\t\@rm -f \$(DESTDIR)\$(modulesdir)/$sane_subsystem/$_.\$(SHLIBEXT)\n"; - $self->{install_plugins} .= "\t\@ln -fs $ctx->{LIBRARY_REALNAME} \$(DESTDIR)\$(modulesdir)/$sane_subsystem/$_.\$(SHLIBEXT)\n"; - $self->{uninstall_plugins} .= "\t\@-rm \$(DESTDIR)\$(modulesdir)/$sane_subsystem/$_.\$(SHLIBEXT)\n"; + $self->output("\t\@rm -f \$(DESTDIR)\$(modulesdir)/$sane_subsystem/$_.\$(SHLIBEXT)\n"); + $self->output("\t\@ln -fs $ctx->{LIBRARY_REALNAME} \$(DESTDIR)\$(modulesdir)/$sane_subsystem/$_.\$(SHLIBEXT)\n"); + } + } + + $self->output("uninstallplugins::\n"); + $self->output("\t\@echo Uninstalling \$(DESTDIR)\$(modulesdir)/$sane_subsystem/$ctx->{LIBRARY_REALNAME}\n"); + $self->output("\t\@-rm \$(DESTDIR)\$(modulesdir)/$sane_subsystem/$ctx->{LIBRARY_REALNAME}\n"); + + if (defined($ctx->{ALIASES})) { + foreach (@{$ctx->{ALIASES}}) { + $self->output("\t\@-rm \$(DESTDIR)\$(modulesdir)/$sane_subsystem/$_.\$(SHLIBEXT)\n"); } } } @@ -438,9 +444,6 @@ sub write($$) $self->output("SHARED_MODULES = " . array2oneperline($self->{shared_modules}) . "\n"); $self->output("PLUGINS = " . array2oneperline($self->{plugins}) . "\n"); - $self->output("\ninstallplugins: \$(PLUGINS)\n".$self->{install_plugins}."\n"); - $self->output("\nuninstallplugins:\n".$self->{uninstall_plugins}."\n"); - $self->_prepare_mk_files(); $self->output($self->{mkfile}); -- cgit From d803ff9e724cc91778c1b94a5b78ef935200adb8 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Sat, 16 Feb 2008 16:33:04 +0100 Subject: Remove unused code. (This used to be commit 98d6095b9605ff4db61394719f29b3e38349c59f) --- source4/build/smb_build/makefile.pm | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) (limited to 'source4/build') diff --git a/source4/build/smb_build/makefile.pm b/source4/build/smb_build/makefile.pm index 427828128a..9c6d52cfef 100644 --- a/source4/build/smb_build/makefile.pm +++ b/source4/build/smb_build/makefile.pm @@ -28,7 +28,6 @@ sub new($$$) $self->{python_dsos} = []; $self->{python_pys} = []; $self->{shared_libs} = []; - $self->{installable_shared_libs} = []; $self->{headers} = []; $self->{shared_modules} = []; $self->{plugins} = []; @@ -243,7 +242,6 @@ sub SharedLibrary($$) my ($self,$ctx) = @_; push (@{$self->{shared_libs}}, "$ctx->{SHAREDDIR}/$ctx->{LIBRARY_REALNAME}") if (defined($ctx->{SO_VERSION})); - push (@{$self->{installable_shared_libs}}, "$ctx->{SHAREDDIR}/$ctx->{LIBRARY_REALNAME}") if (defined($ctx->{SO_VERSION})); $self->_prepare_list($ctx, "DEPEND_LIST"); $self->_prepare_list($ctx, "LINK_FLAGS"); @@ -334,7 +332,7 @@ sub Binary($$) push (@{$self->{bin_progs}}, "$installdir/$ctx->{BINARY}"); } - push (@{$self->{binaries}}, "$localdir/$ctx->{BINARY}"); + $self->output("binaries:: $localdir/$ctx->{BINARY}\n"); $self->_prepare_list($ctx, "OBJ_LIST"); $self->_prepare_list($ctx, "FULL_OBJ_LIST"); @@ -431,12 +429,10 @@ sub write($$) $self->output("MANPAGES = " . array2oneperline($self->{manpages})."\n"); $self->output("BIN_PROGS = " . array2oneperline($self->{bin_progs}) . "\n"); $self->output("SBIN_PROGS = " . array2oneperline($self->{sbin_progs}) . "\n"); - $self->output("BINARIES = " . array2oneperline($self->{binaries}) . "\n"); $self->output("STATIC_LIBS = " . array2oneperline($self->{static_libs}) . "\n"); $self->output("SHARED_LIBS = " . array2oneperline($self->{shared_libs}) . "\n"); $self->output("PYTHON_DSOS = " . array2oneperline($self->{python_dsos}) . "\n"); $self->output("PYTHON_PYS = " . array2oneperline($self->{python_pys}) . "\n"); - $self->output("INSTALLABLE_SHARED_LIBS = " . array2oneperline($self->{installable_shared_libs}) . "\n"); $self->output("PUBLIC_HEADERS = " . array2oneperline($self->{headers}) . "\n"); $self->output("PC_FILES = " . array2oneperline($self->{pc_files}) . "\n"); $self->output("ALL_OBJS = " . array2oneperline($self->{all_objs}) . "\n"); -- cgit From 8d7e2eb68c7c63ef36d24ce59953c20c2579aa5f Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Sat, 16 Feb 2008 20:38:21 +0100 Subject: Reintroduce mergedobj support. (This used to be commit 1cf23c58411a9b8a9bb97016c27c10a218e73146) --- source4/build/smb_build/main.pl | 3 ++- source4/build/smb_build/makefile.pm | 18 ++++++++++++++++++ source4/build/smb_build/output.pm | 12 ++++++++++++ 3 files changed, 32 insertions(+), 1 deletion(-) (limited to 'source4/build') diff --git a/source4/build/smb_build/main.pl b/source4/build/smb_build/main.pl index a85eab32de..4c09e32422 100644 --- a/source4/build/smb_build/main.pl +++ b/source4/build/smb_build/main.pl @@ -20,7 +20,7 @@ my $INPUT = {}; my $mkfile = smb_build::config_mk::run_config_mk($INPUT, $config::config{srcdir}, $config::config{builddir}, "main.mk"); my $subsys_output_type; -$subsys_output_type = ["STATIC_LIBRARY"]; +$subsys_output_type = ["MERGED_OBJ"]; my $library_output_type; if ($config::config{USESHARED} eq "true") { @@ -59,6 +59,7 @@ my $shared_libs_used = 0; foreach my $key (values %$OUTPUT) { next unless defined $key->{OUTPUT_TYPE}; + $mkenv->MergedObj($key) if grep(/MERGED_OBJ/, @{$key->{OUTPUT_TYPE}}); $mkenv->StaticLibrary($key) if grep(/STATIC_LIBRARY/, @{$key->{OUTPUT_TYPE}}); if (defined($key->{PC_FILE})) { push(@{$mkenv->{pc_files}}, "$key->{BASEDIR}/$key->{PC_FILE}"); diff --git a/source4/build/smb_build/makefile.pm b/source4/build/smb_build/makefile.pm index 9c6d52cfef..6ea3b8d950 100644 --- a/source4/build/smb_build/makefile.pm +++ b/source4/build/smb_build/makefile.pm @@ -277,6 +277,24 @@ __EOD__ $self->output("\n"); } +sub MergedObj($$) +{ + my ($self, $ctx) = @_; + + $self->_prepare_list($ctx, "OBJ_LIST"); + $self->_prepare_list($ctx, "FULL_OBJ_LIST"); + push(@{$self->{all_objs}}, "\$($ctx->{NAME}_FULL_OBJ_LIST)"); + $self->output(<< "__EOD__" +# +$ctx->{TARGET_MERGED_OBJ}: \$($ctx->{NAME}_FULL_OBJ_LIST) + \@echo Partially linking \$@ + \@mkdir -p bin/mergedobj + \@\$(LD) -r -o \$@ \$($ctx->{NAME}_FULL_OBJ_LIST) + +__EOD__ +); +} + sub StaticLibrary($$) { my ($self,$ctx) = @_; diff --git a/source4/build/smb_build/output.pm b/source4/build/smb_build/output.pm index 4350370fbf..0ddb9e4efb 100644 --- a/source4/build/smb_build/output.pm +++ b/source4/build/smb_build/output.pm @@ -89,6 +89,17 @@ sub generate_shared_library($) $lib->{OUTPUT_SHARED_LIBRARY} = $lib->{TARGET_SHARED_LIBRARY}; } +sub generate_merged_obj($) +{ + my $lib = shift; + + my $link_name = $lib->{NAME}; + $link_name =~ s/^LIB//; + + $lib->{MERGED_OBJNAME} = lc($link_name).".o"; + $lib->{TARGET_MERGED_OBJ} = $lib->{OUTPUT_MERGED_OBJ} = "bin/mergedobj/$lib->{MERGED_OBJNAME}"; +} + sub generate_static_library($) { my $lib = shift; @@ -153,6 +164,7 @@ sub create_output($$) generate_binary($part) if grep(/BINARY/, @{$part->{OUTPUT_TYPE}}); generate_shared_library($part) if grep(/SHARED_LIBRARY/, @{$part->{OUTPUT_TYPE}}); generate_static_library($part) if grep(/STATIC_LIBRARY/, @{$part->{OUTPUT_TYPE}}); + generate_merged_obj($part) if grep(/MERGED_OBJ/, @{$part->{OUTPUT_TYPE}}); $part->{OUTPUT} = $part->{"OUTPUT_" . @{$part->{OUTPUT_TYPE}}[0]}; $part->{TARGET} = $part->{"TARGET_" . @{$part->{OUTPUT_TYPE}}[0]}; } -- cgit From f6dec9de4715892abab6cc9f75c2eb6c70f75947 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Sat, 16 Feb 2008 20:48:08 +0100 Subject: Use standard variable for partial linking. (This used to be commit 949fca9540889bb640466fc21ca36d08f77066a3) --- source4/build/smb_build/input.pm | 1 + source4/build/smb_build/makefile.pm | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) (limited to 'source4/build') diff --git a/source4/build/smb_build/input.pm b/source4/build/smb_build/input.pm index 51c89a834f..02eafe2033 100644 --- a/source4/build/smb_build/input.pm +++ b/source4/build/smb_build/input.pm @@ -234,6 +234,7 @@ sub calc_unique_deps($$$$$$$$) if (defined ($dep->{OUTPUT_TYPE}) && ($withlibs or (@{$dep->{OUTPUT_TYPE}}[0] eq "INTEGRATED") or + (@{$dep->{OUTPUT_TYPE}}[0] eq "MERGED_OBJ") or (@{$dep->{OUTPUT_TYPE}}[0] eq "STATIC_LIBRARY"))) { push (@$busy, $dep->{NAME}); calc_unique_deps($dep->{NAME}, $INPUT, $dep->{PUBLIC_DEPENDENCIES}, $udeps, $withlibs, $forward, $pubonly, $busy); diff --git a/source4/build/smb_build/makefile.pm b/source4/build/smb_build/makefile.pm index 6ea3b8d950..34092c69bd 100644 --- a/source4/build/smb_build/makefile.pm +++ b/source4/build/smb_build/makefile.pm @@ -289,7 +289,7 @@ sub MergedObj($$) $ctx->{TARGET_MERGED_OBJ}: \$($ctx->{NAME}_FULL_OBJ_LIST) \@echo Partially linking \$@ \@mkdir -p bin/mergedobj - \@\$(LD) -r -o \$@ \$($ctx->{NAME}_FULL_OBJ_LIST) + \$(PARTLINK) -o \$@ \$($ctx->{NAME}_FULL_OBJ_LIST) __EOD__ ); -- cgit From fe5b7c4986b54985880fa8bc38248dab1cc5e9b0 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Sat, 16 Feb 2008 20:56:46 +0100 Subject: Some more mergedobj fixes. (This used to be commit c481d88d37346885f7809f73035a2bc9f2468848) --- source4/build/smb_build/input.pm | 16 +++------------- source4/build/smb_build/makefile.pm | 1 + 2 files changed, 4 insertions(+), 13 deletions(-) (limited to 'source4/build') diff --git a/source4/build/smb_build/input.pm b/source4/build/smb_build/input.pm index 02eafe2033..825b033fb9 100644 --- a/source4/build/smb_build/input.pm +++ b/source4/build/smb_build/input.pm @@ -76,8 +76,6 @@ sub check_module($$$) die("Module $mod->{NAME} does not have a SUBSYSTEM set") if not defined($mod->{SUBSYSTEM}); - my $use_default = 0; - if (not exists($INPUT->{$mod->{SUBSYSTEM}}{INIT_FUNCTIONS})) { $INPUT->{$mod->{SUBSYSTEM}}{INIT_FUNCTIONS} = []; } @@ -126,9 +124,7 @@ sub check_library($$$) return if ($lib->{ENABLE} ne "YES"); - unless (defined($lib->{OUTPUT_TYPE})) { - $lib->{OUTPUT_TYPE} = $default_ot; - } + unless (defined($lib->{OUTPUT_TYPE})) { $lib->{OUTPUT_TYPE} = $default_ot; } if (defined($lib->{VERSION}) and not defined($lib->{SO_VERSION})) { print "$lib->{NAME}: Please specify SO_VERSION when specifying VERSION\n"; @@ -141,12 +137,8 @@ sub check_library($$$) } unless (defined($lib->{INIT_FUNCTION_TYPE})) { $lib->{INIT_FUNCTION_TYPE} = "NTSTATUS (*) (void)"; } - unless (defined($lib->{INIT_FUNCTION_SENTINEL})) { $lib->{INIT_FUNCTION_SENTINEL} = "NULL"; } - - unless(defined($lib->{INSTALLDIR})) { - $lib->{INSTALLDIR} = "LIBDIR"; - } + unless (defined($lib->{INSTALLDIR})) { $lib->{INSTALLDIR} = "LIBDIR"; } add_libreplace($lib); } @@ -281,9 +273,7 @@ sub check($$$$$) } } - foreach my $k (keys %$INPUT) { - my $part = $INPUT->{$k}; - + foreach my $part (values %$INPUT) { $part->{LINK_FLAGS} = []; $part->{FULL_OBJ_LIST} = ["\$($part->{NAME}_OBJ_LIST)"]; diff --git a/source4/build/smb_build/makefile.pm b/source4/build/smb_build/makefile.pm index 34092c69bd..16b46ed343 100644 --- a/source4/build/smb_build/makefile.pm +++ b/source4/build/smb_build/makefile.pm @@ -281,6 +281,7 @@ sub MergedObj($$) { my ($self, $ctx) = @_; + $self->output("$ctx->{NAME}_OUTPUT = $ctx->{OUTPUT}\n"); $self->_prepare_list($ctx, "OBJ_LIST"); $self->_prepare_list($ctx, "FULL_OBJ_LIST"); push(@{$self->{all_objs}}, "\$($ctx->{NAME}_FULL_OBJ_LIST)"); -- cgit From 0419da69d5a8ab606a49598692c050447e306663 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Sat, 16 Feb 2008 21:16:28 +0100 Subject: Prevent adding libreplace when not necessary. (This used to be commit 978eb6f1616122e13429b00268d03942afc41425) --- source4/build/smb_build/input.pm | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) (limited to 'source4/build') diff --git a/source4/build/smb_build/input.pm b/source4/build/smb_build/input.pm index 825b033fb9..ed584e185c 100644 --- a/source4/build/smb_build/input.pm +++ b/source4/build/smb_build/input.pm @@ -66,8 +66,6 @@ sub check_subsystem($$$) unless (defined($subsys->{INIT_FUNCTION_TYPE})) { $subsys->{INIT_FUNCTION_TYPE} = "NTSTATUS (*) (void)"; } unless (defined($subsys->{INIT_FUNCTION_SENTINEL})) { $subsys->{INIT_FUNCTION_SENTINEL} = "NULL"; } - - add_libreplace($subsys); } sub check_module($$$) @@ -111,11 +109,11 @@ sub check_module($$$) $sane_subsystem =~ s/^lib//; $mod->{INSTALLDIR} = "MODULESDIR/$sane_subsystem"; push (@{$mod->{PUBLIC_DEPENDENCIES}}, $mod->{SUBSYSTEM}); + add_libreplace($mod); } if (grep(/INTEGRATED/, @{$mod->{OUTPUT_TYPE}})) { push (@{$INPUT->{$mod->{SUBSYSTEM}}{INIT_FUNCTIONS}}, $mod->{INIT_FUNCTION}) if defined($mod->{INIT_FUNCTION}); } - add_libreplace($mod); } sub check_library($$$) -- cgit From e8cf95773df914e8d71dcc1ce713fe0cc723d946 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Mon, 18 Feb 2008 11:50:07 +0100 Subject: Switch back to using static libraries for subsystems for now, since partial linking is still giving some problems. (This used to be commit 0d8ddae4964dc50e981e12b6a93235a50a0607ff) --- source4/build/smb_build/main.pl | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'source4/build') diff --git a/source4/build/smb_build/main.pl b/source4/build/smb_build/main.pl index 4c09e32422..46a092d69f 100644 --- a/source4/build/smb_build/main.pl +++ b/source4/build/smb_build/main.pl @@ -20,7 +20,8 @@ my $INPUT = {}; my $mkfile = smb_build::config_mk::run_config_mk($INPUT, $config::config{srcdir}, $config::config{builddir}, "main.mk"); my $subsys_output_type; -$subsys_output_type = ["MERGED_OBJ"]; +#$subsys_output_type = ["MERGED_OBJ"]; +$subsys_output_type = ["STATIC_LIBRARY"]; my $library_output_type; if ($config::config{USESHARED} eq "true") { -- cgit From d7dc10468a2f14072a555154e65c87753f9e05cd Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Mon, 18 Feb 2008 12:26:43 +0100 Subject: Eliminate duplicate variable. (This used to be commit f5b2b20cafc137604bc527ca6bb2bc8edab551e9) --- source4/build/smb_build/makefile.pm | 3 --- 1 file changed, 3 deletions(-) (limited to 'source4/build') diff --git a/source4/build/smb_build/makefile.pm b/source4/build/smb_build/makefile.pm index 16b46ed343..b7b56229f5 100644 --- a/source4/build/smb_build/makefile.pm +++ b/source4/build/smb_build/makefile.pm @@ -29,7 +29,6 @@ sub new($$$) $self->{python_pys} = []; $self->{shared_libs} = []; $self->{headers} = []; - $self->{shared_modules} = []; $self->{plugins} = []; $self->{pc_files} = []; $self->{proto_headers} = []; @@ -149,7 +148,6 @@ sub SharedModule($$) push (@{$self->{python_dsos}}, "$ctx->{SHAREDDIR}/$ctx->{LIBRARY_REALNAME}"); } else { - push (@{$self->{shared_modules}}, "$ctx->{TARGET_SHARED_LIBRARY}"); push (@{$self->{plugins}}, "$ctx->{SHAREDDIR}/$ctx->{LIBRARY_REALNAME}"); $self->output("installplugins:: $ctx->{SHAREDDIR}/$ctx->{LIBRARY_REALNAME}\n"); $self->output("\t\@echo Installing $ctx->{SHAREDDIR}/$ctx->{LIBRARY_REALNAME} as \$(DESTDIR)\$(modulesdir)/$sane_subsystem/$ctx->{LIBRARY_REALNAME}\n"); @@ -456,7 +454,6 @@ sub write($$) $self->output("PC_FILES = " . array2oneperline($self->{pc_files}) . "\n"); $self->output("ALL_OBJS = " . array2oneperline($self->{all_objs}) . "\n"); $self->output("PROTO_HEADERS = " . array2oneperline($self->{proto_headers}) . "\n"); - $self->output("SHARED_MODULES = " . array2oneperline($self->{shared_modules}) . "\n"); $self->output("PLUGINS = " . array2oneperline($self->{plugins}) . "\n"); $self->_prepare_mk_files(); -- cgit From e6514ceb2ffd7be93de483ed697cff47c9178864 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Mon, 18 Feb 2008 12:35:39 +0100 Subject: Merge functions. (This used to be commit d318809f0db71f4a37033c3e9f0dce2ee5a69b07) --- source4/build/smb_build/makefile.pm | 14 ++------------ 1 file changed, 2 insertions(+), 12 deletions(-) (limited to 'source4/build') diff --git a/source4/build/smb_build/makefile.pm b/source4/build/smb_build/makefile.pm index b7b56229f5..b84caa12d7 100644 --- a/source4/build/smb_build/makefile.pm +++ b/source4/build/smb_build/makefile.pm @@ -99,14 +99,12 @@ sub array2oneperline($) return $output; } -sub _prepare_list_ex($$$$$) +sub _prepare_list($$$) { - my ($self,$ctx,$var,$pre,$post) = @_; + my ($self,$ctx,$var) = @_; my @tmparr = (); - push(@tmparr, $pre) if defined($pre); push(@tmparr, @{$ctx->{$var}}) if defined($ctx->{$var}); - push(@tmparr, $post) if defined($post); my $tmplist = array2oneperline(\@tmparr); return if ($tmplist eq ""); @@ -114,13 +112,6 @@ sub _prepare_list_ex($$$$$) $self->output("$ctx->{NAME}_$var =$tmplist\n"); } -sub _prepare_list($$$) -{ - my ($self,$ctx,$var) = @_; - - $self->_prepare_list_ex($ctx, $var, undef, undef); -} - sub Integrated($$) { my ($self,$ctx) = @_; @@ -243,7 +234,6 @@ sub SharedLibrary($$) $self->_prepare_list($ctx, "DEPEND_LIST"); $self->_prepare_list($ctx, "LINK_FLAGS"); -# $self->_prepare_list_ex($ctx, "LINK_FLAGS", "-Wl,--whole-archive", "-Wl,--no-whole-archive"); push(@{$self->{all_objs}}, "\$($ctx->{NAME}_FULL_OBJ_LIST)"); -- cgit From e5d7bd3821327b509ebf38232e8b972455829f88 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Mon, 18 Feb 2008 13:10:30 +0100 Subject: Reenable partial linking (This used to be commit a7512fb059d5dcb6bf70418622206eec94153693) --- source4/build/smb_build/main.pl | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'source4/build') diff --git a/source4/build/smb_build/main.pl b/source4/build/smb_build/main.pl index 46a092d69f..ba25035ea5 100644 --- a/source4/build/smb_build/main.pl +++ b/source4/build/smb_build/main.pl @@ -20,8 +20,8 @@ my $INPUT = {}; my $mkfile = smb_build::config_mk::run_config_mk($INPUT, $config::config{srcdir}, $config::config{builddir}, "main.mk"); my $subsys_output_type; -#$subsys_output_type = ["MERGED_OBJ"]; -$subsys_output_type = ["STATIC_LIBRARY"]; +$subsys_output_type = ["MERGED_OBJ"]; +#$subsys_output_type = ["STATIC_LIBRARY"]; my $library_output_type; if ($config::config{USESHARED} eq "true") { -- cgit From 5e336bea1c68fafa97f67abf89c678d3cd7250b8 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Mon, 18 Feb 2008 13:31:10 +0100 Subject: Add elements in the build system implicitly if they're unknown (so they can be regular make rules). (This used to be commit 1da14d5efe63b97719c81fcf4851c5b79609776b) --- source4/build/smb_build/input.pm | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) (limited to 'source4/build') diff --git a/source4/build/smb_build/input.pm b/source4/build/smb_build/input.pm index ed584e185c..f970d5b677 100644 --- a/source4/build/smb_build/input.pm +++ b/source4/build/smb_build/input.pm @@ -208,13 +208,26 @@ sub import_integrated($$) } } +sub add_implicit($$) +{ + my ($INPUT, $n) = @_; + + $INPUT->{$n} = { + TYPE => "MAKE_RULE", + NAME => $n, + TARGET => lc($n), + LIBS => "\$(".uc($n)."_LIBS)", + CFLAGS => "\$(".uc($n)."_CFLAG)" + }; +} + sub calc_unique_deps($$$$$$$$) { sub calc_unique_deps($$$$$$$$); my ($name, $INPUT, $deps, $udeps, $withlibs, $forward, $pubonly, $busy) = @_; foreach my $n (@$deps) { - die("Dependency unknown: $n (for $name)") unless (defined($INPUT->{$n})); + add_implicit($INPUT, $n) unless (defined($INPUT->{$n})); die("Recursive dependency: $n, list: " . join(',', @$busy)) if (grep (/^$n$/, @$busy)); next if (grep /^$n$/, @$udeps); my $dep = $INPUT->{$n}; -- cgit From 51b0a285f02e1bc6187e64514f3f59f546bbecc5 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Mon, 18 Feb 2008 15:31:15 +0100 Subject: Avoid redetermining paths; use already stored values. (This used to be commit 0d223ddc39b7438dbce6716f1f00c29579a1f4c4) --- source4/build/smb_build/main.pl | 4 ++-- source4/build/smb_build/makefile.pm | 24 +++++++++--------------- source4/build/smb_build/output.pm | 18 +++++++++++------- 3 files changed, 22 insertions(+), 24 deletions(-) (limited to 'source4/build') diff --git a/source4/build/smb_build/main.pl b/source4/build/smb_build/main.pl index ba25035ea5..46a092d69f 100644 --- a/source4/build/smb_build/main.pl +++ b/source4/build/smb_build/main.pl @@ -20,8 +20,8 @@ my $INPUT = {}; my $mkfile = smb_build::config_mk::run_config_mk($INPUT, $config::config{srcdir}, $config::config{builddir}, "main.mk"); my $subsys_output_type; -$subsys_output_type = ["MERGED_OBJ"]; -#$subsys_output_type = ["STATIC_LIBRARY"]; +#$subsys_output_type = ["MERGED_OBJ"]; +$subsys_output_type = ["STATIC_LIBRARY"]; my $library_output_type; if ($config::config{USESHARED} eq "true") { diff --git a/source4/build/smb_build/makefile.pm b/source4/build/smb_build/makefile.pm index b84caa12d7..dc9e1e9911 100644 --- a/source4/build/smb_build/makefile.pm +++ b/source4/build/smb_build/makefile.pm @@ -230,7 +230,7 @@ sub SharedLibrary($$) { my ($self,$ctx) = @_; - push (@{$self->{shared_libs}}, "$ctx->{SHAREDDIR}/$ctx->{LIBRARY_REALNAME}") if (defined($ctx->{SO_VERSION})); + push (@{$self->{shared_libs}}, $ctx->{RESULT_SHARED_LIBRARY}) if (defined($ctx->{SO_VERSION})); $self->_prepare_list($ctx, "DEPEND_LIST"); $self->_prepare_list($ctx, "LINK_FLAGS"); @@ -252,8 +252,7 @@ sub SharedLibrary($$) $self->output(<< "__EOD__" # - -$ctx->{SHAREDDIR}/$ctx->{LIBRARY_REALNAME}: \$($ctx->{NAME}_DEPEND_LIST) \$($ctx->{NAME}_FULL_OBJ_LIST) +$ctx->{RESULT_SHARED_LIBRARY}: \$($ctx->{NAME}_DEPEND_LIST) \$($ctx->{NAME}_FULL_OBJ_LIST) \@echo Linking \$\@ \@mkdir -p $ctx->{SHAREDDIR} \@\$(SHLD) \$(SHLD_FLAGS) \$(INTERN_LDFLAGS) -o \$\@ \$(INSTALL_LINK_FLAGS) \\ @@ -275,7 +274,7 @@ sub MergedObj($$) push(@{$self->{all_objs}}, "\$($ctx->{NAME}_FULL_OBJ_LIST)"); $self->output(<< "__EOD__" # -$ctx->{TARGET_MERGED_OBJ}: \$($ctx->{NAME}_FULL_OBJ_LIST) +$ctx->{RESULT_MERGED_OBJ}: \$($ctx->{NAME}_FULL_OBJ_LIST) \@echo Partially linking \$@ \@mkdir -p bin/mergedobj \$(PARTLINK) -o \$@ \$($ctx->{NAME}_FULL_OBJ_LIST) @@ -290,7 +289,7 @@ sub StaticLibrary($$) return unless (defined($ctx->{OBJ_FILES})); - push (@{$self->{static_libs}}, $ctx->{TARGET_STATIC_LIBRARY}) if ($ctx->{TYPE} eq "LIBRARY"); + push (@{$self->{static_libs}}, $ctx->{RESULT_STATIC_LIBRARY}) if ($ctx->{TYPE} eq "LIBRARY"); $self->output("$ctx->{NAME}_OUTPUT = $ctx->{OUTPUT}\n"); $self->_prepare_list($ctx, "OBJ_LIST"); @@ -300,7 +299,7 @@ sub StaticLibrary($$) $self->output(<< "__EOD__" # -$ctx->{TARGET_STATIC_LIBRARY}: \$($ctx->{NAME}_FULL_OBJ_LIST) +$ctx->{RESULT_STATIC_LIBRARY}: \$($ctx->{NAME}_FULL_OBJ_LIST) \@echo Linking \$@ \@rm -f \$@ \@mkdir -p $ctx->{STATICDIR} @@ -323,23 +322,18 @@ sub Binary($$) { my ($self,$ctx) = @_; - my $installdir; my $extradir = ""; - my $localdir = "bin$extradir"; - - $installdir = "bin$extradir"; - push(@{$self->{all_objs}}, "\$($ctx->{NAME}_FULL_OBJ_LIST)"); unless (defined($ctx->{INSTALLDIR})) { } elsif ($ctx->{INSTALLDIR} eq "SBINDIR") { - push (@{$self->{sbin_progs}}, "$installdir/$ctx->{BINARY}"); + push (@{$self->{sbin_progs}}, $ctx->{RESULT_BINARY}); } elsif ($ctx->{INSTALLDIR} eq "BINDIR") { - push (@{$self->{bin_progs}}, "$installdir/$ctx->{BINARY}"); + push (@{$self->{bin_progs}}, $ctx->{RESULT_BINARY}); } - $self->output("binaries:: $localdir/$ctx->{BINARY}\n"); + $self->output("binaries:: $ctx->{TARGET_BINARY}\n"); $self->_prepare_list($ctx, "OBJ_LIST"); $self->_prepare_list($ctx, "FULL_OBJ_LIST"); @@ -347,7 +341,7 @@ sub Binary($$) $self->_prepare_list($ctx, "LINK_FLAGS"); $self->output(<< "__EOD__" -$installdir/$ctx->{BINARY}: \$($ctx->{NAME}_DEPEND_LIST) \$($ctx->{NAME}_FULL_OBJ_LIST) +$ctx->{RESULT_BINARY}: \$($ctx->{NAME}_DEPEND_LIST) \$($ctx->{NAME}_FULL_OBJ_LIST) \@echo Linking \$\@ __EOD__ ); diff --git a/source4/build/smb_build/output.pm b/source4/build/smb_build/output.pm index 0ddb9e4efb..586ea121cb 100644 --- a/source4/build/smb_build/output.pm +++ b/source4/build/smb_build/output.pm @@ -85,8 +85,9 @@ sub generate_shared_library($) $lib->{LIBRARY_REALNAME} = "$lib->{LIBRARY_REALNAME}.\$($lib->{NAME}_VERSION)"; } - $lib->{TARGET_SHARED_LIBRARY} = "$lib->{SHAREDDIR}/$lib->{LIBRARY_REALNAME}"; - $lib->{OUTPUT_SHARED_LIBRARY} = $lib->{TARGET_SHARED_LIBRARY}; + $lib->{RESULT_SHARED_LIBRARY} = "$lib->{SHAREDDIR}/$lib->{LIBRARY_REALNAME}"; + $lib->{OUTPUT_SHARED_LIBRARY} = "-l$link_name"; + $lib->{TARGET_SHARED_LIBRARY} = $lib->{RESULT_SHARED_LIBRARY}; } sub generate_merged_obj($) @@ -97,7 +98,8 @@ sub generate_merged_obj($) $link_name =~ s/^LIB//; $lib->{MERGED_OBJNAME} = lc($link_name).".o"; - $lib->{TARGET_MERGED_OBJ} = $lib->{OUTPUT_MERGED_OBJ} = "bin/mergedobj/$lib->{MERGED_OBJNAME}"; + $lib->{RESULT_MERGED_OBJ} = $lib->{OUTPUT_MERGED_OBJ} = "bin/mergedobj/$lib->{MERGED_OBJNAME}"; + $lib->{TARGET_MERGED_OBJ} = $lib->{RESULT_MERGED_OBJ}; } sub generate_static_library($) @@ -113,11 +115,12 @@ sub generate_static_library($) $lib->{LIBRARY_NAME} = "lib".lc($link_name).".a"; if (defined($lib->{OBJ_FILES})) { - $lib->{TARGET_STATIC_LIBRARY} = "bin/static/$lib->{LIBRARY_NAME}"; + $lib->{RESULT_STATIC_LIBRARY} = "bin/static/$lib->{LIBRARY_NAME}"; + $lib->{TARGET_STATIC_LIBRARY} = $lib->{RESULT_STATIC_LIBRARY}; $lib->{STATICDIR} = 'bin/static'; $lib->{OUTPUT_STATIC_LIBRARY} = "-l".lc($link_name); } else { - $lib->{TARGET_STATIC_LIBRARY} = ""; + $lib->{RESULT_STATIC_LIBRARY} = ""; $lib->{OUTPUT_STATIC_LIBRARY} = ""; } } @@ -129,8 +132,9 @@ sub generate_binary($) $bin->{DEPEND_LIST} = []; push(@{$bin->{LINK_FLAGS}}, "\$($bin->{NAME}\_OBJ_LIST)"); - $bin->{DEBUGDIR} = "bin/"; - $bin->{TARGET_BINARY} = $bin->{OUTPUT_BINARY} = "$bin->{DEBUGDIR}/$bin->{NAME}"; + $bin->{DEBUGDIR} = "bin"; + $bin->{RESULT_BINARY} = $bin->{OUTPUT_BINARY} = "$bin->{DEBUGDIR}/$bin->{NAME}"; + $bin->{TARGET_BINARY} = $bin->{RESULT_BINARY}; $bin->{BINARY} = $bin->{NAME}; } -- cgit From 80cbff3d011ad9264462812f57991ed0393b385e Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Mon, 18 Feb 2008 16:02:33 +0100 Subject: Fix build with partial linking. (This used to be commit bfad9610c472e8d7e3656e19c8dbb6b85727dc13) --- source4/build/smb_build/main.pl | 3 +-- source4/build/smb_build/output.pm | 12 +++++++++--- 2 files changed, 10 insertions(+), 5 deletions(-) (limited to 'source4/build') diff --git a/source4/build/smb_build/main.pl b/source4/build/smb_build/main.pl index 46a092d69f..4c09e32422 100644 --- a/source4/build/smb_build/main.pl +++ b/source4/build/smb_build/main.pl @@ -20,8 +20,7 @@ my $INPUT = {}; my $mkfile = smb_build::config_mk::run_config_mk($INPUT, $config::config{srcdir}, $config::config{builddir}, "main.mk"); my $subsys_output_type; -#$subsys_output_type = ["MERGED_OBJ"]; -$subsys_output_type = ["STATIC_LIBRARY"]; +$subsys_output_type = ["MERGED_OBJ"]; my $library_output_type; if ($config::config{USESHARED} eq "true") { diff --git a/source4/build/smb_build/output.pm b/source4/build/smb_build/output.pm index 586ea121cb..67b905ef55 100644 --- a/source4/build/smb_build/output.pm +++ b/source4/build/smb_build/output.pm @@ -97,9 +97,14 @@ sub generate_merged_obj($) my $link_name = $lib->{NAME}; $link_name =~ s/^LIB//; - $lib->{MERGED_OBJNAME} = lc($link_name).".o"; - $lib->{RESULT_MERGED_OBJ} = $lib->{OUTPUT_MERGED_OBJ} = "bin/mergedobj/$lib->{MERGED_OBJNAME}"; - $lib->{TARGET_MERGED_OBJ} = $lib->{RESULT_MERGED_OBJ}; + if (defined($lib->{OBJ_FILES})) { + $lib->{MERGED_OBJNAME} = lc($link_name).".o"; + $lib->{RESULT_MERGED_OBJ} = $lib->{OUTPUT_MERGED_OBJ} = "bin/mergedobj/$lib->{MERGED_OBJNAME}"; + $lib->{TARGET_MERGED_OBJ} = $lib->{RESULT_MERGED_OBJ}; + } else { + $lib->{TARGET_MERGED_OBJ} = ""; + $lib->{RESULT_MERGED_OBJ} = ""; + } } sub generate_static_library($) @@ -121,6 +126,7 @@ sub generate_static_library($) $lib->{OUTPUT_STATIC_LIBRARY} = "-l".lc($link_name); } else { $lib->{RESULT_STATIC_LIBRARY} = ""; + $lib->{TARGET_STATIC_LIBRARY} = ""; $lib->{OUTPUT_STATIC_LIBRARY} = ""; } } -- cgit From a44e0b245545597e4752e712446e6d8a3585648c Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Mon, 18 Feb 2008 16:33:23 +0100 Subject: Simplify some more smb_build code. (This used to be commit 95b06bd8f2a91c9f3f9e9f05f7e2803d6b4100c7) --- source4/build/smb_build/input.pm | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) (limited to 'source4/build') diff --git a/source4/build/smb_build/input.pm b/source4/build/smb_build/input.pm index f970d5b677..f175b4c8c9 100644 --- a/source4/build/smb_build/input.pm +++ b/source4/build/smb_build/input.pm @@ -5,13 +5,10 @@ # Copyright (C) Jelmer Vernooij 2004 # Released under the GNU GPL -use smb_build::config; use strict; package smb_build::input; use File::Basename; -my $srcdir = $config::config{srcdir}; - sub strtrim($) { $_ = shift; @@ -60,10 +57,7 @@ sub check_subsystem($$$) my ($INPUT, $subsys, $default_ot) = @_; return if ($subsys->{ENABLE} ne "YES"); - unless(defined($subsys->{OUTPUT_TYPE})) { - $subsys->{OUTPUT_TYPE} = $default_ot; - } - + unless (defined($subsys->{OUTPUT_TYPE})) { $subsys->{OUTPUT_TYPE} = $default_ot; } unless (defined($subsys->{INIT_FUNCTION_TYPE})) { $subsys->{INIT_FUNCTION_TYPE} = "NTSTATUS (*) (void)"; } unless (defined($subsys->{INIT_FUNCTION_SENTINEL})) { $subsys->{INIT_FUNCTION_SENTINEL} = "NULL"; } } @@ -159,8 +153,8 @@ sub check_python($$$) $python->{OBJ_FILES} = ["$dirname$basename\_wrap.o"]; $python->{LIBRARY_REALNAME} = "_$basename.\$(SHLIBEXT)"; $python->{PYTHON_FILES} = ["$dirname$basename.py"]; - push (@{$python->{CFLAGS}}, $config::config{CFLAG_NO_UNUSED_MACROS}); - push (@{$python->{CFLAGS}}, $config::config{CFLAG_NO_CAST_QUAL}); + push (@{$python->{CFLAGS}}, "\$(CFLAG_NO_UNUSED_MACROS)"); + push (@{$python->{CFLAGS}}, "\$(CFLAG_NO_CAST_QUAL)"); $python->{INIT_FUNCTION} = "{ (char *)\"_$basename\", init_$basename }"; } else { my $basename = $python->{NAME}; -- cgit From 7dd064fcd9c41f19d43abaa9d994224b0e215edb Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Mon, 18 Feb 2008 17:08:54 +0100 Subject: Factor out common code that generates object lists. (This used to be commit ef14e1ab3267263d65c4c41cd3c0dab3680f4104) --- source4/build/smb_build/main.pl | 7 ++----- source4/build/smb_build/makefile.pm | 12 ------------ source4/build/smb_build/output.pm | 2 +- 3 files changed, 3 insertions(+), 18 deletions(-) (limited to 'source4/build') diff --git a/source4/build/smb_build/main.pl b/source4/build/smb_build/main.pl index 4c09e32422..d4d18a5cb9 100644 --- a/source4/build/smb_build/main.pl +++ b/source4/build/smb_build/main.pl @@ -48,14 +48,11 @@ $config::config{LIBRARY_OUTPUT_TYPE} = $library_output_type; $config::config{MODULE_OUTPUT_TYPE} = $module_output_type; my $mkenv = new smb_build::makefile(\%config::config, $mkfile); +my $shared_libs_used = 0; foreach my $key (values %$OUTPUT) { - next unless defined $key->{OUTPUT_TYPE}; - - $mkenv->Integrated($key) if grep(/INTEGRATED/, @{$key->{OUTPUT_TYPE}}); + $mkenv->_prepare_list($key, "OBJ_LIST"); } -my $shared_libs_used = 0; - foreach my $key (values %$OUTPUT) { next unless defined $key->{OUTPUT_TYPE}; diff --git a/source4/build/smb_build/makefile.pm b/source4/build/smb_build/makefile.pm index dc9e1e9911..b06279ed10 100644 --- a/source4/build/smb_build/makefile.pm +++ b/source4/build/smb_build/makefile.pm @@ -112,13 +112,6 @@ sub _prepare_list($$$) $self->output("$ctx->{NAME}_$var =$tmplist\n"); } -sub Integrated($$) -{ - my ($self,$ctx) = @_; - - $self->_prepare_list($ctx, "OBJ_LIST"); -} - sub SharedModulePrimitives($$) { my ($self,$ctx) = @_; @@ -163,7 +156,6 @@ sub SharedModule($$) } $self->output("$ctx->{NAME}_OUTPUT = $ctx->{OUTPUT}\n"); - $self->_prepare_list($ctx, "OBJ_LIST"); $self->_prepare_list($ctx, "FULL_OBJ_LIST"); $self->_prepare_list($ctx, "DEPEND_LIST"); $self->_prepare_list($ctx, "LINK_FLAGS"); @@ -221,7 +213,6 @@ sub SharedLibraryPrimitives($$) if (not grep(/STATIC_LIBRARY/, @{$ctx->{OUTPUT_TYPE}})) { $self->output("$ctx->{NAME}_OUTPUT = $ctx->{OUTPUT}\n"); - $self->_prepare_list($ctx, "OBJ_LIST"); $self->_prepare_list($ctx, "FULL_OBJ_LIST"); } } @@ -269,7 +260,6 @@ sub MergedObj($$) my ($self, $ctx) = @_; $self->output("$ctx->{NAME}_OUTPUT = $ctx->{OUTPUT}\n"); - $self->_prepare_list($ctx, "OBJ_LIST"); $self->_prepare_list($ctx, "FULL_OBJ_LIST"); push(@{$self->{all_objs}}, "\$($ctx->{NAME}_FULL_OBJ_LIST)"); $self->output(<< "__EOD__" @@ -292,7 +282,6 @@ sub StaticLibrary($$) push (@{$self->{static_libs}}, $ctx->{RESULT_STATIC_LIBRARY}) if ($ctx->{TYPE} eq "LIBRARY"); $self->output("$ctx->{NAME}_OUTPUT = $ctx->{OUTPUT}\n"); - $self->_prepare_list($ctx, "OBJ_LIST"); $self->_prepare_list($ctx, "FULL_OBJ_LIST"); push(@{$self->{all_objs}}, "\$($ctx->{NAME}_FULL_OBJ_LIST)"); @@ -335,7 +324,6 @@ sub Binary($$) $self->output("binaries:: $ctx->{TARGET_BINARY}\n"); - $self->_prepare_list($ctx, "OBJ_LIST"); $self->_prepare_list($ctx, "FULL_OBJ_LIST"); $self->_prepare_list($ctx, "DEPEND_LIST"); $self->_prepare_list($ctx, "LINK_FLAGS"); diff --git a/source4/build/smb_build/output.pm b/source4/build/smb_build/output.pm index 67b905ef55..33493eca2c 100644 --- a/source4/build/smb_build/output.pm +++ b/source4/build/smb_build/output.pm @@ -201,7 +201,7 @@ sub create_output($$) push(@{$part->{LINK_FLAGS}}, "\$($elem->{NAME}_OUTPUT)") if defined($elem->{OUTPUT}); push(@{$part->{LINK_FLAGS}}, @{$elem->{LIBS}}) if defined($elem->{LIBS}); push(@{$part->{LINK_FLAGS}},@{$elem->{LDFLAGS}}) if defined($elem->{LDFLAGS}); - push(@{$part->{DEPEND_LIST}}, $elem->{TARGET}) if defined($elem->{TARGET}); + push(@{$part->{DEPEND_LIST}}, $elem->{TARGET}) if defined($elem->{TARGET}); } } -- cgit From 5022db874b93f896f6e828f762f65a5d41619d61 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Mon, 18 Feb 2008 17:28:24 +0100 Subject: Simplify handling of ALL_OBJS. (This used to be commit 5512c61d75d1a5404d58ba777720e62089bf45a1) --- source4/build/smb_build/main.pl | 1 + source4/build/smb_build/makefile.pm | 9 --------- 2 files changed, 1 insertion(+), 9 deletions(-) (limited to 'source4/build') diff --git a/source4/build/smb_build/main.pl b/source4/build/smb_build/main.pl index d4d18a5cb9..375962bde9 100644 --- a/source4/build/smb_build/main.pl +++ b/source4/build/smb_build/main.pl @@ -51,6 +51,7 @@ my $mkenv = new smb_build::makefile(\%config::config, $mkfile); my $shared_libs_used = 0; foreach my $key (values %$OUTPUT) { $mkenv->_prepare_list($key, "OBJ_LIST"); + push(@{$mkenv->{all_objs}}, "\$($key->{NAME}_OBJ_LIST)"); } foreach my $key (values %$OUTPUT) { diff --git a/source4/build/smb_build/makefile.pm b/source4/build/smb_build/makefile.pm index b06279ed10..52149083b1 100644 --- a/source4/build/smb_build/makefile.pm +++ b/source4/build/smb_build/makefile.pm @@ -160,8 +160,6 @@ sub SharedModule($$) $self->_prepare_list($ctx, "DEPEND_LIST"); $self->_prepare_list($ctx, "LINK_FLAGS"); - push(@{$self->{all_objs}}, "\$($ctx->{NAME}_FULL_OBJ_LIST)"); - if (defined($ctx->{INIT_FUNCTION}) and $ctx->{TYPE} ne "PYTHON") { my $init_fn = $ctx->{INIT_FUNCTION_TYPE}; $init_fn =~ s/\(\*\)/init_module/; @@ -226,8 +224,6 @@ sub SharedLibrary($$) $self->_prepare_list($ctx, "DEPEND_LIST"); $self->_prepare_list($ctx, "LINK_FLAGS"); - push(@{$self->{all_objs}}, "\$($ctx->{NAME}_FULL_OBJ_LIST)"); - my $soarg = ""; my $lns = ""; if ($self->{config}->{SONAMEFLAG} ne "#" and defined($ctx->{LIBRARY_SONAME})) { @@ -261,7 +257,6 @@ sub MergedObj($$) $self->output("$ctx->{NAME}_OUTPUT = $ctx->{OUTPUT}\n"); $self->_prepare_list($ctx, "FULL_OBJ_LIST"); - push(@{$self->{all_objs}}, "\$($ctx->{NAME}_FULL_OBJ_LIST)"); $self->output(<< "__EOD__" # $ctx->{RESULT_MERGED_OBJ}: \$($ctx->{NAME}_FULL_OBJ_LIST) @@ -284,8 +279,6 @@ sub StaticLibrary($$) $self->output("$ctx->{NAME}_OUTPUT = $ctx->{OUTPUT}\n"); $self->_prepare_list($ctx, "FULL_OBJ_LIST"); - push(@{$self->{all_objs}}, "\$($ctx->{NAME}_FULL_OBJ_LIST)"); - $self->output(<< "__EOD__" # $ctx->{RESULT_STATIC_LIBRARY}: \$($ctx->{NAME}_FULL_OBJ_LIST) @@ -313,8 +306,6 @@ sub Binary($$) my $extradir = ""; - push(@{$self->{all_objs}}, "\$($ctx->{NAME}_FULL_OBJ_LIST)"); - unless (defined($ctx->{INSTALLDIR})) { } elsif ($ctx->{INSTALLDIR} eq "SBINDIR") { push (@{$self->{sbin_progs}}, $ctx->{RESULT_BINARY}); -- cgit From 6e0522c3cae9c99b589db67727ee1256c6da82ef Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Mon, 18 Feb 2008 18:55:37 +0100 Subject: Build complete static libraries. (This used to be commit 34e26f4eecdf5bca340133942b242969c4c16dff) --- source4/build/smb_build/dot.pl | 2 +- source4/build/smb_build/input.pm | 26 ++------------------------ source4/build/smb_build/main.pl | 8 ++------ source4/build/smb_build/makefile.pm | 7 ++++--- source4/build/smb_build/output.pm | 12 ++++++++---- 5 files changed, 17 insertions(+), 38 deletions(-) (limited to 'source4/build') diff --git a/source4/build/smb_build/dot.pl b/source4/build/smb_build/dot.pl index 82f89c081a..e50ee50f95 100755 --- a/source4/build/smb_build/dot.pl +++ b/source4/build/smb_build/dot.pl @@ -44,7 +44,7 @@ my $name = "samba4"; my $only; if (defined($subsys)) { my $DEPEND = smb_build::input::check($INPUT, \%config::enabled, - "STATIC_LIBRARY", "SHARED_LIBRARY", "SHARED_LIBRARY"); + "MERGED_OBJ", "SHARED_LIBRARY", "SHARED_LIBRARY"); die("No such subsystem $subsys") unless (defined($DEPEND->{$subsys})); diff --git a/source4/build/smb_build/input.pm b/source4/build/smb_build/input.pm index f175b4c8c9..95902dfcbf 100644 --- a/source4/build/smb_build/input.pm +++ b/source4/build/smb_build/input.pm @@ -105,8 +105,9 @@ sub check_module($$$) push (@{$mod->{PUBLIC_DEPENDENCIES}}, $mod->{SUBSYSTEM}); add_libreplace($mod); } - if (grep(/INTEGRATED/, @{$mod->{OUTPUT_TYPE}})) { + if (grep(/MERGED_OBJ/, @{$mod->{OUTPUT_TYPE}})) { push (@{$INPUT->{$mod->{SUBSYSTEM}}{INIT_FUNCTIONS}}, $mod->{INIT_FUNCTION}) if defined($mod->{INIT_FUNCTION}); + unshift (@{$INPUT->{$mod->{SUBSYSTEM}}{PRIVATE_DEPENDENCIES}}, $mod->{NAME}); } } @@ -181,27 +182,6 @@ sub check_binary($$) add_libreplace($bin); } -sub import_integrated($$) -{ - my ($lib, $depend) = @_; - - foreach my $mod (values %$depend) { - next if(not defined($mod->{OUTPUT_TYPE})); - next if(not grep(/INTEGRATED/, @{$mod->{OUTPUT_TYPE}})); - next if(not defined($mod->{SUBSYSTEM})); - next if($mod->{SUBSYSTEM} ne $lib->{NAME}); - next if($mod->{ENABLE} ne "YES"); - - push (@{$lib->{FULL_OBJ_LIST}}, "\$($mod->{NAME}_OBJ_LIST)"); - push (@{$lib->{LINK_FLAGS}}, "\$($mod->{NAME}_LINK_FLAGS)"); - push (@{$lib->{CFLAGS}}, @{$mod->{CFLAGS}}) if defined($mod->{CFLAGS}); - push (@{$lib->{PUBLIC_DEPENDENCIES}}, @{$mod->{PUBLIC_DEPENDENCIES}}) if defined($mod->{PUBLIC_DEPENDENCIES}); - push (@{$lib->{PRIVATE_DEPENDENCIES}}, @{$mod->{PRIVATE_DEPENDENCIES}}) if defined($mod->{PRIVATE_DEPENDENCIES}); - - $mod->{ENABLE} = "NO"; - } -} - sub add_implicit($$) { my ($INPUT, $n) = @_; @@ -230,7 +210,6 @@ sub calc_unique_deps($$$$$$$$) if (defined ($dep->{OUTPUT_TYPE}) && ($withlibs or - (@{$dep->{OUTPUT_TYPE}}[0] eq "INTEGRATED") or (@{$dep->{OUTPUT_TYPE}}[0] eq "MERGED_OBJ") or (@{$dep->{OUTPUT_TYPE}}[0] eq "STATIC_LIBRARY"))) { push (@$busy, $dep->{NAME}); @@ -302,7 +281,6 @@ sub check($$$$$) if (defined($part->{INIT_FUNCTIONS})) { push (@{$part->{LINK_FLAGS}}, "\$(DYNEXP)"); } - import_integrated($part, $INPUT); } foreach my $part (values %$INPUT) { diff --git a/source4/build/smb_build/main.pl b/source4/build/smb_build/main.pl index 375962bde9..3ed0327d6d 100644 --- a/source4/build/smb_build/main.pl +++ b/source4/build/smb_build/main.pl @@ -19,8 +19,7 @@ use strict; my $INPUT = {}; my $mkfile = smb_build::config_mk::run_config_mk($INPUT, $config::config{srcdir}, $config::config{builddir}, "main.mk"); -my $subsys_output_type; -$subsys_output_type = ["MERGED_OBJ"]; +my $subsys_output_type = ["MERGED_OBJ"]; my $library_output_type; if ($config::config{USESHARED} eq "true") { @@ -35,7 +34,7 @@ my $module_output_type; if ($config::config{USESHARED} eq "true") { $module_output_type = ["SHARED_LIBRARY"]; } else { - $module_output_type = ["INTEGRATED"]; + $module_output_type = ["MERGED_OBJ"]; } my $DEPEND = smb_build::input::check($INPUT, \%config::enabled, @@ -43,9 +42,6 @@ my $DEPEND = smb_build::input::check($INPUT, \%config::enabled, $library_output_type, $module_output_type); my $OUTPUT = output::create_output($DEPEND, \%config::config); -$config::config{SUBSYSTEM_OUTPUT_TYPE} = $subsys_output_type; -$config::config{LIBRARY_OUTPUT_TYPE} = $library_output_type; -$config::config{MODULE_OUTPUT_TYPE} = $module_output_type; my $mkenv = new smb_build::makefile(\%config::config, $mkfile); my $shared_libs_used = 0; diff --git a/source4/build/smb_build/makefile.pm b/source4/build/smb_build/makefile.pm index 52149083b1..d11e761ce1 100644 --- a/source4/build/smb_build/makefile.pm +++ b/source4/build/smb_build/makefile.pm @@ -255,14 +255,15 @@ sub MergedObj($$) { my ($self, $ctx) = @_; + return unless defined($ctx->{OUTPUT}); + $self->output("$ctx->{NAME}_OUTPUT = $ctx->{OUTPUT}\n"); - $self->_prepare_list($ctx, "FULL_OBJ_LIST"); $self->output(<< "__EOD__" # -$ctx->{RESULT_MERGED_OBJ}: \$($ctx->{NAME}_FULL_OBJ_LIST) +$ctx->{RESULT_MERGED_OBJ}: \$($ctx->{NAME}_OBJ_LIST) \@echo Partially linking \$@ \@mkdir -p bin/mergedobj - \$(PARTLINK) -o \$@ \$($ctx->{NAME}_FULL_OBJ_LIST) + \$(PARTLINK) -o \$@ \$($ctx->{NAME}_OBJ_LIST) __EOD__ ); diff --git a/source4/build/smb_build/output.pm b/source4/build/smb_build/output.pm index 33493eca2c..3d5f4466ca 100644 --- a/source4/build/smb_build/output.pm +++ b/source4/build/smb_build/output.pm @@ -136,7 +136,7 @@ sub generate_binary($) my $bin = shift; $bin->{DEPEND_LIST} = []; - push(@{$bin->{LINK_FLAGS}}, "\$($bin->{NAME}\_OBJ_LIST)"); + push(@{$bin->{LINK_FLAGS}}, "\$($bin->{NAME}\_FULL_OBJ_LIST)"); $bin->{DEBUGDIR} = "bin"; $bin->{RESULT_BINARY} = $bin->{OUTPUT_BINARY} = "$bin->{DEBUGDIR}/$bin->{NAME}"; @@ -198,10 +198,14 @@ sub create_output($$) my $elem = $depend->{$_}; next if $elem == $part; - push(@{$part->{LINK_FLAGS}}, "\$($elem->{NAME}_OUTPUT)") if defined($elem->{OUTPUT}); push(@{$part->{LINK_FLAGS}}, @{$elem->{LIBS}}) if defined($elem->{LIBS}); - push(@{$part->{LINK_FLAGS}},@{$elem->{LDFLAGS}}) if defined($elem->{LDFLAGS}); - push(@{$part->{DEPEND_LIST}}, $elem->{TARGET}) if defined($elem->{TARGET}); + push(@{$part->{LINK_FLAGS}}, @{$elem->{LDFLAGS}}) if defined($elem->{LDFLAGS}); + if (defined($elem->{OUTPUT_TYPE}) and @{$elem->{OUTPUT_TYPE}}[0] eq "MERGED_OBJ") { + push (@{$part->{FULL_OBJ_LIST}}, $elem->{TARGET}); + } else { + push(@{$part->{LINK_FLAGS}}, "\$($elem->{NAME}_OUTPUT)") if defined($elem->{OUTPUT}); + push(@{$part->{DEPEND_LIST}}, $elem->{TARGET}) if defined($elem->{TARGET}); + } } } -- cgit From 602f4635da0935abffdda2a29ec302a775fdbe62 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Mon, 18 Feb 2008 19:06:17 +0100 Subject: Get rid of 'INTEGRATED' build of modules - now replaced by 'MERGED_OBJ' (This used to be commit 269cbf84d8b7dbf3bc88adc04ae283dc908af5ac) --- source4/build/smb_build/input.pm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'source4/build') diff --git a/source4/build/smb_build/input.pm b/source4/build/smb_build/input.pm index 95902dfcbf..9cc374fa79 100644 --- a/source4/build/smb_build/input.pm +++ b/source4/build/smb_build/input.pm @@ -73,11 +73,11 @@ sub check_module($$$) } if (!(defined($INPUT->{$mod->{SUBSYSTEM}}))) { - $mod->{ENABLE} = "NO"; - return; + die("Unknown subsystem $mod->{SUBSYSTEM} for module $mod->{NAME}"); } if ($INPUT->{$mod->{SUBSYSTEM}} eq "NO") { + warn("Disabling module $mod->{NAME} because subsystem $mod->{SUBSYSTEM} is disabled"); $mod->{ENABLE} = "NO"; return; } -- cgit From c5487903df0f770600d0e96bfb26e00f8254c82f Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Mon, 18 Feb 2008 19:19:54 +0100 Subject: Be a little bit less strict about recursive dependencies. (This used to be commit 0bb89968299f90df00861a8982eefca182ed7f8d) --- source4/build/smb_build/input.pm | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'source4/build') diff --git a/source4/build/smb_build/input.pm b/source4/build/smb_build/input.pm index 9cc374fa79..d636ecc898 100644 --- a/source4/build/smb_build/input.pm +++ b/source4/build/smb_build/input.pm @@ -202,9 +202,12 @@ sub calc_unique_deps($$$$$$$$) foreach my $n (@$deps) { add_implicit($INPUT, $n) unless (defined($INPUT->{$n})); - die("Recursive dependency: $n, list: " . join(',', @$busy)) if (grep (/^$n$/, @$busy)); - next if (grep /^$n$/, @$udeps); my $dep = $INPUT->{$n}; + if (grep (/^$n$/, @$busy)) { + next if (@{$dep->{OUTPUT_TYPE}}[0] eq "MERGED_OBJ"); + die("Recursive dependency: $n, list: " . join(',', @$busy)); + } + next if (grep /^$n$/, @$udeps); push (@{$udeps}, $dep->{NAME}) if $forward; -- cgit From 094769618e180cae404f5951b969e9c6c778e421 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Mon, 18 Feb 2008 19:46:27 +0100 Subject: Use implicit build system element creation for external libraries. (This used to be commit 3b08f190c9dd4567e684c804a22e2612f405bbec) --- source4/build/m4/public.m4 | 22 ++++------------------ source4/build/smb_build/config_mk.pm | 2 -- source4/build/smb_build/input.pm | 13 ++++++++----- source4/build/smb_build/output.pm | 2 +- 4 files changed, 13 insertions(+), 26 deletions(-) (limited to 'source4/build') diff --git a/source4/build/m4/public.m4 b/source4/build/m4/public.m4 index d045cf42b7..f3d262e07a 100644 --- a/source4/build/m4/public.m4 +++ b/source4/build/m4/public.m4 @@ -8,7 +8,7 @@ dnl SMB_SUBSYSTEM(name,obj_files,required_subsystems) dnl dnl SMB_EXT_LIB_FROM_PKGCONFIG(name,pkg-config name,[ACTION-IF-FOUND],[ACTION-IF-NOT-FOUND]) dnl -dnl SMB_EXT_LIB(name,libs,cflags,cppflags,ldflags,pcname) +dnl SMB_EXT_LIB(name,libs,cflags,cppflags,ldflags) dnl dnl SMB_ENABLE(name,default_build) dnl @@ -40,7 +40,7 @@ ENABLE = YES " ]) -dnl SMB_LIBRARY(name,obj_files,required_subsystems,version,so_version,cflags,ldflags,pcname) +dnl SMB_LIBRARY(name,obj_files,required_subsystems,version,so_version,cflags,ldflags) AC_DEFUN([SMB_LIBRARY], [ MAKE_SETTINGS="$MAKE_SETTINGS @@ -60,7 +60,6 @@ VERSION = $4 SO_VERSION = $5 CFLAGS = \$($1_CFLAGS) LDFLAGS = \$($1_LDFLAGS) -PC_NAME = $8 ENABLE = YES # End Library $1 ################################### @@ -104,8 +103,7 @@ AC_DEFUN([SMB_EXT_LIB_FROM_PKGCONFIG], [`$PKG_CONFIG --libs-only-l '$2'`], [`$PKG_CONFIG --cflags-only-other '$2'`], [`$PKG_CONFIG --cflags-only-I '$2'`], - [`$PKG_CONFIG --libs-only-other '$2'` `$PKG_CONFIG --libs-only-L '$2'`], - [ $2 ]) + [`$PKG_CONFIG --libs-only-other '$2'` `$PKG_CONFIG --libs-only-L '$2'`]) ac_cv_$1_found=yes else @@ -137,7 +135,7 @@ include $1 " ]) -dnl SMB_EXT_LIB(name,libs,cflags,cppflags,ldflags,pcname) +dnl SMB_EXT_LIB(name,libs,cflags,cppflags,ldflags) AC_DEFUN([SMB_EXT_LIB], [ MAKE_SETTINGS="$MAKE_SETTINGS @@ -147,18 +145,6 @@ $1_CPPFLAGS = $4 $1_LDFLAGS = $5 " -SMB_INFO_EXT_LIBS="$SMB_INFO_EXT_LIBS -################################### -# Start Ext Lib $1 -@<:@EXT_LIB::$1@:>@ -LIBS = \$($1_LIBS) -CFLAGS = \$($1_CFLAGS) -CPPFLAGS = \$($1_CPPFLAGS) -LDFLAGS = \$($1_LDFLAGS) -PC_NAME = $6 -# End Ext Lib $1 -################################### -" ]) dnl SMB_ENABLE(name,default_build) diff --git a/source4/build/smb_build/config_mk.pm b/source4/build/smb_build/config_mk.pm index aa075490bc..ed05a4e4d9 100644 --- a/source4/build/smb_build/config_mk.pm +++ b/source4/build/smb_build/config_mk.pm @@ -18,7 +18,6 @@ my $section_types = { "CFLAGS" => "list", "CPPFLAGS" => "list", "LDFLAGS" => "list", - "PC_NAME" => "string", }, "PYTHON" => { SWIG_FILE => "string", @@ -90,7 +89,6 @@ my $section_types = { "SO_VERSION" => "string", "LIBRARY_REALNAME" => "string", - "PC_NAME" => "string", "PC_FILE" => "string", "INIT_FUNCTION_TYPE" => "string", diff --git a/source4/build/smb_build/input.pm b/source4/build/smb_build/input.pm index d636ecc898..da90e9db48 100644 --- a/source4/build/smb_build/input.pm +++ b/source4/build/smb_build/input.pm @@ -92,7 +92,7 @@ sub check_module($$$) if (not defined($mod->{OUTPUT_TYPE})) { if ($INPUT->{$mod->{SUBSYSTEM}}->{TYPE} eq "EXT_LIB") { - $mod->{OUTPUT_TYPE} = ["SHARED_LIBRARY"]; + $mod->{OUTPUT_TYPE} = undef; } else { $mod->{OUTPUT_TYPE} = $default_ot; } @@ -163,7 +163,7 @@ sub check_python($$$) $python->{LIBRARY_REALNAME} = "$basename.\$(SHLIBEXT)"; $python->{INIT_FUNCTION} = "{ (char *)\"$basename\", init$basename }"; } - push (@{$python->{CFLAGS}}, @{$INPUT->{EXT_LIB_PYTHON}->{CFLAGS}}); + push (@{$python->{CFLAGS}}, "\$(EXT_LIB_PYTHON_CFLAGS)"); $python->{SUBSYSTEM} = "LIBPYTHON"; @@ -189,9 +189,12 @@ sub add_implicit($$) $INPUT->{$n} = { TYPE => "MAKE_RULE", NAME => $n, - TARGET => lc($n), - LIBS => "\$(".uc($n)."_LIBS)", - CFLAGS => "\$(".uc($n)."_CFLAG)" + TARGET => "", + OUTPUT_TYPE => undef, + LIBS => ["\$(".uc($n)."_LIBS)"], + LDFLAGS => ["\$(".uc($n)."_LDFLAGS)"], + CFLAGS => ["\$(".uc($n)."_CFLAGS)"], + CPPFLAGS => ["\$(".uc($n)."_CPPFLAGS)"] }; } diff --git a/source4/build/smb_build/output.pm b/source4/build/smb_build/output.pm index 3d5f4466ca..83be28e740 100644 --- a/source4/build/smb_build/output.pm +++ b/source4/build/smb_build/output.pm @@ -210,7 +210,7 @@ sub create_output($$) } foreach $part (values %{$depend}) { - if (($part->{STANDARD_VISIBILITY} ne "default") and + if (defined($part->{STANDARD_VISIBILITY}) and ($part->{STANDARD_VISIBILITY} ne "default") and ($config->{visibility_attribute} eq "yes")) { push(@{$part->{FINAL_CFLAGS}}, "-fvisibility=$part->{STANDARD_VISIBILITY}"); } -- cgit From ff0315ba859421dff6aba055887e086fa68c2951 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Mon, 18 Feb 2008 20:04:18 +0100 Subject: Rename include to mkinclude to emphasize it is different from make's include. (This used to be commit 0e1d0a874ae3d22b8f97a79b81fe0af3ef53a771) --- source4/build/m4/public.m4 | 2 +- source4/build/smb_build/config_mk.pm | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) (limited to 'source4/build') diff --git a/source4/build/m4/public.m4 b/source4/build/m4/public.m4 index f3d262e07a..eb673446c7 100644 --- a/source4/build/m4/public.m4 +++ b/source4/build/m4/public.m4 @@ -131,7 +131,7 @@ dnl SMB_INCLUDE_MK(file) AC_DEFUN([SMB_INCLUDE_MK], [ SMB_INFO_EXT_LIBS="$SMB_INFO_EXT_LIBS -include $1 +mkinclude $1 " ]) diff --git a/source4/build/smb_build/config_mk.pm b/source4/build/smb_build/config_mk.pm index ed05a4e4d9..4d8db8a04e 100644 --- a/source4/build/smb_build/config_mk.pm +++ b/source4/build/smb_build/config_mk.pm @@ -239,7 +239,7 @@ sub run_config_mk($$$$) } # include - if ($line =~ /^include (.*)$/) { + if ($line =~ /^mkinclude (.*)$/) { my $subfile= $1; my $subdir = dirname($filename); $subdir =~ s/^\.$//g; -- cgit From 3e4b8da4df1675aa8ac1b23675700d5f8c88daf7 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Mon, 18 Feb 2008 20:14:29 +0100 Subject: Fix summary. (This used to be commit afe9418b728a1b35f713c650622c1abadba9a526) --- source4/build/smb_build/summary.pm | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) (limited to 'source4/build') diff --git a/source4/build/smb_build/summary.pm b/source4/build/smb_build/summary.pm index 52817f3597..4ea1ad525e 100644 --- a/source4/build/smb_build/summary.pm +++ b/source4/build/smb_build/summary.pm @@ -5,6 +5,7 @@ # Released under the GNU GPL package summary; +use smb_build::config; use strict; sub enabled($) @@ -21,9 +22,7 @@ sub showitem($$$) my @need = (); foreach (@$items) { - if (!enabled($output->{$_}->{ENABLE})) { - push (@need, $_); - } + push (@need, $_) if (enabled($config::enable{$_})); } print "Support for $desc: "; -- cgit From 9368ea67cdbb0d1fe5ef2258cc7e8c20c66e6ecd Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Tue, 19 Feb 2008 03:57:30 +0100 Subject: Fix CFLAGS (caused problems on hosts without libgssapi installed on the system). (This used to be commit f6760fd161f568ef13a841a0210f130160a16c01) --- source4/build/smb_build/output.pm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'source4/build') diff --git a/source4/build/smb_build/output.pm b/source4/build/smb_build/output.pm index 83be28e740..ff9afe8e8c 100644 --- a/source4/build/smb_build/output.pm +++ b/source4/build/smb_build/output.pm @@ -185,7 +185,7 @@ sub create_output($$) merge_array(\$part->{FINAL_CFLAGS}, $part->{CPPFLAGS}); merge_array(\$part->{FINAL_CFLAGS}, $part->{CFLAGS}); - foreach (@{$part->{UNIQUE_DEPENDENCIES_COMPILE}}) { + foreach (@{$part->{UNIQUE_DEPENDENCIES_ALL}}) { my $elem = $depend->{$_}; next if $elem == $part; -- cgit From c05b9ef58a79b09a1f9b6332bf2989af6db8ee26 Mon Sep 17 00:00:00 2001 From: Michael Adam Date: Tue, 19 Feb 2008 16:49:58 +0100 Subject: Fix a typo. Michael (This used to be commit 39499a3346b49a3c50cb1ebb1393a62c614cf056) --- source4/build/m4/check_path.m4 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'source4/build') diff --git a/source4/build/m4/check_path.m4 b/source4/build/m4/check_path.m4 index 1dacd956ea..08a858ebb2 100644 --- a/source4/build/m4/check_path.m4 +++ b/source4/build/m4/check_path.m4 @@ -132,7 +132,7 @@ AC_SUBST(modulesdir) selftest_prefix="./st" AC_SUBST(selftest_prefix) AC_ARG_WITH(selftest-prefix, -[ --with-selftest-prefix=DIR The prefix where make test will be runned ($selftest_prefix)], +[ --with-selftest-prefix=DIR The prefix where make test will be run ($selftest_prefix)], [ case "$withval" in yes|no) AC_MSG_WARN([--with-selftest-prefix called without argument - will use default]) -- cgit From 836bab841cff78c40714048f8024535cb7a147f9 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Tue, 19 Feb 2008 23:00:43 +0100 Subject: Add configure test for vdeplug library. (This used to be commit 89590d7dfe0735093a4a5b66eeed9276df043ac9) --- source4/build/smb_build/summary.pm | 3 +++ 1 file changed, 3 insertions(+) (limited to 'source4/build') diff --git a/source4/build/smb_build/summary.pm b/source4/build/smb_build/summary.pm index 4ea1ad525e..a6557fb1fe 100644 --- a/source4/build/smb_build/summary.pm +++ b/source4/build/smb_build/summary.pm @@ -53,6 +53,9 @@ sub show($$) showitem($output, "using libblkid", ["BLKID"]); showitem($output, "using iconv", ["ICONV"]); showitem($output, "using pam", ["PAM"]); + if (enabled($config->{developer})) { + showitem($output, "using VDE", ["VDEPLUG"]); + } showitem($output, "python bindings", ["LIBPYTHON"]); showisexternal($output, "popt", "LIBPOPT"); showisexternal($output, "talloc", "LIBTALLOC"); -- cgit From 0020793515ade04f3ef5754717490e2eb2ca6bb9 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Wed, 20 Feb 2008 03:40:44 +0100 Subject: Fix static module list generation for ldb. (This used to be commit 92c1c0e9137f0845cac6cc96bf78711b6aaffe21) --- source4/build/smb_build/header.pm | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) (limited to 'source4/build') diff --git a/source4/build/smb_build/header.pm b/source4/build/smb_build/header.pm index 93240f1d17..c2bdbaf4c8 100644 --- a/source4/build/smb_build/header.pm +++ b/source4/build/smb_build/header.pm @@ -44,8 +44,14 @@ sub _prepare_build_h($) $DEFINE->{VAL} .= "\t$_, \\\n"; unless (/{/) { my $fn = $key->{INIT_FUNCTION_TYPE}; - $fn =~ s/\(\*\)/$_/; - $output .= "$fn;\n"; + my $n = $_; + if ($fn =~ /\(\*\)/) { + $fn =~ s/\(\*\)/$n/; + $output .= "$fn;\n"; + } else { + $n =~ s/\&//; + $output .= "$fn $n;\n"; + } } } -- cgit From 39a817d310964f8e9a63cfb096b3ad24fa03bd5e Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Wed, 20 Feb 2008 04:33:43 +0100 Subject: Fix use of some modules (needed _PUBLIC_). (This used to be commit ce332130ea77159832da23bab760fa26921719e2) --- source4/build/smb_build/makefile.pm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'source4/build') diff --git a/source4/build/smb_build/makefile.pm b/source4/build/smb_build/makefile.pm index d11e761ce1..22b813b946 100644 --- a/source4/build/smb_build/makefile.pm +++ b/source4/build/smb_build/makefile.pm @@ -160,7 +160,8 @@ sub SharedModule($$) $self->_prepare_list($ctx, "DEPEND_LIST"); $self->_prepare_list($ctx, "LINK_FLAGS"); - if (defined($ctx->{INIT_FUNCTION}) and $ctx->{TYPE} ne "PYTHON") { + if (defined($ctx->{INIT_FUNCTION}) and $ctx->{TYPE} ne "PYTHON" and + $ctx->{INIT_FUNCTION_TYPE} =~ /\(\*\)/) { my $init_fn = $ctx->{INIT_FUNCTION_TYPE}; $init_fn =~ s/\(\*\)/init_module/; my $proto_fn = $ctx->{INIT_FUNCTION_TYPE}; -- cgit From 1c1781b2c4a09080a19f834ba947d0410b2141f7 Mon Sep 17 00:00:00 2001 From: Andrew Bartlett Date: Wed, 20 Feb 2008 19:20:13 +1100 Subject: Simpler specification of CFLAGS and LDFLAGS By being more consistant in applying CFLAGS and LDFLAGS (in particular) to every invocation, we make it simpler to enable gcov code coverage, both in the build system and on the build farm. Andrew Bartlett (This used to be commit 8c2f658a9688f0c51d2f3b948dc3213b65c7b77f) --- source4/build/m4/check_ld.m4 | 17 ++++++++++------- source4/build/smb_build/makefile.pm | 4 ++-- 2 files changed, 12 insertions(+), 9 deletions(-) (limited to 'source4/build') diff --git a/source4/build/m4/check_ld.m4 b/source4/build/m4/check_ld.m4 index 3b69057a69..0d0742e5d2 100644 --- a/source4/build/m4/check_ld.m4 +++ b/source4/build/m4/check_ld.m4 @@ -13,6 +13,7 @@ LD="" AC_SUBST(BLDSHARED) AC_SUBST(LD) +AC_SUBST(SYS_LDFLAGS) AC_SUBST(LDFLAGS) # Assume non-shared by default and override below @@ -32,13 +33,13 @@ AC_MSG_CHECKING([whether to try to build shared libraries on $host_os]) case "$host_os" in *linux*) BLDSHARED="true" - LDFLAGS="$LDFLAGS -Wl,--export-dynamic" + SYS_LDFLAGS="-Wl,--export-dynamic" ;; *solaris*) BLDSHARED="true" if test "${GCC}" = "yes"; then if test "${ac_cv_prog_gnu_ld}" = "yes"; then - LDFLAGS="$LDFLAGS -Wl,-E" + SYS_LDFLAGS="-Wl,-E" fi fi ;; @@ -47,26 +48,26 @@ case "$host_os" in ;; *netbsd* | *freebsd* | *dragonfly* ) BLDSHARED="true" - LDFLAGS="$LDFLAGS -Wl,--export-dynamic" + SYS_LDFLAGS="-Wl,--export-dynamic" ;; *openbsd*) BLDSHARED="true" - LDFLAGS="$LDFLAGS -Wl,-Bdynamic" + SYS_LDFLAGS="-Wl,-Bdynamic" ;; *irix*) BLDSHARED="true" ;; *aix*) BLDSHARED="true" - LDFLAGS="$LDFLAGS -Wl,-brtl,-bexpall,-bbigtoc" + SYS_LDFLAGS="-Wl,-brtl,-bexpall,-bbigtoc" ;; *hpux*) # Use special PIC flags for the native HP-UX compiler. BLDSHARED="true" # I hope this is correct if test "$host_cpu" = "ia64"; then - LDFLAGS="$LDFLAGS -Wl,-E,+b/usr/local/lib/hpux32:/usr/lib/hpux32" + SYS_LDFLAGS="-Wl,-E,+b/usr/local/lib/hpux32:/usr/lib/hpux32" else - LDFLAGS="$LDFLAGS -Wl,-E,+b/usr/local/lib:/usr/lib" + SYS_LDFLAGS="-Wl,-E,+b/usr/local/lib:/usr/lib" fi ;; *osf*) @@ -86,6 +87,8 @@ AC_MSG_CHECKING([LD]) AC_MSG_RESULT([$LD]) AC_MSG_CHECKING([LDFLAGS]) AC_MSG_RESULT([$LDFLAGS]) +AC_MSG_CHECKING([SYS_LDFLAGS]) +AC_MSG_RESULT([$SYS_LDFLAGS]) AC_SUBST(HOSTLD) diff --git a/source4/build/smb_build/makefile.pm b/source4/build/smb_build/makefile.pm index d11e761ce1..498b619001 100644 --- a/source4/build/smb_build/makefile.pm +++ b/source4/build/smb_build/makefile.pm @@ -187,7 +187,7 @@ __EOD__ $ctx->{SHAREDDIR}/$ctx->{LIBRARY_REALNAME}: \$($ctx->{NAME}_DEPEND_LIST) \$($ctx->{NAME}_FULL_OBJ_LIST) $init_obj \@echo Linking \$\@ \@mkdir -p $ctx->{SHAREDDIR} - \@\$(MDLD) \$(MDLD_FLAGS) \$(INTERN_LDFLAGS) -o \$\@ \$(INSTALL_LINK_FLAGS) \\ + \@\$(MDLD) \$(LDFLAGS) \$(MDLD_FLAGS) \$(INTERN_LDFLAGS) -o \$\@ \$(INSTALL_LINK_FLAGS) \\ \$($ctx->{NAME}\_FULL_OBJ_LIST) $init_obj \\ \$($ctx->{NAME}_LINK_FLAGS) __EOD__ @@ -242,7 +242,7 @@ sub SharedLibrary($$) $ctx->{RESULT_SHARED_LIBRARY}: \$($ctx->{NAME}_DEPEND_LIST) \$($ctx->{NAME}_FULL_OBJ_LIST) \@echo Linking \$\@ \@mkdir -p $ctx->{SHAREDDIR} - \@\$(SHLD) \$(SHLD_FLAGS) \$(INTERN_LDFLAGS) -o \$\@ \$(INSTALL_LINK_FLAGS) \\ + \@\$(SHLD) \$(LDFLAGS) \$(SHLD_FLAGS) \$(INTERN_LDFLAGS) -o \$\@ \$(INSTALL_LINK_FLAGS) \\ \$($ctx->{NAME}\_FULL_OBJ_LIST) \\ \$($ctx->{NAME}_LINK_FLAGS) \\ $soarg$lns -- cgit