summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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'])