[SCM] Samba Shared Repository - branch v4-0-test updated - release-4-0-0alpha2-808-g92dbbc4

Jelmer Vernooij jelmer at samba.org
Wed Feb 13 20:06:32 GMT 2008


The branch, v4-0-test has been updated
       via  92dbbc479032ae3d0cf4b2b9e64291128185cf9c (commit)
       via  2dce9e4e0d5ba8785fdee3daba91e6c9f4a32040 (commit)
      from  a44af7c3872e900e1ea0da74ef796213030e29ac (commit)

http://gitweb.samba.org/?samba.git;a=shortlog;h=v4-0-test


- Log -----------------------------------------------------------------
commit 92dbbc479032ae3d0cf4b2b9e64291128185cf9c
Author: Jelmer Vernooij <jelmer at samba.org>
Date:   Wed Feb 13 21:05:58 2008 +0100

    Fix corner case.

commit 2dce9e4e0d5ba8785fdee3daba91e6c9f4a32040
Author: Jelmer Vernooij <jelmer at samba.org>
Date:   Wed Feb 13 21:03:01 2008 +0100

    Use more variables in generated data.mk.

-----------------------------------------------------------------------

Summary of changes:
 source/build/smb_build/header.pm   |    1 +
 source/build/smb_build/main.pl     |   16 +++++++++++++---
 source/build/smb_build/makefile.pm |   35 ++++++++++++++++++++++-------------
 source/build/smb_build/output.pm   |    7 ++++---
 4 files changed, 40 insertions(+), 19 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source/build/smb_build/header.pm b/source/build/smb_build/header.pm
index b524649..93240f1 100644
--- a/source/build/smb_build/header.pm
+++ b/source/build/smb_build/header.pm
@@ -82,4 +82,5 @@ sub create_smb_build_h($$)
 
 	print __FILE__.": creating $file\n";
 }
+
 1;
diff --git a/source/build/smb_build/main.pl b/source/build/smb_build/main.pl
index ff54021..a85eab3 100644
--- a/source/build/smb_build/main.pl
+++ b/source/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/source/build/smb_build/makefile.pm b/source/build/smb_build/makefile.pm
index 3df1b56..9c5ae9e 100644
--- a/source/build/smb_build/makefile.pm
+++ b/source/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/source/build/smb_build/output.pm b/source/build/smb_build/output.pm
index fbf14f7..855d03a 100644
--- a/source/build/smb_build/output.pm
+++ b/source/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}";
@@ -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} = $lib->{TARGET_STATIC_LIBRARY};
 }
 
 sub generate_binary($)


-- 
Samba Shared Repository


More information about the samba-cvs mailing list