python: Start building winreg module.
[ira/wip.git] / source / librpc / config.mk
index 356fb38bf207e37d0f17853983080df61085034a..55991f4953a8effbdfa805eff3a4b88d21729b9e 100644 (file)
 ################################################
-# Start SUBSYSTEM NDR_RAW
-[SUBSYSTEM::NDR_RAW]
-INIT_OBJ_FILES = \
-               librpc/ndr/ndr.o
-ADD_OBJ_FILES = \
-               librpc/ndr/ndr_basic.o \
-               librpc/ndr/ndr_string.o \
-               librpc/ndr/ndr_obfuscate.o \
-               librpc/ndr/ndr_misc.o
-REQUIRED_SUBSYSTEMS = LIBCLI_UTILS LIBTALLOC
-# End SUBSYSTEM NDR_RAW
+# Start SUBSYSTEM LIBNDR
+[LIBRARY::LIBNDR]
+VERSION = 0.0.1
+SO_VERSION = 0
+DESCRIPTION = Network Data Representation Core Library
+PUBLIC_HEADERS = ndr/libndr.h
+PUBLIC_PROTO_HEADER = ndr/libndr_proto.h
+OBJ_FILES = \
+               ndr/ndr.o \
+               ndr/ndr_basic.o \
+               ndr/ndr_string.o \
+               ndr/uuid.o
+PUBLIC_DEPENDENCIES = LIBSAMBA-ERRORS LIBTALLOC LIBSAMBA-UTIL CHARSET EXT_NSL \
+                                         LIBSAMBA-CONFIG
+# End SUBSYSTEM LIBNDR
 ################################################
 
+#################################
+# Start BINARY ndrdump
+[BINARY::ndrdump]
+INSTALLDIR = BINDIR
+OBJ_FILES = \
+               tools/ndrdump.o
+PRIVATE_DEPENDENCIES = \
+               LIBSAMBA-CONFIG \
+               LIBSAMBA-UTIL \
+               LIBPOPT \
+               POPT_SAMBA \
+               NDR_TABLE \
+               LIBSAMBA-ERRORS
+MANPAGE = tools/ndrdump.1
+# FIXME: ndrdump shouldn't have to depend on RPC...
+# End BINARY ndrdump
+#################################
+
 ################################################
 # Start SUBSYSTEM NDR_COMPRESSION
-[SUBSYSTEM::NDR_COMPRESSION]
-ADD_OBJ_FILES = \
-               librpc/ndr/ndr_compression.o
-REQUIRED_SUBSYSTEMS = LIBCOMPRESSION
+[LIBRARY::NDR_COMPRESSION]
+VERSION = 0.0.1
+SO_VERSION = 0
+DESCRIPTION = NDR support for compressed subcontexts
+PRIVATE_PROTO_HEADER = ndr/ndr_compression.h
+OBJ_FILES = \
+               ndr/ndr_compression.o
+PUBLIC_DEPENDENCIES = LIBCOMPRESSION LIBSAMBA-ERRORS LIBNDR
 # End SUBSYSTEM NDR_COMPRESSION
 ################################################
 
-################################################
-# Start SUBSYSTEM RPC_RAW
-[SUBSYSTEM::RPC_RAW]
-INIT_OBJ_FILES = \
-               librpc/rpc/dcerpc.o
-ADD_OBJ_FILES = \
-               librpc/rpc/dcerpc_auth.o \
-               librpc/rpc/dcerpc_schannel.o \
-               librpc/rpc/dcerpc_util.o \
-               librpc/rpc/dcerpc_error.o \
-               librpc/rpc/dcerpc_smb.o \
-               librpc/rpc/dcerpc_sock.o
-REQUIRED_SUBSYSTEMS = SOCKET
-# End SUBSYSTEM RPC_RAW
-################################################
+[SUBSYSTEM::NDR_SECURITY]
+OBJ_FILES = gen_ndr/ndr_security.o ndr/ndr_sec_helper.o 
+PUBLIC_HEADERS = gen_ndr/security.h
+PUBLIC_DEPENDENCIES = NDR_MISC LIBSECURITY
 
 [SUBSYSTEM::NDR_AUDIOSRV]
-INIT_FUNCTION = dcerpc_audiosrv_init
-INIT_OBJ_FILES = librpc/gen_ndr/ndr_audiosrv.o
-NOPROTO = YES
-REQUIRED_SUBSYSTEMS = NDR_RAW
+OBJ_FILES = gen_ndr/ndr_audiosrv.o
+PUBLIC_DEPENDENCIES = LIBNDR
 
-[SUBSYSTEM::NDR_DCERPC]
-INIT_FUNCTION = dcerpc_dcerpc_init
-INIT_OBJ_FILES = librpc/gen_ndr/ndr_dcerpc.o
-NOPROTO = YES
-REQUIRED_SUBSYSTEMS = NDR_RAW
+[SUBSYSTEM::NDR_DNSSERVER]
+OBJ_FILES = gen_ndr/ndr_dnsserver.o
+PUBLIC_DEPENDENCIES = LIBNDR
+
+[SUBSYSTEM::NDR_WINSTATION]
+OBJ_FILES = gen_ndr/ndr_winstation.o
+PUBLIC_DEPENDENCIES = LIBNDR
 
 [SUBSYSTEM::NDR_ECHO]
-INIT_FUNCTION = dcerpc_echo_init
-INIT_OBJ_FILES = librpc/gen_ndr/ndr_echo.o
-NOPROTO = YES
-REQUIRED_SUBSYSTEMS = NDR_RAW
+OBJ_FILES = gen_ndr/ndr_echo.o
+PUBLIC_DEPENDENCIES = LIBNDR
 
 [SUBSYSTEM::NDR_IRPC]
-INIT_FUNCTION = dcerpc_irpc_init
-INIT_OBJ_FILES = librpc/gen_ndr/ndr_irpc.o
-NOPROTO = YES
-REQUIRED_SUBSYSTEMS = NDR_RAW
-
-[SUBSYSTEM::NDR_EXCHANGE]
-INIT_FUNCTION = dcerpc_exchange_init
-INIT_OBJ_FILES = librpc/gen_ndr/ndr_exchange.o
-NOPROTO = YES
-REQUIRED_SUBSYSTEMS = NDR_RAW
+OBJ_FILES = gen_ndr/ndr_irpc.o
+PUBLIC_DEPENDENCIES = LIBNDR NDR_SECURITY NDR_NBT
 
 [SUBSYSTEM::NDR_DSBACKUP]
-INIT_FUNCTION = dcerpc_dsbackup_init
-INIT_OBJ_FILES = librpc/gen_ndr/ndr_dsbackup.o
-NOPROTO = YES
-REQUIRED_SUBSYSTEMS = NDR_RAW
+OBJ_FILES = gen_ndr/ndr_dsbackup.o
+PUBLIC_DEPENDENCIES = LIBNDR
 
 [SUBSYSTEM::NDR_EFS]
-INIT_FUNCTION = dcerpc_efs_init
-INIT_OBJ_FILES = librpc/gen_ndr/ndr_efs.o
-NOPROTO = YES
-REQUIRED_SUBSYSTEMS = NDR_RAW
+OBJ_FILES = gen_ndr/ndr_efs.o
+PUBLIC_DEPENDENCIES = LIBNDR NDR_SECURITY
 
 [SUBSYSTEM::NDR_MISC]
-INIT_FUNCTION = dcerpc_misc_init
-INIT_OBJ_FILES = librpc/gen_ndr/ndr_misc.o
-NOPROTO = YES
-REQUIRED_SUBSYSTEMS = NDR_RAW
+OBJ_FILES = gen_ndr/ndr_misc.o ndr/ndr_misc.o
+PUBLIC_HEADERS = gen_ndr/misc.h gen_ndr/ndr_misc.h
+PUBLIC_DEPENDENCIES = LIBNDR
 
 [SUBSYSTEM::NDR_ROT]
