Merge branch 'v4-0-trivial' into v4-0-gmake3
authorJelmer Vernooij <jelmer@samba.org>
Mon, 18 Feb 2008 10:59:02 +0000 (11:59 +0100)
committerJelmer Vernooij <jelmer@samba.org>
Mon, 18 Feb 2008 10:59:02 +0000 (11:59 +0100)
Conflicts:

source/build/smb_build/main.pl
source/build/smb_build/makefile.pm
(This used to be commit d31987461984aebf8c6f2513e83c92757c0f83c7)

1  2 
source4/build/smb_build/input.pm
source4/build/smb_build/main.pl
source4/build/smb_build/makefile.pm
source4/rules.mk

index 35fc1962b267b553259a472b3dda7bf3fb3dc81b,ed584e185c846d9bf2f9688ea884f88e0336b27b..9c7ffc850ea48df6cc7d62ac8a1e2e8197e60970
@@@ -279,10 -271,9 +270,8 @@@ 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)"];
  
                if ($part->{TYPE} eq "SUBSYSTEM") { 
                        check_subsystem($INPUT, $part, $subsys_ot);
index c7a92b7ce16535ced96f511cf2b2d039e62b4b1a,46a092d69f54b2ea2463d932e06592f2ab46f3c3..0717cd9b0bb5d875b4d259526cb1eddecd48e512
@@@ -52,9 -60,10 +53,10 @@@ my $shared_libs_used = 0
  foreach my $key (values %$OUTPUT) {
        next unless defined $key->{OUTPUT_TYPE};
  
 -      $mkenv->StaticLibrary($key) if grep(/STATIC_LIBRARY/, @{$key->{OUTPUT_TYPE}});
 +      $mkenv->StaticLibraryPrimitives($key) if grep(/STATIC_LIBRARY/, @{$key->{OUTPUT_TYPE}});
+       $mkenv->MergedObj($key) if grep(/MERGED_OBJ/, @{$key->{OUTPUT_TYPE}});
        if (defined($key->{PC_FILE})) {
 -              push(@{$mkenv->{pc_files}}, "$key->{BASEDIR}/$key->{PC_FILE}");
 +              $mkenv->output("PC_FILES += $key->{BASEDIR}/$key->{PC_FILE}\n");
        } 
        $mkenv->SharedLibraryPrimitives($key) if ($key->{TYPE} eq "LIBRARY") and
                                        grep(/SHARED_LIBRARY/, @{$key->{OUTPUT_TYPE}});
index ecbf554fc7302e50068beac268209a4e23466665,16b46ed34343ea04b2f1970a0d5e80c5d2ad6d72..072e3c0c4bdef22b2fbeda1642d7ae75ebb6a620
@@@ -209,20 -269,34 +209,39 @@@ $ctx->{SHAREDDIR}/$ctx->{LIBRARY_REALNA
        \@echo Linking \$\@
        \@mkdir -p $ctx->{SHAREDDIR}
        \@\$(SHLD) \$(SHLD_FLAGS) \$(INTERN_LDFLAGS) -o \$\@ \$(INSTALL_LINK_FLAGS) \\
 -              \$($ctx->{NAME}\_FULL_OBJ_LIST) \\
 +              \$($ctx->{NAME}\_OBJ_LIST) \\
                \$($ctx->{NAME}_LINK_FLAGS) \\
 -              $soarg$lns
 +              \$(if \$(SONAMEFLAG), \$(SONAMEFLAG)$ctx->{LIBRARY_SONAME})
  __EOD__
  );
 -      $self->output("\n");
 +      if ($ctx->{LIBRARY_REALNAME} ne $ctx->{LIBRARY_SONAME}) {
 +              $self->output("\t\@test \$($ctx->{NAME}_VERSION) = \$($ctx->{NAME}_SOVERSION) || ln -fs $ctx->{LIBRARY_REALNAME} $ctx->{SHAREDDIR}/$ctx->{LIBRARY_SONAME}\n");
 +      }
 +      $self->output("ifdef $ctx->{NAME}_SOVERSION\n");
 +      $self->output("\t\@ln -fs $ctx->{LIBRARY_REALNAME} $ctx->{SHAREDDIR}/$ctx->{LIBRARY_DEBUGNAME}\n");
 +      $self->output("endif\n");
  }
  
 -sub StaticLibrary($$)
+ 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__"
+ #
+ $ctx->{TARGET_MERGED_OBJ}: \$($ctx->{NAME}_FULL_OBJ_LIST)
+       \@echo Partially linking \$@
+       \@mkdir -p bin/mergedobj
+       \$(PARTLINK) -o \$@ \$($ctx->{NAME}_FULL_OBJ_LIST)
+ __EOD__
+ );
+ }
 +sub StaticLibraryPrimitives($$)
  {
        my ($self,$ctx) = @_;
  
Simple merge