1
0
mirror of https://github.com/samba-team/samba.git synced 2025-01-12 09:18:10 +03:00

r19495: Stop linking binaries twice (once before installation, once during build).

Make TORTURE-TALLOC and TORTURE-REPLACE builtin again rather than
separate binaries.
This commit is contained in:
Jelmer Vernooij 2006-10-25 14:58:05 +00:00 committed by Gerald (Jerry) Carter
parent bf2a7dd218
commit 8913d60c72
8 changed files with 27 additions and 68 deletions

View 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});

View 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 $@

View 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

View 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

View 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

View 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

View 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 \

View 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,