-INIT_FUNCTION = dcerpc_rot_init
-INIT_OBJ_FILES = librpc/gen_ndr/ndr_rot.o
-NOPROTO = YES
-REQUIRED_SUBSYSTEMS = NDR_RAW
+OBJ_FILES = gen_ndr/ndr_rot.o
+PUBLIC_DEPENDENCIES = LIBNDR NDR_ORPC
 
 [SUBSYSTEM::NDR_LSA]
-INIT_FUNCTION = dcerpc_lsa_init
-INIT_OBJ_FILES = librpc/gen_ndr/ndr_lsa.o
-NOPROTO = YES
-REQUIRED_SUBSYSTEMS = NDR_RAW
+OBJ_FILES = gen_ndr/ndr_lsa.o
+PUBLIC_HEADERS = gen_ndr/lsa.h
+PUBLIC_DEPENDENCIES = LIBNDR NDR_SECURITY
 
 [SUBSYSTEM::NDR_DFS]
-INIT_FUNCTION = dcerpc_dfs_init
-INIT_OBJ_FILES = librpc/gen_ndr/ndr_dfs.o
-NOPROTO = YES
-REQUIRED_SUBSYSTEMS = NDR_RAW
+OBJ_FILES = gen_ndr/ndr_dfs.o
+PUBLIC_DEPENDENCIES = LIBNDR NDR_MISC
 
-[SUBSYSTEM::NDR_DRSUAPI]
-INIT_FUNCTION = dcerpc_drsuapi_init
-INIT_OBJ_FILES = librpc/gen_ndr/ndr_drsuapi.o
-NOPROTO = YES
-REQUIRED_SUBSYSTEMS = NDR_RAW NDR_DRSUAPI_PRINT NDR_COMPRESSION
+[SUBSYSTEM::NDR_FRSRPC]
+OBJ_FILES = gen_ndr/ndr_frsrpc.o
+PUBLIC_DEPENDENCIES = LIBNDR
+
+[SUBSYSTEM::NDR_FRSAPI]
+OBJ_FILES = gen_ndr/ndr_frsapi.o
+PUBLIC_DEPENDENCIES = LIBNDR
 
-[SUBSYSTEM::NDR_DRSUAPI_PRINT]
-INIT_OBJ_FILES = librpc/ndr/ndr_drsuapi.o
+[SUBSYSTEM::NDR_DRSUAPI]
+OBJ_FILES = gen_ndr/ndr_drsuapi.o ndr/ndr_drsuapi.o
+PUBLIC_DEPENDENCIES = LIBNDR NDR_COMPRESSION NDR_SECURITY NDR_SAMR ASN1_UTIL
 
 [SUBSYSTEM::NDR_DRSBLOBS]
-INIT_FUNCTION = dcerpc_drsblobs_init
-INIT_OBJ_FILES = librpc/gen_ndr/ndr_drsblobs.o
-NOPROTO = YES
-REQUIRED_SUBSYSTEMS = NDR_RAW
+OBJ_FILES = gen_ndr/ndr_drsblobs.o
+PUBLIC_DEPENDENCIES = LIBNDR NDR_MISC NDR_DRSUAPI
+
+[SUBSYSTEM::NDR_SASL_HELPERS]
+OBJ_FILES = gen_ndr/ndr_sasl_helpers.o
+PUBLIC_DEPENDENCIES = LIBNDR
 
 [SUBSYSTEM::NDR_POLICYAGENT]
-INIT_FUNCTION = dcerpc_policyagent_init
-INIT_OBJ_FILES = librpc/gen_ndr/ndr_policyagent.o
-NOPROTO = YES
-REQUIRED_SUBSYSTEMS = NDR_RAW
+OBJ_FILES = gen_ndr/ndr_policyagent.o
+PUBLIC_DEPENDENCIES = LIBNDR
 
 [SUBSYSTEM::NDR_UNIXINFO]
-INIT_FUNCTION = dcerpc_unixinfo_init
-INIT_OBJ_FILES = librpc/gen_ndr/ndr_unixinfo.o
-NOPROTO = YES
-REQUIRED_SUBSYSTEMS = NDR_RAW
+OBJ_FILES = gen_ndr/ndr_unixinfo.o
+PUBLIC_DEPENDENCIES = LIBNDR NDR_SECURITY
 
 [SUBSYSTEM::NDR_SAMR]
-INIT_FUNCTION = dcerpc_samr_init
-INIT_OBJ_FILES = librpc/gen_ndr/ndr_samr.o
-NOPROTO = YES
-REQUIRED_SUBSYSTEMS = NDR_RAW
+OBJ_FILES = gen_ndr/ndr_samr.o
+PUBLIC_HEADERS = gen_ndr/samr.h gen_ndr/ndr_samr.h gen_ndr/ndr_samr_c.h
+PUBLIC_DEPENDENCIES = LIBNDR NDR_MISC NDR_LSA NDR_SECURITY
+
+[SUBSYSTEM::NDR_NFS4ACL]
+OBJ_FILES = gen_ndr/ndr_nfs4acl.o
+PUBLIC_DEPENDENCIES = LIBNDR NDR_MISC NDR_SECURITY
 
 [SUBSYSTEM::NDR_SPOOLSS]
-INIT_FUNCTION = dcerpc_spoolss_init
-INIT_OBJ_FILES = librpc/gen_ndr/ndr_spoolss.o
-NOPROTO = YES
-REQUIRED_SUBSYSTEMS = NDR_RAW NDR_SPOOLSS_BUF
+OBJ_FILES = gen_ndr/ndr_spoolss.o
+PUBLIC_DEPENDENCIES = LIBNDR NDR_SPOOLSS_BUF NDR_SECURITY
 
 [SUBSYSTEM::NDR_SPOOLSS_BUF]
-INIT_OBJ_FILES = librpc/ndr/ndr_spoolss_buf.o
+PRIVATE_PROTO_HEADER = ndr/ndr_spoolss_buf.h
+OBJ_FILES = ndr/ndr_spoolss_buf.o
 
 [SUBSYSTEM::NDR_WKSSVC]
-INIT_FUNCTION = dcerpc_wkssvc_init
-INIT_OBJ_FILES = librpc/gen_ndr/ndr_wkssvc.o
-NOPROTO = YES
-REQUIRED_SUBSYSTEMS = NDR_RAW
+OBJ_FILES = gen_ndr/ndr_wkssvc.o
+PUBLIC_DEPENDENCIES = LIBNDR NDR_SRVSVC NDR_MISC NDR_SECURITY
 
 [SUBSYSTEM::NDR_SRVSVC]
-INIT_FUNCTION = dcerpc_srvsvc_init
-INIT_OBJ_FILES = librpc/gen_ndr/ndr_srvsvc.o
-NOPROTO = YES
-REQUIRED_SUBSYSTEMS = NDR_RAW NDR_SVCCTL
+OBJ_FILES = gen_ndr/ndr_srvsvc.o
+PUBLIC_DEPENDENCIES = LIBNDR NDR_SVCCTL NDR_SECURITY
 
 [SUBSYSTEM::NDR_SVCCTL]
-INIT_FUNCTION = dcerpc_svcctl_init
-INIT_OBJ_FILES = librpc/gen_ndr/ndr_svcctl.o
-NOPROTO = YES
-REQUIRED_SUBSYSTEMS = NDR_RAW
+OBJ_FILES = gen_ndr/ndr_svcctl.o
+PUBLIC_HEADERS = gen_ndr/ndr_svcctl.h gen_ndr/svcctl.h
+PUBLIC_DEPENDENCIES = LIBNDR NDR_MISC
 
 [SUBSYSTEM::NDR_ATSVC]
-INIT_FUNCTION = dcerpc_atsvc_init
-INIT_OBJ_FILES = librpc/gen_ndr/ndr_atsvc.o
-NOPROTO = YES
-REQUIRED_SUBSYSTEMS = NDR_RAW
+OBJ_FILES = gen_ndr/ndr_atsvc.o
+PUBLIC_HEADERS = gen_ndr/atsvc.h gen_ndr/ndr_atsvc.h
+PUBLIC_DEPENDENCIES = LIBNDR
 
 [SUBSYSTEM::NDR_EVENTLOG]
