Author: jelmer
Date: 2006-03-13 18:54:33 +0000 (Mon, 13 Mar 2006)
New Revision: 14335

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

Log:
Build shared modules in bin/modules/$SUBSYSTEM when in developer mode.

Added:
   branches/SAMBA_4_0/source/bin/modules/
Modified:
   branches/SAMBA_4_0/source/build/smb_build/TODO
   branches/SAMBA_4_0/source/build/smb_build/makefile.pm
   branches/SAMBA_4_0/source/build/smb_build/output.pm


Changeset:

Property changes on: branches/SAMBA_4_0/source/bin/modules
___________________________________________________________________
Name: svn:ignore
   + *


Modified: branches/SAMBA_4_0/source/build/smb_build/TODO
===================================================================
--- branches/SAMBA_4_0/source/build/smb_build/TODO      2006-03-13 18:43:10 UTC 
(rev 14334)
+++ branches/SAMBA_4_0/source/build/smb_build/TODO      2006-03-13 18:54:33 UTC 
(rev 14335)
@@ -1,6 +1,4 @@
 - subdir handler for install headers into a specific directory
-- hack for loading modules locally
- - create 
 - saner names for some of the .pc files
 - .pc files also when there is a public header?
 - get rid of include/structs.h and include/proto.h
@@ -11,5 +9,14 @@
   for each subsystem:
   - include line in Makefile
   - rule in Makefile
-- determine dependencies from #include lines ?
 - install (parts of ?) autogenerated headers
+
+set of test scripts that check the code:
+- configure_check_unused.pl
+- find_unused_macros.pl
+- find_unused_makefilevars.pl
+- find_unused_options.sh
+- findstatic.pl
+- minimal_includes.pl
+- check dependencies based on #include lines ?
+- check whether private headers are not used outside their own subsystem

Modified: branches/SAMBA_4_0/source/build/smb_build/makefile.pm
===================================================================
--- branches/SAMBA_4_0/source/build/smb_build/makefile.pm       2006-03-13 
18:43:10 UTC (rev 14334)
+++ branches/SAMBA_4_0/source/build/smb_build/makefile.pm       2006-03-13 
18:54:33 UTC (rev 14335)
@@ -206,15 +206,15 @@
        my $init_obj = "";
        
        if ($self->{duplicate_build}) {
-               $installdir = "bin/install";
+               $installdir = $ctx->{INSTALLDIR};
        } else {
-               $installdir = "bin";
+               $installdir = $ctx->{BUILDDIR};
        }
 
        if ($ctx->{TYPE} eq "LIBRARY") {
-               push (@{$self->{shared_libs}}, "bin/$ctx->{LIBRARY_REALNAME}");
+               push (@{$self->{shared_libs}}, 
"$ctx->{BUILDDIR}/$ctx->{LIBRARY_REALNAME}");
        } elsif ($ctx->{TYPE} eq "MODULE") {
-               push (@{$self->{shared_modules}}, 
"bin/$ctx->{LIBRARY_REALNAME}");
+               push (@{$self->{shared_modules}}, 
"$ctx->{BUILDDIR}/$ctx->{LIBRARY_REALNAME}");
                push (@{$self->{plugins}}, 
"$installdir/$ctx->{LIBRARY_REALNAME}");
 
                my $fixedname = $ctx->{NAME};
@@ -267,8 +267,9 @@
                $self->output(<< "__EOD__"
 #
 
-bin/$ctx->{LIBRARY_REALNAME}: \$($ctx->{TYPE}_$ctx->{NAME}_DEPEND_LIST) 
\$($ctx->{TYPE}_$ctx->{NAME}_OBJ_LIST) $init_obj
+$ctx->{TARGET}: \$($ctx->{TYPE}_$ctx->{NAME}_DEPEND_LIST) 
\$($ctx->{TYPE}_$ctx->{NAME}_OBJ_LIST) $init_obj
        [EMAIL PROTECTED] Linking \$\@
+       [EMAIL PROTECTED] -p $ctx->{BUILDDIR}
        [EMAIL PROTECTED](SHLD) \$(SHLD_FLAGS) -o \$\@ \$(LOCAL_LINK_FLAGS) \\
                \$($ctx->{TYPE}_$ctx->{NAME}_LINK_FLAGS) $soarg \\
                $init_obj \$($ctx->{TYPE}_$ctx->{NAME}_LINK_LIST)

Modified: branches/SAMBA_4_0/source/build/smb_build/output.pm
===================================================================
--- branches/SAMBA_4_0/source/build/smb_build/output.pm 2006-03-13 18:43:10 UTC 
(rev 14334)
+++ branches/SAMBA_4_0/source/build/smb_build/output.pm 2006-03-13 18:54:33 UTC 
(rev 14335)
@@ -58,12 +58,17 @@
                $lib_name = "lib$link_name";
        }
 
+       $lib->{BUILDDIR} = "bin";
+       $lib->{INSTALLDIR} = "bin/install";
        $lib->{LIBRARY_REALNAME} = $lib->{LIBRARY_NAME} = 
"$lib_name.\$(SHLIBEXT)";
+
        if (defined($lib->{VERSION})) {
                $lib->{LIBRARY_SONAME} = 
$lib->{LIBRARY_NAME}.".$lib->{SO_VERSION}";
                $lib->{LIBRARY_REALNAME} = 
$lib->{LIBRARY_NAME}.".$lib->{VERSION}";
+       } elsif ($lib->{TYPE} eq "MODULE") {
+               $lib->{BUILDDIR} = "bin/modules/$lib->{SUBSYSTEM}";
        }
-       $lib->{TARGET} = "bin/$lib->{LIBRARY_REALNAME}";
+       $lib->{TARGET} = "$lib->{BUILDDIR}/$lib->{LIBRARY_REALNAME}";
        $lib->{OUTPUT} = $lib->{TARGET};
 }
 
@@ -93,7 +98,9 @@
        @{$bin->{LINK_LIST}} = ("\$($bin->{TYPE}_$bin->{NAME}\_OBJ_LIST)");
        @{$bin->{LINK_FLAGS}} = ();
 
-       $bin->{TARGET} = $bin->{OUTPUT} = "bin/$bin->{NAME}";
+       $bin->{INSTALLDIR} = "bin/install";
+       $bin->{BUILDDIR} = "bin/";
+       $bin->{TARGET} = $bin->{OUTPUT} = "$bin->{BUILDDIR}/$bin->{NAME}";
        $bin->{BINARY} = $bin->{NAME};
 }
 

Reply via email to