#!/usr/bin/env python

bld.SAMBA3_SUBSYSTEM('PASSWD_UTIL',
                    source='passwd_util.c',
                    deps='samba-util')

bld.SAMBA3_SUBSYSTEM('CONN_TDB',
                     source='conn_tdb.c')

bld.SAMBA3_SUBSYSTEM('DNS_UTIL',
                     source='net_dns.c net_ads_join_dns.c',
                     deps='addns')

bld.SAMBA3_BINARY('profiles',
                 source='profiles.c',
                 deps='''
                 talloc
                 CMDLINE_S3
                 smbconf
                 REGFIO''')

bld.SAMBA3_BINARY('smbcontrol',
                 source='smbcontrol.c',
                 deps='''
                 talloc
                 smbconf
                 CMDLINE_S3
                 cmdline_contexts
                 PRINTBASE''')

bld.SAMBA3_BINARY('smbtree',
                 source='smbtree.c',
                 deps='''
                 talloc
                 smbconf
                 smbclient
                 msrpc3
                 CMDLINE_S3
                 RPC_NDR_SRVSVC''')

bld.SAMBA3_BINARY('smbpasswd',
                 source='smbpasswd.c',
                 deps='''
                 talloc
                 smbconf
                 pdb
                 PASSWD_UTIL
                 PASSCHANGE
                 cmdline_contexts
                 ''')

bld.SAMBA3_BINARY('pdbedit',
                 source='pdbedit.c',
                 deps='''
                 talloc
                 smbconf
                 CMDLINE_S3
                 cmdline_contexts
                 pdb
                 PASSWD_UTIL''')

bld.SAMBA3_BINARY('smbget',
                 source='smbget.c',
                 deps='''
                 talloc
                 cmdline
                 smbclient''')

bld.SAMBA3_BINARY('nmblookup',
                 source='nmblookup.c',
                 deps='''
                 talloc
                 smbconf
                 CMDLINE_S3
                 LIBNMB''')

bld.SAMBA3_BINARY('smbcacls',
                 source='smbcacls.c ../lib/util_sd.c',
                 deps='''
                 talloc
                 CMDLINE_S3
                 msrpc3
                 libcli_lsa3
                 krb5samba''')

bld.SAMBA3_BINARY('smbcquotas',
                 source='smbcquotas.c',
                 deps='''
                 talloc
                 CMDLINE_S3
                 libsmb
                 msrpc3
                 libcli_lsa3''')

bld.SAMBA3_BINARY('eventlogadm',
                 source='eventlogadm.c',
                 deps='''
                 talloc
                 smbconf
                 cmdline_contexts
                 LIBEVENTLOG''',
                 install_path='${SBINDIR}')

bld.SAMBA3_BINARY('sharesec',
                 source='sharesec.c ../lib/util_sd.c',
                 deps='''
                 talloc
                 msrpc3
                 libcli_lsa3
                 CMDLINE_S3
                 cmdline_contexts
                 ''')

bld.SAMBA3_BINARY('log2pcap',
                 source='log2pcaphex.c',
                 deps='''talloc popt''',
                 install=False)

bld.SAMBA3_BINARY('smbfilter',
                 source='smbfilter.c',
                 deps='''
                 talloc
                 smbconf
                 LIBNMB''',
                 install=False)

bld.SAMBA3_BINARY('ntlm_auth',
                 source='''ntlm_auth.c ntlm_auth_diagnostics.c''',
                 deps='''
                 talloc
                 krb5samba
                 tiniparser
                 libsmb
                 CMDLINE_S3
                 cmdline_contexts
                 wbclient
                 gse gensec''')

bld.SAMBA3_BINARY('dbwrap_tool',
                 source='dbwrap_tool.c',
                 deps='''
                 talloc
                 CMDLINE_S3
                 cmdline_contexts
                 ''')

bld.SAMBA3_BINARY('dbwrap_torture',
                 source='dbwrap_torture.c',
                 deps='''
                 talloc
                 CMDLINE_S3
                 smbconf
                 ''',
                 install=False)

bld.SAMBA3_BINARY('split_tokens',
                 source='split_tokens.c',
                 deps='''
                 talloc
                 CMDLINE_S3
                 smbconf
                 ''',
                 install=False)

bld.SAMBA3_BINARY('samba-regedit',
                  source="""regedit.c regedit_samba3.c
                            regedit_wrap.c regedit_treeview.c
                            regedit_valuelist.c regedit_dialog.c
                            regedit_hexedit.c regedit_list.c""",
                  deps='''
                  ncurses
                  menu
                  panel
                  form
                  registry
                  smbconf
                  CMDLINE_S3
                  ''',
                  enabled=bld.env.build_regedit)

