r19495: Stop linking binaries twice (once before installation, once during build).
authorJelmer Vernooij <jelmer@samba.org>
Wed, 25 Oct 2006 14:58:05 +0000 (14:58 +0000)
committerGerald (Jerry) Carter <jerry@samba.org>
Wed, 10 Oct 2007 19:24:39 +0000 (14:24 -0500)
Make TORTURE-TALLOC and TORTURE-REPLACE builtin again rather than
separate binaries.

source/build/smb_build/makefile.pm
source/dynconfig.mk
source/lib/basic.mk
source/lib/replace/test/testsuite.c
source/lib/talloc/config.mk
source/lib/talloc/testsuite.c
source/torture/local/config.mk
source/torture/local/local.c

index 780ba99f0398741faaf3bc9cfa48d19fa31fc1d1..30ebf962e08ac77fc0e08bbe2b1925a767af0482 100644 (file)
@@ -106,18 +106,10 @@ sub _prepare_compiler_linker($)
 {
        my ($self) = @_;
 
-       my $devld_local = "";
        my $devld_install = "";
        my $builddir_headers = "";
 
-       $self->{duplicate_build} = 0;
-       if ($self->{developer}) {
-               $self->{duplicate_build} = 1;
-       }
        if ($self->{config}->{LIBRARY_OUTPUT_TYPE} eq "SHARED_LIBRARY") {
-               if ($self->{duplicate_build}) {
-                       $devld_local = " -Wl,-rpath,\$(builddir)/bin";
-               }
                $devld_install = " -Wl,-rpath-link,\$(builddir)/bin";
        }
        
@@ -138,7 +130,6 @@ CFLAGS=$self->{config}->{CFLAGS} \$(CPPFLAGS)
 PICFLAG=$self->{config}->{PICFLAG}
 HOSTCC=$self->{config}->{HOSTCC}
 
-LOCAL_LINK_FLAGS=$devld_local
 INSTALL_LINK_FLAGS=$devld_install
 
 LD=$self->{config}->{LD} 
@@ -219,11 +210,7 @@ sub SharedLibrary($$)
        my $installdir;
        my $init_obj = "";
        
-       if ($self->{duplicate_build}) {
-               $installdir = $ctx->{RELEASEDIR};
-       } else {
-               $installdir = $ctx->{DEBUGDIR};
-       }
+       $installdir = $ctx->{DEBUGDIR};
 
        if ($ctx->{TYPE} eq "LIBRARY") {
                push (@{$self->{shared_libs}}, "$ctx->{DEBUGDIR}/$ctx->{LIBRARY_REALNAME}") if (defined($ctx->{SO_VERSION}));
@@ -379,13 +366,7 @@ sub Binary($$)
        my $dynconfig = "dynconfig.o";
        my $dynconfig_install = "dynconfig.o";
        
-       if ($self->{duplicate_build}) {
-               $installdir = "bin/install$extradir";
-               $dynconfig = "dynconfig-devel.o";
-               $dynconfig_install = "dynconfig.o";
-       } else {
-               $installdir = "bin$extradir";
-       }
+       $installdir = "bin$extradir";
 
        push(@{$self->{all_objs}}, "\$($ctx->{TYPE}_$ctx->{NAME}_FULL_OBJ_LIST)");
                
@@ -406,18 +387,6 @@ sub Binary($$)
        $self->_prepare_list($ctx, "DEPEND_LIST");
        $self->_prepare_list($ctx, "LINK_FLAGS");
 
-       if ($self->{duplicate_build}) {
-       $self->output(<< "__EOD__"
-#
-$localdir/$ctx->{BINARY}: \$($ctx->{TYPE}_$ctx->{NAME}_DEPEND_LIST) \$($ctx->{TYPE}_$ctx->{NAME}_FULL_OBJ_LIST) $dynconfig
-       \@echo Linking \$\@
-       \@\$(LD) \$(LDFLAGS) -o \$\@ \$(LOCAL_LINK_FLAGS) $dynconfig \\
-               \$(INSTALL_LINK_FLAGS) \$\($ctx->{TYPE}_$ctx->{NAME}_LINK_FLAGS) 
-
-__EOD__
-);
-       }
-
 $self->output(<< "__EOD__"
 $installdir/$ctx->{BINARY}: \$($ctx->{TYPE}_$ctx->{NAME}_DEPEND_LIST) \$($ctx->{TYPE}_$ctx->{NAME}_FULL_OBJ_LIST) $dynconfig_install
        \@echo Linking \$\@
@@ -545,12 +514,6 @@ sub write($$)
        $self->output("\ninstallplugins: \$(PLUGINS)\n".$self->{install_plugins}."\n");
        $self->output("\nuninstallplugins:\n".$self->{uninstall_plugins}."\n");
 
-       # nasty hack to allow running locally
-       if ($self->{duplicate_build}) {
-               $self->output("bin/libdynconfig.\$(SHLIBEXT).0.0.1: dynconfig-devel.o\n");
-               $self->output("bin/libdynconfig.\$(SHLIBEXT).0.0.1: LIBRARY_DYNCONFIG_OBJ_LIST=dynconfig-devel.o\n");
-       }
-
        $self->_prepare_mk_files();
 
        $self->output($self->{mkfile});
index ed901a838daa5ded371fe86b1cfe870cdc3f3e22..c17e2638adaf9b7eb6ee7479c33841f9ba92b91d 100644 (file)
@@ -17,23 +17,3 @@ PATH_FLAGS = -DCONFIGFILE=\"$(CONFIGFILE)\" \
 dynconfig.o: dynconfig.c Makefile
        @echo Compiling $<
        @$(CC) `$(PERL) $(srcdir)/script/cflags.pl $@` $(CFLAGS) $(PICFLAG) $(PATH_FLAGS) -c $< -o $@
-
-# dynconfig defines used for binaries in bin/, when configure ran in developer 
-# mode:
-
-DEVEL_PATH_FLAGS = -DCONFIGFILE=\"$(CONFIGFILE)\" -DBINDIR=\"$(builddir)/bin\" \
-     -DLMHOSTSFILE=\"$(LMHOSTSFILE)\" -DLOCKDIR=\"$(LOCKDIR)\" \
-        -DPIDDIR=\"$(PIDDIR)\" -DDATADIR=\"$(srcdir)/codepages\" \
-        -DLOGFILEBASE=\"$(LOGFILEBASE)\" -DSHLIBEXT=\"$(SHLIBEXT)\" \
-        -DCONFIGDIR=\"$(CONFIGDIR)\" -DNCALRPCDIR=\"$(NCALRPCDIR)\" \
-        -DSWATDIR=\"$(srcdir)/../../swat\" \
-        -DSERVICESDIR=\"$(srcdir)/../../services\"\
-        -DPRIVATE_DIR=\"$(PRIVATEDIR)\" \
-        -DMODULESDIR=\"$(builddir)/bin/modules\" \
-        -DJSDIR=\"$(srcdir)/../scripting/libjs\" \
-        -DSETUPDIR=\"$(srcdir)/setup\" -DTORTUREDIR=\"$(srcdir)/bin/torture\" \
-        -DWINBINDD_SOCKET_DIR=\"$(WINBINDD_SOCKET_DIR)\"
-
-dynconfig-devel.o: dynconfig.c Makefile
-       @echo Compiling $<
-       @$(CC) `$(PERL) $(srcdir)/script/cflags.pl $@` -Ilib/replace $(CFLAGS) $(PICFLAG) $(DEVEL_PATH_FLAGS) -c $< -o $@
index 4abb2c8430ba5c6ee41768af4c92ebdca63f4f87..b5a3a031eb938b29c0329ae73546aab8839f61c3 100644 (file)
@@ -4,7 +4,6 @@ include socket/config.mk
 include charset/config.mk
 include ldb/config.mk
 include talloc/config.mk
-include replace/config.mk
 include tdb/config.mk
 include tls/config.mk
 include registry/config.mk
index a57247377bf95803377b3815d8aac4056da940a0..48197cf721d0ebf3b9e85cc5d6e503ded9653210 100644 (file)
@@ -417,8 +417,7 @@ static int test_socketpair(void)
 }
 
 struct torture_context;
-
-int main()
+bool torture_local_replace(struct torture_context *ctx)
 {
        bool ret = true;
        ret &= test_ftruncate();
@@ -466,7 +465,15 @@ int main()
        ret &= test_MAX();
        ret &= test_socketpair();
 
+       return ret;
+}
+
+#ifndef _SAMBA_BUILD_
+int main()
+{
+       bool ret = torture_local_replace(NULL);
        if (ret) 
                return 0;
        return -1;
 }
+#endif
index 0b06687dabdf4e70a09f22807b426f18110bcfcf..714ad72d1cdbee8e985c3d1f3f6d4ecddf980a60 100644 (file)
@@ -11,8 +11,3 @@ DESCRIPTION = A hierarchical pool based memory system with destructors
 #
 # End LIBRARY LIBTALLOC
 ################################################
-
-[BINARY::TALLOC]
-OBJ_FILES = testsuite.o
-PRIVATE_DEPENDENCIES = LIBTALLOC
-INSTALLDIR = TORTUREDIR/LOCAL
index 4904b21f9b07ef89276dfb1f63708b115b99c763..8f2a211b47db6cb18dd2a6807d5065fd6e309198 100644 (file)
@@ -1025,7 +1025,8 @@ static bool test_autofree(void)
        return true;
 }
 
-int main(void)
+struct torture_context;
+bool torture_local_talloc(struct torture_context *tctx)
 {
        bool ret = true;
 
@@ -1057,7 +1058,15 @@ int main(void)
        }
        ret &= test_autofree();
 
+       return ret;
+}
+
+#ifndef _SAMBA_BUILD_
+int main(void)
+{
+       bool ret = torture_local_talloc(NULL);
        if (!ret)
                return -1;
        return 0;
 }
