r10646: Hey Jelmer what do you think of this? The SConscript for the libcli
authorTim Potter <tpot@samba.org>
Fri, 30 Sep 2005 07:30:37 +0000 (07:30 +0000)
committerGerald (Jerry) Carter <jerry@samba.org>
Wed, 10 Oct 2007 18:39:14 +0000 (13:39 -0500)
directory now looks like the config.mk file but with different
punctuation.

The only weird bit is that it creates a proto.h file for each subsystem.
(This used to be commit 09d4abecb01fa9159243cfcb33051092f92cef3b)

source4/SConstruct
source4/libcli/SConscript

index 4fd59b7d5031770d48142bab2b8046d8aa68adfb..5fc12c969529030733f35931e3ea2fdf513efa22 100644 (file)
@@ -5,6 +5,8 @@
 # eventually replace this system.
 #
 # Copyright (C) 2005 Jelmer Vernooij <jelmer@samba.org>
+# Copyright (C) 2005 Tim Potter <tpot@samba.org>
+#
 # Published under the GNU GPL
 #
 # TODO:
@@ -22,7 +24,34 @@ opts.AddOptions(
                BoolOption('configure','run configure checks', False),
 )
 
-hostenv = Environment(
+class SambaEnvironment(Environment):
+    def Subsystem(self, target, source, **kwargs):
+        """Create a Samba subsystem, basically a static library.
+
+       By default a prototype file for the subsystem is created,
+       unless the keyword argument 'noproto' is present.  A variable
+       corresponding to the target name is exported, unless the
+       keyword argument 'noexport' is present."""
+
+       # Generate prototype file for subsystem
+
+       if not kwargs.has_key('noproto'):
+           self.proto_headers += self.CProtoHeader(
+               '%s_proto.h' % target, [str(x) for x in source])
+
+       # Maketh the library
+
+       result = self.Library(target, source, **kwargs)
+
+       # Export library symbol
+
+       if not kwargs.has_key('noexport'):
+           locals()[target] = result   # Eww
+           Export(target)
+
+       return result
+
+hostenv = SambaEnvironment(
                toolpath=['build/scons','.'],
                tools=['default','pidl','proto','et','asn1','samba'],
                options=opts,
index aa911d9838a515aced5137df3647622999952931..5b600fdcfff84cf62e1210be6b50ab35aca645f1 100644 (file)
 Import('hostenv')
-proto_files = []
-cli_utils_files = ['util/asn1.c', 'util/doserr.c','util/errormap.c','util/clierror.c', 'util/nterr.c','util/smbdes.c']
-proto_files += cli_utils_files
-hostenv.Library('cli_utils', cli_utils_files)
 
-hostenv.Library('cli_lsa', ['util/clilsa.c'])
-hostenv.Library('cli_composite_base', ['composite/composite.c'])
-
-cli_composite_files = ['smb_composite/loadfile.c','smb_composite/savefile.c','smb_composite/connect.c',
-        'smb_composite/sesssetup.c','smb_composite/fetchfile.c','smb_composite/appendacl.c',
-        'smb_composite/fsinfo.c']
-
-hostenv.Library('cli_composite', cli_composite_files)
-proto_files += ['util/clilsa.c', 'composite/composite.c'] + cli_composite_files
-
-cli_nbt_files = ['nbt/nbtname.c','nbt/nbtsocket.c','nbt/namequery.c','nbt/nameregister.c',
-       'nbt/namerefresh.c','nbt/namerelease.c']
-
-hostenv.Library('cli_nbt', cli_nbt_files)
-proto_files += cli_nbt_files
-
-hostenv.Library('cli_dgram',
-       [ 'dgram/dgramsocket.c','dgram/mailslot.c','dgram/netlogon.c',
-        'dgram/ntlogon.c','dgram/browse.c'])
-
-hostenv.Library('cli_cldap', ['cldap/cldap.c'])
-hostenv.Library('cli_wrepl', ['wrepl/winsrepl.c'])
-
-cli_resolve_files = ['resolve/resolve.c','resolve/nbtlist.c','resolve/bcast.c','resolve/wins.c',
-       'resolve/host.c']
-
-hostenv.Library('cli_resolve', cli_resolve_files)
-proto_files += cli_resolve_files
-
-smb_files = ['clireadwrite.c', 'cliconnect.c','clifile.c','clilist.c','clitrans2.c',
-               'climessage.c','clideltree.c']
-
-hostenv.Library('smb', smb_files)
-proto_files += smb_files
-
-cli_raw_files = ['raw/rawfile.c','raw/smb_signing.c','raw/clisocket.c',
-               'raw/clitransport.c','raw/clisession.c','raw/clitree.c',
-               'raw/rawrequest.c','raw/rawreadwrite.c','raw/rawsearch.c',
-               'raw/rawsetfileinfo.c','raw/raweas.c','raw/rawtrans.c',
-               'raw/clioplock.c','raw/rawnegotiate.c','raw/rawfsinfo.c',
-               'raw/rawfileinfo.c','raw/rawnotify.c','raw/rawioctl.c',
-               'raw/rawacl.c','raw/rawdate.c','raw/rawlpq.c']
-
-hostenv.Library('cli_raw', cli_raw_files)
-proto_files += cli_raw_files
-
-security_files = ['security/security_token.c','security/security_descriptor.c',
-                          'security/dom_sid.c', 'security/access_check.c',
-                          'security/privilege.c', '../librpc/ndr/ndr_sec_helper.c']
-proto_files += security_files
-hostenv.Library('cli_security', security_files)
-
-auth_files = ['auth/credentials.c','auth/session.c','auth/smbencrypt.c']
-proto_files += auth_files
-hostenv.Library('cli_auth',auth_files)
-
-ldap_files = ['ldap/ldap.c','ldap/ldap_client.c','ldap/ldap_bind.c',
-                  'ldap/ldap_msg.c','ldap/ldap_ndr.c','ldap/ldap_ildap.c']
-proto_files += ldap_files
-cli_ldap = hostenv.Library('cli_ldap',ldap_files)
-
-Export('cli_ldap')
-
-hostenv.proto_headers += hostenv.CProtoHeader('proto.h', proto_files)
+hostenv.Subsystem(
+    'cli_utils',
+    ['util/asn1.c',
+     'util/doserr.c',
+     'util/errormap.c',
+     'util/clierror.c',
+     'util/nterr.c',
+     'util/smbdes.c'])
+
+hostenv.Subsystem(
+    'cli_lsa',
+    ['util/clilsa.c'])
+
+hostenv.Subsystem(
+    'cli_composite_base',
+    ['composite/composite.c'])
+
+hostenv.Subsystem(
+    'cli_composite',
+    ['smb_composite/loadfile.c',
+     'smb_composite/savefile.c',
+     'smb_composite/connect.c',
+     'smb_composite/sesssetup.c',
+     'smb_composite/fetchfile.c',
+     'smb_composite/appendacl.c',
+     'smb_composite/fsinfo.c'])
+
+hostenv.Subsystem(
+    'cli_nbt',
+    ['nbt/nbtname.c',
+     'nbt/nbtsocket.c',
+     'nbt/namequery.c',
+     'nbt/nameregister.c',
+     'nbt/namerefresh.c',
+     'nbt/namerelease.c'])
+
+hostenv.Subsystem(
+    'cli_dgram',
+    ['dgram/dgramsocket.c',
+     'dgram/mailslot.c',
+     'dgram/netlogon.c',
+     'dgram/ntlogon.c',
+     'dgram/browse.c'])
+
+hostenv.Subsystem(
+    'cli_cldap',
+    ['cldap/cldap.c'])
+
+hostenv.Subsystem(
+    'cli_wrepl',
+    ['wrepl/winsrepl.c'])
+
+hostenv.Subsystem(
+    'cli_resolve',
+    ['resolve/resolve.c',
+     'resolve/nbtlist.c',
+     'resolve/bcast.c',
+     'resolve/wins.c',
+     'resolve/host.c'])
+
+hostenv.Subsystem(
+    'smb',
+    ['clireadwrite.c',
+     'cliconnect.c',
+     'clifile.c',
+     'clilist.c',
+     'clitrans2.c',
+     'climessage.c',
+     'clideltree.c'])
+    
+hostenv.Subsystem(
+    'cli_raw',
+    ['raw/rawfile.c',
+     'raw/smb_signing.c',
+     'raw/clisocket.c',
+     'raw/clitransport.c',
+     'raw/clisession.c',
+     'raw/clitree.c',
+     'raw/rawrequest.c',
+     'raw/rawreadwrite.c',
+     'raw/rawsearch.c',
+     'raw/rawsetfileinfo.c',
+     'raw/raweas.c',
+     'raw/rawtrans.c',
+     'raw/clioplock.c',
+     'raw/rawnegotiate.c',
+     'raw/rawfsinfo.c',
+     'raw/rawfileinfo.c',
+     'raw/rawnotify.c',
+     'raw/rawioctl.c',
+     'raw/rawacl.c',
+     'raw/rawdate.c',
+     'raw/rawlpq.c'])
+
+hostenv.Subsystem(
+    'cli_security',
+    ['security/security_token.c',
+     'security/security_descriptor.c',
+     'security/dom_sid.c',
+     'security/access_check.c',
+     'security/privilege.c',
+     '../librpc/ndr/ndr_sec_helper.c'])
+
+hostenv.Subsystem(
+    'cli_auth',
+    ['auth/credentials.c',
+     'auth/session.c',
+     'auth/smbencrypt.c'])
+
+hostenv.Subsystem(
+    'cli_ldap',
+    ['ldap/ldap.c',
+     'ldap/ldap_client.c',
+     'ldap/ldap_bind.c',
+     'ldap/ldap_msg.c',
+     'ldap/ldap_ndr.c',
+     'ldap/ldap_ildap.c'])