bld.SAMBA3_BINARY('testparm',
                 source='testparm.c',
                 deps='''
                 talloc
                 smbconf
                 CMDLINE_S3
                 cmdline_contexts
                 GNUTLS_HELPERS
                 ''')

bld.SAMBA3_BINARY('net',
                 source='''net.c
                 net_ads.c
                 net_help.c
                 clirap2.c
                 net_rap.c
                 net_rpc.c
                 net_rpc_samsync.c
                 net_time.c
                 net_lookup.c
                 net_cache.c
                 net_groupmap.c
                 net_idmap.c
                 net_idmap_check.c
                 interact.c
                 net_status.c
                 net_rpc_printer.c
                 net_rpc_rights.c
                 net_rpc_service.c
                 net_rpc_registry.c
                 net_usershare.c
                 netlookup.c
                 net_sam.c
                 net_rpc_shell.c
                 net_util.c
                 net_rpc_sh_acct.c
                 net_rpc_audit.c
                 net_ads_gpo.c
                 net_conf.c
                 net_conf_util.c
                 net_join.c
                 net_offlinejoin.c
                 net_user.c
                 net_group.c
                 net_file.c
                 net_registry.c
                 net_registry_check.c
                 net_dom.c
                 net_share.c
                 net_g_lock.c
                 net_serverid.c
                 net_eventlog.c
                 net_printing.c
                 net_rpc_trust.c
                 net_rpc_conf.c
                 net_afs.c
                 net_notify.c
                 net_tdb.c
                 net_vfs.c
                 ../registry/reg_format.c
                 ../registry/reg_import.c
                 net_registry_util.c
                 ../lib/util_sd.c
                 net_help_common.c''',
                 deps='''
                 talloc
                 netapi
                 addns
                 samba_intl
                 CMDLINE_S3
                 cmdline_contexts
                 pdb
                 libsmb
                 smbconf
                 KRBCLIENT
                 ndr-standard
                 msrpc3
                 gpo
                 ads
                 smbd_base
                 LIBADS_SERVER
                 LIBADS_PRINTER
                 SMBREADLINE
                 PASSWD_UTIL
                 LIBNET
                 LIBNET_DSSYNC
                 LIBEVENTLOG
                 REGFIO
                 NDR_NTPRINTING
                 RPC_NDR_WINREG
                 RPC_CLIENT_SCHANNEL
                 LIBCLI_SAMR
                 libcli_lsa3
                 libcli_netlogon3
                 cli_spoolss
                 RPC_NDR_SRVSVC
                 RPC_NDR_SVCCTL
                 RPC_NDR_DSSETUP
                 RPC_NDR_INITSHUTDOWN
                 printing_migrate
                 trusts_util
                 IDMAP_AUTORID_TDB
                 CONN_TDB
                 jansson
                 common_auth
                 ADOUBLE
                 DNS_UTIL
                 ''')

bld.SAMBA3_BINARY('mvxattr',
                 source='mvxattr.c',
                 deps='''
                 talloc
                 popt
                 samba-util
                 ''',
                 enabled=bld.env.build_mvxattr)

bld.SAMBA3_BINARY('destroy_netlogon_creds_cli',
                  source='destroy_netlogon_creds_cli.c',
                  deps = '''
                      talloc
                      smbconf
                      NETLOGON_CREDS_CLI
                  ''',
                  install=False)

smbstatus_source = 'status.c'

if bld.CONFIG_GET("WITH_PROFILE"):
    smbstatus_source += ' status_profile.c'
else:
    smbstatus_source += ' status_profile_dummy.c'

bld.SAMBA3_BINARY('smbstatus',
                 source=smbstatus_source,
                 deps='''
                      talloc
                      smbconf
                      CMDLINE_S3
                      cmdline_contexts
                      smbd_base
                      LOCKING
                      PROFILE
                      CONN_TDB
                      ''')

bld.SAMBA3_BINARY('mdsearch',
                 source='mdsearch.c',
                 deps='''
                 talloc
                 tevent
                 smbconf
                 CMDLINE_S3
                 cmdline_contexts
                 libsmb
                 msrpc3
                 RPCCLI_MDSSVC
                 mdssvc
                 ''')

pytalloc_util = bld.pyembed_libname('pytalloc-util')
pyrpc_util = bld.pyembed_libname('pyrpc_util')
bld.SAMBA3_PYTHON('python_net_s3',
        source='py_net.c',
        deps='LIBNET DNS_UTIL cmdline_contexts %s %s' % (pytalloc_util, pyrpc_util),
        realname='samba/net_s3.so'
        )