+#endif
index 55659447ec4dbe21b0bc617a713a3dc6a75fed1f..9917dcb128a2e0dcf511395903c2fb61672e257b 100644 (file)
@@ -12,6 +12,9 @@ OBJ_FILES = \
                ../../lib/crypto/hmacmd5test.o \
                ../../lib/crypto/sha1test.o \
                ../../lib/crypto/hmacsha1test.o \
+               ../../lib/talloc/testsuite.o \
+               ../../lib/replace/test/os2_delete.o \
+               ../../lib/replace/test/testsuite.o \
                messaging.o \
                binding_string.o \
                idtree.o \
index 3846c3b18cf53cf11453cc908022f5b7e61aa3d7..47a91c96f77daeb38be5cff4e09257c7d05895db 100644 (file)
@@ -53,6 +53,9 @@ NTSTATUS torture_local_init(void)
                                                                                talloc_autofree_context(),
                                                                                "LOCAL");
 
+       torture_suite_add_simple_test(suite, "TALLOC", torture_local_talloc);
+       torture_suite_add_simple_test(suite, "REPLACE", torture_local_replace);
+
        torture_suite_add_simple_test(suite, "CRYPTO-SHA1", 
                                                                  torture_local_crypto_sha1);
        torture_suite_add_simple_test(suite,