#!/usr/bin/env python

### RPC_SERVER
bld.SAMBA3_SUBSYSTEM('rpc',
                    source='',
                    deps='dcerpc-server-core')

bld.SAMBA_BINARY('samba-dcerpcd',
                 source='rpc_host.c',
                 deps='''
                 samba3core
                 CMDLINE_S3
                 dcerpc-binding
                 npa_tstream
                 AUTH_COMMON
                 RPC_SOCK_HELPER
                 NDR_RPC_HOST
                 ''',
                 install_path='${SAMBA_LIBEXECDIR}')

bld.SAMBA_LIBRARY('RPC_WORKER',
                  private_library=True,
                  source='''
                  rpc_worker.c
                  ''',
                  deps='''
                  smbd_base
                  CMDLINE_S3
                  NDR_RPC_HOST
                  RPC_SERVER
                  RPC_NCACN_NP
                  npa_tstream
                  ''')

bld.SAMBA3_BINARY('rpcd_rpcecho',
                  source='rpcd_rpcecho.c',
                  deps='''
                  RPC_WORKER
                  RPC_RPCECHO
                  ''',
                  install_path='${SAMBA_LIBEXECDIR}')

bld.SAMBA3_BINARY('rpcd_classic',
                  source='rpcd_classic.c',
                  deps='''
                  CMDLINE_S3
                  RPC_WORKER
                  RPC_SERVICE
                  RPC_SOCK_HELPER
                  smbd_base
                  ''',
                  install_path='${SAMBA_LIBEXECDIR}')

bld.SAMBA3_BINARY('rpcd_lsad',
                  source='rpcd_lsad.c',
                  deps='''
                  CMDLINE_S3
                  RPC_WORKER
                  RPC_LSARPC
                  RPC_SAMR
                  RPC_DSSETUP
                  RPC_NETLOGON
                  RPC_SOCK_HELPER
                  smbd_base
                  ''',
                  install_path='${SAMBA_LIBEXECDIR}')

bld.SAMBA3_BINARY('rpcd_winreg',
                  source='rpcd_winreg.c',
                  deps='''
                  CMDLINE_S3
                  RPC_WORKER
                  RPC_WINREG
                  smbd_base
                  ''',
                  install_path='${SAMBA_LIBEXECDIR}')

bld.SAMBA3_BINARY('rpcd_spoolss',
                  source='rpcd_spoolss.c',
                  deps='''
                  CMDLINE_S3
                  RPC_WORKER
                  RPC_SPOOLSS
                  smbd_base
                  ''',
                  install_path='${SAMBA_LIBEXECDIR}')

bld.SAMBA3_BINARY('rpcd_epmapper',
                  source='rpcd_epmapper.c',
                  deps='''
                  CMDLINE_S3
                  RPC_WORKER
                  RPC_EPMAPPER
                  smbd_base
                  ''',
                  install_path='${SAMBA_LIBEXECDIR}')

bld.SAMBA3_BINARY('rpcd_fsrvp',
                  source='rpcd_fsrvp.c',
                  deps='''
                  CMDLINE_S3
                  RPC_WORKER
                  RPC_FSS_AGENT
                  smbd_base
                  ''',
                  install_path='${SAMBA_LIBEXECDIR}')

bld.SAMBA3_SUBSYSTEM('RPC_CONFIG',
                    source='rpc_config.c',
                    deps='talloc')

bld.SAMBA3_SUBSYSTEM('RPC_NCACN_NP',
                    source='rpc_ncacn_np.c rpc_handles.c',
                    deps='auth common_auth npa_tstream')

bld.SAMBA3_LIBRARY('RPC_SERVER_LOOP',
                   private_library=True,
                   source='rpc_server.c',
                   deps='''
                   LIBTSOCKET
                   dcerpc-server-core
                   npa_tstream
                   auth
                   RPC_NCACN_NP
                   samba3-util
                   ''')

bld.SAMBA3_SUBSYSTEM('SRV_ACCESS_CHECK',
                    source='srv_access_check.c',
                    deps='samba-util')

bld.SAMBA3_SUBSYSTEM('RPC_SERVER',
                    source='',
                    deps='''
                    dcerpc-server-core
                    RPC_CONFIG
                    RPC_SERVER_LOOP
                    NDR_NAMED_PIPE_AUTH
                    ''')

### RPC_SERVICES
bld.SAMBA3_SUBSYSTEM('RPC_DSSETUP',
                    source='''dssetup/srv_dssetup_nt.c''',
                    deps='samba-util')

bld.SAMBA3_SUBSYSTEM('RPC_EPMAPPER',
                    source='''epmapper/srv_epmapper.c''',
                    deps='samba-util')

bld.SAMBA3_SUBSYSTEM('RPC_FSS_STATE',
                    source='''fss/srv_fss_state.c''',
                    deps='samba-util NDR_FSRVP_STATE')

bld.SAMBA3_SUBSYSTEM('RPC_FSS_AGENT',
                    source='''fss/srv_fss_agent.c''',
                    deps='samba-util RPC_FSS_STATE')

bld.SAMBA3_SUBSYSTEM('RPC_EVENTLOG',
                    source='''eventlog/srv_eventlog_nt.c
                    eventlog/srv_eventlog_reg.c''',
                    deps='LIBEVENTLOG LIBCLI_WINREG_INTERNAL')

