r26097: Consider python modules special modules rather than special libraries.
authorJelmer Vernooij <jelmer@samba.org>
Wed, 21 Nov 2007 13:49:35 +0000 (14:49 +0100)
committerStefan Metzmacher <metze@samba.org>
Fri, 21 Dec 2007 04:46:02 +0000 (05:46 +0100)
(This used to be commit 4c26cf38102a67ae12b3512b5d38991f020ed2e2)

source4/build/smb_build/input.pm
source4/build/smb_build/main.pl
source4/build/smb_build/makefile.pm
source4/librpc/rpc/dcerpc.i

index d0d923bf5e20f5155df95905e2f1871f9cdc5a38..51b4c9bf399d969aea93b2204e6806517b8f4c8c 100644 (file)
@@ -160,7 +160,9 @@ sub check_python($$)
                $python->{LIBRARY_REALNAME} = "$basename.\$(SHLIBEXT)";
        }
 
-       check_library($INPUT, $python, ["SHARED_LIBRARY"]);
+       $python->{SUBSYSTEM} = "LIBPYTHON";
+
+       check_module($INPUT, $python, ["SHARED_LIBRARY"]);
 }
 
 sub check_binary($$)
index de639eb36b891f62e13863f9411d469fba26ee3c..e084d48a77b8da8a385b5da3395b6e5eed1e53ba 100644 (file)
@@ -62,14 +62,14 @@ foreach my $key (values %$OUTPUT) {
        $mkenv->StaticLibrary($key) if grep(/STATIC_LIBRARY/, @{$key->{OUTPUT_TYPE}});
        $mkenv->PkgConfig($key, $OUTPUT) if $key->{TYPE} eq "LIBRARY" 
                                    and defined($key->{VERSION});
-       $mkenv->SharedLibrary($key) if ($key->{TYPE} eq "LIBRARY" or 
-                                           $key->{TYPE} eq "PYTHON") and
+       $mkenv->SharedLibrary($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" and
+       $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->PythonFiles($key) if defined($key->{PYTHON_FILES});
index 043f13d5180d6f31351f410936ed47956d0f9ccb..cd73aeb8a7b814811d45a75b7ce94ea24dcf0ccf 100644 (file)
@@ -310,6 +310,11 @@ sub SharedModule($$)
        my $sane_subsystem = lc($ctx->{SUBSYSTEM});
        $sane_subsystem =~ s/^lib//;
        
+       if ($ctx->{TYPE} eq "PYTHON") {
+               push (@{$self->{python_dsos}}, 
+                       "$ctx->{SHAREDDIR}/$ctx->{LIBRARY_REALNAME}");
+       }
+
        push (@{$self->{shared_modules}}, "$ctx->{TARGET_SHARED_LIBRARY}");
        push (@{$self->{plugins}}, "$ctx->{SHAREDDIR}/$ctx->{LIBRARY_REALNAME}");
 
@@ -396,11 +401,6 @@ sub SharedLibrary($$)
        $self->_prepare_list($ctx, "LINK_FLAGS");
 #      $self->_prepare_list_ex($ctx, "LINK_FLAGS", "-Wl,--whole-archive", "-Wl,--no-whole-archive");
 
-       if ($ctx->{TYPE} eq "PYTHON") {
-               push (@{$self->{python_dsos}}, 
-                       "$ctx->{SHAREDDIR}/$ctx->{LIBRARY_REALNAME}");
-       }
-
        push(@{$self->{all_objs}}, "\$($ctx->{TYPE}_$ctx->{NAME}_FULL_OBJ_LIST)");
 
        my $soarg = "";
index 6080a62777beda69c4fc228590a795f35b23c4da..4a58b4308550d459674022b361e3b725d1c649f7 100644 (file)
@@ -41,7 +41,6 @@
 
 %}
 
-%include "samba.i"
 %include "../../lib/talloc/talloc.i"
 %include "../../auth/credentials/credentials.i"