svn commit: smb-build r22 - in trunk/build/smb_build: .

jelmer at samba.org jelmer at samba.org
Tue Aug 2 18:08:52 GMT 2005


Author: jelmer
Date: 2005-08-02 18:08:52 +0000 (Tue, 02 Aug 2005)
New Revision: 22

WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=smb-build&rev=22

Log:
See what hosts support incremental linking

Modified:
   trunk/build/smb_build/input.pm
   trunk/build/smb_build/makefile.pm
   trunk/build/smb_build/output.pm


Changeset:
Modified: trunk/build/smb_build/input.pm
===================================================================
--- trunk/build/smb_build/input.pm	2005-08-01 19:13:30 UTC (rev 21)
+++ trunk/build/smb_build/input.pm	2005-08-02 18:08:52 UTC (rev 22)
@@ -10,7 +10,7 @@
 use strict;
 package input;
 
-my $subsystem_default_output_type = "OBJLIST";
+my $subsystem_default_output_type = "MERGEDOBJ";
 my $srcdir = ".";
 
 sub strtrim($)

Modified: trunk/build/smb_build/makefile.pm
===================================================================
--- trunk/build/smb_build/makefile.pm	2005-08-01 19:13:30 UTC (rev 21)
+++ trunk/build/smb_build/makefile.pm	2005-08-02 18:08:52 UTC (rev 22)
@@ -85,7 +85,7 @@
 CC=@CC@
 CFLAGS=-Iinclude -I. -I$(srcdir)/include -I$(srcdir) -D_SAMBA_BUILD_ -DHAVE_CONFIG_H -Ilib @CFLAGS@ @CPPFLAGS@
 
-LD=@CC@
+LD=@LD@
 LD_FLAGS=@LDFLAGS@ @CFLAGS@ -Lbin
 
 STLD=ar
@@ -357,6 +357,27 @@
 	return $output;
 }
 
+sub _prepare_mergedobj_rule($)
+{
+	my $ctx = shift;
+
+	if (! $ctx->{TARGET}) {
+		return "";
+	}
+
+	my $output = "";
+	my $tmpdepend = array2oneperline($ctx->{DEPEND_LIST});
+
+	$output = "$ctx->{TYPE}_$ctx->{NAME}_DEPEND_LIST = $tmpdepend\n";
+
+	$output .= "$ctx->{TARGET}: \$($ctx->{TYPE}_$ctx->{NAME}_DEPEND_LIST) \$($ctx->{TYPE}_$ctx->{NAME}_OBJS)\n";
+
+	$output .= "\t\$(LD) -r \$($ctx->{TYPE}_$ctx->{NAME}_OBJS) -o $ctx->{TARGET}\n";
+	$output .= "\n";
+
+	return $output;
+}
+
 sub _prepare_objlist_rule($)
 {
 	my $ctx = shift;
@@ -467,7 +488,7 @@
 #
 bin/$ctx->{BINARY}: bin/.dummy \$(BINARY_$ctx->{NAME}_DEPEND_LIST) \$(BINARY_$ctx->{NAME}_OBJS)
 	\@echo Linking \$\@
-	\@\$(LD) \$(LD_FLAGS) -o \$\@ \\
+	\@\$(CC) \$(LD_FLAGS) -o \$\@ \\
 		\$\(BINARY_$ctx->{NAME}_LINK_FLAGS) \\
 		\$\(BINARY_$ctx->{NAME}_LINK_LIST) \\
 		\$\(BINARY_$ctx->{NAME}_LINK_FLAGS)
@@ -718,6 +739,7 @@
 	foreach my $key (values %{$depend}) {
 		next if not defined $key->{OUTPUT_TYPE};
 
+		($output .= _prepare_mergedobj_rule($key)) if $key->{OUTPUT_TYPE} eq "MERGEDOBJ";
 		($output .= _prepare_objlist_rule($key)) if $key->{OUTPUT_TYPE} eq "OBJLIST";
 		($output .= _prepare_static_library_rule($key)) if $key->{OUTPUT_TYPE} eq "STATIC_LIBRARY";
 		($output .= _prepare_shared_library_rule($key)) if $key->{OUTPUT_TYPE} eq "SHARED_LIBRARY";

Modified: trunk/build/smb_build/output.pm
===================================================================
--- trunk/build/smb_build/output.pm	2005-08-01 19:13:30 UTC (rev 21)
+++ trunk/build/smb_build/output.pm	2005-08-02 18:08:52 UTC (rev 22)
@@ -10,6 +10,13 @@
 package output;
 use strict;
 
+sub generate_mergedobj($)
+{
+	my $subsys = shift;
+
+	$subsys->{OUTPUT} = $subsys->{TARGET} = "bin/$subsys->{TYPE}_$subsys->{NAME}.o";
+}
+
 sub generate_objlist($)
 {
 	my $subsys = shift;
@@ -86,6 +93,7 @@
 		next if not defined($part->{OUTPUT_TYPE});
 
 		generate_binary($part) if $part->{OUTPUT_TYPE} eq "BINARY";
+		generate_mergedobj($part) if $part->{OUTPUT_TYPE} eq "MERGEDOBJ";
 		generate_objlist($part) if $part->{OUTPUT_TYPE} eq "OBJLIST";
 		generate_shared_library($part) if $part->{OUTPUT_TYPE} eq "SHARED_LIBRARY";
 		generate_static_library($part) if $part->{OUTPUT_TYPE} eq "STATIC_LIBRARY";



More information about the samba-cvs mailing list