summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTim Potter <tpot@samba.org>2005-09-30 07:30:37 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 13:39:14 -0500
commitcc8af00a93aa16c61a3446c76caf0d2b174b3017 (patch)
tree37370859db69d6809f4845a8ec382b636b30e6b2
parent6566c9dffeb53f0e9c5fa2435883043c852987fb (diff)
downloadsamba-cc8af00a93aa16c61a3446c76caf0d2b174b3017.tar.gz
samba-cc8af00a93aa16c61a3446c76caf0d2b174b3017.tar.bz2
samba-cc8af00a93aa16c61a3446c76caf0d2b174b3017.zip
r10646: Hey Jelmer what do you think of this? The SConscript for the libcli
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)
-rw-r--r--source4/SConstruct31
-rw-r--r--source4/libcli/SConscript185
2 files changed, 147 insertions, 69 deletions
diff --git a/source4/SConstruct b/source4/SConstruct
index 4fd59b7d50..5fc12c9695 100644
--- a/source4/SConstruct
+++ b/source4/SConstruct
@@ -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,
diff --git a/source4/libcli/SConscript b/source4/libcli/SConscript
index aa911d9838..5b600fdcff 100644
--- a/source4/libcli/SConscript
+++ b/source4/libcli/SConscript
@@ -1,70 +1,119 @@
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'])