-INIT_FUNCTION = dcerpc_eventlog_init
-INIT_OBJ_FILES = librpc/gen_ndr/ndr_eventlog.o
-NOPROTO = YES
-REQUIRED_SUBSYSTEMS = NDR_RAW
+OBJ_FILES = gen_ndr/ndr_eventlog.o
+PUBLIC_DEPENDENCIES = LIBNDR NDR_LSA
 
 [SUBSYSTEM::NDR_EPMAPPER]
-INIT_FUNCTION = dcerpc_epmapper_init
-INIT_OBJ_FILES = librpc/gen_ndr/ndr_epmapper.o
-NOPROTO = YES
-REQUIRED_SUBSYSTEMS = NDR_RAW
+OBJ_FILES = gen_ndr/ndr_epmapper.o
+PUBLIC_DEPENDENCIES = LIBNDR NDR_MISC
 
 [SUBSYSTEM::NDR_DBGIDL]
-INIT_FUNCTION = dcerpc_dbgidl_init
-INIT_OBJ_FILES = librpc/gen_ndr/ndr_dbgidl.o
-NOPROTO = YES
-REQUIRED_SUBSYSTEMS = NDR_RAW
+OBJ_FILES = gen_ndr/ndr_dbgidl.o
+PUBLIC_DEPENDENCIES = LIBNDR
 
 [SUBSYSTEM::NDR_DSSETUP]
-INIT_FUNCTION = dcerpc_dssetup_init
-INIT_OBJ_FILES = librpc/gen_ndr/ndr_dssetup.o
-NOPROTO = YES
-REQUIRED_SUBSYSTEMS = NDR_RAW
+OBJ_FILES = gen_ndr/ndr_dssetup.o
+PUBLIC_DEPENDENCIES = LIBNDR NDR_MISC
 
 [SUBSYSTEM::NDR_MSGSVC]
-INIT_FUNCTION = dcerpc_msgsvc_init
-INIT_OBJ_FILES = librpc/gen_ndr/ndr_msgsvc.o
-NOPROTO = YES
-REQUIRED_SUBSYSTEMS = NDR_RAW
+OBJ_FILES = gen_ndr/ndr_msgsvc.o
+PUBLIC_DEPENDENCIES = LIBNDR
 
 [SUBSYSTEM::NDR_WINS]
-INIT_FUNCTION = dcerpc_wins_init
-INIT_OBJ_FILES = librpc/gen_ndr/ndr_wins.o
-NOPROTO = YES
-REQUIRED_SUBSYSTEMS = NDR_RAW
+OBJ_FILES = gen_ndr/ndr_wins.o
+PUBLIC_DEPENDENCIES = LIBNDR
 
 [SUBSYSTEM::NDR_WINREG]
-INIT_FUNCTION = dcerpc_winreg_init
-INIT_OBJ_FILES = librpc/gen_ndr/ndr_winreg.o
-NOPROTO = YES
-REQUIRED_SUBSYSTEMS = NDR_RAW NDR_INITSHUTDOWN
+OBJ_FILES = gen_ndr/ndr_winreg.o
+PUBLIC_DEPENDENCIES = LIBNDR NDR_INITSHUTDOWN NDR_SECURITY NDR_MISC
 
 [SUBSYSTEM::NDR_INITSHUTDOWN]
-INIT_FUNCTION = dcerpc_initshutdown_init
-INIT_OBJ_FILES = librpc/gen_ndr/ndr_initshutdown.o
-NOPROTO = YES
-REQUIRED_SUBSYSTEMS = NDR_RAW
+OBJ_FILES = gen_ndr/ndr_initshutdown.o
+PUBLIC_DEPENDENCIES = LIBNDR
 
 [SUBSYSTEM::NDR_MGMT]
-INIT_FUNCTION = dcerpc_mgmt_init
-INIT_OBJ_FILES = librpc/gen_ndr/ndr_mgmt.o
-NOPROTO = YES
-REQUIRED_SUBSYSTEMS = NDR_RAW
+OBJ_FILES = gen_ndr/ndr_mgmt.o
+PUBLIC_DEPENDENCIES = LIBNDR 
 
 [SUBSYSTEM::NDR_PROTECTED_STORAGE]
-INIT_FUNCTION = dcerpc_protected_storage_init
-INIT_OBJ_FILES = librpc/gen_ndr/ndr_protected_storage.o
-NOPROTO = YES
-REQUIRED_SUBSYSTEMS = NDR_RAW
-
-[SUBSYSTEM::NDR_DCOM]
-INIT_FUNCTION = dcerpc_dcom_init
-INIT_OBJ_FILES = librpc/gen_ndr/ndr_dcom.o
-NOPROTO = YES
-REQUIRED_SUBSYSTEMS = NDR_RAW NDR_ORPC
-
-[SUBSYSTEM::NDR_ORPC_MANUAL]
-INIT_OBJ_FILES = librpc/ndr/ndr_orpc.o 
+OBJ_FILES = gen_ndr/ndr_protected_storage.o
+PUBLIC_DEPENDENCIES = LIBNDR
 
 [SUBSYSTEM::NDR_ORPC]
-INIT_FUNCTION = dcerpc_orpc_init
-INIT_OBJ_FILES = librpc/gen_ndr/ndr_orpc.o
-NOPROTO = YES
-REQUIRED_SUBSYSTEMS = NDR_RAW NDR_ORPC_MANUAL
+OBJ_FILES = gen_ndr/ndr_orpc.o ndr/ndr_orpc.o 
+PUBLIC_DEPENDENCIES = LIBNDR 
 
 [SUBSYSTEM::NDR_OXIDRESOLVER]
-INIT_FUNCTION = dcerpc_oxidresolver_init
-INIT_OBJ_FILES = librpc/gen_ndr/ndr_oxidresolver.o
-NOPROTO = YES
-REQUIRED_SUBSYSTEMS = NDR_RAW NDR_ORPC
+OBJ_FILES = gen_ndr/ndr_oxidresolver.o
+PUBLIC_DEPENDENCIES = LIBNDR NDR_ORPC NDR_MISC
 
 [SUBSYSTEM::NDR_REMACT]
-INIT_FUNCTION = dcerpc_remact_init
-INIT_OBJ_FILES = librpc/gen_ndr/ndr_remact.o
-NOPROTO = YES
-REQUIRED_SUBSYSTEMS = NDR_RAW NDR_ORPC
+OBJ_FILES = gen_ndr/ndr_remact.o
+PUBLIC_DEPENDENCIES = LIBNDR NDR_ORPC NDR_MISC
 
 [SUBSYSTEM::NDR_WZCSVC]
-INIT_FUNCTION = dcerpc_wzcsvc_init
-INIT_OBJ_FILES = librpc/gen_ndr/ndr_wzcsvc.o
-NOPROTO = YES
-REQUIRED_SUBSYSTEMS = NDR_RAW
+OBJ_FILES = gen_ndr/ndr_wzcsvc.o
+PUBLIC_DEPENDENCIES = LIBNDR
 
 [SUBSYSTEM::NDR_BROWSER]
-INIT_FUNCTION = dcerpc_browser_init
-INIT_OBJ_FILES = librpc/gen_ndr/ndr_browser.o
-NOPROTO = YES
-REQUIRED_SUBSYSTEMS = NDR_RAW
+OBJ_FILES = gen_ndr/ndr_browser.o
+PUBLIC_DEPENDENCIES = LIBNDR
 
 [SUBSYSTEM::NDR_W32TIME]
-INIT_FUNCTION = dcerpc_w32time_init
-INIT_OBJ_FILES = librpc/gen_ndr/ndr_w32time.o
-NOPROTO = YES
-REQUIRED_SUBSYSTEMS = NDR_RAW
+OBJ_FILES = gen_ndr/ndr_w32time.o
+PUBLIC_DEPENDENCIES = LIBNDR
 
 [SUBSYSTEM::NDR_SCERPC]