bld.SAMBA3_SUBSYSTEM('RPC_INITSHUTDOWN',
                    source='''initshutdown/srv_initshutdown_nt.c''',
                    deps='samba-util')

bld.SAMBA3_SUBSYSTEM('RPC_LSARPC',
                    source='''lsa/srv_lsa_nt.c''',
                    deps='SRV_ACCESS_CHECK LIBLSA GNUTLS_HELPERS')

bld.SAMBA3_SUBSYSTEM('RPC_NETDFS',
                    source='''dfs/srv_dfs_nt.c''',
                    deps='samba-util')

bld.SAMBA3_SUBSYSTEM('RPC_NETLOGON',
                     source='''netlogon/srv_netlog_nt.c''',
                    deps='LIBCLI_AUTH DCERPC_SERVER_NETLOGON')

bld.SAMBA3_SUBSYSTEM('RPC_NTSVCS',
                    source='''ntsvcs/srv_ntsvcs_nt.c''',
                    deps='samba-util')

bld.SAMBA3_SUBSYSTEM('RPC_RPCECHO',
                    source='''echo/srv_echo_nt.c''',
                    deps='samba-util')

bld.SAMBA3_SUBSYSTEM('RPC_SAMR',
                    source='''samr/srv_samr_nt.c
                    samr/srv_samr_util.c
                    samr/srv_samr_chgpasswd.c''',
                    deps='PLAINTEXT_AUTH SRV_ACCESS_CHECK DCERPC_HELPER')

bld.SAMBA3_SUBSYSTEM('RPC_SPOOLSS',
                    source='''spoolss/srv_spoolss_nt.c
                    spoolss/srv_spoolss_util.c''',
                    deps='PRINTING PRINTBACKEND LIBCLI_WINREG_INTERNAL')

bld.SAMBA3_SUBSYSTEM('RPC_IREMOTEWINSPOOL',
                    source='''
                    spoolss/srv_iremotewinspool_nt.c
                    spoolss/srv_iremotewinspool.c
                    ''',
                    deps='RPC_SPOOLSS')

bld.SAMBA3_SUBSYSTEM('RPC_SRVSVC',
                    source='''srvsvc/srv_srvsvc_nt.c''',
                    deps='samba-util tdb')

bld.SAMBA3_SUBSYSTEM('RPC_SVCCTL',
                    source='''svcctl/srv_svcctl_nt.c
                    svcctl/srv_svcctl_reg.c''',
                    deps='SERVICES LIBCLI_WINREG_INTERNAL')

bld.SAMBA3_SUBSYSTEM('RPC_WINREG',
                    source='''winreg/srv_winreg_nt.c''',
                    deps='REG_FULL REGFIO NDR_PERFCOUNT')

bld.SAMBA3_SUBSYSTEM('RPC_WKSSVC',
                    source='''wkssvc/srv_wkssvc_nt.c''',
                    deps='LIBNET')

bld.SAMBA3_SUBSYSTEM('mdssvc',
                    source='''
                    mdssvc/dalloc.c
                    mdssvc/marshalling.c
                    ''')

rpc_mdssvc_sources = '''
                     mdssvc/mdssvc.c
                     mdssvc/mdssvc_noindex.c
                     mdssvc/srv_mdssvc_nt.c
                     '''
rpc_mdssvc_deps = 'mdssvc samba-util smbd_base '

if bld.env.spotlight_backend_tracker:
    rpc_mdssvc_sources += '''
                          mdssvc/mdssvc_tracker.c
                          mdssvc/sparql_mapping.c
                          mdssvc/sparql_parser.y
                          mdssvc/sparql_lexer.l
                          '''
    rpc_mdssvc_deps += 'tevent-glib-glue ' + bld.env['libtracker']

if bld.env.spotlight_backend_es:
    rpc_mdssvc_sources += '''
                          mdssvc/mdssvc_es.c
                          mdssvc/es_mapping.c
                          mdssvc/es_parser.y
                          mdssvc/es_lexer.l
                          '''
    rpc_mdssvc_deps += ' http jansson'

    bld.INSTALL_FILES(bld.env.SAMBA_DATADIR,
                      'mdssvc/elasticsearch_mappings.json')

bld.SAMBA3_BINARY('rpcd_mdssvc',
                  source='rpcd_mdssvc.c ' + rpc_mdssvc_sources,
                  deps='''
                  CMDLINE_S3
                  RPC_WORKER
                  smbd_base
                  ''' + rpc_mdssvc_deps,
                  install_path='${SAMBA_LIBEXECDIR}')

bld.SAMBA3_SUBSYSTEM('RPC_SERVICE',
                     source='',
                    deps='''
                    rpc
                    RPC_SERVER
                    RPC_SAMR
                    RPC_LSARPC
                    RPC_WINREG
                    RPC_INITSHUTDOWN
                    RPC_DSSETUP
                    RPC_WKSSVC
                    RPC_SVCCTL
                    RPC_NTSVCS
                    RPC_NETLOGON
                    RPC_NETDFS
                    RPC_SRVSVC
                    RPC_IREMOTEWINSPOOL
                    RPC_EVENTLOG
                    RPC_RPCECHO
                    RPC_EPMAPPER
		    RPC_FSS_AGENT
                    ''')

# RPC_DAEMONS
bld.SAMBA3_SUBSYSTEM('RPC_SOCK_HELPER',
                    source='rpc_sock_helper.c',
                    deps='')