-INIT_FUNCTION = dcerpc_scerpc_init
-INIT_OBJ_FILES = librpc/gen_ndr/ndr_scerpc.o
-NOPROTO = YES
-REQUIRED_SUBSYSTEMS = NDR_RAW
+OBJ_FILES = gen_ndr/ndr_scerpc.o
+PUBLIC_DEPENDENCIES = LIBNDR
 
 [SUBSYSTEM::NDR_NTSVCS]
-INIT_FUNCTION = dcerpc_ntsvcs_init
-INIT_OBJ_FILES = librpc/gen_ndr/ndr_ntsvcs.o
-NOPROTO = YES
-REQUIRED_SUBSYSTEMS = NDR_RAW
+OBJ_FILES = gen_ndr/ndr_ntsvcs.o
+PUBLIC_DEPENDENCIES = LIBNDR
 
 [SUBSYSTEM::NDR_NETLOGON]
-INIT_FUNCTION = dcerpc_netlogon_init
-INIT_OBJ_FILES = librpc/gen_ndr/ndr_netlogon.o
-NOPROTO = YES
-REQUIRED_SUBSYSTEMS = NDR_RAW NDR_SAMR
+OBJ_FILES = gen_ndr/ndr_netlogon.o
+PUBLIC_HEADERS = gen_ndr/netlogon.h
+PUBLIC_DEPENDENCIES = LIBNDR NDR_SAMR NDR_LSA NDR_SECURITY
 
 [SUBSYSTEM::NDR_TRKWKS]
-INIT_FUNCTION = dcerpc_trkwks_init
-INIT_OBJ_FILES = librpc/gen_ndr/ndr_trkwks.o
-NOPROTO = YES
-REQUIRED_SUBSYSTEMS = NDR_RAW
+OBJ_FILES = gen_ndr/ndr_trkwks.o
+PUBLIC_DEPENDENCIES = LIBNDR
 
 [SUBSYSTEM::NDR_KEYSVC]
-INIT_FUNCTION = dcerpc_keysvc_init
-INIT_OBJ_FILES = librpc/gen_ndr/ndr_keysvc.o
-NOPROTO = YES
-REQUIRED_SUBSYSTEMS = NDR_RAW
+OBJ_FILES = gen_ndr/ndr_keysvc.o
+PUBLIC_DEPENDENCIES = LIBNDR
 
 [SUBSYSTEM::NDR_KRB5PAC]
-INIT_FUNCTION = dcerpc_krb5pac_init
-INIT_OBJ_FILES = librpc/gen_ndr/ndr_krb5pac.o
-NOPROTO = YES
-REQUIRED_SUBSYSTEMS = NDR_RAW NDR_KRB5PAC_UTIL
-
-[SUBSYSTEM::NDR_KRB5PAC_UTIL]
-INIT_OBJ_FILES = librpc/ndr/ndr_krb5pac.o
+OBJ_FILES = gen_ndr/ndr_krb5pac.o ndr/ndr_krb5pac.o
+PUBLIC_DEPENDENCIES = LIBNDR NDR_NETLOGON NDR_SECURITY
 
 [SUBSYSTEM::NDR_XATTR]
-INIT_FUNCTION = dcerpc_xattr_init
-INIT_OBJ_FILES = librpc/gen_ndr/ndr_xattr.o
-NOPROTO = YES
-REQUIRED_SUBSYSTEMS = NDR_RAW
+OBJ_FILES = gen_ndr/ndr_xattr.o
+PUBLIC_DEPENDENCIES = LIBNDR NDR_SECURITY
+
+[SUBSYSTEM::NDR_OPENDB]
+OBJ_FILES = gen_ndr/ndr_opendb.o
+PUBLIC_DEPENDENCIES = LIBNDR
+
+[SUBSYSTEM::NDR_NOTIFY]
+OBJ_FILES = gen_ndr/ndr_notify.o
+PUBLIC_DEPENDENCIES = LIBNDR
 
 [SUBSYSTEM::NDR_SCHANNEL]
-INIT_FUNCTION = dcerpc_schannel_init
-INIT_OBJ_FILES = librpc/gen_ndr/ndr_schannel.o
-NOPROTO = YES
-REQUIRED_SUBSYSTEMS = NDR_RAW
+OBJ_FILES = gen_ndr/ndr_schannel.o
+PUBLIC_DEPENDENCIES = LIBNDR NDR_NBT
 
 [SUBSYSTEM::NDR_NBT]
-INIT_OBJ_FILES = librpc/gen_ndr/ndr_nbt.o
-INIT_FUNCTION = dcerpc_nbt_init
-NOPROTO = YES
-REQUIRED_SUBSYSTEMS = NDR_RAW NDR_MISC
+OBJ_FILES = gen_ndr/ndr_nbt.o
+PUBLIC_HEADERS = gen_ndr/nbt.h
+PUBLIC_DEPENDENCIES = LIBNDR NDR_MISC NDR_NBT_BUF NDR_SVCCTL NDR_SECURITY
 
 [SUBSYSTEM::NDR_WINSREPL]
-INIT_OBJ_FILES = librpc/gen_ndr/ndr_winsrepl.o
-INIT_FUNCTION = dcerpc_winsrepl_init
-NOPROTO = YES
-REQUIRED_SUBSYSTEMS = NDR_RAW NDR_NBT
-
-
-[SUBSYSTEM::NDR_ALL]
-REQUIRED_SUBSYSTEMS = NDR_AUDIOSRV NDR_ECHO NDR_DCERPC NDR_EXCHANGE \
+OBJ_FILES = gen_ndr/ndr_winsrepl.o
+PUBLIC_DEPENDENCIES = LIBNDR NDR_NBT
+
+[SUBSYSTEM::NDR_WINBIND]
+OBJ_FILES = gen_ndr/ndr_winbind.o
+PUBLIC_HEADERS = gen_ndr/winbind.h
+PUBLIC_DEPENDENCIES = LIBNDR NDR_NETLOGON
+
+include ../heimdal_build/perl_path_wrapper.sh ../librpc/idl-deps.pl librpc/idl/*.idl|
+
+librpc/gen_ndr/tables.c: $(IDL_NDR_PARSE_H_FILES)
+       @echo Generating librpc/gen_ndr/tables.c
+       @$(PERL) $(srcdir)/librpc/tables.pl --output=librpc/gen_ndr/tables.c $(IDL_NDR_PARSE_H_FILES) > librpc/gen_ndr/tables.x
+       mv librpc/gen_ndr/tables.x librpc/gen_ndr/tables.c
+
+[SUBSYSTEM::NDR_TABLE]
+OBJ_FILES = ndr/ndr_table.o gen_ndr/tables.o
+PRIVATE_PROTO_HEADER = ndr/ndr_table.h
+PUBLIC_DEPENDENCIES = \
+       NDR_AUDIOSRV NDR_ECHO NDR_DCERPC \
        NDR_DSBACKUP NDR_EFS NDR_MISC NDR_LSA NDR_DFS NDR_DRSUAPI \
        NDR_POLICYAGENT NDR_UNIXINFO NDR_SAMR NDR_SPOOLSS NDR_WKSSVC NDR_SRVSVC NDR_ATSVC \
        NDR_EVENTLOG NDR_EPMAPPER NDR_DBGIDL NDR_DSSETUP NDR_MSGSVC NDR_WINS \
        NDR_WINREG NDR_MGMT NDR_PROTECTED_STORAGE NDR_OXIDRESOLVER \
        NDR_REMACT NDR_WZCSVC NDR_BROWSER NDR_W32TIME NDR_SCERPC NDR_NTSVCS \
        NDR_NETLOGON NDR_TRKWKS NDR_KEYSVC NDR_KRB5PAC NDR_XATTR NDR_SCHANNEL \
-       NDR_ROT NDR_DRSBLOBS NDR_SVCCTL NDR_NBT NDR_WINSREPL LIB_SECURITY_NDR \
-       NDR_INITSHUTDOWN
+       NDR_ROT NDR_DRSBLOBS NDR_SVCCTL NDR_NBT NDR_WINSREPL NDR_SECURITY \
+       NDR_INITSHUTDOWN NDR_DNSSERVER NDR_WINSTATION NDR_IRPC NDR_OPENDB \
+       NDR_SASL_HELPERS NDR_NOTIFY NDR_WINBIND NDR_FRSRPC NDR_FRSAPI NDR_NFS4ACL
 
 [SUBSYSTEM::RPC_NDR_ROT]
-ADD_OBJ_FILES = librpc/gen_ndr/ndr_rot_c.o
-REQUIRED_SUBSYSTEMS = NDR_ROT RPC
-NOPROTO = YES
+OBJ_FILES = gen_ndr/ndr_rot_c.o
+PUBLIC_DEPENDENCIES = NDR_ROT dcerpc
 
 [SUBSYSTEM::RPC_NDR_AUDIOSRV]
-ADD_OBJ_FILES = librpc/gen_ndr/ndr_audiosrv_c.o
-REQUIRED_SUBSYSTEMS = NDR_AUDIOSRV RPC
-NOPROTO = YES
+OBJ_FILES = gen_ndr/ndr_audiosrv_c.o
+PUBLIC_DEPENDENCIES = NDR_AUDIOSRV dcerpc
 
 [SUBSYSTEM::RPC_NDR_ECHO]
-ADD_OBJ_FILES = librpc/gen_ndr/ndr_echo_c.o
-REQUIRED_SUBSYSTEMS = RPC NDR_ECHO
-NOPROTO = YES
-
-[SUBSYSTEM::RPC_NDR_EXCHANGE]
-ADD_OBJ_FILES = librpc/gen_ndr/ndr_exchange_c.o
-REQUIRED_SUBSYSTEMS = RPC NDR_EXCHANGE
-NOPROTO = YES
+OBJ_FILES = gen_ndr/ndr_echo_c.o
+PUBLIC_DEPENDENCIES = dcerpc NDR_ECHO
 
 [SUBSYSTEM::RPC_NDR_DSBACKUP]
-ADD_OBJ_FILES = librpc/gen_ndr/ndr_dsbackup_c.o
-REQUIRED_SUBSYSTEMS = RPC NDR_DSBACKUP
-NOPROTO = YES
+OBJ_FILES = gen_ndr/ndr_dsbackup_c.o
+PUBLIC_DEPENDENCIES = dcerpc NDR_DSBACKUP
 
 [SUBSYSTEM::RPC_NDR_EFS]
-ADD_OBJ_FILES = librpc/gen_ndr/ndr_efs_c.o
-REQUIRED_SUBSYSTEMS = RPC NDR_EFS
-NOPROTO = YES
+OBJ_FILES = gen_ndr/ndr_efs_c.o
+PUBLIC_DEPENDENCIES = dcerpc NDR_EFS
 
 [SUBSYSTEM::RPC_NDR_LSA]
-ADD_OBJ_FILES = librpc/gen_ndr/ndr_lsa_c.o
-REQUIRED_SUBSYSTEMS = RPC NDR_LSA
-NOPROTO = YES
+OBJ_FILES = gen_ndr/ndr_lsa_c.o
+PUBLIC_DEPENDENCIES = dcerpc NDR_LSA
 
 [SUBSYSTEM::RPC_NDR_DFS]
-ADD_OBJ_FILES = librpc/gen_ndr/ndr_dfs_c.o
-REQUIRED_SUBSYSTEMS = RPC NDR_DFS
-NOPROTO = YES
+OBJ_FILES = gen_ndr/ndr_dfs_c.o
+PUBLIC_DEPENDENCIES = dcerpc NDR_DFS
 
-[SUBSYSTEM::RPC_NDR_DRSUAPI]
-ADD_OBJ_FILES = librpc/gen_ndr/ndr_drsuapi_c.o
-REQUIRED_SUBSYSTEMS = RPC NDR_DRSUAPI
-NOPROTO = YES
+[SUBSYSTEM::RPC_NDR_FRSAPI]
+OBJ_FILES = gen_ndr/ndr_frsapi_c.o
+PUBLIC_DEPENDENCIES = dcerpc NDR_FRSAPI
 
-[SUBSYSTEM::RPC_NDR_DRSBLOBS]
-ADD_OBJ_FILES = librpc/gen_ndr/ndr_drsblobs_c.o
-REQUIRED_SUBSYSTEMS = RPC NDR_DRSBLOBS
-NOPROTO = YES
+[SUBSYSTEM::RPC_NDR_DRSUAPI]
+OBJ_FILES = gen_ndr/ndr_drsuapi_c.o
+PUBLIC_DEPENDENCIES = dcerpc NDR_DRSUAPI
 
 [SUBSYSTEM::RPC_NDR_POLICYAGENT]
-ADD_OBJ_FILES = librpc/gen_ndr/ndr_policyagent_c.o
-REQUIRED_SUBSYSTEMS = RPC NDR_POLICYAGENT
-NOPROTO = YES
+OBJ_FILES = gen_ndr/ndr_policyagent_c.o
+PUBLIC_DEPENDENCIES = dcerpc NDR_POLICYAGENT
 
 [SUBSYSTEM::RPC_NDR_UNIXINFO]
-ADD_OBJ_FILES = librpc/gen_ndr/ndr_unixinfo_c.o
-REQUIRED_SUBSYSTEMS = RPC NDR_UNIXINFO
-NOPROTO = YES
+OBJ_FILES = gen_ndr/ndr_unixinfo_c.o
+PUBLIC_DEPENDENCIES = dcerpc NDR_UNIXINFO
 
-[SUBSYSTEM::RPC_NDR_SAMR]
-ADD_OBJ_FILES = librpc/gen_ndr/ndr_samr_c.o
-REQUIRED_SUBSYSTEMS = RPC NDR_SAMR
-NOPROTO = YES
+[LIBRARY::dcerpc_samr]
+OBJ_FILES = gen_ndr/ndr_samr_c.o
+PUBLIC_DEPENDENCIES = dcerpc NDR_SAMR 
+VERSION = 0.0.1
+SO_VERSION = 0
+DESCRIPTION = DCE/RPC client library - SAMR
 
 [SUBSYSTEM::RPC_NDR_SPOOLSS]
-ADD_OBJ_FILES = librpc/gen_ndr/ndr_spoolss_c.o
-REQUIRED_SUBSYSTEMS = RPC NDR_SPOOLSS
-NOPROTO = YES
+OBJ_FILES = gen_ndr/ndr_spoolss_c.o
+PUBLIC_DEPENDENCIES = dcerpc NDR_SPOOLSS
 
 [SUBSYSTEM::RPC_NDR_WKSSVC]
-ADD_OBJ_FILES = librpc/gen_ndr/ndr_wkssvc_c.o
-REQUIRED_SUBSYSTEMS = RPC NDR_WKSSVC
-NOPROTO = YES
+OBJ_FILES = gen_ndr/ndr_wkssvc_c.o
+PUBLIC_DEPENDENCIES = dcerpc NDR_WKSSVC
 
 [SUBSYSTEM::RPC_NDR_SRVSVC]
-ADD_OBJ_FILES = librpc/gen_ndr/ndr_srvsvc_c.o
-REQUIRED_SUBSYSTEMS = RPC NDR_SRVSVC
-NOPROTO = YES
+OBJ_FILES = gen_ndr/ndr_srvsvc_c.o
+PUBLIC_DEPENDENCIES = dcerpc NDR_SRVSVC
 
 [SUBSYSTEM::RPC_NDR_SVCCTL]
-ADD_OBJ_FILES = librpc/gen_ndr/ndr_svcctl_c.o
-REQUIRED_SUBSYSTEMS = RPC NDR_SVCCTL
-NOPROTO = YES
-
-[SUBSYSTEM::RPC_NDR_ATSVC]
-ADD_OBJ_FILES = librpc/gen_ndr/ndr_atsvc_c.o
-REQUIRED_SUBSYSTEMS = RPC NDR_ATSVC
-NOPROTO = YES
+OBJ_FILES = gen_ndr/ndr_svcctl_c.o
+PUBLIC_HEADERS = gen_ndr/ndr_svcctl_c.h
+PUBLIC_DEPENDENCIES = dcerpc NDR_SVCCTL
+
+[LIBRARY::dcerpc_atsvc]
+OBJ_FILES = gen_ndr/ndr_atsvc_c.o
+PUBLIC_HEADERS = gen_ndr/ndr_atsvc_c.h
+PUBLIC_DEPENDENCIES = dcerpc NDR_ATSVC
+VERSION = 0.0.1
+SO_VERSION = 0
+DESCRIPTION = DCE/RPC client library - ATSVC
 
 [SUBSYSTEM::RPC_NDR_EVENTLOG]
-ADD_OBJ_FILES = librpc/gen_ndr/ndr_eventlog_c.o
-REQUIRED_SUBSYSTEMS = RPC NDR_EVENTLOG
-NOPROTO = YES
+OBJ_FILES = gen_ndr/ndr_eventlog_c.o
+PUBLIC_DEPENDENCIES = dcerpc NDR_EVENTLOG
 
 [SUBSYSTEM::RPC_NDR_EPMAPPER]
-ADD_OBJ_FILES = librpc/gen_ndr/ndr_epmapper_c.o
-REQUIRED_SUBSYSTEMS = NDR_EPMAPPER
-NOPROTO = YES
+OBJ_FILES = gen_ndr/ndr_epmapper_c.o
+PUBLIC_DEPENDENCIES = NDR_EPMAPPER 
 
 [SUBSYSTEM::RPC_NDR_DBGIDL]
-ADD_OBJ_FILES = librpc/gen_ndr/ndr_dbgidl_c.o
-REQUIRED_SUBSYSTEMS = RPC NDR_DBGIDL
-NOPROTO = YES
+OBJ_FILES = gen_ndr/ndr_dbgidl_c.o
+PUBLIC_DEPENDENCIES = dcerpc NDR_DBGIDL
 
 [SUBSYSTEM::RPC_NDR_DSSETUP]
-ADD_OBJ_FILES = librpc/gen_ndr/ndr_dssetup_c.o
-REQUIRED_SUBSYSTEMS = RPC NDR_DSSETUP
-NOPROTO = YES
+OBJ_FILES = gen_ndr/ndr_dssetup_c.o
+PUBLIC_DEPENDENCIES = dcerpc NDR_DSSETUP
 
 [SUBSYSTEM::RPC_NDR_MSGSVC]
-ADD_OBJ_FILES = librpc/gen_ndr/ndr_msgsvc_c.o
-REQUIRED_SUBSYSTEMS = RPC NDR_MSGSVC
-NOPROTO = YES
+OBJ_FILES = gen_ndr/ndr_msgsvc_c.o
+PUBLIC_DEPENDENCIES = dcerpc NDR_MSGSVC
 
 [SUBSYSTEM::RPC_NDR_WINS]
-ADD_OBJ_FILES = librpc/gen_ndr/ndr_wins_c.o
-REQUIRED_SUBSYSTEMS = RPC NDR_WINS
-NOPROTO = YES
+OBJ_FILES = gen_ndr/ndr_wins_c.o
+PUBLIC_DEPENDENCIES = dcerpc NDR_WINS
 
 [SUBSYSTEM::RPC_NDR_WINREG]
-ADD_OBJ_FILES = librpc/gen_ndr/ndr_winreg_c.o
-REQUIRED_SUBSYSTEMS = RPC NDR_WINREG
-NOPROTO = YES
+OBJ_FILES = gen_ndr/ndr_winreg_c.o
+PUBLIC_DEPENDENCIES = dcerpc NDR_WINREG
 
 [SUBSYSTEM::RPC_NDR_INITSHUTDOWN]
-ADD_OBJ_FILES = librpc/gen_ndr/ndr_initshutdown_c.o
-REQUIRED_SUBSYSTEMS = RPC NDR_INITSHUTDOWN
-NOPROTO = YES
+OBJ_FILES = gen_ndr/ndr_initshutdown_c.o
+PUBLIC_DEPENDENCIES = dcerpc NDR_INITSHUTDOWN
 
-[SUBSYSTEM::RPC_NDR_MGMT]
-ADD_OBJ_FILES = librpc/gen_ndr/ndr_mgmt_c.o
-REQUIRED_SUBSYSTEMS = RPC NDR_MGMT
-NOPROTO = YES
+[LIBRARY::dcerpc_mgmt]
+OBJ_FILES = gen_ndr/ndr_mgmt_c.o
+PRIVATE_DEPENDENCIES = NDR_MGMT
+VERSION = 0.0.1
+SO_VERSION = 0
+DESCRIPTION = DCE/RPC client library - MGMT
 
 [SUBSYSTEM::RPC_NDR_PROTECTED_STORAGE]
-ADD_OBJ_FILES = librpc/gen_ndr/ndr_protected_storage_c.o
-REQUIRED_SUBSYSTEMS = RPC NDR_PROTECTED_STORAGE
-NOPROTO = YES
-
-[SUBSYSTEM::DCOM_PROXY_DCOM]
-ADD_OBJ_FILES = librpc/gen_ndr/ndr_dcom_c.o
-REQUIRED_SUBSYSTEMS = RPC NDR_DCOM
-NOPROTO = YES
+OBJ_FILES = gen_ndr/ndr_protected_storage_c.o
+PUBLIC_DEPENDENCIES = dcerpc NDR_PROTECTED_STORAGE
 
 [SUBSYSTEM::RPC_NDR_OXIDRESOLVER]
-ADD_OBJ_FILES = librpc/gen_ndr/ndr_oxidresolver_c.o
-REQUIRED_SUBSYSTEMS = RPC NDR_OXIDRESOLVER
-NOPROTO = YES
+OBJ_FILES = gen_ndr/ndr_oxidresolver_c.o
+PUBLIC_DEPENDENCIES = dcerpc NDR_OXIDRESOLVER
 
 [SUBSYSTEM::RPC_NDR_REMACT]
-ADD_OBJ_FILES = librpc/gen_ndr/ndr_remact_c.o
-REQUIRED_SUBSYSTEMS = RPC NDR_REMACT
-NOPROTO = YES
+OBJ_FILES = gen_ndr/ndr_remact_c.o
+PUBLIC_DEPENDENCIES = dcerpc NDR_REMACT
 
 [SUBSYSTEM::RPC_NDR_WZCSVC]
-ADD_OBJ_FILES = librpc/gen_ndr/ndr_wzcsvc_c.o
-REQUIRED_SUBSYSTEMS = RPC NDR_WZCSVC
-NOPROTO = YES
-
-[SUBSYSTEM::RPC_NDR_BROWSER]
-ADD_OBJ_FILES = librpc/gen_ndr/ndr_browser_c.o
-REQUIRED_SUBSYSTEMS = RPC NDR_BROWSER
-NOPROTO = YES
+OBJ_FILES = gen_ndr/ndr_wzcsvc_c.o
+PUBLIC_DEPENDENCIES = dcerpc NDR_WZCSVC
 
 [SUBSYSTEM::RPC_NDR_W32TIME]
-ADD_OBJ_FILES = librpc/gen_ndr/ndr_w32time_c.o
-REQUIRED_SUBSYSTEMS = RPC NDR_W32TIME
-NOPROTO = YES
+OBJ_FILES = gen_ndr/ndr_w32time_c.o
+PUBLIC_DEPENDENCIES = dcerpc NDR_W32TIME
 
 [SUBSYSTEM::RPC_NDR_SCERPC]
-ADD_OBJ_FILES = librpc/gen_ndr/ndr_scerpc_c.o
-REQUIRED_SUBSYSTEMS = RPC NDR_SCERPC
-NOPROTO = YES
+OBJ_FILES = gen_ndr/ndr_scerpc_c.o
+PUBLIC_DEPENDENCIES = dcerpc NDR_SCERPC
 
 [SUBSYSTEM::RPC_NDR_NTSVCS]
-ADD_OBJ_FILES = librpc/gen_ndr/ndr_ntsvcs_c.o
-REQUIRED_SUBSYSTEMS = RPC NDR_NTSVCS
-NOPROTO = YES
+OBJ_FILES = gen_ndr/ndr_ntsvcs_c.o
+PUBLIC_DEPENDENCIES = dcerpc NDR_NTSVCS
 
 [SUBSYSTEM::RPC_NDR_NETLOGON]
-ADD_OBJ_FILES = librpc/gen_ndr/ndr_netlogon_c.o
-REQUIRED_SUBSYSTEMS = NDR_NETLOGON
-NOPROTO = YES
+OBJ_FILES = gen_ndr/ndr_netlogon_c.o
+PUBLIC_DEPENDENCIES = NDR_NETLOGON
 
 [SUBSYSTEM::RPC_NDR_TRKWKS]
-ADD_OBJ_FILES = librpc/gen_ndr/ndr_trkwks_c.o
-REQUIRED_SUBSYSTEMS = RPC NDR_TRKWKS
-NOPROTO = YES
+OBJ_FILES = gen_ndr/ndr_trkwks_c.o
+PUBLIC_DEPENDENCIES = dcerpc NDR_TRKWKS
 
 [SUBSYSTEM::RPC_NDR_KEYSVC]
-ADD_OBJ_FILES = librpc/gen_ndr/ndr_keysvc_c.o
-REQUIRED_SUBSYSTEMS = RPC NDR_KEYSVC
-NOPROTO = YES
+OBJ_FILES = gen_ndr/ndr_keysvc_c.o
+PUBLIC_DEPENDENCIES = dcerpc NDR_KEYSVC
+
+[SUBSYSTEM::NDR_DCERPC]
+OBJ_FILES = gen_ndr/ndr_dcerpc.o
+PUBLIC_DEPENDENCIES = LIBNDR NDR_MISC
+PUBLIC_HEADERS = gen_ndr/dcerpc.h gen_ndr/ndr_dcerpc.h
 
 ################################################
-# Start SUBSYSTEM RPC
-[SUBSYSTEM::RPC]
-REQUIRED_SUBSYSTEMS = NDR_RAW RPC_RAW LIBSMB NDR_MISC NDR_DCERPC NDR_SCHANNEL NDR_LSA NDR_NETLOGON NDR_SAMR NDR_UNIXINFO RPC_NDR_NETLOGON RPC_NDR_EPMAPPER
-# End SUBSYSTEM RPC
+# Start SUBSYSTEM dcerpc
+[LIBRARY::dcerpc]
+VERSION = 0.0.1
+SO_VERSION = 0
+DESCRIPTION = DCE/RPC client library
+PUBLIC_HEADERS = rpc/dcerpc.h \
+                       gen_ndr/mgmt.h gen_ndr/ndr_mgmt.h gen_ndr/ndr_mgmt_c.h \
+                       gen_ndr/epmapper.h gen_ndr/ndr_epmapper.h gen_ndr/ndr_epmapper_c.h
+PUBLIC_PROTO_HEADER = rpc/dcerpc_proto.h
+OBJ_FILES = \
+               rpc/dcerpc.o \
+               rpc/dcerpc_auth.o \
+               rpc/dcerpc_schannel.o \
+               rpc/dcerpc_util.o \
+               rpc/dcerpc_error.o \
+               rpc/dcerpc_smb.o \
+               rpc/dcerpc_smb2.o \
+               rpc/dcerpc_sock.o \
+               rpc/dcerpc_connect.o \
+               rpc/dcerpc_secondary.o
+PRIVATE_DEPENDENCIES = \
+               samba-socket LIBCLI_RESOLVE LIBCLI_SMB LIBCLI_SMB2 \
+               LIBNDR NDR_DCERPC RPC_NDR_EPMAPPER \
+               NDR_SCHANNEL RPC_NDR_NETLOGON \
+               gensec LIBCLI_AUTH LIBCLI_RAW \
+               LP_RESOLVE
+PUBLIC_DEPENDENCIES = CREDENTIALS 
+# End SUBSYSTEM dcerpc
 ################################################
 
-[SUBSYSTEM::RPC_EJS_ECHO]
+[MODULE::RPC_EJS_ECHO]
 INIT_FUNCTION = ejs_init_rpcecho
-OBJ_FILES = librpc/gen_ndr/ndr_echo_ejs.o
-REQUIRED_SUBSYSTEMS = RPC NDR_ECHO
-NOPROTO = YES
+OBJ_FILES = gen_ndr/ndr_echo_ejs.o
+SUBSYSTEM = smbcalls
+PRIVATE_DEPENDENCIES = dcerpc NDR_ECHO EJSRPC
 
-[SUBSYSTEM::RPC_EJS_MISC]
+[MODULE::RPC_EJS_MISC]
 INIT_FUNCTION = ejs_init_misc
-OBJ_FILES = librpc/gen_ndr/ndr_misc_ejs.o
-REQUIRED_SUBSYSTEMS = RPC NDR_MISC
-NOPROTO = YES
+OBJ_FILES = gen_ndr/ndr_misc_ejs.o
+SUBSYSTEM = smbcalls
+PRIVATE_DEPENDENCIES = dcerpc NDR_MISC EJSRPC
 
-[SUBSYSTEM::RPC_EJS_SAMR]
+[MODULE::RPC_EJS_SAMR]
 INIT_FUNCTION = ejs_init_samr
-OBJ_FILES = librpc/gen_ndr/ndr_samr_ejs.o
-REQUIRED_SUBSYSTEMS = RPC NDR_SAMR
-NOPROTO = YES
+OBJ_FILES = gen_ndr/ndr_samr_ejs.o
+SUBSYSTEM = smbcalls
+PRIVATE_DEPENDENCIES = dcerpc NDR_SAMR EJSRPC RPC_EJS_LSA RPC_EJS_SECURITY RPC_EJS_MISC
 
-[SUBSYSTEM::RPC_EJS_SECURITY]
+[MODULE::RPC_EJS_SECURITY]
 INIT_FUNCTION = ejs_init_security
-OBJ_FILES = librpc/gen_ndr/ndr_security_ejs.o
-REQUIRED_SUBSYSTEMS = RPC LIB_SECURITY_NDR
-NOPROTO = YES
+OBJ_FILES = gen_ndr/ndr_security_ejs.o
+SUBSYSTEM = smbcalls
+PRIVATE_DEPENDENCIES = dcerpc NDR_SECURITY EJSRPC
 
-[SUBSYSTEM::RPC_EJS_LSA]
+[MODULE::RPC_EJS_LSA]
 INIT_FUNCTION = ejs_init_lsarpc
-OBJ_FILES = librpc/gen_ndr/ndr_lsa_ejs.o
-REQUIRED_SUBSYSTEMS = RPC NDR_LSA
-NOPROTO = YES
+OBJ_FILES = gen_ndr/ndr_lsa_ejs.o
+SUBSYSTEM = smbcalls
+PRIVATE_DEPENDENCIES = dcerpc NDR_LSA EJSRPC RPC_EJS_SECURITY RPC_EJS_MISC
 
-[SUBSYSTEM::RPC_EJS_DFS]
-INIT_FUNCTION = ejs_init_dfs
-OBJ_FILES = librpc/gen_ndr/ndr_dfs_ejs.o
-REQUIRED_SUBSYSTEMS = RPC NDR_DFS
-NOPROTO = YES
+[MODULE::RPC_EJS_DFS]
+INIT_FUNCTION = ejs_init_netdfs
+OBJ_FILES = gen_ndr/ndr_dfs_ejs.o
+SUBSYSTEM = smbcalls
+PRIVATE_DEPENDENCIES = dcerpc NDR_DFS EJSRPC
 
-[SUBSYSTEM::RPC_EJS_DRSUAPI]
+[MODULE::RPC_EJS_DRSUAPI]
 INIT_FUNCTION = ejs_init_drsuapi
-OBJ_FILES = librpc/gen_ndr/ndr_drsuapi_ejs.o
-REQUIRED_SUBSYSTEMS = RPC NDR_DRSUAPI
-NOPROTO = YES
+OBJ_FILES = gen_ndr/ndr_drsuapi_ejs.o
+SUBSYSTEM = smbcalls
+PRIVATE_DEPENDENCIES = dcerpc NDR_DRSUAPI EJSRPC RPC_EJS_MISC RPC_EJS_SAMR
 
-[SUBSYSTEM::RPC_EJS_SPOOLSS]
+[MODULE::RPC_EJS_SPOOLSS]
 INIT_FUNCTION = ejs_init_spoolss
-OBJ_FILES = librpc/gen_ndr/ndr_spoolss_ejs.o
-REQUIRED_SUBSYSTEMS = RPC NDR_SPOOLSS
-NOPROTO = YES
+OBJ_FILES = gen_ndr/ndr_spoolss_ejs.o
+SUBSYSTEM = smbcalls
+ENABLE = NO
+PRIVATE_DEPENDENCIES = dcerpc NDR_SPOOLSS EJSRPC
 
-[SUBSYSTEM::RPC_EJS_WKSSVC]
+[MODULE::RPC_EJS_WKSSVC]
 INIT_FUNCTION = ejs_init_wkssvc
-OBJ_FILES = librpc/gen_ndr/ndr_wkssvc_ejs.o
-REQUIRED_SUBSYSTEMS = RPC NDR_WKSSVC
-NOPROTO = YES
+OBJ_FILES = gen_ndr/ndr_wkssvc_ejs.o
+SUBSYSTEM = smbcalls
+PRIVATE_DEPENDENCIES = dcerpc NDR_WKSSVC EJSRPC RPC_EJS_SRVSVC RPC_EJS_MISC
 
-[SUBSYSTEM::RPC_EJS_SRVSVC]
+[MODULE::RPC_EJS_SRVSVC]
 INIT_FUNCTION = ejs_init_srvsvc
-OBJ_FILES = librpc/gen_ndr/ndr_srvsvc_ejs.o
-REQUIRED_SUBSYSTEMS = RPC NDR_SRVSVC
-NOPROTO = YES
+OBJ_FILES = gen_ndr/ndr_srvsvc_ejs.o
+SUBSYSTEM = smbcalls
+PRIVATE_DEPENDENCIES = dcerpc NDR_SRVSVC EJSRPC RPC_EJS_MISC RPC_EJS_SVCCTL RPC_EJS_SECURITY
 
-[SUBSYSTEM::RPC_EJS_EVENTLOG]
+[MODULE::RPC_EJS_EVENTLOG]
 INIT_FUNCTION = ejs_init_eventlog
-OBJ_FILES = librpc/gen_ndr/ndr_eventlog_ejs.o
-REQUIRED_SUBSYSTEMS = RPC NDR_EVENTLOG
-NOPROTO = YES
+OBJ_FILES = gen_ndr/ndr_eventlog_ejs.o
+SUBSYSTEM = smbcalls
+PRIVATE_DEPENDENCIES = dcerpc NDR_EVENTLOG EJSRPC RPC_EJS_MISC
 
-[SUBSYSTEM::RPC_EJS_WINREG]
+[MODULE::RPC_EJS_WINREG]
 INIT_FUNCTION = ejs_init_winreg
-OBJ_FILES = librpc/gen_ndr/ndr_winreg_ejs.o
-REQUIRED_SUBSYSTEMS = RPC NDR_WINREG
-NOPROTO = YES
+OBJ_FILES = gen_ndr/ndr_winreg_ejs.o
+SUBSYSTEM = smbcalls
+PRIVATE_DEPENDENCIES = dcerpc NDR_WINREG EJSRPC RPC_EJS_INITSHUTDOWN \
+                                         RPC_EJS_MISC RPC_EJS_SECURITY
 
-[SUBSYSTEM::RPC_EJS_INITSHUTDOWN]
+[MODULE::RPC_EJS_INITSHUTDOWN]
 INIT_FUNCTION = ejs_init_initshutdown
-OBJ_FILES = librpc/gen_ndr/ndr_initshutdown_ejs.o
-REQUIRED_SUBSYSTEMS = RPC NDR_INITSHUTDOWN
-NOPROTO = YES
+OBJ_FILES = gen_ndr/ndr_initshutdown_ejs.o
+SUBSYSTEM = smbcalls
+PRIVATE_DEPENDENCIES = dcerpc NDR_INITSHUTDOWN EJSRPC
 
-[SUBSYSTEM::RPC_EJS_NETLOGON]
+[MODULE::RPC_EJS_NETLOGON]
 INIT_FUNCTION = ejs_init_netlogon
-OBJ_FILES = librpc/gen_ndr/ndr_netlogon_ejs.o
-REQUIRED_SUBSYSTEMS = RPC NDR_NETLOGON
-NOPROTO = YES
+OBJ_FILES = gen_ndr/ndr_netlogon_ejs.o
+SUBSYSTEM = smbcalls
+PRIVATE_DEPENDENCIES = dcerpc NDR_NETLOGON EJSRPC RPC_EJS_SAMR RPC_EJS_SECURITY RPC_EJS_MISC
 
-[SUBSYSTEM::RPC_EJS_SVCCTL]
+[MODULE::RPC_EJS_SVCCTL]
 INIT_FUNCTION = ejs_init_svcctl
-OBJ_FILES = librpc/gen_ndr/ndr_svcctl_ejs.o
-REQUIRED_SUBSYSTEMS = RPC NDR_SVCCTL
-NOPROTO = YES
+OBJ_FILES = gen_ndr/ndr_svcctl_ejs.o
+SUBSYSTEM = smbcalls
+PRIVATE_DEPENDENCIES = dcerpc NDR_SVCCTL EJSRPC RPC_EJS_MISC
 
-[SUBSYSTEM::RPC_EJS_IRPC]
+[MODULE::RPC_EJS_IRPC]
 INIT_FUNCTION = ejs_init_irpc
-OBJ_FILES = librpc/gen_ndr/ndr_irpc_ejs.o
-REQUIRED_SUBSYSTEMS = RPC NDR_IRPC
-NOPROTO = YES
+OBJ_FILES = gen_ndr/ndr_irpc_ejs.o
+SUBSYSTEM = smbcalls
+PRIVATE_DEPENDENCIES = dcerpc NDR_IRPC EJSRPC
 
-################################################
-# Start SUBSYSTEM RPC_EJS
-[SUBSYSTEM::RPC_EJS]
-REQUIRED_SUBSYSTEMS = RPC_EJS_ECHO RPC_EJS_MISC RPC_EJS_SAMR RPC_EJS_SECURITY \
-       RPC_EJS_LSA RPC_EJS_SRVSVC RPC_EJS_SVCCTL RPC_EJS_IRPC RPC_EJS_WINREG \
-       RPC_EJS_INITSHUTDOWN
-# End SUBSYSTEM RPC_EJS
-################################################
+[PYTHON::swig_dcerpc]
+SWIG_FILE = rpc/dcerpc.i
+PUBLIC_DEPENDENCIES = LIBCLI_SMB NDR_MISC LIBSAMBA-UTIL LIBSAMBA-CONFIG dcerpc_samr RPC_NDR_LSA DYNCONFIG
+
+[PYTHON::python_echo]
+OBJ_FILES = gen_ndr/py_echo.o
+PRIVATE_DEPENDENCIES = RPC_NDR_ECHO
+
+[PYTHON::python_winreg]
+OBJ_FILES = gen_ndr/py_winreg.o
+PRIVATE_DEPENDENCIES = RPC_NDR_WINREG python_misc
+
+[PYTHON::python_dcerpc_misc]
+OBJ_FILES = gen_ndr/py_misc.o