Merge branch 'v4-0-test' of ssh://git.samba.org/data/git/samba into v4-0-gmake3
authorJelmer Vernooij <jelmer@samba.org>
Tue, 8 Apr 2008 01:45:06 +0000 (03:45 +0200)
committerJelmer Vernooij <jelmer@samba.org>
Tue, 8 Apr 2008 01:45:06 +0000 (03:45 +0200)
Conflicts:

source/auth/credentials/config.mk
source/auth/gensec/config.mk
source/build/smb_build/makefile.pm
source/heimdal_build/config.mk
source/lib/events/config.mk
source/lib/nss_wrapper/config.mk
source/lib/policy/config.mk
source/lib/registry/config.mk
source/lib/socket_wrapper/config.mk
source/lib/tdb/config.mk
source/lib/tls/config.mk
source/lib/util/config.mk
source/libcli/config.mk
source/libcli/ldap/config.mk
source/libnet/config.mk
source/librpc/config.mk
source/param/config.mk
source/rpc_server/config.mk
source/scripting/ejs/config.mk
source/smbd/process_model.mk
(This used to be commit 760378e0294dd0cd4523a83448328478632d7e3d)

43 files changed:
1  2 
source4/Makefile
source4/auth/auth.c
source4/auth/config.mk
source4/auth/credentials/config.mk
source4/auth/gensec/config.mk
source4/auth/gensec/gensec.c
source4/build/make/rules.mk
source4/client/config.mk
source4/dsdb/config.mk
source4/heimdal_build/config.mk
source4/ldap_server/config.mk
source4/lib/basic.mk
source4/lib/events/config.mk
source4/lib/policy/config.mk
source4/lib/registry/config.mk
source4/lib/registry/local.c
source4/lib/socket_wrapper/config.mk
source4/lib/talloc/config.mk
source4/lib/tdb/config.mk
source4/lib/tls/config.mk
source4/lib/util/config.mk
source4/libcli/auth/config.mk
source4/libcli/config.mk
source4/libcli/ldap/config.mk
source4/libnet/config.mk
source4/librpc/config.mk
source4/nbt_server/config.mk
source4/nsswitch/config.mk
source4/ntvfs/config.mk
source4/ntvfs/ntvfs_base.c
source4/param/config.mk
source4/rpc_server/config.mk
source4/rpc_server/dcerpc_server.c
source4/scripting/ejs/config.mk
source4/scripting/python/modules.c
source4/smbd/config.mk
source4/smbd/process_model.c
source4/smbd/process_model.mk
source4/smbd/server.c
source4/torture/config.mk
source4/torture/torture.c
source4/utils/config.mk
source4/utils/net/config.mk

diff --combined source4/Makefile
index 982808e8b633a05fdc964a1f8b4c8511fe8085d0,ab3ef47fed62f767a3c7762dcdb9c936fcf36d07..8c74b4899d8e74097544f0d9812492552ff736cd
@@@ -19,25 -19,6 +19,25 @@@ BNLD_FLAGS = $(LDFLAGS) $(SYS_LDFLAGS
  HOSTCC_FLAGS = -D_SAMBA_HOSTCC_ $(CFLAGS)
  HOSTLD_FLAGS = $(LDFLAGS) $(SYS_LDFLAGS)
  
 +$(srcdir)/version.h: $(srcdir)/VERSION
 +      @$(SHELL) script/mkversion.sh VERSION $(srcdir)/version.h $(srcdir)/
 +
 +.DEFAULT_GOAL := all
 +
 +ifneq ($(automatic_deps),yes)
 +ALL_PREDEP = proto
 +.NOTPARALLEL:
 +endif
 +
 +regen_version::
 +      @$(SHELL) script/mkversion.sh VERSION $(srcdir)/version.h $(srcdir)/
 +
 +clean_pch::
 +      @echo "Removing precompiled headers"
 +      @-rm -f include/includes.h.gch
 +
 +pch:: clean_pch include/includes.h.gch
 +
  .DEFAULT_GOAL := all
  
  ifneq ($(automatic_dependencies),yes)
@@@ -45,12 -26,9 +45,12 @@@ ALL_PREDEP = prot
  .NOTPARALLEL:
  endif
  
 -include rules.mk
 +include build/make/rules.mk
 +include build/make/python.mk
  include data.mk
  
 +BINARIES += $(BIN_PROGS) $(SBIN_PROGS)
 +
  DEP_FILES = $(patsubst %.ho,%.hd,$(patsubst %.o,%.d,$(ALL_OBJS))) \
                   include/includes.d
  
@@@ -77,13 -55,13 +77,13 @@@ endi
  DEFAULT_HEADERS = $(srcdir)/lib/util/dlinklist.h \
                  $(srcdir)/version.h
  
 -binaries::
 +binaries:: $(BINARIES)
  libraries:: $(STATIC_LIBS) $(SHARED_LIBS)
  modules:: $(PLUGINS)
  headers:: $(PUBLIC_HEADERS) $(DEFAULT_HEADERS)
  manpages:: $(MANPAGES)
- all:: showflags $(ALL_PREDEP) bin/asn1_compile bin/compile_et binaries modules pythonmods
- everything:: all libraries headers
+ all:: showflags $(ALL_PREDEP) bin/asn1_compile bin/compile_et binaries modules pythonmods libraries headers
+ everything:: all
  
  LD_LIBPATH_OVERRIDE = $(LIB_PATH_VAR)=$(builddir)/bin/shared
  
diff --combined source4/auth/auth.c
index f5149286b92ee0047777c3d01d73cb7c4852d529,af3796a70d1800d4fcd4530ce2e177ba1d9d58c3..c4cb42779bb685215a8b55493843a58ed9c3b901
  #include "includes.h"
  #include "lib/util/dlinklist.h"
  #include "auth/auth.h"
+ #include "auth/auth_proto.h"
  #include "lib/events/events.h"
 -#include "build.h"
  #include "param/param.h"
  
  /***************************************************************************
   Set a fixed challenge
  ***************************************************************************/
- NTSTATUS auth_context_set_challenge(struct auth_context *auth_ctx, const uint8_t chal[8], const char *set_by) 
_PUBLIC_ NTSTATUS auth_context_set_challenge(struct auth_context *auth_ctx, const uint8_t chal[8], const char *set_by) 
  {
        auth_ctx->challenge.set_by = talloc_strdup(auth_ctx, set_by);
        NT_STATUS_HAVE_NO_MEMORY(auth_ctx->challenge.set_by);
@@@ -145,7 -147,7 +146,7 @@@ static void auth_check_password_sync_ca
   *
   **/
  
- NTSTATUS auth_check_password(struct auth_context *auth_ctx,
_PUBLIC_ NTSTATUS auth_check_password(struct auth_context *auth_ctx,
                             TALLOC_CTX *mem_ctx,
                             const struct auth_usersupplied_info *user_info, 
                             struct auth_serversupplied_info **server_info)
@@@ -217,7 -219,7 +218,7 @@@ static void auth_check_password_async_t
   *
   **/
  
- void auth_check_password_send(struct auth_context *auth_ctx,
_PUBLIC_ void auth_check_password_send(struct auth_context *auth_ctx,
                              const struct auth_usersupplied_info *user_info,
                              void (*callback)(struct auth_check_password_request *req, void *private_data),
                              void *private_data)
@@@ -319,7 -321,7 +320,7 @@@ failed
   *
   **/
  
- NTSTATUS auth_check_password_recv(struct auth_check_password_request *req,
_PUBLIC_ NTSTATUS auth_check_password_recv(struct auth_check_password_request *req,
                                  TALLOC_CTX *mem_ctx,
                                  struct auth_serversupplied_info **server_info)
  {
   Make a auth_info struct for the auth subsystem
   - Allow the caller to specify the methods to use
  ***************************************************************************/
- NTSTATUS auth_context_create_methods(TALLOC_CTX *mem_ctx, const char **methods, 
_PUBLIC_ NTSTATUS auth_context_create_methods(TALLOC_CTX *mem_ctx, const char **methods, 
                                     struct event_context *ev,
                                     struct messaging_context *msg,
                                     struct loadparm_context *lp_ctx,
   Make a auth_info struct for the auth subsystem
   - Uses default auth_methods, depending on server role and smb.conf settings
  ***************************************************************************/
- NTSTATUS auth_context_create(TALLOC_CTX *mem_ctx, 
_PUBLIC_ NTSTATUS auth_context_create(TALLOC_CTX *mem_ctx, 
                             struct event_context *ev,
                             struct messaging_context *msg,
                             struct loadparm_context *lp_ctx,
@@@ -446,7 -448,7 +447,7 @@@ static int num_backends
    The 'name' can be later used by other backends to find the operations
    structure for this backend.
  */
- NTSTATUS auth_register(const struct auth_operations *ops)
_PUBLIC_ NTSTATUS auth_register(const struct auth_operations *ops)
  {
        struct auth_operations *new_ops;
        
@@@ -511,16 -513,11 +512,16 @@@ const struct auth_critical_sizes *auth_
        return &critical_sizes;
  }
  
- NTSTATUS auth_init(void)
_PUBLIC_ NTSTATUS auth_init(void)
  {
        static bool initialized = false;
 +      extern NTSTATUS auth_developer_init(void);
 +      extern NTSTATUS auth_winbind_init(void);
 +      extern NTSTATUS auth_anonymous_init(void);
 +      extern NTSTATUS auth_unix_init(void);
 +      extern NTSTATUS auth_sam_init(void);
  
 -      init_module_fn static_init[] = { STATIC_auth_MODULES };
 +      init_module_fn static_init[] = { STATIC_service_auth_MODULES };
        
        if (initialized) return NT_STATUS_OK;
        initialized = true;
diff --combined source4/auth/config.mk
index b82a1af8fa1048088d9db7f282154e804df5f361,63aec098472fb7c62ce34725df802ca32afc6c72..14f5da0eb706c58ffcc755b176aed820f3e87ac8
@@@ -5,101 -5,96 +5,101 @@@ mkinclude ntlmssp/config.m
  mkinclude credentials/config.mk
  
  [SUBSYSTEM::auth_session]
 -OBJ_FILES = session.o
  PRIVATE_PROTO_HEADER = session_proto.h
  PUBLIC_DEPENDENCIES = CREDENTIALS
  
- PUBLIC_HEADERS += auth/session.h
PUBLIC_HEADERS += auth/session.h
  
 +auth_session_OBJ_FILES = $(addprefix auth/, session.o)
 +
  [SUBSYSTEM::auth_system_session]
 -OBJ_FILES = system_session.o
  PRIVATE_PROTO_HEADER = system_session_proto.h
  PUBLIC_DEPENDENCIES = CREDENTIALS
  PRIVATE_DEPENDENCIES = auth_session LIBSAMBA-UTIL LIBSECURITY 
  
 +auth_system_session_OBJ_FILES = $(addprefix auth/, system_session.o)
 +
  [SUBSYSTEM::auth_sam]
  PRIVATE_PROTO_HEADER = auth_sam.h
 -OBJ_FILES = sam.o ntlm_check.o 
  PUBLIC_DEPENDENCIES = SAMDB UTIL_LDB LIBSECURITY
  PRIVATE_DEPENDENCIES = LDAP_ENCODE
  
 +auth_sam_OBJ_FILES = $(addprefix auth/, sam.o ntlm_check.o)
 +
  [SUBSYSTEM::auth_sam_reply]
  PRIVATE_PROTO_HEADER = auth_sam_reply.h
 -OBJ_FILES = auth_sam_reply.o
 +
 +auth_sam_reply_OBJ_FILES = $(addprefix auth/, auth_sam_reply.o)
  
  #######################
  # Start MODULE auth_sam
  [MODULE::auth_sam_module]
  # gensec_krb5 and gensec_gssapi depend on it
  INIT_FUNCTION = auth_sam_init
 -SUBSYSTEM = auth
 -OBJ_FILES = auth_sam.o
 +SUBSYSTEM = service_auth
  PRIVATE_DEPENDENCIES = \
                SAMDB auth_sam
  # End MODULE auth_sam
  #######################
  
 +auth_sam_module_OBJ_FILES = $(addprefix auth/, auth_sam.o)
 +
  #######################
  # Start MODULE auth_anonymous
  [MODULE::auth_anonymous]
  INIT_FUNCTION = auth_anonymous_init
 -SUBSYSTEM = auth
 -OBJ_FILES = auth_anonymous.o
 +SUBSYSTEM = service_auth
  # End MODULE auth_anonymous
  #######################
  
 +auth_anonymous_OBJ_FILES = $(addprefix auth/, auth_anonymous.o)
 +
  #######################
  # Start MODULE auth_winbind
  [MODULE::auth_winbind]
  INIT_FUNCTION = auth_winbind_init
 -SUBSYSTEM = auth
 -OBJ_FILES = auth_winbind.o
 +SUBSYSTEM = service_auth
  PRIVATE_DEPENDENCIES = NDR_WINBIND MESSAGING LIBWINBIND-CLIENT
  # End MODULE auth_winbind
  #######################
  
 +auth_winbind_OBJ_FILES = $(addprefix auth/, auth_winbind.o)
 +
  #######################
  # Start MODULE auth_developer
  [MODULE::auth_developer]
  INIT_FUNCTION = auth_developer_init
 -SUBSYSTEM = auth
 -OBJ_FILES = auth_developer.o
 +SUBSYSTEM = service_auth
  # End MODULE auth_developer
  #######################
  
 +auth_developer_OBJ_FILES = $(addprefix auth/, auth_developer.o)
 +
  [MODULE::auth_unix]
  INIT_FUNCTION = auth_unix_init
 -SUBSYSTEM = auth
 -OBJ_FILES = auth_unix.o
 +SUBSYSTEM = service_auth
  PRIVATE_DEPENDENCIES = CRYPT PAM PAM_ERRORS NSS_WRAPPER
  
 +auth_unix_OBJ_FILES = $(addprefix auth/, auth_unix.o)
 +
  [SUBSYSTEM::PAM_ERRORS]
  PRIVATE_PROTO_HEADER = pam_errors.h
 -OBJ_FILES = pam_errors.o
  
 -#######################
 -# Start SUBSYSTEM auth
 -[SUBSYSTEM::auth]
 -#VERSION = 0.0.1
 -#SO_VERSION = 0
 +PAM_ERRORS_OBJ_FILES = $(addprefix auth/, pam_errors.o)
 +
 +[MODULE::service_auth]
 +INIT_FUNCTION = server_service_auth_init
 +SUBSYSTEM = smbd
  PRIVATE_PROTO_HEADER = auth_proto.h
 -OBJ_FILES = \
 -              auth.o \
 -              auth_util.o \
 -              auth_simple.o
 -PUBLIC_DEPENDENCIES = LIBSECURITY SAMDB CREDENTIALS
 -PRIVATE_DEPENDENCIES = LIBSAMBA-UTIL
 -# End SUBSYSTEM auth
 -#######################
 +PRIVATE_DEPENDENCIES = LIBSAMBA-UTIL LIBSECURITY SAMDB CREDENTIALS 
 +
 +service_auth_OBJ_FILES = $(addprefix auth/, auth.o auth_util.o auth_simple.o)
  
- PUBLIC_HEADERS += auth/auth.h
PUBLIC_HEADERS += auth/auth.h
  
  [PYTHON::swig_auth]
  PUBLIC_DEPENDENCIES = auth_system_session
  PRIVATE_DEPENDENCIES = SAMDB 
  SWIG_FILE = auth.i
 +
 +swig_auth_OBJ_FILES = auth/auth_wrap.o
index d8c02ebea82514a0cbd41639045c3129fd5981d6,83f2f0db93a235c644f21d1d15552d2dddde0e58..6f3ec3997c762e5dc62055c79edd2c5456d93839
@@@ -2,17 -2,18 +2,17 @@@
  # Start SUBSYSTEM CREDENTIALS
  [SUBSYSTEM::CREDENTIALS]
  PRIVATE_PROTO_HEADER = credentials_proto.h
 -OBJ_FILES = credentials.o \
 -              credentials_files.o \
 -              credentials_ntlm.o \
 -              credentials_krb5.o \
 -              ../kerberos/kerberos_util.o
  PUBLIC_DEPENDENCIES = \
                LIBCLI_AUTH SECRETS LIBCRYPTO KERBEROS UTIL_LDB HEIMDAL_GSSAPI 
  PRIVATE_DEPENDENCIES = \
                SECRETS
  
- PUBLIC_HEADERS += $(addprefix auth/credentials/, credentials.h credentials_krb5.h)
 +CREDENTIALS_OBJ_FILES = $(addprefix auth/credentials/, credentials.o credentials_files.o credentials_ntlm.o credentials_krb5.o ../kerberos/kerberos_util.o)
 +
+ PUBLIC_HEADERS += auth/credentials/credentials.h
  
  [PYTHON::swig_credentials]
  PUBLIC_DEPENDENCIES = CREDENTIALS LIBCMDLINE_CREDENTIALS
  SWIG_FILE = credentials.i
 +
 +swig_credentials_OBJ_FILES = auth/credentials/credentials_wrap.o
index 243725b235dd431473e5695097512ae474cde056,14864f7e4c594d7d16c77f4772330fe3158a7fa6..61663d96336506608a6935339fc46f1bfa457589
@@@ -1,53 -1,48 +1,53 @@@
  #################################
  # Start SUBSYSTEM gensec
  [LIBRARY::gensec]
 -PC_FILE = gensec.pc
 -VERSION = 0.0.1
 -SO_VERSION = 0
  PRIVATE_PROTO_HEADER = gensec_proto.h
 -OBJ_FILES = gensec.o socket.o
  PUBLIC_DEPENDENCIES = \
                CREDENTIALS LIBSAMBA-UTIL LIBCRYPTO ASN1_UTIL samba-socket LIBPACKET
  # End SUBSYSTEM gensec
  #################################
  
- PUBLIC_HEADERS += $(addprefix auth/gensec/, gensec.h spnego.h)
 +PC_FILES += auth/gensec/gensec.pc
 +
 +gensec_VERSION = 0.0.1
 +gensec_SOVERSION = 0
 +gensec_OBJ_FILES = $(addprefix auth/gensec/, gensec.o socket.o)
 +
+ PUBLIC_HEADERS += auth/gensec/gensec.h
  
  ################################################
  # Start MODULE gensec_krb5
  [MODULE::gensec_krb5]
  SUBSYSTEM = gensec
  INIT_FUNCTION = gensec_krb5_init
 -OBJ_FILES = gensec_krb5.o 
 -PRIVATE_DEPENDENCIES = CREDENTIALS KERBEROS auth auth_sam
 +PRIVATE_DEPENDENCIES = CREDENTIALS KERBEROS service_auth auth_sam
  # End MODULE gensec_krb5
  ################################################
  
 +gensec_krb5_OBJ_FILES = $(addprefix auth/gensec/, gensec_krb5.o)
 +
  ################################################
  # Start MODULE gensec_gssapi
  [MODULE::gensec_gssapi]
  SUBSYSTEM = gensec
  INIT_FUNCTION = gensec_gssapi_init
 -OBJ_FILES = gensec_gssapi.o 
  PRIVATE_DEPENDENCIES = HEIMDAL_GSSAPI CREDENTIALS KERBEROS 
  # End MODULE gensec_gssapi
  ################################################
  
 +gensec_gssapi_OBJ_FILES = $(addprefix auth/gensec/, gensec_gssapi.o)
 +
  ################################################
  # Start MODULE cyrus_sasl
  [MODULE::cyrus_sasl]
  SUBSYSTEM = gensec
  INIT_FUNCTION = gensec_sasl_init
 -OBJ_FILES = cyrus_sasl.o 
  PRIVATE_DEPENDENCIES = CREDENTIALS SASL 
  # End MODULE cyrus_sasl
  ################################################
  
 +cyrus_sasl_OBJ_FILES = $(addprefix auth/gensec/, cyrus_sasl.o)
 +
  ################################################
  # Start MODULE gensec_spnego
  [MODULE::gensec_spnego]
@@@ -55,31 -50,31 +55,31 @@@ SUBSYSTEM = gense
  INIT_FUNCTION = gensec_spnego_init
  PRIVATE_PROTO_HEADER = spnego_proto.h
  PRIVATE_DEPENDENCIES = ASN1_UTIL CREDENTIALS
 -OBJ_FILES = spnego.o spnego_parse.o
  # End MODULE gensec_spnego
  ################################################
  
 +gensec_spnego_OBJ_FILES = $(addprefix auth/gensec/, spnego.o spnego_parse.o)
 +
  ################################################
  # Start MODULE gensec_schannel
  [MODULE::gensec_schannel]
  SUBSYSTEM = gensec
  PRIVATE_PROTO_HEADER = schannel_proto.h
  INIT_FUNCTION = gensec_schannel_init
 -OBJ_FILES = schannel.o \
 -                      schannel_sign.o
  PRIVATE_DEPENDENCIES = SCHANNELDB NDR_SCHANNEL CREDENTIALS LIBNDR
  OUTPUT_TYPE = MERGED_OBJ
  # End MODULE gensec_schannel
  ################################################
  
 +gensec_schannel_OBJ_FILES = $(addprefix auth/gensec/, schannel.o schannel_sign.o)
 +
  ################################################
  # Start SUBSYSTEM SCHANNELDB
  [SUBSYSTEM::SCHANNELDB]
  PRIVATE_PROTO_HEADER = schannel_state.h
 -OBJ_FILES = \
 -              schannel_state.o
  PRIVATE_DEPENDENCIES = LDB_WRAP SAMDB
 -#
  # End SUBSYSTEM SCHANNELDB
  ################################################
  
 +SCHANNELDB_OBJ_FILES = $(addprefix auth/gensec/, schannel_state.o)
 +
index b07a92d4d1cf03001191976dee14dbcecea19485,59c19b96abdd1de0698110bf21901523b4db4d16..3393ce01784b0f9e85d75e815a4c5c436c033cd9
  #include "includes.h"
  #include "auth/auth.h"
  #include "lib/events/events.h"
 -#include "build.h"
  #include "librpc/rpc/dcerpc.h"
  #include "auth/credentials/credentials.h"
  #include "auth/gensec/gensec.h"
+ #include "auth/gensec/gensec_proto.h"
  #include "param/param.h"
  
  /* the list of currently registered GENSEC backends */
@@@ -34,7 -36,7 +35,7 @@@ static int gensec_num_backends
  
  /* Return all the registered mechs.  Don't modify the return pointer,
   * but you may talloc_reference it if convient */
- struct gensec_security_ops **gensec_security_all(void)
_PUBLIC_ struct gensec_security_ops **gensec_security_all(void)
  {
        return generic_security_ops;
  }
@@@ -44,7 -46,7 +45,7 @@@
   * gensec_security_all(), or from cli_credentials_gensec_list() (ie,
   * an existing list we have trimmed down) */
  
- struct gensec_security_ops **gensec_use_kerberos_mechs(TALLOC_CTX *mem_ctx, 
_PUBLIC_ struct gensec_security_ops **gensec_use_kerberos_mechs(TALLOC_CTX *mem_ctx, 
                                                       struct gensec_security_ops **old_gensec_list, 
                                                       struct cli_credentials *creds)
  {
@@@ -571,7 -573,7 +572,7 @@@ _PUBLIC_ NTSTATUS gensec_client_start(T
    @param gensec_security Returned GENSEC context pointer.
    @note  The mem_ctx is only a parent and may be NULL.
  */
- NTSTATUS gensec_server_start(TALLOC_CTX *mem_ctx, 
_PUBLIC_ NTSTATUS gensec_server_start(TALLOC_CTX *mem_ctx, 
                             struct event_context *ev,
                             struct loadparm_context *lp_ctx,
                             struct messaging_context *msg,
@@@ -636,7 -638,7 +637,7 @@@ static NTSTATUS gensec_start_mech(struc
   * @param auth_level DCERPC auth level 
   */
  
- NTSTATUS gensec_start_mech_by_authtype(struct gensec_security *gensec_security, 
_PUBLIC_ NTSTATUS gensec_start_mech_by_authtype(struct gensec_security *gensec_security, 
                                       uint8_t auth_type, uint8_t auth_level) 
  {
        gensec_security->ops = gensec_security_by_authtype(gensec_security, auth_type);
        return gensec_start_mech(gensec_security);
  }
  
- const char *gensec_get_name_by_authtype(uint8_t authtype) 
_PUBLIC_ const char *gensec_get_name_by_authtype(uint8_t authtype) 
  {
        const struct gensec_security_ops *ops;
        ops = gensec_security_by_authtype(NULL, authtype);
  }
        
  
- const char *gensec_get_name_by_oid(const char *oid_string) 
_PUBLIC_ const char *gensec_get_name_by_oid(const char *oid_string) 
  {
        const struct gensec_security_ops *ops;
        ops = gensec_security_by_oid(NULL, oid_string);
@@@ -703,7 -705,7 +704,7 @@@ NTSTATUS gensec_start_mech_by_ops(struc
   *       well-known #define to hook it in.
   */
  
- NTSTATUS gensec_start_mech_by_oid(struct gensec_security *gensec_security, 
_PUBLIC_ NTSTATUS gensec_start_mech_by_oid(struct gensec_security *gensec_security, 
                                  const char *mech_oid) 
  {
        gensec_security->ops = gensec_security_by_oid(gensec_security, mech_oid);
   *
   */
  
- NTSTATUS gensec_start_mech_by_sasl_name(struct gensec_security *gensec_security, 
_PUBLIC_ NTSTATUS gensec_start_mech_by_sasl_name(struct gensec_security *gensec_security, 
                                        const char *sasl_name) 
  {
        gensec_security->ops = gensec_security_by_sasl_name(gensec_security, sasl_name);
@@@ -768,7 -770,7 +769,7 @@@ _PUBLIC_ NTSTATUS gensec_start_mech_by_
   *
   */
  
- NTSTATUS gensec_start_mech_by_name(struct gensec_security *gensec_security, 
_PUBLIC_ NTSTATUS gensec_start_mech_by_name(struct gensec_security *gensec_security, 
                                        const char *name) 
  {
        gensec_security->ops = gensec_security_by_name(gensec_security, name);
  /*
    wrappers for the gensec function pointers
  */
- NTSTATUS gensec_unseal_packet(struct gensec_security *gensec_security, 
_PUBLIC_ NTSTATUS gensec_unseal_packet(struct gensec_security *gensec_security, 
                              TALLOC_CTX *mem_ctx, 
                              uint8_t *data, size_t length, 
                              const uint8_t *whole_pdu, size_t pdu_length, 
                                                   sig);
  }
  
- NTSTATUS gensec_check_packet(struct gensec_security *gensec_security, 
_PUBLIC_ NTSTATUS gensec_check_packet(struct gensec_security *gensec_security, 
                             TALLOC_CTX *mem_ctx, 
                             const uint8_t *data, size_t length, 
                             const uint8_t *whole_pdu, size_t pdu_length, 
        return gensec_security->ops->check_packet(gensec_security, mem_ctx, data, length, whole_pdu, pdu_length, sig);
  }
  
- NTSTATUS gensec_seal_packet(struct gensec_security *gensec_security, 
_PUBLIC_ NTSTATUS gensec_seal_packet(struct gensec_security *gensec_security, 
                            TALLOC_CTX *mem_ctx, 
                            uint8_t *data, size_t length, 
                            const uint8_t *whole_pdu, size_t pdu_length, 
        return gensec_security->ops->seal_packet(gensec_security, mem_ctx, data, length, whole_pdu, pdu_length, sig);
  }
  
- NTSTATUS gensec_sign_packet(struct gensec_security *gensec_security, 
_PUBLIC_ NTSTATUS gensec_sign_packet(struct gensec_security *gensec_security, 
                            TALLOC_CTX *mem_ctx, 
                            const uint8_t *data, size_t length, 
                            const uint8_t *whole_pdu, size_t pdu_length, 
        return gensec_security->ops->sign_packet(gensec_security, mem_ctx, data, length, whole_pdu, pdu_length, sig);
  }
  
- size_t gensec_sig_size(struct gensec_security *gensec_security, size_t data_size) 
_PUBLIC_ size_t gensec_sig_size(struct gensec_security *gensec_security, size_t data_size) 
  {
        if (!gensec_security->ops->sig_size) {
                return 0;
@@@ -879,7 -881,7 +880,7 @@@ size_t gensec_max_input_size(struct gen
        return gensec_security->ops->max_input_size(gensec_security);
  }
  
- NTSTATUS gensec_wrap(struct gensec_security *gensec_security, 
_PUBLIC_ NTSTATUS gensec_wrap(struct gensec_security *gensec_security, 
                     TALLOC_CTX *mem_ctx, 
                     const DATA_BLOB *in, 
                     DATA_BLOB *out) 
        return gensec_security->ops->wrap(gensec_security, mem_ctx, in, out);
  }
  
- NTSTATUS gensec_unwrap(struct gensec_security *gensec_security, 
_PUBLIC_ NTSTATUS gensec_unwrap(struct gensec_security *gensec_security, 
                       TALLOC_CTX *mem_ctx, 
                       const DATA_BLOB *in, 
                       DATA_BLOB *out) 
        return gensec_security->ops->unwrap(gensec_security, mem_ctx, in, out);
  }
  
- NTSTATUS gensec_session_key(struct gensec_security *gensec_security, 
_PUBLIC_ NTSTATUS gensec_session_key(struct gensec_security *gensec_security, 
                            DATA_BLOB *session_key)
  {
        if (!gensec_security->ops->session_key) {
   *
   */
  
- NTSTATUS gensec_session_info(struct gensec_security *gensec_security, 
_PUBLIC_ NTSTATUS gensec_session_info(struct gensec_security *gensec_security, 
                             struct auth_session_info **session_info)
  {
        if (!gensec_security->ops->session_info) {
@@@ -1064,7 -1066,7 +1065,7 @@@ _PUBLIC_ NTSTATUS gensec_set_credential
   *
   */
  
- struct cli_credentials *gensec_get_credentials(struct gensec_security *gensec_security) 
_PUBLIC_ struct cli_credentials *gensec_get_credentials(struct gensec_security *gensec_security) 
  {
        if (!gensec_security) {
                return NULL;
@@@ -1134,7 -1136,7 +1135,7 @@@ _PUBLIC_ const char *gensec_get_target_
   * cryptographic tokens, to avoid certain attacks.
   */
  
- NTSTATUS gensec_set_my_addr(struct gensec_security *gensec_security, struct socket_address *my_addr) 
_PUBLIC_ NTSTATUS gensec_set_my_addr(struct gensec_security *gensec_security, struct socket_address *my_addr) 
  {
        gensec_security->my_addr = my_addr;
        if (my_addr && !talloc_reference(gensec_security, my_addr)) {
        return NT_STATUS_OK;
  }
  
- NTSTATUS gensec_set_peer_addr(struct gensec_security *gensec_security, struct socket_address *peer_addr) 
_PUBLIC_ NTSTATUS gensec_set_peer_addr(struct gensec_security *gensec_security, struct socket_address *peer_addr) 
  {
        gensec_security->peer_addr = peer_addr;
        if (peer_addr && !talloc_reference(gensec_security, peer_addr)) {
@@@ -1163,7 -1165,7 +1164,7 @@@ struct socket_address *gensec_get_my_ad
        return NULL;
  }
  
- struct socket_address *gensec_get_peer_addr(struct gensec_security *gensec_security) 
_PUBLIC_ struct socket_address *gensec_get_peer_addr(struct gensec_security *gensec_security) 
  {
        if (gensec_security->peer_addr) {
                return gensec_security->peer_addr;
@@@ -1263,15 -1265,9 +1264,15 @@@ static int sort_gensec(struct gensec_se
  /*
    initialise the GENSEC subsystem
  */
- NTSTATUS gensec_init(struct loadparm_context *lp_ctx)
_PUBLIC_ NTSTATUS gensec_init(struct loadparm_context *lp_ctx)
  {
        static bool initialized = false;
 +      extern NTSTATUS gensec_sasl_init(void);
 +      extern NTSTATUS gensec_krb5_init(void);
 +      extern NTSTATUS gensec_schannel_init(void);
 +      extern NTSTATUS gensec_spnego_init(void);
 +      extern NTSTATUS gensec_gssapi_init(void);
 +      extern NTSTATUS gensec_ntlmssp_init(void);
  
        init_module_fn static_init[] = { STATIC_gensec_MODULES };
        init_module_fn *shared_init;
index 3ff9f2b933a65dbf1290bfa3d61beb0737560337,5f91f8132e98cab1d9b22f3d22e8b3f8125747d1..faefb4e323ea2604e428802cb04c7ffb7df0ca70
@@@ -1,6 -1,3 +1,6 @@@
 +# Rules file for Samba 4
 +# This relies on GNU make.
 +#
  # Dependencies command
  DEPENDS = $(CC) -M -MG -MP -MT $(<:.c=.o) -MT $@ \
      $(CFLAGS) $(CPPFLAGS) $< -o $@
@@@ -29,14 -26,22 +29,14 @@@ PCHCOMPILE = @$(CC) -Ilib/replace 
  # Partial linking
  PARTLINK = @$(PROG_LD) -r
  
 +make_utility_dir = $(srcdir)/build/make/
 +
  include/config.h:
        @echo "include/config.h not present"
        @echo "You need to rerun ./autogen.sh and ./configure"
        @/bin/false
  
 -$(srcdir)/version.h: $(srcdir)/VERSION
 -      @$(SHELL) script/mkversion.sh VERSION $(srcdir)/version.h $(srcdir)/
 -
 -regen_version::
 -      @$(SHELL) script/mkversion.sh VERSION $(srcdir)/version.h $(srcdir)/
 -
 -clean_pch::
 -      @echo "Removing precompiled headers"
 -      @-rm -f include/includes.h.gch
 -
 -pch:: clean_pch include/includes.h.gch
 +pch::
  
  clean:: clean_pch
        @echo Removing objects
@@@ -46,7 -51,7 +46,7 @@@
        @echo Removing binaries
        @-rm -f $(BIN_PROGS) $(SBIN_PROGS) $(BINARIES) $(TORTURE_PROGS)
        @echo Removing libraries
 -      @-rm -f $(STATIC_LIBRARIES) $(SHARED_LIBRARIES)
 +      @-rm -f $(STATIC_LIBS) $(SHARED_LIBS)
        @-rm -f bin/static/*.a bin/shared/*.$(SHLIBEXT) bin/mergedobj/*.o
        @echo Removing modules
        @-rm -f bin/modules/*/*.$(SHLIBEXT)
@@@ -88,103 -93,6 +88,103 @@@ unused_macros
        @mkdir -p $(@D)
        @$(STLD) $(STLD_FLAGS) $@ $^
  
-       @$$(PERL) $$(srcdir)/script/mkproto.pl --srcdir=$$(srcdir) --builddir=$$(builddir) --all=$$@ $$^
 +###############################################################################
 +# Templates
 +###############################################################################
 +
 +# Partially link
 +# Arguments: target object file, source object files
 +define partial_link_template 
 +$(1): $(2) ;
 +      @echo Partially linking $$@
 +      @mkdir -p $$(@D)
 +      $$(PARTLINK) -o $$@ $$^
 +endef
 +
 +# Link a binary
 +# Arguments: target file, depends, flags
 +define binary_link_template
 +$(1): $(2) ;
 +      @echo Linking $$@
 +      @$$(BNLD) $$(BNLD_FLAGS) $$(INTERN_LDFLAGS) -o $$@ $$(INSTALL_LINK_FLAGS) $(3)
 +endef
 +
 +# Link a host-machine binary
 +# Arguments: target file, depends, flags
 +define host_binary_link_template
 +$(1): $(2) ;
 +      @echo Linking $$@
 +      @$$(HOSTLD) $$(HOSTLD_FLAGS) -L$${builddir}/bin/static -o $$@ $$(INSTALL_LINK_FLAGS) $(3)
 +endef
 +
 +# Create a prototype header
 +# Arguments: header file, c files
 +define proto_header_template
 +$(1): $(2) ;
 +      @echo "Creating $$@"
++      @$$(PERL) $$(srcdir)/script/mkproto.pl --srcdir=$$(srcdir) --builddir=$$(builddir) --public=/dev/null --private=$$@ $$^
 +endef
 +
 +# Shared module
 +# Arguments: Target, dependencies, objects
 +define shared_module_template
 +
 +$(1): $(2) ;
 +      @echo Linking $$@
 +      @mkdir -p $$(@D)
 +      @$$(MDLD) $$(LDFLAGS) $$(MDLD_FLAGS) $$(INTERN_LDFLAGS) -o $$@ $$(INSTALL_LINK_FLAGS) $(3)
 +
 +endef
 +
 +# Shared library
 +# Arguments: Target, dependencies, link flags, soname
 +define shared_library_template
 +$(1): $(2)
 +      @echo Linking $$@
 +      @mkdir -p $$(@D)
 +      @$$(SHLD) $$(LDFLAGS) $$(SHLD_FLAGS) $$(INTERN_LDFLAGS) -o $$@ $$(INSTALL_LINK_FLAGS) \
 +              $(3) \
 +              $$(if $$(SONAMEFLAG), $$(SONAMEFLAG)$(notdir $(4)))
 +
 +ifneq ($(notdir $(1)),$(notdir $(4)))
 +$(4): $(1)
 +      @echo "Creating symbolic link for $$@"
 +      @ln -fs $$(<F) $$@
 +endif
 +
 +ifneq ($(notdir $(1)),$(notdir $(5)))
 +$(5): $(1)
 +      @echo "Creating symbolic link for $$@"
 +      @ln -fs $$(<F) $$@
 +endif
 +endef
 +
 +# Shared alias
 +# Arguments: Target, subsystem name, alias name
 +define shared_module_alias_template
 +bin/modules/$(2)/$(3).$$(SHLIBEXT): $(1)
 +      @ln -fs $$(<F) $$@
 +
 +PLUGINS += bin/modules/$(2)/$(3).$$(SHLIBEXT)
 +
 +uninstallplugins::
 +      @-rm $$(DESTDIR)$$(modulesdir)/$(2)/$(3).$$(SHLIBEXT)
 +installplugins::
 +      @ln -fs $(1) $$(DESTDIR)$$(modulesdir)/$(2)/$(3).$$(SHLIBEXT)
 +
 +endef
 +
 +define shared_module_install_template
 +installplugins:: bin/modules/$(1)/$(2)
 +      @echo Installing$(2) as $$(DESTDIR)$$(modulesdir)/$(1)/$(2)
 +      @mkdir -p $$(DESTDIR)$$(modulesdir)/$(1)/
 +      @cp bin/modules/$(1)/$(2) $$(DESTDIR)$$(modulesdir)/$(1)/$(2)
 +uninstallplugins::
 +      @echo Uninstalling $$(DESTDIR)$$(modulesdir)/$(1)/$(2)
 +      @-rm $$(DESTDIR)$$(modulesdir)/$(1)/$(2)
 +
 +endef
 +
  ###############################################################################
  # File types
  ###############################################################################
@@@ -211,9 -119,11 +211,9 @@@ include/includes.d: include/includes.
        @echo "Compiling $<"
        @-mkdir -p `dirname $@`
        @$(COMPILE) && exit 0 ; \
 -              echo "The following command failed:" 1>&2;\
 -              $(COMPILE) >/dev/null 2>&1
 +      $(COMPILE) 
  
  
 -#             echo "$(COMPILE)" 1>&2;\
  
  .c.ho:
        @echo "Compiling $< with host compiler"
  
  .y.c:
        @echo "Building $< with $(YACC)"
 -      @-$(srcdir)/script/yacc_compile.sh "$(YACC)" "$<" "$@"
 +      @-$(make_utility_dir)/yacc_compile.sh "$(YACC)" "$<" "$@"
  
  .l.c:
        @echo "Building $< with $(LEX)"
 -      @-$(srcdir)/script/lex_compile.sh "$(LEX)" "$<" "$@"
 +      @-$(make_utility_dir)/script/lex_compile.sh "$(LEX)" "$<" "$@"
 +
 +%.a:
 +      @echo Linking $@
 +      @rm -f $@
 +      @mkdir -p $(@D)
 +      @$(STLD) $(STLD_FLAGS) $@ $^
 +
  
  DOCBOOK_MANPAGE_URL = http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl
  
diff --combined source4/client/config.mk
index 513c05dfb330c7da6f52e9ac6747516c97d8c149,2085faf61e7e3b128989db44cb2bd2a31975fac8..5cfa542fbab3a3fde5da644256cece54606d09d6
@@@ -4,8 -4,10 +4,8 @@@
  # Start BINARY smbclient
  [BINARY::smbclient]
  INSTALLDIR = BINDIR
 -OBJ_FILES = \
 -              client.o
  PRIVATE_DEPENDENCIES = \
-               LIBSAMBA-CONFIG \
+               LIBSAMBA-HOSTCONFIG \
                SMBREADLINE \
                LIBSAMBA-UTIL \
                LIBCLI_SMB \
  # End BINARY smbclient
  #################################
  
 +smbclient_OBJ_FILES = client/client.o
 +
  #################################
  # Start BINARY cifsdd
  [BINARY::cifsdd]
  INSTALLDIR = BINDIR
 -OBJ_FILES = \
 -              cifsdd.o \
 -              cifsddio.o
  PRIVATE_DEPENDENCIES = \
-               LIBSAMBA-CONFIG \
+               LIBSAMBA-HOSTCONFIG \
                LIBCLI_SMB \
                LIBPOPT \
                POPT_SAMBA \
@@@ -33,4 -36,3 +33,4 @@@
  # End BINARY sdd
  #################################
  
 +cifsdd_OBJ_FILES = client/cifsdd.o client/cifsddio.o
diff --combined source4/dsdb/config.mk
index 7e943c363401ed60890143207a243f0d4954cf85,1a20add91c4ad4869bc12fe7a0a25efecd05c6b4..e621391617609b1c89754a6b66caca58a4f298ac
@@@ -10,52 -10,48 +10,52 @@@ PUBLIC_DEPENDENCIES = HEIMDAL_KRB
  PRIVATE_DEPENDENCIES = LIBNDR NDR_MISC NDR_DRSUAPI NDR_DRSBLOBS NSS_WRAPPER \
                                           auth_system_session LDAP_ENCODE LIBCLI_AUTH LIBNDR \
                                           SAMDB_SCHEMA LDB_WRAP SAMDB_COMMON
 -OBJ_FILES = \
 +
 +
 +SAMDB_OBJ_FILES = $(addprefix dsdb/, \
                samdb/samdb.o \
                samdb/samdb_privilege.o \
                samdb/cracknames.o \
 -              repl/replicated_objects.o
 -
 +              repl/replicated_objects.o)
  
- PUBLIC_HEADERS += dsdb/samdb/samdb.h
PUBLIC_HEADERS += dsdb/samdb/samdb.h
  
  [SUBSYSTEM::SAMDB_COMMON]
  PRIVATE_PROTO_HEADER = common/proto.h
  PRIVATE_DEPENDENCIES = LIBLDB
 -OBJ_FILES = \
 -              common/sidmap.o \
 -              common/flag_mapping.o \
 -              common/util.o
 +
 +SAMDB_COMMON_OBJ_FILES = $(addprefix dsdb/common/, \
 +              sidmap.o \
 +              flag_mapping.o \
 +              util.o)
  
  [SUBSYSTEM::SAMDB_SCHEMA]
  PRIVATE_PROTO_HEADER = schema/proto.h
  PRIVATE_DEPENDENCIES = SAMDB_COMMON NDR_DRSUAPI NDR_DRSBLOBS
 -OBJ_FILES = \
 -              schema/schema_init.o \
 -              schema/schema_syntax.o \
 -              schema/schema_constructed.o \
  
 +SAMDB_SCHEMA_OBJ_FILES = $(addprefix dsdb/schema/, \
 +              schema_init.o \
 +              schema_syntax.o \
 +              schema_constructed.o)
  
- PUBLIC_HEADERS += dsdb/schema/schema.h
PUBLIC_HEADERS += dsdb/schema/schema.h
  
  #######################
  # Start SUBSYSTEM DREPL_SRV
  [MODULE::DREPL_SRV]
  INIT_FUNCTION = server_service_drepl_init
 -SUBSYSTEM = service
 -OBJ_FILES = \
 -              repl/drepl_service.o \
 -              repl/drepl_periodic.o \
 -              repl/drepl_partitions.o \
 -              repl/drepl_out_pull.o \
 -              repl/drepl_out_helpers.o
 +SUBSYSTEM = smbd
  PRIVATE_PROTO_HEADER = repl/drepl_service_proto.h
  PRIVATE_DEPENDENCIES = \
                SAMDB \
                process_model 
  # End SUBSYSTEM DREPL_SRV
  #######################
 +
 +DREPL_SRV_OBJ_FILES = $(addprefix dsdb/repl/, \
 +              drepl_service.o \
 +              drepl_periodic.o \
 +              drepl_partitions.o \
 +              drepl_out_pull.o \
 +              drepl_out_helpers.o)
 +
index d58d06f909b808857cca81b50fc7968f853b0c6a,24d50acb056f0aa05f252c56c46699aa99603710..33d2edb67bdb7e30c135249d27d720606f53420a
  # Start SUBSYSTEM HEIMDAL_KDC
  [SUBSYSTEM::HEIMDAL_KDC]
  CFLAGS = -Iheimdal_build -Iheimdal/kdc
 -OBJ_FILES = \
 -      ../heimdal/kdc/default_config.o \
 -      ../heimdal/kdc/kerberos5.o \
 -      ../heimdal/kdc/krb5tgs.o \
 -      ../heimdal/kdc/pkinit.o \
 -      ../heimdal/kdc/log.o \
 -      ../heimdal/kdc/misc.o \
 -      ../heimdal/kdc/524.o \
 -      ../heimdal/kdc/kerberos4.o \
 -      ../heimdal/kdc/kaserver.o \
 -      ../heimdal/kdc/digest.o \
 -      ../heimdal/kdc/process.o \
 -      ../heimdal/kdc/windc.o \
 -      ../heimdal/kdc/kx509.o
  PRIVATE_DEPENDENCIES = HEIMDAL_ROKEN HEIMDAL_KRB5 HEIMDAL_HDB HEIMDAL_HEIM_ASN1 HEIMDAL_DIGEST_ASN1 HEIMDAL_KX509_ASN1
  PUBLIC_DEPENDENCIES = HEIMDAL_NTLM HEIMDAL_HCRYPTO
  # End SUBSYSTEM HEIMDAL_KDC
  #######################
  
 +HEIMDAL_KDC_OBJ_FILES = \
 +      ./heimdal/kdc/default_config.o \
 +      ./heimdal/kdc/kerberos5.o \
 +      ./heimdal/kdc/krb5tgs.o \
 +      ./heimdal/kdc/pkinit.o \
 +      ./heimdal/kdc/log.o \
 +      ./heimdal/kdc/misc.o \
 +      ./heimdal/kdc/524.o \
 +      ./heimdal/kdc/kerberos4.o \
 +      ./heimdal/kdc/kaserver.o \
 +      ./heimdal/kdc/digest.o \
 +      ./heimdal/kdc/process.o \
 +      ./heimdal/kdc/windc.o \
 +      ./heimdal/kdc/kx509.o
 +
  [SUBSYSTEM::HEIMDAL_NTLM]
  CFLAGS = -Iheimdal_build -Iheimdal/lib/ntlm
 -OBJ_FILES = \
 -      ../heimdal/lib/ntlm/ntlm.o
  PRIVATE_DEPENDENCIES = HEIMDAL_ROKEN HEIMDAL_HCRYPTO HEIMDAL_KRB5
  
 +HEIMDAL_NTLM_OBJ_FILES = \
 +      ./heimdal/lib/ntlm/ntlm.o
 +
  [SUBSYSTEM::HEIMDAL_HDB_KEYS]
  CFLAGS = -Iheimdal_build -Iheimdal/lib/hdb
 -OBJ_FILES = \
 -      ../heimdal/lib/hdb/keys.o
  PRIVATE_DEPENDENCIES = HEIMDAL_ROKEN HEIMDAL_HCRYPTO HEIMDAL_KRB5 \
                                           HEIMDAL_HDB_ASN1
  
 +HEIMDAL_HDB_KEYS_OBJ_FILES = ./heimdal/lib/hdb/keys.o
 +
  #######################
  # Start SUBSYSTEM HEIMDAL_HDB
  [SUBSYSTEM::HEIMDAL_HDB]
  CFLAGS = -Iheimdal_build -Iheimdal/lib/hdb
 -OBJ_FILES = \
 -      ../heimdal/lib/hdb/db.o \
 -      ../heimdal/lib/hdb/dbinfo.o \
 -      ../heimdal/lib/hdb/hdb.o \
 -      ../heimdal/lib/hdb/ext.o \
 -      ../heimdal/lib/hdb/keytab.o \
 -      ../heimdal/lib/hdb/mkey.o \
 -      ../heimdal/lib/hdb/ndbm.o \
 -      ../heimdal/lib/hdb/hdb_err.o
  PRIVATE_DEPENDENCIES = HDB_LDB HEIMDAL_KRB5 HEIMDAL_HDB_KEYS HEIMDAL_ROKEN HEIMDAL_HCRYPTO HEIMDAL_COM_ERR HEIMDAL_HDB_ASN1
  # End SUBSYSTEM HEIMDAL_HDB
  #######################
  
 +HEIMDAL_HDB_OBJ_FILES = \
 +      ./heimdal/lib/hdb/db.o \
 +      ./heimdal/lib/hdb/dbinfo.o \
 +      ./heimdal/lib/hdb/hdb.o \
 +      ./heimdal/lib/hdb/ext.o \
 +      ./heimdal/lib/hdb/keytab.o \
 +      ./heimdal/lib/hdb/mkey.o \
 +      ./heimdal/lib/hdb/ndbm.o \
 +      ./heimdal/lib/hdb/hdb_err.o
 +
  #######################
  # Start SUBSYSTEM HEIMDAL_GSSAPI
  [SUBSYSTEM::HEIMDAL_GSSAPI]
  CFLAGS = -Iheimdal_build -Iheimdal/lib/gssapi -Iheimdal/lib/gssapi/gssapi -Iheimdal/lib/gssapi/spnego -Iheimdal/lib/gssapi/krb5 -Iheimdal/lib/gssapi/mech
 -OBJ_FILES = \
 -      ../heimdal/lib/gssapi/mech/context.o \
 -      ../heimdal/lib/gssapi/mech/gss_krb5.o \
 -      ../heimdal/lib/gssapi/mech/gss_mech_switch.o \
 -      ../heimdal/lib/gssapi/mech/gss_process_context_token.o \
 -      ../heimdal/lib/gssapi/mech/gss_buffer_set.o \
 -      ../heimdal/lib/gssapi/mech/gss_add_cred.o \
 -      ../heimdal/lib/gssapi/mech/gss_add_oid_set_member.o \
 -      ../heimdal/lib/gssapi/mech/gss_compare_name.o \
 -      ../heimdal/lib/gssapi/mech/gss_release_oid_set.o \
 -      ../heimdal/lib/gssapi/mech/gss_create_empty_oid_set.o \
 -      ../heimdal/lib/gssapi/mech/gss_decapsulate_token.o \
 -      ../heimdal/lib/gssapi/mech/gss_inquire_cred_by_oid.o \
 -      ../heimdal/lib/gssapi/mech/gss_canonicalize_name.o \
 -      ../heimdal/lib/gssapi/mech/gss_inquire_sec_context_by_oid.o \
 -      ../heimdal/lib/gssapi/mech/gss_inquire_names_for_mech.o \
 -      ../heimdal/lib/gssapi/mech/gss_inquire_mechs_for_name.o \
 -      ../heimdal/lib/gssapi/mech/gss_wrap_size_limit.o \
 -      ../heimdal/lib/gssapi/mech/gss_names.o \
 -      ../heimdal/lib/gssapi/mech/gss_verify.o \
 -      ../heimdal/lib/gssapi/mech/gss_display_name.o \
 -      ../heimdal/lib/gssapi/mech/gss_duplicate_oid.o \
 -      ../heimdal/lib/gssapi/mech/gss_display_status.o \
 -      ../heimdal/lib/gssapi/mech/gss_release_buffer.o \
 -      ../heimdal/lib/gssapi/mech/gss_release_oid.o \
 -      ../heimdal/lib/gssapi/mech/gss_test_oid_set_member.o \
 -      ../heimdal/lib/gssapi/mech/gss_release_cred.o \
 -      ../heimdal/lib/gssapi/mech/gss_set_sec_context_option.o \
 -      ../heimdal/lib/gssapi/mech/gss_export_name.o \
 -      ../heimdal/lib/gssapi/mech/gss_seal.o \
 -      ../heimdal/lib/gssapi/mech/gss_acquire_cred.o \
 -      ../heimdal/lib/gssapi/mech/gss_unseal.o \
 -      ../heimdal/lib/gssapi/mech/gss_verify_mic.o \
 -      ../heimdal/lib/gssapi/mech/gss_accept_sec_context.o \
 -      ../heimdal/lib/gssapi/mech/gss_inquire_cred_by_mech.o \
 -      ../heimdal/lib/gssapi/mech/gss_indicate_mechs.o \
 -      ../heimdal/lib/gssapi/mech/gss_delete_sec_context.o \
 -      ../heimdal/lib/gssapi/mech/gss_sign.o \
 -      ../heimdal/lib/gssapi/mech/gss_utils.o \
 -      ../heimdal/lib/gssapi/mech/gss_init_sec_context.o \
 -      ../heimdal/lib/gssapi/mech/gss_oid_equal.o \
 -      ../heimdal/lib/gssapi/mech/gss_oid_to_str.o \
 -      ../heimdal/lib/gssapi/mech/gss_context_time.o \
 -      ../heimdal/lib/gssapi/mech/gss_encapsulate_token.o \
 -      ../heimdal/lib/gssapi/mech/gss_get_mic.o \
 -      ../heimdal/lib/gssapi/mech/gss_import_sec_context.o \
 -      ../heimdal/lib/gssapi/mech/gss_inquire_cred.o \
 -      ../heimdal/lib/gssapi/mech/gss_wrap.o \
 -      ../heimdal/lib/gssapi/mech/gss_import_name.o \
 -      ../heimdal/lib/gssapi/mech/gss_duplicate_name.o \
 -      ../heimdal/lib/gssapi/mech/gss_unwrap.o \
 -      ../heimdal/lib/gssapi/mech/gss_export_sec_context.o \
 -      ../heimdal/lib/gssapi/mech/gss_inquire_context.o \
 -      ../heimdal/lib/gssapi/mech/gss_release_name.o \
 -      ../heimdal/lib/gssapi/mech/gss_set_cred_option.o \
 -      ../heimdal/lib/gssapi/asn1_GSSAPIContextToken.o \
 -      ../heimdal/lib/gssapi/spnego/init_sec_context.o \
 -      ../heimdal/lib/gssapi/spnego/external.o \
 -      ../heimdal/lib/gssapi/spnego/compat.o \
 -      ../heimdal/lib/gssapi/spnego/context_stubs.o \
 -      ../heimdal/lib/gssapi/spnego/cred_stubs.o \
 -      ../heimdal/lib/gssapi/spnego/accept_sec_context.o \
 -      ../heimdal/lib/gssapi/krb5/copy_ccache.o \
 -      ../heimdal/lib/gssapi/krb5/delete_sec_context.o \
 -      ../heimdal/lib/gssapi/krb5/init_sec_context.o \
 -      ../heimdal/lib/gssapi/krb5/context_time.o \
 -      ../heimdal/lib/gssapi/krb5/init.o \
 -      ../heimdal/lib/gssapi/krb5/address_to_krb5addr.o \
 -      ../heimdal/lib/gssapi/krb5/get_mic.o \
 -      ../heimdal/lib/gssapi/krb5/inquire_context.o \
 -      ../heimdal/lib/gssapi/krb5/add_cred.o \
 -      ../heimdal/lib/gssapi/krb5/inquire_cred.o \
 -      ../heimdal/lib/gssapi/krb5/inquire_cred_by_oid.o \
 -      ../heimdal/lib/gssapi/krb5/inquire_cred_by_mech.o \
 -      ../heimdal/lib/gssapi/krb5/inquire_mechs_for_name.o \
 -      ../heimdal/lib/gssapi/krb5/inquire_names_for_mech.o \
 -      ../heimdal/lib/gssapi/krb5/indicate_mechs.o \
 -      ../heimdal/lib/gssapi/krb5/inquire_sec_context_by_oid.o \
 -      ../heimdal/lib/gssapi/krb5/export_sec_context.o \
 -      ../heimdal/lib/gssapi/krb5/import_sec_context.o \
 -      ../heimdal/lib/gssapi/krb5/duplicate_name.o \
 -      ../heimdal/lib/gssapi/krb5/import_name.o \
 -      ../heimdal/lib/gssapi/krb5/compare_name.o \
 -      ../heimdal/lib/gssapi/krb5/export_name.o \
 -      ../heimdal/lib/gssapi/krb5/canonicalize_name.o \
 -      ../heimdal/lib/gssapi/krb5/unwrap.o \
 -      ../heimdal/lib/gssapi/krb5/wrap.o \
 -      ../heimdal/lib/gssapi/krb5/release_name.o \
 -      ../heimdal/lib/gssapi/krb5/cfx.o \
 -      ../heimdal/lib/gssapi/krb5/8003.o \
 -      ../heimdal/lib/gssapi/krb5/arcfour.o \
 -      ../heimdal/lib/gssapi/krb5/encapsulate.o \
 -      ../heimdal/lib/gssapi/krb5/display_name.o \
 -      ../heimdal/lib/gssapi/krb5/sequence.o \
 -      ../heimdal/lib/gssapi/krb5/display_status.o \
 -      ../heimdal/lib/gssapi/krb5/release_buffer.o \
 -      ../heimdal/lib/gssapi/krb5/external.o \
 -      ../heimdal/lib/gssapi/krb5/compat.o \
 -      ../heimdal/lib/gssapi/krb5/acquire_cred.o \
 -      ../heimdal/lib/gssapi/krb5/release_cred.o \
 -      ../heimdal/lib/gssapi/krb5/set_cred_option.o \
 -      ../heimdal/lib/gssapi/krb5/decapsulate.o \
 -      ../heimdal/lib/gssapi/krb5/verify_mic.o \
 -      ../heimdal/lib/gssapi/krb5/accept_sec_context.o \
 -      ../heimdal/lib/gssapi/krb5/set_sec_context_option.o \
 -      ../heimdal/lib/gssapi/krb5/process_context_token.o \
 -      ../heimdal/lib/gssapi/krb5/prf.o
  PRIVATE_DEPENDENCIES = HEIMDAL_HCRYPTO HEIMDAL_HEIM_ASN1 HEIMDAL_SPNEGO_ASN1
  PUBLIC_DEPENDENCIES = HEIMDAL_ROKEN HEIMDAL_KRB5
  # End SUBSYSTEM HEIMDAL_GSSAPI
  #######################
  
 +HEIMDAL_GSSAPI_OBJ_FILES = \
 +      ./heimdal/lib/gssapi/mech/context.o \
 +      ./heimdal/lib/gssapi/mech/gss_krb5.o \
 +      ./heimdal/lib/gssapi/mech/gss_mech_switch.o \
 +      ./heimdal/lib/gssapi/mech/gss_process_context_token.o \
 +      ./heimdal/lib/gssapi/mech/gss_buffer_set.o \
 +      ./heimdal/lib/gssapi/mech/gss_add_cred.o \
 +      ./heimdal/lib/gssapi/mech/gss_add_oid_set_member.o \
 +      ./heimdal/lib/gssapi/mech/gss_compare_name.o \
 +      ./heimdal/lib/gssapi/mech/gss_release_oid_set.o \
 +      ./heimdal/lib/gssapi/mech/gss_create_empty_oid_set.o \
 +      ./heimdal/lib/gssapi/mech/gss_decapsulate_token.o \
 +      ./heimdal/lib/gssapi/mech/gss_inquire_cred_by_oid.o \
 +      ./heimdal/lib/gssapi/mech/gss_canonicalize_name.o \
 +      ./heimdal/lib/gssapi/mech/gss_inquire_sec_context_by_oid.o \
 +      ./heimdal/lib/gssapi/mech/gss_inquire_names_for_mech.o \
 +      ./heimdal/lib/gssapi/mech/gss_inquire_mechs_for_name.o \
 +      ./heimdal/lib/gssapi/mech/gss_wrap_size_limit.o \
 +      ./heimdal/lib/gssapi/mech/gss_names.o \
 +      ./heimdal/lib/gssapi/mech/gss_verify.o \
 +      ./heimdal/lib/gssapi/mech/gss_display_name.o \
 +      ./heimdal/lib/gssapi/mech/gss_duplicate_oid.o \
 +      ./heimdal/lib/gssapi/mech/gss_display_status.o \
 +      ./heimdal/lib/gssapi/mech/gss_release_buffer.o \
 +      ./heimdal/lib/gssapi/mech/gss_release_oid.o \
 +      ./heimdal/lib/gssapi/mech/gss_test_oid_set_member.o \
 +      ./heimdal/lib/gssapi/mech/gss_release_cred.o \
 +      ./heimdal/lib/gssapi/mech/gss_set_sec_context_option.o \
 +      ./heimdal/lib/gssapi/mech/gss_export_name.o \
 +      ./heimdal/lib/gssapi/mech/gss_seal.o \
 +      ./heimdal/lib/gssapi/mech/gss_acquire_cred.o \
 +      ./heimdal/lib/gssapi/mech/gss_unseal.o \
 +      ./heimdal/lib/gssapi/mech/gss_verify_mic.o \
 +      ./heimdal/lib/gssapi/mech/gss_accept_sec_context.o \
 +      ./heimdal/lib/gssapi/mech/gss_inquire_cred_by_mech.o \
 +      ./heimdal/lib/gssapi/mech/gss_indicate_mechs.o \
 +      ./heimdal/lib/gssapi/mech/gss_delete_sec_context.o \
 +      ./heimdal/lib/gssapi/mech/gss_sign.o \
 +      ./heimdal/lib/gssapi/mech/gss_utils.o \
 +      ./heimdal/lib/gssapi/mech/gss_init_sec_context.o \
 +      ./heimdal/lib/gssapi/mech/gss_oid_equal.o \
 +      ./heimdal/lib/gssapi/mech/gss_oid_to_str.o \
 +      ./heimdal/lib/gssapi/mech/gss_context_time.o \
 +      ./heimdal/lib/gssapi/mech/gss_encapsulate_token.o \
 +      ./heimdal/lib/gssapi/mech/gss_get_mic.o \
 +      ./heimdal/lib/gssapi/mech/gss_import_sec_context.o \
 +      ./heimdal/lib/gssapi/mech/gss_inquire_cred.o \
 +      ./heimdal/lib/gssapi/mech/gss_wrap.o \
 +      ./heimdal/lib/gssapi/mech/gss_import_name.o \
 +      ./heimdal/lib/gssapi/mech/gss_duplicate_name.o \
 +      ./heimdal/lib/gssapi/mech/gss_unwrap.o \
 +      ./heimdal/lib/gssapi/mech/gss_export_sec_context.o \
 +      ./heimdal/lib/gssapi/mech/gss_inquire_context.o \
 +      ./heimdal/lib/gssapi/mech/gss_release_name.o \
 +      ./heimdal/lib/gssapi/mech/gss_set_cred_option.o \
 +      ./heimdal/lib/gssapi/asn1_GSSAPIContextToken.o \
 +      ./heimdal/lib/gssapi/spnego/init_sec_context.o \
 +      ./heimdal/lib/gssapi/spnego/external.o \
 +      ./heimdal/lib/gssapi/spnego/compat.o \
 +      ./heimdal/lib/gssapi/spnego/context_stubs.o \
 +      ./heimdal/lib/gssapi/spnego/cred_stubs.o \
 +      ./heimdal/lib/gssapi/spnego/accept_sec_context.o \
 +      ./heimdal/lib/gssapi/krb5/copy_ccache.o \
 +      ./heimdal/lib/gssapi/krb5/delete_sec_context.o \
 +      ./heimdal/lib/gssapi/krb5/init_sec_context.o \
 +      ./heimdal/lib/gssapi/krb5/context_time.o \
 +      ./heimdal/lib/gssapi/krb5/init.o \
 +      ./heimdal/lib/gssapi/krb5/address_to_krb5addr.o \
 +      ./heimdal/lib/gssapi/krb5/get_mic.o \
 +      ./heimdal/lib/gssapi/krb5/inquire_context.o \
 +      ./heimdal/lib/gssapi/krb5/add_cred.o \
 +      ./heimdal/lib/gssapi/krb5/inquire_cred.o \
 +      ./heimdal/lib/gssapi/krb5/inquire_cred_by_oid.o \
 +      ./heimdal/lib/gssapi/krb5/inquire_cred_by_mech.o \
 +      ./heimdal/lib/gssapi/krb5/inquire_mechs_for_name.o \
 +      ./heimdal/lib/gssapi/krb5/inquire_names_for_mech.o \
 +      ./heimdal/lib/gssapi/krb5/indicate_mechs.o \
 +      ./heimdal/lib/gssapi/krb5/inquire_sec_context_by_oid.o \
 +      ./heimdal/lib/gssapi/krb5/export_sec_context.o \
 +      ./heimdal/lib/gssapi/krb5/import_sec_context.o \
 +      ./heimdal/lib/gssapi/krb5/duplicate_name.o \
 +      ./heimdal/lib/gssapi/krb5/import_name.o \
 +      ./heimdal/lib/gssapi/krb5/compare_name.o \
 +      ./heimdal/lib/gssapi/krb5/export_name.o \
 +      ./heimdal/lib/gssapi/krb5/canonicalize_name.o \
 +      ./heimdal/lib/gssapi/krb5/unwrap.o \
 +      ./heimdal/lib/gssapi/krb5/wrap.o \
 +      ./heimdal/lib/gssapi/krb5/release_name.o \
 +      ./heimdal/lib/gssapi/krb5/cfx.o \
 +      ./heimdal/lib/gssapi/krb5/8003.o \
 +      ./heimdal/lib/gssapi/krb5/arcfour.o \
 +      ./heimdal/lib/gssapi/krb5/encapsulate.o \
 +      ./heimdal/lib/gssapi/krb5/display_name.o \
 +      ./heimdal/lib/gssapi/krb5/sequence.o \
 +      ./heimdal/lib/gssapi/krb5/display_status.o \
 +      ./heimdal/lib/gssapi/krb5/release_buffer.o \
 +      ./heimdal/lib/gssapi/krb5/external.o \
 +      ./heimdal/lib/gssapi/krb5/compat.o \
 +      ./heimdal/lib/gssapi/krb5/acquire_cred.o \
 +      ./heimdal/lib/gssapi/krb5/release_cred.o \
 +      ./heimdal/lib/gssapi/krb5/set_cred_option.o \
 +      ./heimdal/lib/gssapi/krb5/decapsulate.o \
 +      ./heimdal/lib/gssapi/krb5/verify_mic.o \
 +      ./heimdal/lib/gssapi/krb5/accept_sec_context.o \
 +      ./heimdal/lib/gssapi/krb5/set_sec_context_option.o \
 +      ./heimdal/lib/gssapi/krb5/process_context_token.o \
 +      ./heimdal/lib/gssapi/krb5/prf.o
 +
 +
  #######################
  # Start SUBSYSTEM HEIMDAL_KRB5
  [SUBSYSTEM::HEIMDAL_KRB5]
  CFLAGS = -Iheimdal_build -Iheimdal/lib/krb5 
  PRIVATE_DEPENDENCIES = HEIMDAL_ROKEN HEIMDAL_PKINIT_ASN1 HEIMDAL_WIND
  PUBLIC_DEPENDENCIES = HEIMDAL_KRB5_ASN1 HEIMDAL_GLUE HEIMDAL_HX509 HEIMDAL_HCRYPTO
 -OBJ_FILES = \
 -      ../heimdal/lib/krb5/acache.o \
 -      ../heimdal/lib/krb5/add_et_list.o \
 -      ../heimdal/lib/krb5/addr_families.o \
 -      ../heimdal/lib/krb5/appdefault.o \
 -      ../heimdal/lib/krb5/asn1_glue.o \
 -      ../heimdal/lib/krb5/auth_context.o \
 -      ../heimdal/lib/krb5/build_ap_req.o \
 -      ../heimdal/lib/krb5/build_auth.o \
 -      ../heimdal/lib/krb5/cache.o \
 -      ../heimdal/lib/krb5/changepw.o \
 -      ../heimdal/lib/krb5/codec.o \
 -      ../heimdal/lib/krb5/config_file.o \
 -      ../heimdal/lib/krb5/config_file_netinfo.o \
 -      ../heimdal/lib/krb5/constants.o \
 -      ../heimdal/lib/krb5/context.o \
 -      ../heimdal/lib/krb5/convert_creds.o \
 -      ../heimdal/lib/krb5/copy_host_realm.o \
 -      ../heimdal/lib/krb5/crc.o \
 -      ../heimdal/lib/krb5/creds.o \
 -      ../heimdal/lib/krb5/crypto.o \
 -      ../heimdal/lib/krb5/data.o \
 -      ../heimdal/lib/krb5/eai_to_heim_errno.o \
 -      ../heimdal/lib/krb5/error_string.o \
 -      ../heimdal/lib/krb5/expand_hostname.o \
 -      ../heimdal/lib/krb5/fcache.o \
 -      ../heimdal/lib/krb5/free.o \
 -      ../heimdal/lib/krb5/free_host_realm.o \
 -      ../heimdal/lib/krb5/generate_seq_number.o \
 -      ../heimdal/lib/krb5/generate_subkey.o \
 -      ../heimdal/lib/krb5/get_cred.o \
 -      ../heimdal/lib/krb5/get_default_principal.o \
 -      ../heimdal/lib/krb5/get_default_realm.o \
 -      ../heimdal/lib/krb5/get_for_creds.o \
 -      ../heimdal/lib/krb5/get_host_realm.o \
 -      ../heimdal/lib/krb5/get_in_tkt.o \
 -      ../heimdal/lib/krb5/get_in_tkt_with_keytab.o \
 -      ../heimdal/lib/krb5/get_port.o \
 -      ../heimdal/lib/krb5/init_creds.o \
 -      ../heimdal/lib/krb5/init_creds_pw.o \
 -      ../heimdal/lib/krb5/kcm.o \
 -      ../heimdal/lib/krb5/keyblock.o \
 -      ../heimdal/lib/krb5/keytab.o \
 -      ../heimdal/lib/krb5/keytab_any.o \
 -      ../heimdal/lib/krb5/keytab_file.o \
 -      ../heimdal/lib/krb5/keytab_memory.o \
 -      ../heimdal/lib/krb5/keytab_keyfile.o \
 -      ../heimdal/lib/krb5/keytab_krb4.o \
 -      ../heimdal/lib/krb5/krbhst.o \
 -      ../heimdal/lib/krb5/log.o \
 -      ../heimdal/lib/krb5/mcache.o \
 -      ../heimdal/lib/krb5/misc.o \
 -      ../heimdal/lib/krb5/mk_error.o \
 -      ../heimdal/lib/krb5/mk_priv.o \
 -      ../heimdal/lib/krb5/mk_rep.o \
 -      ../heimdal/lib/krb5/mk_req.o \
 -      ../heimdal/lib/krb5/mk_req_ext.o \
 -      ../heimdal/lib/krb5/mit_glue.o \
 -      ../heimdal/lib/krb5/n-fold.o \
 -      ../heimdal/lib/krb5/padata.o \
 -      ../heimdal/lib/krb5/pkinit.o \
 -      ../heimdal/lib/krb5/plugin.o \
 -      ../heimdal/lib/krb5/principal.o \
 -      ../heimdal/lib/krb5/pac.o \
 -      ../heimdal/lib/krb5/prompter_posix.o \
 -      ../heimdal/lib/krb5/rd_cred.o \
 -      ../heimdal/lib/krb5/rd_error.o \
 -      ../heimdal/lib/krb5/rd_priv.o \
 -      ../heimdal/lib/krb5/rd_rep.o \
 -      ../heimdal/lib/krb5/rd_req.o \
 -      ../heimdal/lib/krb5/replay.o \
 -      ../heimdal/lib/krb5/send_to_kdc.o \
 -      ../heimdal/lib/krb5/set_default_realm.o \
 -      ../heimdal/lib/krb5/store.o \
 -      ../heimdal/lib/krb5/store_emem.o \
 -      ../heimdal/lib/krb5/store_fd.o \
 -      ../heimdal/lib/krb5/store_mem.o \
 -      ../heimdal/lib/krb5/ticket.o \
 -      ../heimdal/lib/krb5/time.o \
 -      ../heimdal/lib/krb5/transited.o \
 -      ../heimdal/lib/krb5/v4_glue.o \
 -      ../heimdal/lib/krb5/version.o \
 -      ../heimdal/lib/krb5/warn.o \
 -      ../heimdal/lib/krb5/krb5_err.o \
 -      ../heimdal/lib/krb5/heim_err.o \
 -      ../heimdal/lib/krb5/k524_err.o \
 -      ../heimdal/lib/krb5/krb_err.o
  # End SUBSYSTEM HEIMDAL_KRB5
  #######################
  
 +HEIMDAL_KRB5_OBJ_FILES = \
 +      ./heimdal/lib/krb5/acache.o \
 +      ./heimdal/lib/krb5/add_et_list.o \
 +      ./heimdal/lib/krb5/addr_families.o \
 +      ./heimdal/lib/krb5/appdefault.o \
 +      ./heimdal/lib/krb5/asn1_glue.o \
 +      ./heimdal/lib/krb5/auth_context.o \
 +      ./heimdal/lib/krb5/build_ap_req.o \
 +      ./heimdal/lib/krb5/build_auth.o \
 +      ./heimdal/lib/krb5/cache.o \
 +      ./heimdal/lib/krb5/changepw.o \
 +      ./heimdal/lib/krb5/codec.o \
 +      ./heimdal/lib/krb5/config_file.o \
 +      ./heimdal/lib/krb5/config_file_netinfo.o \
 +      ./heimdal/lib/krb5/constants.o \
 +      ./heimdal/lib/krb5/context.o \
 +      ./heimdal/lib/krb5/convert_creds.o \
 +      ./heimdal/lib/krb5/copy_host_realm.o \
 +      ./heimdal/lib/krb5/crc.o \
 +      ./heimdal/lib/krb5/creds.o \
 +      ./heimdal/lib/krb5/crypto.o \
 +      ./heimdal/lib/krb5/data.o \
 +      ./heimdal/lib/krb5/eai_to_heim_errno.o \
 +      ./heimdal/lib/krb5/error_string.o \
 +      ./heimdal/lib/krb5/expand_hostname.o \
 +      ./heimdal/lib/krb5/fcache.o \
 +      ./heimdal/lib/krb5/free.o \
 +      ./heimdal/lib/krb5/free_host_realm.o \
 +      ./heimdal/lib/krb5/generate_seq_number.o \
 +      ./heimdal/lib/krb5/generate_subkey.o \
 +      ./heimdal/lib/krb5/get_cred.o \
 +      ./heimdal/lib/krb5/get_default_principal.o \
 +      ./heimdal/lib/krb5/get_default_realm.o \
 +      ./heimdal/lib/krb5/get_for_creds.o \
 +      ./heimdal/lib/krb5/get_host_realm.o \
 +      ./heimdal/lib/krb5/get_in_tkt.o \
 +      ./heimdal/lib/krb5/get_in_tkt_with_keytab.o \
 +      ./heimdal/lib/krb5/get_port.o \
 +      ./heimdal/lib/krb5/init_creds.o \
 +      ./heimdal/lib/krb5/init_creds_pw.o \
 +      ./heimdal/lib/krb5/kcm.o \
 +      ./heimdal/lib/krb5/keyblock.o \
 +      ./heimdal/lib/krb5/keytab.o \
 +      ./heimdal/lib/krb5/keytab_any.o \
 +      ./heimdal/lib/krb5/keytab_file.o \
 +      ./heimdal/lib/krb5/keytab_memory.o \
 +      ./heimdal/lib/krb5/keytab_keyfile.o \
 +      ./heimdal/lib/krb5/keytab_krb4.o \
 +      ./heimdal/lib/krb5/krbhst.o \
 +      ./heimdal/lib/krb5/log.o \
 +      ./heimdal/lib/krb5/mcache.o \
 +      ./heimdal/lib/krb5/misc.o \
 +      ./heimdal/lib/krb5/mk_error.o \
 +      ./heimdal/lib/krb5/mk_priv.o \
 +      ./heimdal/lib/krb5/mk_rep.o \
 +      ./heimdal/lib/krb5/mk_req.o \
 +      ./heimdal/lib/krb5/mk_req_ext.o \
 +      ./heimdal/lib/krb5/mit_glue.o \
 +      ./heimdal/lib/krb5/n-fold.o \
 +      ./heimdal/lib/krb5/padata.o \
 +      ./heimdal/lib/krb5/pkinit.o \
 +      ./heimdal/lib/krb5/plugin.o \
 +      ./heimdal/lib/krb5/principal.o \
 +      ./heimdal/lib/krb5/pac.o \
 +      ./heimdal/lib/krb5/prompter_posix.o \
 +      ./heimdal/lib/krb5/rd_cred.o \
 +      ./heimdal/lib/krb5/rd_error.o \
 +      ./heimdal/lib/krb5/rd_priv.o \
 +      ./heimdal/lib/krb5/rd_rep.o \
 +      ./heimdal/lib/krb5/rd_req.o \
 +      ./heimdal/lib/krb5/replay.o \
 +      ./heimdal/lib/krb5/send_to_kdc.o \
 +      ./heimdal/lib/krb5/set_default_realm.o \
 +      ./heimdal/lib/krb5/store.o \
 +      ./heimdal/lib/krb5/store_emem.o \
 +      ./heimdal/lib/krb5/store_fd.o \
 +      ./heimdal/lib/krb5/store_mem.o \
 +      ./heimdal/lib/krb5/ticket.o \
 +      ./heimdal/lib/krb5/time.o \
 +      ./heimdal/lib/krb5/transited.o \
 +      ./heimdal/lib/krb5/v4_glue.o \
 +      ./heimdal/lib/krb5/version.o \
 +      ./heimdal/lib/krb5/warn.o \
 +      ./heimdal/lib/krb5/krb5_err.o \
 +      ./heimdal/lib/krb5/heim_err.o \
 +      ./heimdal/lib/krb5/k524_err.o \
 +      ./heimdal/lib/krb5/krb_err.o
 +
  #######################
  # Start SUBSYSTEM HEIMDAL_HEIM_ASN1
  [SUBSYSTEM::HEIMDAL_HEIM_ASN1]
  CFLAGS = -Iheimdal_build -Iheimdal/lib/asn1
 -OBJ_FILES = \
 -      ../heimdal/lib/asn1/der_get.o \
 -      ../heimdal/lib/asn1/der_put.o \
 -      ../heimdal/lib/asn1/der_free.o \
 -      ../heimdal/lib/asn1/der_format.o \
 -      ../heimdal/lib/asn1/der_length.o \
 -      ../heimdal/lib/asn1/der_copy.o \
 -      ../heimdal/lib/asn1/der_cmp.o \
 -      ../heimdal/lib/asn1/extra.o \
 -      ../heimdal/lib/asn1/timegm.o \
 -      ../heimdal/lib/asn1/asn1_err.o
  PRIVATE_DEPENDENCIES = HEIMDAL_ROKEN HEIMDAL_COM_ERR
  # End SUBSYSTEM HEIMDAL_KRB5
  #######################
  
 +HEIMDAL_HEIM_ASN1_OBJ_FILES = \
 +      ./heimdal/lib/asn1/der_get.o \
 +      ./heimdal/lib/asn1/der_put.o \
 +      ./heimdal/lib/asn1/der_free.o \
 +      ./heimdal/lib/asn1/der_format.o \
 +      ./heimdal/lib/asn1/der_length.o \
 +      ./heimdal/lib/asn1/der_copy.o \
 +      ./heimdal/lib/asn1/der_cmp.o \
 +      ./heimdal/lib/asn1/extra.o \
 +      ./heimdal/lib/asn1/timegm.o \
 +      ./heimdal/lib/asn1/asn1_err.o
 +
  #######################
  # Start SUBSYSTEM HEIMDAL_HCRYPTO_IMATH
  [SUBSYSTEM::HEIMDAL_HCRYPTO_IMATH]
  CFLAGS = -Iheimdal_build -Iheimdal/lib/hcrypto/imath 
  PRIVATE_DEPENDENCIES = HEIMDAL_ROKEN 
 -OBJ_FILES = \
 -      ../heimdal/lib/hcrypto/imath/imath.o \
 -      ../heimdal/lib/hcrypto/imath/iprime.o
  # End SUBSYSTEM HEIMDAL_HCRYPTO_IMATH
  #######################
  
 +HEIMDAL_HCRYPTO_IMATH_OBJ_FILES = \
 +      ./heimdal/lib/hcrypto/imath/imath.o \
 +      ./heimdal/lib/hcrypto/imath/iprime.o
 +
  [SUBSYSTEM::HEIMDAL_HCRYPTO]
  CFLAGS = -Iheimdal_build -Iheimdal/lib/hcrypto -Iheimdal/lib
  PRIVATE_DEPENDENCIES = HEIMDAL_ROKEN HEIMDAL_HEIM_ASN1 HEIMDAL_HCRYPTO_IMATH HEIMDAL_RFC2459_ASN1
 -OBJ_FILES = \
 -      ../heimdal/lib/hcrypto/aes.o \
 -      ../heimdal/lib/hcrypto/bn.o \
 -      ../heimdal/lib/hcrypto/dh.o \
 -      ../heimdal/lib/hcrypto/dh-imath.o \
 -      ../heimdal/lib/hcrypto/des.o \
 -      ../heimdal/lib/hcrypto/dsa.o \
 -      ../heimdal/lib/hcrypto/engine.o \
 -      ../heimdal/lib/hcrypto/md2.o \
 -      ../heimdal/lib/hcrypto/md4.o \
 -      ../heimdal/lib/hcrypto/md5.o \
 -      ../heimdal/lib/hcrypto/rsa.o \
 -      ../heimdal/lib/hcrypto/rsa-imath.o \
 -      ../heimdal/lib/hcrypto/rc2.o \
 -      ../heimdal/lib/hcrypto/rc4.o \
 -      ../heimdal/lib/hcrypto/rijndael-alg-fst.o \
 -      ../heimdal/lib/hcrypto/rnd_keys.o \
 -      ../heimdal/lib/hcrypto/sha.o \
 -      ../heimdal/lib/hcrypto/sha256.o \
 -      ../heimdal/lib/hcrypto/ui.o \
 -      ../heimdal/lib/hcrypto/evp.o \
 -      ../heimdal/lib/hcrypto/pkcs5.o \
 -      ../heimdal/lib/hcrypto/pkcs12.o \
 -      ../heimdal/lib/hcrypto/rand.o \
 -      ../heimdal/lib/hcrypto/rand-egd.o \
 -      ../heimdal/lib/hcrypto/rand-unix.o \
 -      ../heimdal/lib/hcrypto/rand-fortuna.o \
 -      ../heimdal/lib/hcrypto/rand-timer.o \
 -      ../heimdal/lib/hcrypto/hmac.o \
 -      ../heimdal/lib/hcrypto/camellia.o \
 -      ../heimdal/lib/hcrypto/camellia-ntt.o
  # End SUBSYSTEM HEIMDAL_HCRYPTO
  #######################
  
 +HEIMDAL_HCRYPTO_OBJ_FILES = \
 +      ./heimdal/lib/hcrypto/aes.o \
 +      ./heimdal/lib/hcrypto/bn.o \
 +      ./heimdal/lib/hcrypto/dh.o \
 +      ./heimdal/lib/hcrypto/dh-imath.o \
 +      ./heimdal/lib/hcrypto/des.o \
 +      ./heimdal/lib/hcrypto/dsa.o \
 +      ./heimdal/lib/hcrypto/engine.o \
 +      ./heimdal/lib/hcrypto/md2.o \
 +      ./heimdal/lib/hcrypto/md4.o \
 +      ./heimdal/lib/hcrypto/md5.o \
 +      ./heimdal/lib/hcrypto/rsa.o \
 +      ./heimdal/lib/hcrypto/rsa-imath.o \
 +      ./heimdal/lib/hcrypto/rc2.o \
 +      ./heimdal/lib/hcrypto/rc4.o \
 +      ./heimdal/lib/hcrypto/rijndael-alg-fst.o \
 +      ./heimdal/lib/hcrypto/rnd_keys.o \
 +      ./heimdal/lib/hcrypto/sha.o \
 +      ./heimdal/lib/hcrypto/sha256.o \
 +      ./heimdal/lib/hcrypto/ui.o \
 +      ./heimdal/lib/hcrypto/evp.o \
 +      ./heimdal/lib/hcrypto/pkcs5.o \
 +      ./heimdal/lib/hcrypto/pkcs12.o \
 +      ./heimdal/lib/hcrypto/rand.o \
 +      ./heimdal/lib/hcrypto/rand-egd.o \
 +      ./heimdal/lib/hcrypto/rand-unix.o \
 +      ./heimdal/lib/hcrypto/rand-fortuna.o \
 +      ./heimdal/lib/hcrypto/rand-timer.o \
 +      ./heimdal/lib/hcrypto/hmac.o \
 +      ./heimdal/lib/hcrypto/camellia.o \
 +      ./heimdal/lib/hcrypto/camellia-ntt.o
 +
  #######################
  # Start SUBSYSTEM HEIMDAL_HX509
  [SUBSYSTEM::HEIMDAL_HX509]
@@@ -351,78 -342,103 +351,78 @@@ PRIVATE_DEPENDENCIES = 
        HEIMDAL_PKCS9_ASN1 HEIMDAL_PKCS12_ASN1 \
        HEIMDAL_PKINIT_ASN1 HEIMDAL_PKCS10_ASN1 \
        HEIMDAL_WIND
 -OBJ_FILES = \
 -      ../heimdal/lib/hx509/ca.o \
 -      ../heimdal/lib/hx509/cert.o \
 -      ../heimdal/lib/hx509/cms.o \
 -      ../heimdal/lib/hx509/collector.o \
 -      ../heimdal/lib/hx509/crypto.o \
 -      ../heimdal/lib/hx509/error.o \
 -      ../heimdal/lib/hx509/env.o \
 -      ../heimdal/lib/hx509/file.o \
 -      ../heimdal/lib/hx509/keyset.o \
 -      ../heimdal/lib/hx509/ks_dir.o \
 -      ../heimdal/lib/hx509/ks_file.o \
 -      ../heimdal/lib/hx509/ks_keychain.o \
 -      ../heimdal/lib/hx509/ks_mem.o \
 -      ../heimdal/lib/hx509/ks_null.o \
 -      ../heimdal/lib/hx509/ks_p11.o \
 -      ../heimdal/lib/hx509/ks_p12.o \
 -      ../heimdal/lib/hx509/lock.o \
 -      ../heimdal/lib/hx509/name.o \
 -      ../heimdal/lib/hx509/peer.o \
 -      ../heimdal/lib/hx509/print.o \
 -      ../heimdal/lib/hx509/req.o \
 -      ../heimdal/lib/hx509/revoke.o \
 -      ../heimdal/lib/hx509/hx509_err.o
  # End SUBSYSTEM HEIMDAL_HX509
  #######################
  
 +HEIMDAL_HX509_OBJ_FILES = \
 +      ./heimdal/lib/hx509/ca.o \
 +      ./heimdal/lib/hx509/cert.o \
 +      ./heimdal/lib/hx509/cms.o \
 +      ./heimdal/lib/hx509/collector.o \
 +      ./heimdal/lib/hx509/crypto.o \
 +      ./heimdal/lib/hx509/error.o \
 +      ./heimdal/lib/hx509/env.o \
 +      ./heimdal/lib/hx509/file.o \
 +      ./heimdal/lib/hx509/keyset.o \
 +      ./heimdal/lib/hx509/ks_dir.o \
 +      ./heimdal/lib/hx509/ks_file.o \
 +      ./heimdal/lib/hx509/ks_keychain.o \
 +      ./heimdal/lib/hx509/ks_mem.o \
 +      ./heimdal/lib/hx509/ks_null.o \
 +      ./heimdal/lib/hx509/ks_p11.o \
 +      ./heimdal/lib/hx509/ks_p12.o \
 +      ./heimdal/lib/hx509/lock.o \
 +      ./heimdal/lib/hx509/name.o \
 +      ./heimdal/lib/hx509/peer.o \
 +      ./heimdal/lib/hx509/print.o \
 +      ./heimdal/lib/hx509/req.o \
 +      ./heimdal/lib/hx509/revoke.o \
 +      ./heimdal/lib/hx509/hx509_err.o
 +
  #######################
  # Start SUBSYSTEM HEIMDAL_WIND
  [SUBSYSTEM::HEIMDAL_WIND]
  CFLAGS = -Iheimdal_build -Iheimdal/lib/wind 
  PRIVATE_DEPENDENCIES = \
        HEIMDAL_ROKEN HEIMDAL_COM_ERR
 -OBJ_FILES = \
 -      ../heimdal/lib/wind/wind_err.o \
 -      ../heimdal/lib/wind/stringprep.o \
 -      ../heimdal/lib/wind/errorlist.o \
 -      ../heimdal/lib/wind/errorlist_table.o \
 -      ../heimdal/lib/wind/normalize.o \
 -      ../heimdal/lib/wind/normalize_table.o \
 -      ../heimdal/lib/wind/combining.o \
 -      ../heimdal/lib/wind/combining_table.o \
 -      ../heimdal/lib/wind/utf8.o \
 -      ../heimdal/lib/wind/bidi.o \
 -      ../heimdal/lib/wind/bidi_table.o \
 -      ../heimdal/lib/wind/ldap.o \
 -      ../heimdal/lib/wind/map.o \
 -      ../heimdal/lib/wind/map_table.o
 +
 +HEIMDAL_WIND_OBJ_FILES = \
 +      ./heimdal/lib/wind/wind_err.o \
 +      ./heimdal/lib/wind/stringprep.o \
 +      ./heimdal/lib/wind/errorlist.o \
 +      ./heimdal/lib/wind/errorlist_table.o \
 +      ./heimdal/lib/wind/normalize.o \
 +      ./heimdal/lib/wind/normalize_table.o \
 +      ./heimdal/lib/wind/combining.o \
 +      ./heimdal/lib/wind/combining_table.o \
 +      ./heimdal/lib/wind/utf8.o \
 +      ./heimdal/lib/wind/bidi.o \
 +      ./heimdal/lib/wind/bidi_table.o \
 +      ./heimdal/lib/wind/ldap.o \
 +      ./heimdal/lib/wind/map.o \
 +      ./heimdal/lib/wind/map_table.o
  # End SUBSYSTEM HEIMDAL_WIND
  #######################
  
  [SUBSYSTEM::HEIMDAL_ROKEN_GETPROGNAME]
  CFLAGS = -Iheimdal_build -Iheimdal/lib/roken  -Ilib/socket_wrapper
 -OBJ_FILES = ../heimdal/lib/roken/getprogname.o
 +
 +HEIMDAL_ROKEN_GETPROGNAME_OBJ_FILES = ./heimdal/lib/roken/getprogname.o
  
  [SUBSYSTEM::HEIMDAL_ROKEN_CLOSEFROM] 
  CFLAGS = -Iheimdal_build -Iheimdal/lib/roken  -Ilib/socket_wrapper
 -OBJ_FILES = ../heimdal/lib/roken/closefrom.o
 +
 +HEIMDAL_ROKEN_CLOSEFROM_OBJ_FILES = ./heimdal/lib/roken/closefrom.o
  
  [SUBSYSTEM::HEIMDAL_ROKEN_GETPROGNAME_H] 
  CFLAGS = -Iheimdal_build -Iheimdal/lib/roken  -Ilib/socket_wrapper
 -OBJ_FILES = ../heimdal/lib/roken/getprogname.ho
 +
 +HEIMDAL_ROKEN_GETPROGNAME_H_OBJ_FILES = ./heimdal/lib/roken/getprogname.ho
  
  #######################
  # Start SUBSYSTEM HEIMDAL_ROKEN
  [SUBSYSTEM::HEIMDAL_ROKEN]
  CFLAGS =  -Iheimdal_build -Iheimdal/lib/roken -Ilib/socket_wrapper
 -OBJ_FILES = \
 -      ../heimdal/lib/roken/base64.o \
 -      ../heimdal/lib/roken/hex.o \
 -      ../heimdal/lib/roken/bswap.o \
 -      ../heimdal/lib/roken/dumpdata.o \
 -      ../heimdal/lib/roken/emalloc.o \
 -      ../heimdal/lib/roken/ecalloc.o \
 -      ../heimdal/lib/roken/get_window_size.o \
 -      ../heimdal/lib/roken/h_errno.o \
 -      ../heimdal/lib/roken/issuid.o \
 -      ../heimdal/lib/roken/net_read.o \
 -      ../heimdal/lib/roken/net_write.o \
 -      ../heimdal/lib/roken/socket.o \
 -      ../heimdal/lib/roken/parse_time.o \
 -      ../heimdal/lib/roken/parse_units.o \
 -      ../heimdal/lib/roken/resolve.o \
 -      ../heimdal/lib/roken/roken_gethostby.o \
 -      ../heimdal/lib/roken/signal.o \
 -      ../heimdal/lib/roken/vis.o \
 -      ../heimdal/lib/roken/strlwr.o \
 -      ../heimdal/lib/roken/strsep_copy.o \
 -      ../heimdal/lib/roken/strsep.o \
 -      ../heimdal/lib/roken/strupr.o \
 -      ../heimdal/lib/roken/strpool.o \
 -      ../heimdal/lib/roken/estrdup.o \
 -      ../heimdal/lib/roken/erealloc.o \
 -      ../heimdal/lib/roken/simple_exec.o \
 -      ../heimdal/lib/roken/strcollect.o \
 -      ../heimdal/lib/roken/rtbl.o \
 -      replace.o
  PUBLIC_DEPENDENCIES = \
                        HEIMDAL_ROKEN_GETPROGNAME \
                        HEIMDAL_ROKEN_CLOSEFROM \
  # End SUBSYSTEM HEIMDAL_ROKEN
  #######################
  
 +HEIMDAL_ROKEN_OBJ_FILES = \
 +      ./heimdal/lib/roken/base64.o \
 +      ./heimdal/lib/roken/hex.o \
 +      ./heimdal/lib/roken/bswap.o \
 +      ./heimdal/lib/roken/dumpdata.o \
 +      ./heimdal/lib/roken/emalloc.o \
 +      ./heimdal/lib/roken/ecalloc.o \
 +      ./heimdal/lib/roken/get_window_size.o \
 +      ./heimdal/lib/roken/h_errno.o \
 +      ./heimdal/lib/roken/issuid.o \
 +      ./heimdal/lib/roken/net_read.o \
 +      ./heimdal/lib/roken/net_write.o \
 +      ./heimdal/lib/roken/socket.o \
 +      ./heimdal/lib/roken/parse_time.o \
 +      ./heimdal/lib/roken/parse_units.o \
 +      ./heimdal/lib/roken/resolve.o \
 +      ./heimdal/lib/roken/roken_gethostby.o \
 +      ./heimdal/lib/roken/signal.o \
 +      ./heimdal/lib/roken/vis.o \
 +      ./heimdal/lib/roken/strlwr.o \
 +      ./heimdal/lib/roken/strsep_copy.o \
 +      ./heimdal/lib/roken/strsep.o \
 +      ./heimdal/lib/roken/strupr.o \
 +      ./heimdal/lib/roken/strpool.o \
 +      ./heimdal/lib/roken/estrdup.o \
 +      ./heimdal/lib/roken/erealloc.o \
 +      ./heimdal/lib/roken/simple_exec.o \
 +      ./heimdal/lib/roken/strcollect.o \
 +      ./heimdal/lib/roken/rtbl.o \
 +      ./heimdal_build/replace.o
 +
  #######################
  # Start SUBSYSTEM HEIMDAL_GLUE
  [SUBSYSTEM::HEIMDAL_GLUE]
  CFLAGS = -Iheimdal_build -Iheimdal/lib/krb5 -Iheimdal/lib/asn1 -Iheimdal/lib/com_err 
- PUBLIC_DEPENDENCIES = LIBNETIF LIBSAMBA-CONFIG
 -OBJ_FILES = glue.o
+ PUBLIC_DEPENDENCIES = LIBNETIF LIBSAMBA-HOSTCONFIG
  # End SUBSYSTEM HEIMDAL_GLUE
  #######################
  
 +HEIMDAL_GLUE_OBJ_FILES = heimdal_build/glue.o
 +
  #######################
  # Start SUBSYSTEM HEIMDAL_COM_ERR
  [SUBSYSTEM::HEIMDAL_COM_ERR]
  CFLAGS = -Iheimdal_build -Iheimdal/lib/com_err
 -OBJ_FILES = \
 -      ../heimdal/lib/com_err/com_err.o \
 -      ../heimdal/lib/com_err/error.o
  PRIVATE_DEPENDENCIES = HEIMDAL_ROKEN
  # End SUBSYSTEM HEIMDAL_COM_ERR
  #######################
  
 +HEIMDAL_COM_ERR_OBJ_FILES = \
 +      ./heimdal/lib/com_err/com_err.o \
 +      ./heimdal/lib/com_err/error.o
 +
  #######################
  # Start SUBSYSTEM HEIMDAL_ASN1_COMPILE_LEX
  [SUBSYSTEM::HEIMDAL_ASN1_COMPILE_LEX]
  CFLAGS = -Iheimdal_build -Iheimdal/lib/asn1 -Iheimdal/lib/roken  -Ilib/socket_wrapper
 -OBJ_FILES = ../heimdal/lib/asn1/lex.ho 
  # End SUBSYSTEM HEIMDAL_ASN1_COMPILE_LEX
  #######################
  
 +HEIMDAL_ASN1_COMPILE_LEX_OBJ_FILES = ./heimdal/lib/asn1/lex.ho 
 +
  #######################
  # Start BINARY asn1_compile
  [BINARY::asn1_compile]
  CFLAGS = -Iheimdal_build -Iheimdal/lib/roken
  USE_HOSTCC = YES
 -OBJ_FILES = \
 -      ../heimdal/lib/asn1/main.ho \
 -      ../heimdal/lib/asn1/gen.ho \
 -      ../heimdal/lib/asn1/gen_copy.ho \
 -      ../heimdal/lib/asn1/gen_decode.ho \
 -      ../heimdal/lib/asn1/gen_encode.ho \
 -      ../heimdal/lib/asn1/gen_free.ho \
 -      ../heimdal/lib/asn1/gen_glue.ho \
 -      ../heimdal/lib/asn1/gen_length.ho \
 -      ../heimdal/lib/asn1/gen_seq.ho \
 -      ../heimdal/lib/asn1/hash.ho \
 -      ../heimdal/lib/asn1/parse.ho \
 -      ../heimdal/lib/roken/emalloc.ho \
 -      ../heimdal/lib/roken/getarg.ho \
 -      ../heimdal/lib/roken/setprogname.ho \
 -      ../heimdal/lib/roken/strupr.ho \
 -      ../heimdal/lib/roken/get_window_size.ho \
 -      ../heimdal/lib/roken/estrdup.ho \
 -      ../heimdal/lib/roken/ecalloc.ho \
 -      ../heimdal/lib/asn1/symbol.ho \
 -      ../heimdal/lib/vers/print_version.ho \
 -      ../lib/socket_wrapper/socket_wrapper.ho \
 -      replace.ho
  PRIVATE_DEPENDENCIES = HEIMDAL_ASN1_COMPILE_LEX HEIMDAL_ROKEN_GETPROGNAME_H LIBREPLACE_NETWORK
  
 +asn1_compile_OBJ_FILES = \
 +      ./heimdal/lib/asn1/main.ho \
 +      ./heimdal/lib/asn1/gen.ho \
 +      ./heimdal/lib/asn1/gen_copy.ho \
 +      ./heimdal/lib/asn1/gen_decode.ho \
 +      ./heimdal/lib/asn1/gen_encode.ho \
 +      ./heimdal/lib/asn1/gen_free.ho \
 +      ./heimdal/lib/asn1/gen_glue.ho \
 +      ./heimdal/lib/asn1/gen_length.ho \
 +      ./heimdal/lib/asn1/gen_seq.ho \
 +      ./heimdal/lib/asn1/hash.ho \
 +      ./heimdal/lib/asn1/parse.ho \
 +      ./heimdal/lib/roken/emalloc.ho \
 +      ./heimdal/lib/roken/getarg.ho \
 +      ./heimdal/lib/roken/setprogname.ho \
 +      ./heimdal/lib/roken/strupr.ho \
 +      ./heimdal/lib/roken/get_window_size.ho \
 +      ./heimdal/lib/roken/estrdup.ho \
 +      ./heimdal/lib/roken/ecalloc.ho \
 +      ./heimdal/lib/asn1/symbol.ho \
 +      ./heimdal/lib/vers/print_version.ho \
 +      ./lib/socket_wrapper/socket_wrapper.ho \
 +      ./heimdal_build/replace.ho
 +
  # End BINARY asn1_compile
  #######################
  
  # Start SUBSYSTEM HEIMDAL_COM_ERR_COMPILE_LEX
  [SUBSYSTEM::HEIMDAL_COM_ERR_COMPILE_LEX]
  CFLAGS = -Iheimdal_build -Iheimdal/lib/com_err -Iheimdal/lib/roken  -Ilib/socket_wrapper
 -OBJ_FILES = ../heimdal/lib/com_err/lex.ho 
  # End SUBSYSTEM HEIMDAL_COM_ERR_COMPILE_LEX
  #######################
  
 +HEIMDAL_COM_ERR_COMPILE_LEX_OBJ_FILES = ./heimdal/lib/com_err/lex.ho 
 +
  #######################
  # Start BINARY compile_et
  [BINARY::compile_et]
  CFLAGS = -Iheimdal_build -Iheimdal/lib/roken
  USE_HOSTCC = YES
 -OBJ_FILES = ../heimdal/lib/vers/print_version.ho \
 -      ../heimdal/lib/com_err/parse.ho \
 -      ../heimdal/lib/com_err/compile_et.ho \
 -      ../heimdal/lib/roken/getarg.ho \
 -      ../heimdal/lib/roken/get_window_size.ho \
 -      ../heimdal/lib/roken/strupr.ho \
 -      ../heimdal/lib/roken/setprogname.ho \
 -      ../lib/socket_wrapper/socket_wrapper.ho \
 -      replace.ho
  PRIVATE_DEPENDENCIES = HEIMDAL_COM_ERR_COMPILE_LEX HEIMDAL_ROKEN_GETPROGNAME_H LIBREPLACE_NETWORK
  # End BINARY compile_et
  #######################
  
 +compile_et_OBJ_FILES = ./heimdal/lib/vers/print_version.ho \
 +      ./heimdal/lib/com_err/parse.ho \
 +      ./heimdal/lib/com_err/compile_et.ho \
 +      ./heimdal/lib/roken/getarg.ho \
 +      ./heimdal/lib/roken/get_window_size.ho \
 +      ./heimdal/lib/roken/strupr.ho \
 +      ./heimdal/lib/roken/setprogname.ho \
 +      ./lib/socket_wrapper/socket_wrapper.ho \
 +      ./heimdal_build/replace.ho
 +
 +
  mkinclude perl_path_wrapper.sh asn1_deps.pl heimdal/lib/hdb/hdb.asn1 hdb_asn1 heimdal/lib/hdb |
  mkinclude perl_path_wrapper.sh asn1_deps.pl heimdal/lib/gssapi/spnego/spnego.asn1 spnego_asn1 heimdal/lib/gssapi --sequence=MechTypeList |
  mkinclude perl_path_wrapper.sh asn1_deps.pl heimdal/lib/gssapi/mech/gssapi.asn1 gssapi_asn1 heimdal/lib/gssapi|
@@@ -572,7 -550,7 +572,7 @@@ mkinclude perl_path_wrapper.sh asn1_dep
  mkinclude perl_path_wrapper.sh asn1_deps.pl heimdal/lib/hx509/pkcs10.asn1 pkcs10_asn1 heimdal/lib/hx509 --preserve-binary=CertificationRequestInfo|
  
  #
 -# Ensure to update ../static_deps.mk when you add a new entry here!
 +# Ensure to update ./static_deps.mk when you add a new entry here!
  #
  mkinclude perl_path_wrapper.sh et_deps.pl heimdal/lib/asn1/asn1_err.et heimdal/lib/asn1|
  mkinclude perl_path_wrapper.sh et_deps.pl heimdal/lib/hdb/hdb_err.et heimdal/lib/hdb|
@@@ -591,25 -569,31 +591,25 @@@ clean:
  # Start SUBSYSTEM HEIMDAL
  [SUBSYSTEM::HEIMDAL]
  CFLAGS = -Iheimdal_build
 -OBJ_FILES = ../heimdal/lib/vers/print_version.o
  PUBLIC_DEPENDENCIES = \
                HEIMDAL_GSSAPI HEIMDAL_KRB5
  # End SUBSYSTEM HEIMDAL
  #######################
  
 -#######################
 -# Start SUBSYSTEM KERBEROS_LIB
 -[SUBSYSTEM::KERBEROS_LIB]
 -#PUBLIC_DEPENDENCIES = EXT_KRB5
 -PUBLIC_DEPENDENCIES = HEIMDAL
 -# End SUBSYSTEM KERBEROS_LIB
 -#######################
 +HEIMDAL_OBJ_FILES = ./heimdal/lib/vers/print_version.o
  
  #######################
  # Start BINARY compile_et
  [BINARY::samba4kinit]
  CFLAGS = -Iheimdal_build -Iheimdal/lib/roken
 -OBJ_FILES = ../heimdal/kuser/kinit.o \
 -      ../heimdal/lib/vers/print_version.o \
 -      ../heimdal/lib/roken/setprogname.o \
 -      ../heimdal/lib/roken/getarg.o 
  PRIVATE_DEPENDENCIES = HEIMDAL_KRB5 HEIMDAL_NTLM
  # End BINARY compile_et
  #######################
  
 +samba4kinit_OBJ_FILES = ./heimdal/kuser/kinit.o \
 +      ./heimdal/lib/vers/print_version.o \
 +      ./heimdal/lib/roken/setprogname.o \
 +      ./heimdal/lib/roken/getarg.o 
 +
  dist:: heimdal/lib/asn1/lex.c heimdal/lib/com_err/lex.c \
        heimdal/lib/asn1/parse.c heimdal/lib/com_err/parse.c
index 2535cf3e6853d74dbaf695ef36d17d772aea1507,5f8c530db939149f697c422d22052976af05bf1b..47eb85cab958c244c658a6fb00a5cbc2bfe9f01e
@@@ -4,19 -4,17 +4,19 @@@
  # Start SUBSYSTEM LDAP
  [MODULE::LDAP]
  INIT_FUNCTION = server_service_ldap_init
 -SUBSYSTEM = service
 +SUBSYSTEM = smbd
  PRIVATE_PROTO_HEADER = proto.h
 -OBJ_FILES = \
 -              ldap_server.o \
 -              ldap_backend.o \
 -              ldap_bind.o \
 -              ldap_extended.o
  PRIVATE_DEPENDENCIES = CREDENTIALS \
                LIBCLI_LDAP SAMDB \
                process_model \
                gensec \
-               LIBSAMBA-CONFIG
+               LIBSAMBA-HOSTCONFIG
  # End SUBSYSTEM SMB
  #######################
 +
 +LDAP_OBJ_FILES = $(addprefix ldap_server/, \
 +              ldap_server.o \
 +              ldap_backend.o \
 +              ldap_bind.o \
 +              ldap_extended.o)
 +
diff --combined source4/lib/basic.mk
index f6a8731a21529e03de73aece3567b900a13520f8,d6e90928b0bb68e7597cb63a55e9d55abde76d41..f9c0ee06658536bdc3230b06d482b62ac215ab70
@@@ -19,25 -19,26 +19,25 @@@ mkinclude dbwrap/config.m
  mkinclude crypto/config.mk
  
  [SUBSYSTEM::LIBCOMPRESSION]
 -OBJ_FILES = compression/mszip.o
 +
 +LIBCOMPRESSION_OBJ_FILES = lib/compression/mszip.o
  
  [SUBSYSTEM::GENCACHE]
 -OBJ_FILES = gencache/gencache.o
  PRIVATE_DEPENDENCIES = TDB_WRAP
  
 +GENCACHE_OBJ_FILES = gencache/gencache.o
  
- PUBLIC_HEADERS += lib/gencache/gencache.h
PUBLIC_HEADERS += lib/gencache/gencache.h
  
  [SUBSYSTEM::LDB_WRAP]
 -OBJ_FILES = ldb_wrap.o
  PUBLIC_DEPENDENCIES = LIBLDB
  PRIVATE_DEPENDENCIES = LDBSAMBA UTIL_LDB
  
 -
 +LDB_WRAP_OBJ_FILES = lib/ldb_wrap.o
  PUBLIC_HEADERS += lib/ldb_wrap.h
  
  [SUBSYSTEM::TDB_WRAP]
 -OBJ_FILES = tdb_wrap.o
  PUBLIC_DEPENDENCIES = LIBTDB
  
 -
 +TDB_WRAP_OBJ_FILES = lib/tdb_wrap.o
  PUBLIC_HEADERS += lib/tdb_wrap.h
index e5a1316c47064318b6a607c625a07221a8e6f3da,1e402f80d621c47e307feb44da922d36a39aa5cd..da92036342c5903067e6ff43406e685135222f44
@@@ -1,49 -1,45 +1,51 @@@
  ##############################
  [MODULE::EVENTS_AIO]
 -OBJ_FILES = events_aio.o
  PRIVATE_DEPENDENCIES = LIBAIO_LINUX
  SUBSYSTEM = LIBEVENTS
  INIT_FUNCTION = s4_events_aio_init
  ##############################
  
 +EVENTS_AIO_OBJ_FILES = lib/events/events_aio.o
 +
  ##############################
  [MODULE::EVENTS_EPOLL]
 -OBJ_FILES = events_epoll.o
  SUBSYSTEM = LIBEVENTS
  INIT_FUNCTION = s4_events_epoll_init
  ##############################
  
 +EVENTS_EPOLL_OBJ_FILES = lib/events/events_epoll.o
 +
  ##############################
  [MODULE::EVENTS_SELECT]
 -OBJ_FILES = events_select.o
  SUBSYSTEM = LIBEVENTS
  INIT_FUNCTION = s4_events_select_init
  ##############################
  
 +EVENTS_SELECT_OBJ_FILES = lib/events/events_select.o
 +
  ##############################
  [MODULE::EVENTS_STANDARD]
 -OBJ_FILES = events_standard.o
  SUBSYSTEM = LIBEVENTS
  INIT_FUNCTION = s4_events_standard_init
  ##############################
  
 +EVENTS_STANDARD_OBJ_FILES = lib/events/events_standard.o
  
  ##############################
  # Start SUBSYSTEM LIBEVENTS
- [SUBSYSTEM::LIBEVENTS]
+ [LIBRARY::LIBEVENTS]
 -OBJ_FILES = events.o events_timed.o events_signal.o
  PUBLIC_DEPENDENCIES = LIBTALLOC LIBSAMBA-UTIL
+ SO_VERSION = 0
+ VERSION = 0.0.1
  # End SUBSYSTEM LIBEVENTS
  ##############################
  
 +LIBEVENTS_OBJ_FILES = $(addprefix lib/events/, events.o events_timed.o events_signal.o)
 +
  PUBLIC_HEADERS += $(addprefix lib/events/, events.h events_internal.h)
  
  [PYTHON::swig_events]
  SWIG_FILE = events.i
  PRIVATE_DEPENDENCIES = LIBEVENTS
 +
 +swig_events_OBJ_FILES = lib/events/events_wrap.o
index 70fb289189a43f53165df7dffa18df81c9a35279,6763884b48571c1bb9e6910b9a8f7ec0c9c003bd..9a8e60bfbe73bf670b3c5612aa040525fd92dc29
@@@ -1,14 -1,12 +1,14 @@@
  [SUBSYSTEM::LIBPOLICY]
  CFLAGS = -Iheimdal/lib/roken
- PRIVATE_DEPENDENCIES = LIBSAMBA-UTIL LIBSAMBA-CONFIG LIBTALLOC CHARSET 
 -OBJ_FILES = lex.o parse_adm.o 
+ PRIVATE_DEPENDENCIES = LIBSAMBA-UTIL LIBSAMBA-HOSTCONFIG LIBTALLOC CHARSET 
  
 +LIBPOLICY_OBJ_FILES = lib/policy/lex.o lib/policy/parse_adm.o 
 +
  lib/policy/lex.l: lib/policy/parse_adm.h
  
  lib/policy/parse_adm.h: lib/policy/parse_adm.c
  
  [BINARY::dumpadm]
- PRIVATE_DEPENDENCIES = LIBPOLICY LIBPOPT LIBSAMBA-CONFIG LIBTALLOC LIBSAMBA-UTIL CHARSET
 -OBJ_FILES = dumpadm.o
+ PRIVATE_DEPENDENCIES = LIBPOLICY LIBPOPT LIBSAMBA-HOSTCONFIG LIBTALLOC LIBSAMBA-UTIL CHARSET
 +
 +dumpadm_OBJ_FILES = lib/policy/dumpadm.o
index 16e9c62c57477da0697fb95671b25bedab39eed3,77b4ece55274b1565b6476499e736c10f6577c12..ce19d8512eb0b4ccfa8f64c80f7147686f8c946a
@@@ -1,7 -1,6 +1,7 @@@
  [SUBSYSTEM::TDR_REGF]
  PUBLIC_DEPENDENCIES = TDR 
 -OBJ_FILES = tdr_regf.o
 +
 +TDR_REGF_OBJ_FILES = lib/registry/tdr_regf.o
  
  # Special support for external builddirs
  lib/registry/regf.c: lib/registry/tdr_regf.c
@@@ -18,92 -17,96 +18,92 @@@ clean:
  ################################################
  # Start SUBSYSTEM registry
  [LIBRARY::registry]
 -VERSION = 0.0.1
 -PC_FILE = registry.pc
 -SO_VERSION = 0
 -OBJ_FILES = \
 -              interface.o \
 -              util.o \
 -              samba.o \
 -              patchfile_dotreg.o \
 -              patchfile_preg.o \
 -              patchfile.o \
 -              regf.o \
 -              hive.o \
 -              local.o \
 -              ldb.o \
 -              dir.o \
 -              rpc.o
  PUBLIC_DEPENDENCIES = \
                LIBSAMBA-UTIL CHARSET TDR_REGF LIBLDB \
                RPC_NDR_WINREG LDB_WRAP
  # End MODULE registry_ldb
  ################################################
  
- PUBLIC_HEADERS += $(addprefix lib/registry/, registry.h hive.h patchfile.h)
 +PC_FILES += lib/registry/registry.pc
 +
 +registry_VERSION = 0.0.1
 +registry_SOVERSION = 0
 +
 +registry_OBJ_FILES = $(addprefix lib/registry/, interface.o util.o samba.o \
 +                                      patchfile_dotreg.o patchfile_preg.o patchfile.o regf.o \
 +                                      hive.o local.o ldb.o dir.o rpc.o)
 +
+ PUBLIC_HEADERS += lib/registry/registry.h
  
  [SUBSYSTEM::registry_common]
  PUBLIC_DEPENDENCIES = registry
 -OBJ_FILES = tools/common.o
  PRIVATE_PROTO_HEADER = tools/common.h
  
 +registry_common_OBJ_FILES = lib/registry/tools/common.o
 +
  ################################################
  # Start BINARY regdiff
  [BINARY::regdiff]
  INSTALLDIR = BINDIR
 -OBJ_FILES = tools/regdiff.o
  PRIVATE_DEPENDENCIES = \
-               LIBSAMBA-CONFIG registry LIBPOPT POPT_SAMBA POPT_CREDENTIALS
+               LIBSAMBA-HOSTCONFIG registry LIBPOPT POPT_SAMBA POPT_CREDENTIALS
  # End BINARY regdiff
  ################################################
  
 +regdiff_OBJ_FILES = lib/registry/tools/regdiff.o
 +
  MANPAGES += lib/registry/man/regdiff.1
  
  ################################################
  # Start BINARY regpatch
  [BINARY::regpatch]
  INSTALLDIR = BINDIR
 -OBJ_FILES = tools/regpatch.o
  PRIVATE_DEPENDENCIES = \
-               LIBSAMBA-CONFIG registry LIBPOPT POPT_SAMBA POPT_CREDENTIALS \
+               LIBSAMBA-HOSTCONFIG registry LIBPOPT POPT_SAMBA POPT_CREDENTIALS \
                registry_common
  # End BINARY regpatch
  ################################################
  
 +regpatch_OBJ_FILES = lib/registry/tools/regpatch.o
 +
  MANPAGES += lib/registry/man/regpatch.1
  
  ################################################
  # Start BINARY regshell
  [BINARY::regshell]
  INSTALLDIR = BINDIR
 -OBJ_FILES = tools/regshell.o
  PRIVATE_DEPENDENCIES = \
-               LIBSAMBA-CONFIG LIBPOPT registry POPT_SAMBA POPT_CREDENTIALS \
+               LIBSAMBA-HOSTCONFIG LIBPOPT registry POPT_SAMBA POPT_CREDENTIALS \
                SMBREADLINE registry_common
  # End BINARY regshell
  ################################################
  
 +regshell_OBJ_FILES = lib/registry/tools/regshell.o
 +
  MANPAGES += lib/registry/man/regshell.1
  
  ################################################
  # Start BINARY regtree
  [BINARY::regtree]
  INSTALLDIR = BINDIR
 -OBJ_FILES = tools/regtree.o
  PRIVATE_DEPENDENCIES = \
-               LIBSAMBA-CONFIG LIBPOPT registry POPT_SAMBA POPT_CREDENTIALS \
+               LIBSAMBA-HOSTCONFIG LIBPOPT registry POPT_SAMBA POPT_CREDENTIALS \
                registry_common
  # End BINARY regtree
  ################################################
  
 +regtree_OBJ_FILES = lib/registry/tools/regtree.o
 +
  MANPAGES += lib/registry/man/regtree.1
  
  [SUBSYSTEM::torture_registry]
  PRIVATE_DEPENDENCIES = registry
  PRIVATE_PROTO_HEADER = tests/proto.h
 -OBJ_FILES = \
 -              tests/generic.o \
 -              tests/hive.o \
 -              tests/diff.o \
 -              tests/registry.o
 +
 +torture_registry_OBJ_FILES = $(addprefix lib/registry/tests/, generic.o hive.o diff.o registry.o)
  
  [PYTHON::swig_registry]
  PUBLIC_DEPENDENCIES = registry
  SWIG_FILE = registry.i
  
 +swig_registry_OBJ_FILES = lib/registry/registry_wrap.o
index b2cdec9cdf1c1b144da38a898c3fbbefe082f5a9,5bf2d86588f97987a33b4641143418f6fe142fe1..af235e7b04afad4eeb597188974f0743b97ce259
@@@ -5,7 -5,7 +5,7 @@@
  
     This program is free software; you can redistribute it and/or modify
     it under the terms of the GNU General Public License as published by
-    the Free Software Foundation; either version 2 of the License, or
+    the Free Software Foundation; either version 3 of the License, or
     (at your option) any later version.
  
     This program is distributed in the hope that it will be useful,
@@@ -22,6 -22,7 +22,6 @@@
  #include "lib/util/dlinklist.h"
  #include "lib/registry/registry.h"
  #include "system/filesys.h"
 -#include "build.h"
  
  struct reg_key_path {
        uint32_t predefined_key;
index 75d3ade28b0eed2830793015c80514b0b4d96e10,902692d9bed08f9a33a8d90a4b6eaad889a29599..2067d988cbea5e57eca7912b3f458e23fb0f7bd3
@@@ -1,10 -1,7 +1,8 @@@
  ##############################
  # Start SUBSYSTEM SOCKET_WRAPPER
  [SUBSYSTEM::SOCKET_WRAPPER]
 -OBJ_FILES = socket_wrapper.o
  PRIVATE_DEPENDENCIES = LIBREPLACE_NETWORK
  # End SUBSYSTEM SOCKET_WRAPPER
  ##############################
- PUBLIC_HEADERS += lib/socket_wrapper/socket_wrapper.h
 +
 +SOCKET_WRAPPER_OBJ_FILES = lib/socket_wrapper/socket_wrapper.o
index b65cb4ccf6788a9eca36a1eefd64c697832163a0,3eab90b9aea966a83e903e819bedaf5b3902ebbb..84848ae77a7214e13f301b5b98197b9da4fabe77
@@@ -1,8 -1,7 +1,7 @@@
  [LIBRARY::LIBTALLOC]
  OUTPUT_TYPE = STATIC_LIBRARY
 -OBJ_FILES = talloc.o
  CFLAGS = -Ilib/talloc
  
 +LIBTALLOC_OBJ_FILES = lib/talloc/talloc.o
  
  MANPAGES += $(tallocdir)/talloc.3
- PUBLIC_HEADERS += $(tallocdir)/talloc.h
index fd39074f5056c9f063c007c25c8c33db33874fb8,76342dc8fa5a918646407fd65009f83a25a3563e..b9a8f80dda597dabffd2fde9d551a3e28f986325
@@@ -2,58 -2,55 +2,56 @@@
  # Start SUBSYSTEM LIBTDB
  [LIBRARY::LIBTDB]
  OUTPUT_TYPE = STATIC_LIBRARY
 -OBJ_FILES = \
 -      common/tdb.o common/dump.o common/io.o common/lock.o \
 -      common/open.o common/traverse.o common/freelist.o \
 -      common/error.o common/transaction.o
  CFLAGS = -Ilib/tdb/include
  #
  # End SUBSYSTEM ldb
  ################################################
  
- PUBLIC_HEADERS += $(tdbdir)/include/tdb.h
 +LIBTDB_OBJ_FILES = $(addprefix lib/tdb/common/, \
 +      tdb.o dump.o io.o lock.o \
 +      open.o traverse.o freelist.o \
 +      error.o transaction.o)
 +
  ################################################
  # Start BINARY tdbtool
  [BINARY::tdbtool]
  INSTALLDIR = BINDIR
 -OBJ_FILES= \
 -              tools/tdbtool.o
  PRIVATE_DEPENDENCIES = \
                LIBTDB
  # End BINARY tdbtool
  ################################################
  
 +tdbtool_OBJ_FILES = lib/tdb/tools/tdbtool.o
 +
  ################################################
  # Start BINARY tdbtorture
  [BINARY::tdbtorture]
  INSTALLDIR = BINDIR
 -OBJ_FILES= \
 -              tools/tdbtorture.o
  PRIVATE_DEPENDENCIES = \
                LIBTDB
  # End BINARY tdbtorture
  ################################################
  
 +tdbtorture_OBJ_FILES = lib/tdb/tools/tdbtorture.o
 +
  ################################################
  # Start BINARY tdbdump
  [BINARY::tdbdump]
  INSTALLDIR = BINDIR
 -OBJ_FILES= \
 -              tools/tdbdump.o
  PRIVATE_DEPENDENCIES = \
                LIBTDB
  # End BINARY tdbdump
  ################################################
  
 +tdbdump_OBJ_FILES = lib/tdb/tools/tdbdump.o
 +
  ################################################
  # Start BINARY tdbbackup
  [BINARY::tdbbackup]
  INSTALLDIR = BINDIR
 -OBJ_FILES= \
 -              tools/tdbbackup.o
  PRIVATE_DEPENDENCIES = \
                LIBTDB
  # End BINARY tdbbackup
  ################################################
 +
 +tdbbackup_OBJ_FILES = lib/tdb/tools/tdbbackup.o
index a92321f59fd7d42f3299f02e5bbb5d4f604dec3f,8e8330f709ec3e807a0e84a74997818ce9eb1c0e..e2d7cd517a730e57c7eb9af1f63be859de03f709
@@@ -1,7 -1,11 +1,5 @@@
--################################################
--# Start SUBSYSTEM LIBTLS
  [SUBSYSTEM::LIBTLS]
 -OBJ_FILES = \
 -              tls.o \
 -              tlscert.o
  PUBLIC_DEPENDENCIES = \
-               LIBTALLOC GNUTLS LIBSAMBA-CONFIG samba-socket
+               LIBTALLOC GNUTLS LIBSAMBA-HOSTCONFIG samba-socket
 -#
 -# End SUBSYSTEM LIBTLS
 -################################################
 +
 +LIBTLS_OBJ_FILES = lib/tls/tls.o lib/tls/tlscert.o
index 3afe398a8f38ae924fce5567b3e19526fad08612,0bf069219306d47b97d524ef9b2e4f39cfd405c3..ab6b23dd6ba6738c877ea5fdde5d2a9b5799fbff
@@@ -1,12 -1,7 +1,11 @@@
  [SUBSYSTEM::LIBSAMBA-UTIL]
 -#VERSION = 0.0.1
 -#SO_VERSION = 0
 -OBJ_FILES = xfile.o \
 +PUBLIC_DEPENDENCIES = \
 +              LIBTALLOC LIBCRYPTO \
-               SOCKET_WRAPPER EXT_NSL \
-               CHARSET EXECINFO DYNCONFIG \
-               LIBREPLACE_NETWORK
++              SOCKET_WRAPPER LIBREPLACE_NETWORK \
++              CHARSET EXECINFO
 +
 +LIBSAMBA-UTIL_OBJ_FILES = $(addprefix lib/util/, \
 +      xfile.o \
                debug.o \
                fault.o \
                signal.o \
                ms_fnmatch.o \
                mutex.o \
                idtree.o \
-               become_daemon.o)
+               become_daemon.o \
+               params.o
 -PUBLIC_DEPENDENCIES = \
 -              LIBTALLOC LIBCRYPTO \
 -              SOCKET_WRAPPER LIBREPLACE_NETWORK \
 -              CHARSET EXECINFO
  
  PUBLIC_HEADERS += $(addprefix lib/util/, util.h \
                                 attr.h \
                                 mutex.h \
                                 safe_string.h \
                                 time.h \
+                                util_ldb.h \
                                 xfile.h)
  
  [SUBSYSTEM::ASN1_UTIL]
  PRIVATE_PROTO_HEADER = asn1_proto.h
 -OBJ_FILES = asn1.o
  
 -# PUBLIC_HEADERS += lib/util/asn1.h
 +ASN1_UTIL_OBJ_FILES = lib/util/asn1.o
- PUBLIC_HEADERS += lib/util/asn1.h
  
  [SUBSYSTEM::UNIX_PRIVS]
  PRIVATE_PROTO_HEADER = unix_privs.h
 -OBJ_FILES = unix_privs.o
 +
 +UNIX_PRIVS_OBJ_FILES = lib/util/unix_privs.o
  
  ################################################
  # Start SUBSYSTEM WRAP_XATTR
  [SUBSYSTEM::WRAP_XATTR]
- PRIVATE_PROTO_HEADER = wrap_xattr.h
 -OBJ_FILES = \
 -              wrap_xattr.o
  PUBLIC_DEPENDENCIES = XATTR
  #
  # End SUBSYSTEM WRAP_XATTR
  ################################################
  
 +WRAP_XATTR_OBJ_FILES = lib/util/wrap_xattr.o
 +
  [SUBSYSTEM::UTIL_TDB]
  PRIVATE_PROTO_HEADER = util_tdb.h
 -OBJ_FILES = \
 -              util_tdb.o
  PUBLIC_DEPENDENCIES = LIBTDB
  
 +UTIL_TDB_OBJ_FILES = lib/util/util_tdb.o
 +
  [SUBSYSTEM::UTIL_LDB]
- PRIVATE_PROTO_HEADER = util_ldb.h
 -OBJ_FILES = \
 -                      util_ldb.o
  PUBLIC_DEPENDENCIES = LIBLDB
 +
 +UTIL_LDB_OBJ_FILES = lib/util/util_ldb.o
index f180844d84232d92a687c4a90402ea24c7dd5a9e,f786c71469aa9fc2516ae96d968c383e4f00155a..85fc4ab527fff4f7f17b404d34ce59614931bf1f
@@@ -2,16 -2,15 +2,16 @@@
  # Start SUBSYSTEM LIBCLI_AUTH
  [SUBSYSTEM::LIBCLI_AUTH]
  PRIVATE_PROTO_HEADER = proto.h
 -OBJ_FILES = credentials.o \
 -              session.o \
 -              smbencrypt.o \
 -              smbdes.o
  PUBLIC_DEPENDENCIES = \
                MSRPC_PARSE \
-               LIBSAMBA-CONFIG
+               LIBSAMBA-HOSTCONFIG
  # End SUBSYSTEM LIBCLI_AUTH
  #################################
  
 +LIBCLI_AUTH_OBJ_FILES = $(addprefix libcli/auth/, \
 +              credentials.o \
 +              session.o \
 +              smbencrypt.o \
 +              smbdes.o)
  
  PUBLIC_HEADERS += libcli/auth/credentials.h
diff --combined source4/libcli/config.mk
index 79b16bfd74fc9a5f9bee6d7ea50e99fd069901a3,0c00fa274014d4300daf337290070b50286a0f11..95b45003bec8b655c109a6f6a66ff107ae018c37
  mkinclude auth/config.mk
  mkinclude ldap/config.mk
  mkinclude security/config.mk
+ mkinclude wbclient/config.mk
  
  [SUBSYSTEM::LIBSAMBA-ERRORS]
 -OBJ_FILES = util/doserr.o \
 -                  util/errormap.o \
 -                  util/nterr.o \
  
 +LIBSAMBA-ERRORS_OBJ_FILES = $(addprefix libcli/util/, doserr.o errormap.o nterr.o)
  
  PUBLIC_HEADERS += $(addprefix libcli/, util/error.h util/ntstatus.h util/doserr.h util/werror.h)
  
  [SUBSYSTEM::LIBCLI_LSA]
  PRIVATE_PROTO_HEADER = util/clilsa.h
 -OBJ_FILES = util/clilsa.o
  PUBLIC_DEPENDENCIES = RPC_NDR_LSA
  PRIVATE_DEPENDENCIES = LIBSECURITY
  
 +LIBCLI_LSA_OBJ_FILES = libcli/util/clilsa.o
 +
  [SUBSYSTEM::LIBCLI_COMPOSITE]
  PRIVATE_PROTO_HEADER = composite/proto.h
 -OBJ_FILES = \
 -      composite/composite.o
  PUBLIC_DEPENDENCIES = LIBEVENTS
  
 +LIBCLI_COMPOSITE_OBJ_FILES = libcli/composite/composite.o
 +
  [SUBSYSTEM::LIBCLI_SMB_COMPOSITE]
  PRIVATE_PROTO_HEADER = smb_composite/proto.h
 -OBJ_FILES = \
 -      smb_composite/loadfile.o \
 -      smb_composite/savefile.o \
 -      smb_composite/connect.o \
 -      smb_composite/sesssetup.o \
 -      smb_composite/fetchfile.o \
 -      smb_composite/appendacl.o \
 -      smb_composite/fsinfo.o 
  PUBLIC_DEPENDENCIES = LIBCLI_COMPOSITE CREDENTIALS gensec LIBCLI_RESOLVE
  
 +LIBCLI_SMB_COMPOSITE_OBJ_FILES = $(addprefix libcli/smb_composite/, \
 +      loadfile.o \
 +      savefile.o \
 +      connect.o \
 +      sesssetup.o \
 +      fetchfile.o \
 +      appendacl.o \
 +      fsinfo.o)
 +
 +
  [SUBSYSTEM::NDR_NBT_BUF]
  PRIVATE_PROTO_HEADER = nbt/nbtname.h
 -OBJ_FILES = nbt/nbtname.o
 +
 +NDR_NBT_BUF_OBJ_FILES = libcli/nbt/nbtname.o
  
  [SUBSYSTEM::LIBCLI_NBT]
 -#VERSION = 0.0.1
 -#SO_VERSION = 0
  PRIVATE_PROTO_HEADER = nbt/nbt_proto.h
 -OBJ_FILES = \
 -      nbt/nbtsocket.o \
 -      nbt/namequery.o \
 -      nbt/nameregister.o \
 -      nbt/namerefresh.o \
 -      nbt/namerelease.o
  PUBLIC_DEPENDENCIES = LIBNDR NDR_NBT LIBCLI_COMPOSITE LIBEVENTS \
        NDR_SECURITY samba-socket LIBSAMBA-UTIL
  
 +LIBCLI_NBT_OBJ_FILES = $(addprefix libcli/nbt/, \
 +      nbtsocket.o \
 +      namequery.o \
 +      nameregister.o \
 +      namerefresh.o \
 +      namerelease.o)
 +
  [PYTHON::python_libcli_nbt]
  SWIG_FILE = swig/libcli_nbt.i
- PUBLIC_DEPENDENCIES = LIBCLI_NBT DYNCONFIG LIBSAMBA-CONFIG
+ PUBLIC_DEPENDENCIES = LIBCLI_NBT DYNCONFIG LIBSAMBA-HOSTCONFIG
  
 +python_libcli_nbt_OBJ_FILES = libcli/swig/libcli_nbt_wrap.o
 +
  [PYTHON::python_libcli_smb]
  SWIG_FILE = swig/libcli_smb.i
- PUBLIC_DEPENDENCIES = LIBCLI_SMB DYNCONFIG LIBSAMBA-CONFIG
+ PUBLIC_DEPENDENCIES = LIBCLI_SMB DYNCONFIG LIBSAMBA-HOSTCONFIG
  
 +python_libcli_smb_OBJ_FILES = libcli/swig/libcli_smb_wrap.o
 +
  [SUBSYSTEM::LIBCLI_DGRAM]
 -OBJ_FILES = \
 -      dgram/dgramsocket.o \
 -      dgram/mailslot.o \
 -      dgram/netlogon.o \
 -      dgram/ntlogon.o \
 -      dgram/browse.o
  PUBLIC_DEPENDENCIES = LIBCLI_NBT LIBNDR LIBCLI_RESOLVE
  
 +LIBCLI_DGRAM_OBJ_FILES = $(addprefix libcli/dgram/, \
 +      dgramsocket.o \
 +      mailslot.o \
 +      netlogon.o \
 +      ntlogon.o \
 +      browse.o)
 +
  [SUBSYSTEM::LIBCLI_CLDAP]
 -OBJ_FILES = cldap/cldap.o
  PUBLIC_DEPENDENCIES = LIBCLI_LDAP
  PRIVATE_DEPENDENCIES = LIBSAMBA-UTIL LIBLDB
  
- PUBLIC_HEADERS += libcli/cldap/cldap.h
 +LIBCLI_CLDAP_OBJ_FILES = libcli/cldap/cldap.o
+ # PUBLIC_HEADERS += libcli/cldap/cldap.h
  
  [SUBSYSTEM::LIBCLI_WREPL]
  PRIVATE_PROTO_HEADER = wrepl/winsrepl_proto.h
 -OBJ_FILES = \
 -      wrepl/winsrepl.o
  PUBLIC_DEPENDENCIES = NDR_WINSREPL samba-socket LIBCLI_RESOLVE LIBEVENTS \
                                          LIBPACKET LIBNDR
  
 +LIBCLI_WREPL_OBJ_FILES = libcli/wrepl/winsrepl.o
 +
  [SUBSYSTEM::LIBCLI_RESOLVE]
  PRIVATE_PROTO_HEADER = resolve/proto.h
 -OBJ_FILES = \
 -      resolve/resolve.o
  PUBLIC_DEPENDENCIES = NDR_NBT
  
 +LIBCLI_RESOLVE_OBJ_FILES = libcli/resolve/resolve.o
 +
  [SUBSYSTEM::LP_RESOLVE]
  PRIVATE_PROTO_HEADER = resolve/lp_proto.h
- PRIVATE_DEPENDENCIES = LIBCLI_NBT LIBSAMBA-CONFIG LIBNETIF 
 -OBJ_FILES = \
 -      resolve/bcast.o \
 -      resolve/nbtlist.o \
 -      resolve/wins.o \
 -      resolve/host.o \
 -      resolve/resolve_lp.o
+ PRIVATE_DEPENDENCIES = LIBCLI_NBT LIBSAMBA-HOSTCONFIG LIBNETIF 
  
 +LP_RESOLVE_OBJ_FILES = $(addprefix libcli/resolve/, \
 +                                        bcast.o nbtlist.o wins.o \
 +                                        host.o resolve_lp.o)
 +
  [SUBSYSTEM::LIBCLI_FINDDCS]
  PRIVATE_PROTO_HEADER = finddcs.h
 -OBJ_FILES = \
 -      finddcs.o
  PUBLIC_DEPENDENCIES = LIBCLI_NBT MESSAGING
  
 +LIBCLI_FINDDCS_OBJ_FILES = libcli/finddcs.o
 +
  [SUBSYSTEM::LIBCLI_SMB]
  PRIVATE_PROTO_HEADER = libcli_proto.h
 -OBJ_FILES = clireadwrite.o \
 +PUBLIC_DEPENDENCIES = LIBCLI_RAW LIBSAMBA-ERRORS LIBCLI_AUTH \
 +      LIBCLI_SMB_COMPOSITE LIBCLI_NBT LIBSECURITY LIBCLI_RESOLVE \
 +      LIBCLI_DGRAM LIBCLI_SMB2 LIBCLI_FINDDCS samba-socket
 +
 +LIBCLI_SMB_OBJ_FILES = $(addprefix libcli/, \
 +              clireadwrite.o \
                cliconnect.o \
                clifile.o \
                clilist.o \
                clitrans2.o \
                climessage.o \
 -              clideltree.o
 -PUBLIC_DEPENDENCIES = LIBCLI_RAW LIBSAMBA-ERRORS LIBCLI_AUTH \
 -      LIBCLI_SMB_COMPOSITE LIBCLI_NBT LIBSECURITY LIBCLI_RESOLVE \
 -      LIBCLI_DGRAM LIBCLI_SMB2 LIBCLI_FINDDCS samba-socket
 -
 +              clideltree.o)
  
- PUBLIC_HEADERS += libcli/libcli.h
PUBLIC_HEADERS += libcli/libcli.h
  
  [SUBSYSTEM::LIBCLI_RAW]
  PRIVATE_PROTO_HEADER = raw/raw_proto.h
  PRIVATE_DEPENDENCIES = LIBCLI_COMPOSITE LP_RESOLVE gensec LIBCLI_RESOLVE LIBSECURITY LIBNDR
  #LDFLAGS = $(LIBCLI_SMB_COMPOSITE_OUTPUT)
  PUBLIC_DEPENDENCIES = samba-socket LIBPACKET gensec LIBCRYPTO CREDENTIALS 
 -OBJ_FILES = raw/rawfile.o \
 -              raw/smb_signing.o \
 -              raw/clisocket.o \
 -              raw/clitransport.o \
 -              raw/clisession.o \
 -              raw/clitree.o \
 -              raw/clierror.o \
 -              raw/rawrequest.o \
 -              raw/rawreadwrite.o \
 -              raw/rawsearch.o \
 -              raw/rawsetfileinfo.o \
 -              raw/raweas.o \
 -              raw/rawtrans.o \
 -              raw/clioplock.o \
 -              raw/rawnegotiate.o \
 -              raw/rawfsinfo.o \
 -              raw/rawfileinfo.o \
 -              raw/rawnotify.o \
 -              raw/rawioctl.o \
 -              raw/rawacl.o \
 -              raw/rawdate.o \
 -              raw/rawlpq.o \
 -              raw/rawshadow.o
 +
 +LIBCLI_RAW_OBJ_FILES = $(addprefix libcli/raw/, rawfile.o smb_signing.o clisocket.o \
 +                                        clitransport.o clisession.o clitree.o clierror.o rawrequest.o \
 +                                        rawreadwrite.o rawsearch.o rawsetfileinfo.o raweas.o rawtrans.o \
 +                                        clioplock.o rawnegotiate.o rawfsinfo.o rawfileinfo.o rawnotify.o \
 +                                        rawioctl.o rawacl.o rawdate.o rawlpq.o rawshadow.o)
  
  mkinclude smb2/config.mk
index cc38796ac31c563229a11747cc36404f513ab197,0c5236c138211abef10daf1752fdcffed535b8c6..33e32c7417ea99f07c9a14ee2653b0ff1581abc5
@@@ -1,18 -1,17 +1,17 @@@
  [SUBSYSTEM::LIBCLI_LDAP]
  PRIVATE_PROTO_HEADER = ldap_proto.h
 -OBJ_FILES = ldap.o \
 -              ldap_client.o \
 -              ldap_bind.o \
 -              ldap_msg.o \
 -              ldap_ildap.o \
 -              ldap_controls.o
  PUBLIC_DEPENDENCIES = LIBSAMBA-ERRORS LIBEVENTS LIBPACKET 
  PRIVATE_DEPENDENCIES = LIBCLI_COMPOSITE samba-socket NDR_SAMR LIBTLS ASN1_UTIL \
                                           LDAP_ENCODE LIBNDR LP_RESOLVE gensec
  
- PUBLIC_HEADERS += libcli/ldap/ldap.h
 +LIBCLI_LDAP_OBJ_FILES = $(addprefix libcli/ldap/, \
 +                                         ldap.o ldap_client.o ldap_bind.o \
 +                                         ldap_msg.o ldap_ildap.o ldap_controls.o)
 +
 +
+ PUBLIC_HEADERS += libcli/ldap/ldap.h libcli/ldap/ldap_ndr.h
  
  [SUBSYSTEM::LDAP_ENCODE]
- PRIVATE_PROTO_HEADER = ldap_ndr.h
 -OBJ_FILES = ldap_ndr.o
  # FIXME PRIVATE_DEPENDENCIES = LIBLDB
 +
 +LDAP_ENCODE_OBJ_FILES = libcli/ldap/ldap_ndr.o
diff --combined source4/libnet/config.mk
index f7ff07a7bc26cdd2adbb90180ac9947346579ffb,00af6b37f270450bd2d9b029b33131d081eb7b2b..1f4ab0621fe6de98e8d3fd43ed7548e1f39929d8
@@@ -1,23 -1,36 +1,17 @@@
  [SUBSYSTEM::LIBSAMBA-NET]
  PRIVATE_PROTO_HEADER = libnet_proto.h
 -OBJ_FILES = \
 -              libnet.o \
 -              libnet_passwd.o \
 -              libnet_time.o \
 -              libnet_rpc.o \
 -              libnet_join.o \
 -              libnet_site.o \
 -              libnet_become_dc.o \
 -              libnet_unbecome_dc.o \
 -              libnet_vampire.o \
 -              libnet_samdump.o \
 -              libnet_samdump_keytab.o \
 -              libnet_samsync_ldb.o \
 -              libnet_user.o \
 -              libnet_group.o \
 -              libnet_share.o \
 -              libnet_lookup.o \
 -              libnet_domain.o \
 -              userinfo.o \
 -              groupinfo.o \
 -              userman.o \
 -              groupman.o \
 -              prereq_domain.o
  PUBLIC_DEPENDENCIES = CREDENTIALS dcerpc dcerpc_samr RPC_NDR_LSA RPC_NDR_SRVSVC RPC_NDR_DRSUAPI LIBCLI_COMPOSITE LIBCLI_RESOLVE LIBCLI_FINDDCS LIBCLI_CLDAP LIBCLI_FINDDCS gensec_schannel LIBCLI_AUTH LIBNDR SMBPASSWD
  
 -#PUBLIC_HEADERS += $(addprefix libnet/, libnet.h libnet_join.h libnet_lookup.h libnet_passwd.h \
 -#                              libnet_rpc.h libnet_share.h libnet_time.h \
 -#                              libnet_user.h libnet_site.h libnet_vampire.h \
 -#                              userinfo.h userman.h)
 -
 +LIBSAMBA-NET_OBJ_FILES = $(addprefix libnet/, \
 +      libnet.o libnet_passwd.o libnet_time.o libnet_rpc.o \
 +      libnet_join.o libnet_site.o libnet_become_dc.o libnet_unbecome_dc.o \
 +      libnet_vampire.o libnet_samdump.o libnet_samdump_keytab.o \
 +      libnet_samsync_ldb.o libnet_user.o libnet_group.o libnet_share.o \
 +      libnet_lookup.o libnet_domain.o userinfo.o groupinfo.o userman.o \
 +      groupman.o prereq_domain.o)
  
- PUBLIC_HEADERS += $(addprefix libnet/, libnet.h libnet_join.h libnet_lookup.h libnet_passwd.h \
-                                libnet_rpc.h libnet_share.h libnet_time.h \
-                                libnet_user.h libnet_site.h libnet_vampire.h \
-                                userinfo.h userman.h)
  [PYTHON::swig_net]
  PRIVATE_DEPENDENCIES = LIBSAMBA-NET
  SWIG_FILE = net.i
 +
 +swig_net_OBJ_FILES = libnet/net_wrap.o
diff --combined source4/librpc/config.mk
index bb81888d1276365a98fbbc8f141507ca4f4e7858,b6f3fdac52f4bc3bcca391af64dc0f7cb7bc67e3..cb679d20bb58684134a0dc42fb61900ddb195f12
@@@ -1,16 -1,17 +1,16 @@@
  ################################################
  # Start SUBSYSTEM LIBNDR
  [LIBRARY::LIBNDR]
 -VERSION = 0.0.1
 -SO_VERSION = 0
 -PC_FILE = ndr.pc
  PRIVATE_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 \
-                                         LIBSAMBA-CONFIG
+                                         LIBSAMBA-HOSTCONFIG
 +
 +LIBNDR_OBJ_FILES = $(addprefix librpc/ndr/, ndr.o ndr_basic.o ndr_string.o uuid.o)
 +
 +PC_FILES += librpc/ndr.pc
 +LIBNDR_VERSION = 0.0.1
 +LIBNDR_SOVERSION = 0
 +
  # End SUBSYSTEM LIBNDR
  ################################################
  
@@@ -20,8 -21,10 +20,8 @@@ PUBLIC_HEADERS += librpc/ndr/libndr.
  # Start BINARY ndrdump
  [BINARY::ndrdump]
  INSTALLDIR = BINDIR
 -OBJ_FILES = \
 -              tools/ndrdump.o
  PRIVATE_DEPENDENCIES = \
-               LIBSAMBA-CONFIG \
+               LIBSAMBA-HOSTCONFIG \
                LIBSAMBA-UTIL \
                LIBPOPT \
                POPT_SAMBA \
  # End BINARY ndrdump
  #################################
  
 +ndrdump_OBJ_FILES = librpc/tools/ndrdump.o
 +
  MANPAGES += librpc/tools/ndrdump.1
  
  ################################################
  # Start SUBSYSTEM NDR_COMPRESSION
  [SUBSYSTEM::NDR_COMPRESSION]
  PRIVATE_PROTO_HEADER = ndr/ndr_compression.h
 -OBJ_FILES = \
 -              ndr/ndr_compression.o
  PUBLIC_DEPENDENCIES = LIBCOMPRESSION LIBSAMBA-ERRORS LIBNDR
  # End SUBSYSTEM NDR_COMPRESSION
  ################################################
  
 +NDR_COMPRESSION_OBJ_FILES = librpc/ndr/ndr_compression.o
 +
  [SUBSYSTEM::NDR_SECURITY]
 -OBJ_FILES = gen_ndr/ndr_security.o ndr/ndr_sec_helper.o 
  PUBLIC_DEPENDENCIES = NDR_MISC LIBSECURITY
  
 +NDR_SECURITY_OBJ_FILES = librpc/gen_ndr/ndr_security.o librpc/ndr/ndr_sec_helper.o 
 +
  PUBLIC_HEADERS += librpc/gen_ndr/security.h
  
  [SUBSYSTEM::NDR_AUDIOSRV]
 -OBJ_FILES = gen_ndr/ndr_audiosrv.o
  PUBLIC_DEPENDENCIES = LIBNDR
  
 +NDR_AUDIOSRV_OBJ_FILES = librpc/gen_ndr/ndr_audiosrv.o
 +
  [SUBSYSTEM::NDR_DNSSERVER]
 -OBJ_FILES = gen_ndr/ndr_dnsserver.o
  PUBLIC_DEPENDENCIES = LIBNDR
  
 +NDR_DNSSERVER_OBJ_FILES = librpc/gen_ndr/ndr_dnsserver.o
 +
  [SUBSYSTEM::NDR_WINSTATION]
 -OBJ_FILES = gen_ndr/ndr_winstation.o
  PUBLIC_DEPENDENCIES = LIBNDR
  
 +NDR_WINSTATION_OBJ_FILES = librpc/gen_ndr/ndr_winstation.o
 +
  [SUBSYSTEM::NDR_ECHO]
 -OBJ_FILES = gen_ndr/ndr_echo.o
  PUBLIC_DEPENDENCIES = LIBNDR
  
 +NDR_ECHO_OBJ_FILES = librpc/gen_ndr/ndr_echo.o
 +
  [SUBSYSTEM::NDR_IRPC]
 -OBJ_FILES = gen_ndr/ndr_irpc.o
  PUBLIC_DEPENDENCIES = LIBNDR NDR_SECURITY NDR_NBT
  
 +NDR_IRPC_OBJ_FILES = librpc/gen_ndr/ndr_irpc.o
 +
  [SUBSYSTEM::NDR_DSBACKUP]
 -OBJ_FILES = gen_ndr/ndr_dsbackup.o
  PUBLIC_DEPENDENCIES = LIBNDR
  
 +NDR_DSBACKUP_OBJ_FILES = librpc/gen_ndr/ndr_dsbackup.o
 +
  [SUBSYSTEM::NDR_EFS]
 -OBJ_FILES = gen_ndr/ndr_efs.o
  PUBLIC_DEPENDENCIES = LIBNDR NDR_SECURITY
  
 +NDR_EFS_OBJ_FILES = librpc/gen_ndr/ndr_efs.o
 +
  [SUBSYSTEM::NDR_MISC]
 -OBJ_FILES = gen_ndr/ndr_misc.o ndr/ndr_misc.o
  PUBLIC_DEPENDENCIES = LIBNDR
  
 +NDR_MISC_OBJ_FILES = librpc/gen_ndr/ndr_misc.o librpc/ndr/ndr_misc.o
 +
  PUBLIC_HEADERS += librpc/gen_ndr/misc.h librpc/gen_ndr/ndr_misc.h
  
  [SUBSYSTEM::NDR_ROT]
 -OBJ_FILES = gen_ndr/ndr_rot.o
  PUBLIC_DEPENDENCIES = LIBNDR NDR_ORPC
  
 +NDR_ROT_OBJ_FILES = librpc/gen_ndr/ndr_rot.o
 +
  [SUBSYSTEM::NDR_LSA]
 -OBJ_FILES = gen_ndr/ndr_lsa.o
  PUBLIC_DEPENDENCIES = LIBNDR NDR_SECURITY
  
 +NDR_LSA_OBJ_FILES = librpc/gen_ndr/ndr_lsa.o
 +
  PUBLIC_HEADERS += librpc/gen_ndr/lsa.h
  
  [SUBSYSTEM::NDR_DFS]
 -OBJ_FILES = gen_ndr/ndr_dfs.o
  PUBLIC_DEPENDENCIES = LIBNDR NDR_MISC
  
 +NDR_DFS_OBJ_FILES = librpc/gen_ndr/ndr_dfs.o
 +
  [SUBSYSTEM::NDR_FRSRPC]
 -OBJ_FILES = gen_ndr/ndr_frsrpc.o
  PUBLIC_DEPENDENCIES = LIBNDR
  
 +NDR_FRSRPC_OBJ_FILES = librpc/gen_ndr/ndr_frsrpc.o
 +
  [SUBSYSTEM::NDR_FRSAPI]
 -OBJ_FILES = gen_ndr/ndr_frsapi.o
  PUBLIC_DEPENDENCIES = LIBNDR
  
 +NDR_FRSAPI_OBJ_FILES = librpc/gen_ndr/ndr_frsapi.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
  
 +NDR_DRSUAPI_OBJ_FILES = librpc/gen_ndr/ndr_drsuapi.o librpc/ndr/ndr_drsuapi.o
 +
  [SUBSYSTEM::NDR_DRSBLOBS]
 -OBJ_FILES = gen_ndr/ndr_drsblobs.o
  PUBLIC_DEPENDENCIES = LIBNDR NDR_MISC NDR_DRSUAPI
  
 +NDR_DRSBLOBS_OBJ_FILES = librpc/gen_ndr/ndr_drsblobs.o
 +
  [SUBSYSTEM::NDR_SASL_HELPERS]
 -OBJ_FILES = gen_ndr/ndr_sasl_helpers.o
  PUBLIC_DEPENDENCIES = LIBNDR
  
 +NDR_SASL_HELPERS_OBJ_FILES = librpc/gen_ndr/ndr_sasl_helpers.o
 +
  [SUBSYSTEM::NDR_POLICYAGENT]
 -OBJ_FILES = gen_ndr/ndr_policyagent.o
  PUBLIC_DEPENDENCIES = LIBNDR
  
 +NDR_POLICYAGENT_OBJ_FILES = librpc/gen_ndr/ndr_policyagent.o
 +
  [SUBSYSTEM::NDR_UNIXINFO]
 -OBJ_FILES = gen_ndr/ndr_unixinfo.o
  PUBLIC_DEPENDENCIES = LIBNDR NDR_SECURITY
  
 +NDR_UNIXINFO_OBJ_FILES = librpc/gen_ndr/ndr_unixinfo.o
 +
  [SUBSYSTEM::NDR_SAMR]
 -OBJ_FILES = gen_ndr/ndr_samr.o
  PUBLIC_DEPENDENCIES = LIBNDR NDR_MISC NDR_LSA NDR_SECURITY
  
 +NDR_SAMR_OBJ_FILES = librpc/gen_ndr/ndr_samr.o
 +
  PUBLIC_HEADERS += $(addprefix librpc/, gen_ndr/samr.h gen_ndr/ndr_samr.h gen_ndr/ndr_samr_c.h)
  
  [SUBSYSTEM::NDR_NFS4ACL]
 -OBJ_FILES = gen_ndr/ndr_nfs4acl.o
  PUBLIC_DEPENDENCIES = LIBNDR NDR_MISC NDR_SECURITY
  
 +NDR_NFS4ACL_OBJ_FILES = librpc/gen_ndr/ndr_nfs4acl.o
 +
  [SUBSYSTEM::NDR_SPOOLSS]
 -OBJ_FILES = gen_ndr/ndr_spoolss.o
  PUBLIC_DEPENDENCIES = LIBNDR NDR_SPOOLSS_BUF NDR_SECURITY
  
 +NDR_SPOOLSS_OBJ_FILES = librpc/gen_ndr/ndr_spoolss.o
 +
  [SUBSYSTEM::NDR_SPOOLSS_BUF]
  PRIVATE_PROTO_HEADER = ndr/ndr_spoolss_buf.h
 -OBJ_FILES = ndr/ndr_spoolss_buf.o
 +
 +NDR_SPOOLSS_BUF_OBJ_FILES = librpc/ndr/ndr_spoolss_buf.o
  
  [SUBSYSTEM::NDR_WKSSVC]
 -OBJ_FILES = gen_ndr/ndr_wkssvc.o
  PUBLIC_DEPENDENCIES = LIBNDR NDR_SRVSVC NDR_MISC NDR_SECURITY
  
 +NDR_WKSSVC_OBJ_FILES = librpc/gen_ndr/ndr_wkssvc.o
 +
  [SUBSYSTEM::NDR_SRVSVC]
 -OBJ_FILES = gen_ndr/ndr_srvsvc.o
  PUBLIC_DEPENDENCIES = LIBNDR NDR_SVCCTL NDR_SECURITY
  
 +NDR_SRVSVC_OBJ_FILES = librpc/gen_ndr/ndr_srvsvc.o
 +
  [SUBSYSTEM::NDR_SVCCTL]
 -OBJ_FILES = gen_ndr/ndr_svcctl.o
  PUBLIC_DEPENDENCIES = LIBNDR NDR_MISC
  
 +NDR_SVCCTL_OBJ_FILES = librpc/gen_ndr/ndr_svcctl.o
 +
  PUBLIC_HEADERS += $(addprefix librpc/, gen_ndr/ndr_svcctl.h gen_ndr/svcctl.h)
  
  [SUBSYSTEM::NDR_ATSVC]
 -OBJ_FILES = gen_ndr/ndr_atsvc.o
  PUBLIC_DEPENDENCIES = LIBNDR
  
 +NDR_ATSVC_OBJ_FILES = librpc/gen_ndr/ndr_atsvc.o
 +
  PUBLIC_HEADERS += $(addprefix librpc/, gen_ndr/atsvc.h gen_ndr/ndr_atsvc.h)
  
  [SUBSYSTEM::NDR_EVENTLOG]
 -OBJ_FILES = gen_ndr/ndr_eventlog.o
  PUBLIC_DEPENDENCIES = LIBNDR NDR_LSA
  
 +NDR_EVENTLOG_OBJ_FILES = librpc/gen_ndr/ndr_eventlog.o
 +
  [SUBSYSTEM::NDR_EPMAPPER]
 -OBJ_FILES = gen_ndr/ndr_epmapper.o
  PUBLIC_DEPENDENCIES = LIBNDR NDR_MISC
  
 +NDR_EPMAPPER_OBJ_FILES = librpc/gen_ndr/ndr_epmapper.o
 +
  [SUBSYSTEM::NDR_DBGIDL]
 -OBJ_FILES = gen_ndr/ndr_dbgidl.o
  PUBLIC_DEPENDENCIES = LIBNDR
  
 +NDR_DBGIDL_OBJ_FILES = librpc/gen_ndr/ndr_dbgidl.o
 +
  [SUBSYSTEM::NDR_DSSETUP]
 -OBJ_FILES = gen_ndr/ndr_dssetup.o
  PUBLIC_DEPENDENCIES = LIBNDR NDR_MISC
  
 +NDR_DSSETUP_OBJ_FILES = librpc/gen_ndr/ndr_dssetup.o
 +
  [SUBSYSTEM::NDR_MSGSVC]
 -OBJ_FILES = gen_ndr/ndr_msgsvc.o
  PUBLIC_DEPENDENCIES = LIBNDR
  
 +NDR_MSGSVC_OBJ_FILES = librpc/gen_ndr/ndr_msgsvc.o
 +
  [SUBSYSTEM::NDR_WINS]
 -OBJ_FILES = gen_ndr/ndr_wins.o
  PUBLIC_DEPENDENCIES = LIBNDR
  
 +NDR_WINS_OBJ_FILES = librpc/gen_ndr/ndr_wins.o
 +
  [SUBSYSTEM::NDR_WINREG]
 -OBJ_FILES = gen_ndr/ndr_winreg.o
  PUBLIC_DEPENDENCIES = LIBNDR NDR_INITSHUTDOWN NDR_SECURITY NDR_MISC
  
 +NDR_WINREG_OBJ_FILES = librpc/gen_ndr/ndr_winreg.o
 +
  [SUBSYSTEM::NDR_INITSHUTDOWN]
 -OBJ_FILES = gen_ndr/ndr_initshutdown.o
  PUBLIC_DEPENDENCIES = LIBNDR
  
 +NDR_INITSHUTDOWN_OBJ_FILES = librpc/gen_ndr/ndr_initshutdown.o
 +
  [SUBSYSTEM::NDR_MGMT]
 -OBJ_FILES = gen_ndr/ndr_mgmt.o
  PUBLIC_DEPENDENCIES = LIBNDR 
  
 +NDR_MGMT_OBJ_FILES = librpc/gen_ndr/ndr_mgmt.o
 +
  [SUBSYSTEM::NDR_PROTECTED_STORAGE]
 -OBJ_FILES = gen_ndr/ndr_protected_storage.o
  PUBLIC_DEPENDENCIES = LIBNDR
  
 +NDR_PROTECTED_STORAGE_OBJ_FILES = librpc/gen_ndr/ndr_protected_storage.o
 +
  [SUBSYSTEM::NDR_ORPC]
 -OBJ_FILES = gen_ndr/ndr_orpc.o ndr/ndr_orpc.o 
  PUBLIC_DEPENDENCIES = LIBNDR 
  
 +NDR_ORPC_OBJ_FILES = librpc/gen_ndr/ndr_orpc.o librpc/ndr/ndr_orpc.o 
 +
  [SUBSYSTEM::NDR_OXIDRESOLVER]
 -OBJ_FILES = gen_ndr/ndr_oxidresolver.o
  PUBLIC_DEPENDENCIES = LIBNDR NDR_ORPC NDR_MISC
  
 +NDR_OXIDRESOLVER_OBJ_FILES = librpc/gen_ndr/ndr_oxidresolver.o
 +
  [SUBSYSTEM::NDR_REMACT]
 -OBJ_FILES = gen_ndr/ndr_remact.o
  PUBLIC_DEPENDENCIES = LIBNDR NDR_ORPC NDR_MISC
  
 +NDR_REMACT_OBJ_FILES = librpc/gen_ndr/ndr_remact.o
 +
  [SUBSYSTEM::NDR_WZCSVC]
 -OBJ_FILES = gen_ndr/ndr_wzcsvc.o
  PUBLIC_DEPENDENCIES = LIBNDR
  
 +NDR_WZCSVC_OBJ_FILES = librpc/gen_ndr/ndr_wzcsvc.o
 +
  [SUBSYSTEM::NDR_BROWSER]
 -OBJ_FILES = gen_ndr/ndr_browser.o
  PUBLIC_DEPENDENCIES = LIBNDR
  
 +NDR_BROWSER_OBJ_FILES = librpc/gen_ndr/ndr_browser.o
 +
  [SUBSYSTEM::NDR_W32TIME]
 -OBJ_FILES = gen_ndr/ndr_w32time.o
  PUBLIC_DEPENDENCIES = LIBNDR
  
 +NDR_W32TIME_OBJ_FILES = librpc/gen_ndr/ndr_w32time.o
 +
  [SUBSYSTEM::NDR_SCERPC]
 -OBJ_FILES = gen_ndr/ndr_scerpc.o
  PUBLIC_DEPENDENCIES = LIBNDR
  
 +NDR_SCERPC_OBJ_FILES = librpc/gen_ndr/ndr_scerpc.o
 +
  [SUBSYSTEM::NDR_NTSVCS]
 -OBJ_FILES = gen_ndr/ndr_ntsvcs.o
  PUBLIC_DEPENDENCIES = LIBNDR
  
 +NDR_NTSVCS_OBJ_FILES = librpc/gen_ndr/ndr_ntsvcs.o
 +
  [SUBSYSTEM::NDR_NETLOGON]
 -OBJ_FILES = gen_ndr/ndr_netlogon.o
  PUBLIC_DEPENDENCIES = LIBNDR NDR_SAMR NDR_LSA NDR_SECURITY
  
 +NDR_NETLOGON_OBJ_FILES = librpc/gen_ndr/ndr_netlogon.o
 +
  PUBLIC_HEADERS += $(addprefix librpc/, gen_ndr/netlogon.h)
  
  [SUBSYSTEM::NDR_TRKWKS]
 -OBJ_FILES = gen_ndr/ndr_trkwks.o
  PUBLIC_DEPENDENCIES = LIBNDR
  
 +NDR_TRKWKS_OBJ_FILES = librpc/gen_ndr/ndr_trkwks.o
 +
  [SUBSYSTEM::NDR_KEYSVC]
 -OBJ_FILES = gen_ndr/ndr_keysvc.o
  PUBLIC_DEPENDENCIES = LIBNDR
  
 +NDR_KEYSVC_OBJ_FILES = librpc/gen_ndr/ndr_keysvc.o
 +
  [SUBSYSTEM::NDR_KRB5PAC]
 -OBJ_FILES = gen_ndr/ndr_krb5pac.o ndr/ndr_krb5pac.o
  PUBLIC_DEPENDENCIES = LIBNDR NDR_NETLOGON NDR_SECURITY
  
 +NDR_KRB5PAC_OBJ_FILES = librpc/gen_ndr/ndr_krb5pac.o librpc/ndr/ndr_krb5pac.o
 +
  [SUBSYSTEM::NDR_XATTR]
 -OBJ_FILES = gen_ndr/ndr_xattr.o
  PUBLIC_DEPENDENCIES = LIBNDR NDR_SECURITY
  
 +NDR_XATTR_OBJ_FILES = librpc/gen_ndr/ndr_xattr.o
 +
  [SUBSYSTEM::NDR_OPENDB]
 -OBJ_FILES = gen_ndr/ndr_opendb.o
  PUBLIC_DEPENDENCIES = LIBNDR
  
 +NDR_OPENDB_OBJ_FILES = librpc/gen_ndr/ndr_opendb.o
 +
  [SUBSYSTEM::NDR_NOTIFY]
 -OBJ_FILES = gen_ndr/ndr_notify.o
  PUBLIC_DEPENDENCIES = LIBNDR
  
 +NDR_NOTIFY_OBJ_FILES = librpc/gen_ndr/ndr_notify.o
 +
  [SUBSYSTEM::NDR_SCHANNEL]
 -OBJ_FILES = gen_ndr/ndr_schannel.o
  PUBLIC_DEPENDENCIES = LIBNDR NDR_NBT
  
 +NDR_SCHANNEL_OBJ_FILES = librpc/gen_ndr/ndr_schannel.o
 +
  [SUBSYSTEM::NDR_NBT]
 -OBJ_FILES = gen_ndr/ndr_nbt.o
  PUBLIC_DEPENDENCIES = LIBNDR NDR_MISC NDR_NBT_BUF NDR_SVCCTL NDR_SECURITY
  
 +NDR_NBT_OBJ_FILES = librpc/gen_ndr/ndr_nbt.o
 +
  PUBLIC_HEADERS += librpc/gen_ndr/nbt.h
  
  [SUBSYSTEM::NDR_WINSREPL]
 -OBJ_FILES = gen_ndr/ndr_winsrepl.o
  PUBLIC_DEPENDENCIES = LIBNDR NDR_NBT
  
 +NDR_WINSREPL_OBJ_FILES = librpc/gen_ndr/ndr_winsrepl.o
 +
  [SUBSYSTEM::NDR_WINBIND]
 -OBJ_FILES = gen_ndr/ndr_winbind.o
  PUBLIC_DEPENDENCIES = LIBNDR NDR_NETLOGON
  
 +NDR_WINBIND_OBJ_FILES = librpc/gen_ndr/ndr_winbind.o
  PUBLIC_HEADERS += librpc/gen_ndr/winbind.h
  
  librpc/idl-deps:
@@@ -356,6 -302,7 +356,6 @@@ librpc/gen_ndr/tables.c: $(IDL_NDR_PARS
        @mv librpc/gen_ndr/tables.x $@
  
  [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_INITSHUTDOWN NDR_DNSSERVER NDR_WINSTATION NDR_IRPC NDR_OPENDB \
        NDR_SASL_HELPERS NDR_NOTIFY NDR_WINBIND NDR_FRSRPC NDR_FRSAPI NDR_NFS4ACL
  
 +NDR_TABLE_OBJ_FILES = librpc/ndr/ndr_table.o librpc/gen_ndr/tables.o
 +
  [SUBSYSTEM::RPC_NDR_ROT]
 -OBJ_FILES = gen_ndr/ndr_rot_c.o
  PUBLIC_DEPENDENCIES = NDR_ROT dcerpc
  
 +RPC_NDR_ROT_OBJ_FILES = librpc/gen_ndr/ndr_rot_c.o
 +
  [SUBSYSTEM::RPC_NDR_AUDIOSRV]
 -OBJ_FILES = gen_ndr/ndr_audiosrv_c.o
  PUBLIC_DEPENDENCIES = NDR_AUDIOSRV dcerpc
  
 +RPC_NDR_AUDIOSRV_OBJ_FILES = librpc/gen_ndr/ndr_audiosrv_c.o
 +
  [SUBSYSTEM::RPC_NDR_ECHO]
 -OBJ_FILES = gen_ndr/ndr_echo_c.o
  PUBLIC_DEPENDENCIES = dcerpc NDR_ECHO
  
 +RPC_NDR_ECHO_OBJ_FILES = librpc/gen_ndr/ndr_echo_c.o
 +
  [SUBSYSTEM::RPC_NDR_DSBACKUP]
 -OBJ_FILES = gen_ndr/ndr_dsbackup_c.o
  PUBLIC_DEPENDENCIES = dcerpc NDR_DSBACKUP
  
 +RPC_NDR_DSBACKUP_OBJ_FILES = librpc/gen_ndr/ndr_dsbackup_c.o
 +
  [SUBSYSTEM::RPC_NDR_EFS]
 -OBJ_FILES = gen_ndr/ndr_efs_c.o
  PUBLIC_DEPENDENCIES = dcerpc NDR_EFS
  
 +RPC_NDR_EFS_OBJ_FILES = librpc/gen_ndr/ndr_efs_c.o
 +
  [SUBSYSTEM::RPC_NDR_LSA]
 -OBJ_FILES = gen_ndr/ndr_lsa_c.o
  PUBLIC_DEPENDENCIES = dcerpc NDR_LSA
  
 +RPC_NDR_LSA_OBJ_FILES = librpc/gen_ndr/ndr_lsa_c.o
 +
  [SUBSYSTEM::RPC_NDR_DFS]
 -OBJ_FILES = gen_ndr/ndr_dfs_c.o
  PUBLIC_DEPENDENCIES = dcerpc NDR_DFS
  
 +RPC_NDR_DFS_OBJ_FILES = librpc/gen_ndr/ndr_dfs_c.o
 +
  [SUBSYSTEM::RPC_NDR_FRSAPI]
 -OBJ_FILES = gen_ndr/ndr_frsapi_c.o
  PUBLIC_DEPENDENCIES = dcerpc NDR_FRSAPI
  
 +RPC_NDR_FRSAPI_OBJ_FILES = librpc/gen_ndr/ndr_frsapi_c.o
 +
  [SUBSYSTEM::RPC_NDR_DRSUAPI]
 -OBJ_FILES = gen_ndr/ndr_drsuapi_c.o
  PUBLIC_DEPENDENCIES = dcerpc NDR_DRSUAPI
  
 +RPC_NDR_DRSUAPI_OBJ_FILES = librpc/gen_ndr/ndr_drsuapi_c.o
 +
  [SUBSYSTEM::RPC_NDR_POLICYAGENT]
 -OBJ_FILES = gen_ndr/ndr_policyagent_c.o
  PUBLIC_DEPENDENCIES = dcerpc NDR_POLICYAGENT
  
 +RPC_NDR_POLICYAGENT_OBJ_FILES = librpc/gen_ndr/ndr_policyagent_c.o
 +
  [SUBSYSTEM::RPC_NDR_UNIXINFO]
 -OBJ_FILES = gen_ndr/ndr_unixinfo_c.o
  PUBLIC_DEPENDENCIES = dcerpc NDR_UNIXINFO
  
 +RPC_NDR_UNIXINFO_OBJ_FILES = librpc/gen_ndr/ndr_unixinfo_c.o
 +
  [LIBRARY::dcerpc_samr]
 -OBJ_FILES = gen_ndr/ndr_samr_c.o
  PUBLIC_DEPENDENCIES = dcerpc NDR_SAMR 
 -PC_FILE = dcerpc_samr.pc
 -VERSION = 0.0.1
 -SO_VERSION = 0
 +
 +PC_FILES += librpc/dcerpc_samr.pc
 +
 +dcerpc_samr_VERSION = 0.0.1
 +dcerpc_samr_SOVERSION = 0
 +dcerpc_samr_OBJ_FILES = librpc/gen_ndr/ndr_samr_c.o
  
  [SUBSYSTEM::RPC_NDR_SPOOLSS]
 -OBJ_FILES = gen_ndr/ndr_spoolss_c.o
  PUBLIC_DEPENDENCIES = dcerpc NDR_SPOOLSS
  
 +RPC_NDR_SPOOLSS_OBJ_FILES = librpc/gen_ndr/ndr_spoolss_c.o
 +
  [SUBSYSTEM::RPC_NDR_WKSSVC]
 -OBJ_FILES = gen_ndr/ndr_wkssvc_c.o
  PUBLIC_DEPENDENCIES = dcerpc NDR_WKSSVC
  
 +RPC_NDR_WKSSVC_OBJ_FILES = librpc/gen_ndr/ndr_wkssvc_c.o
 +
  [SUBSYSTEM::RPC_NDR_SRVSVC]
 -OBJ_FILES = gen_ndr/ndr_srvsvc_c.o
  PUBLIC_DEPENDENCIES = dcerpc NDR_SRVSVC
  
 +RPC_NDR_SRVSVC_OBJ_FILES = librpc/gen_ndr/ndr_srvsvc_c.o
 +
  [SUBSYSTEM::RPC_NDR_SVCCTL]
 -OBJ_FILES = gen_ndr/ndr_svcctl_c.o
  PUBLIC_DEPENDENCIES = dcerpc NDR_SVCCTL
  
 +RPC_NDR_SVCCTL_OBJ_FILES = librpc/gen_ndr/ndr_svcctl_c.o
 +
  PUBLIC_HEADERS += librpc/gen_ndr/ndr_svcctl_c.h
  
- [SUBSYSTEM::dcerpc_atsvc]
+ [LIBRARY::dcerpc_atsvc]
 -OBJ_FILES = gen_ndr/ndr_atsvc_c.o
  PUBLIC_DEPENDENCIES = dcerpc NDR_ATSVC
 -PC_FILE = dcerpc_atsvc.pc
+ VERSION = 0.0.1
+ SO_VERSION = 0
  
 +dcerpc_atsvc_OBJ_FILES = librpc/gen_ndr/ndr_atsvc_c.o
++PC_FILES += librpc/dcerpc_atsvc.pc
 +
  PUBLIC_HEADERS += librpc/gen_ndr/ndr_atsvc_c.h
  
  [SUBSYSTEM::RPC_NDR_EVENTLOG]
 -OBJ_FILES = gen_ndr/ndr_eventlog_c.o
  PUBLIC_DEPENDENCIES = dcerpc NDR_EVENTLOG
  
 +RPC_NDR_EVENTLOG_OBJ_FILES = librpc/gen_ndr/ndr_eventlog_c.o
 +
  [SUBSYSTEM::RPC_NDR_EPMAPPER]
 -OBJ_FILES = gen_ndr/ndr_epmapper_c.o
  PUBLIC_DEPENDENCIES = NDR_EPMAPPER 
  
 +RPC_NDR_EPMAPPER_OBJ_FILES = librpc/gen_ndr/ndr_epmapper_c.o
 +
  [SUBSYSTEM::RPC_NDR_DBGIDL]
 -OBJ_FILES = gen_ndr/ndr_dbgidl_c.o
  PUBLIC_DEPENDENCIES = dcerpc NDR_DBGIDL
  
 +RPC_NDR_DBGIDL_OBJ_FILES = librpc/gen_ndr/ndr_dbgidl_c.o
 +
  [SUBSYSTEM::RPC_NDR_DSSETUP]
 -OBJ_FILES = gen_ndr/ndr_dssetup_c.o
  PUBLIC_DEPENDENCIES = dcerpc NDR_DSSETUP
  
 +RPC_NDR_DSSETUP_OBJ_FILES = librpc/gen_ndr/ndr_dssetup_c.o
 +
  [SUBSYSTEM::RPC_NDR_MSGSVC]
 -OBJ_FILES = gen_ndr/ndr_msgsvc_c.o
  PUBLIC_DEPENDENCIES = dcerpc NDR_MSGSVC
  
 +RPC_NDR_MSGSVC_OBJ_FILES = librpc/gen_ndr/ndr_msgsvc_c.o
 +
  [SUBSYSTEM::RPC_NDR_WINS]
 -OBJ_FILES = gen_ndr/ndr_wins_c.o
  PUBLIC_DEPENDENCIES = dcerpc NDR_WINS
  
 +RPC_NDR_WINS_OBJ_FILES = librpc/gen_ndr/ndr_wins_c.o
 +
  [SUBSYSTEM::RPC_NDR_WINREG]
 -OBJ_FILES = gen_ndr/ndr_winreg_c.o
  PUBLIC_DEPENDENCIES = dcerpc NDR_WINREG
  
 +RPC_NDR_WINREG_OBJ_FILES = librpc/gen_ndr/ndr_winreg_c.o
 +
  [SUBSYSTEM::RPC_NDR_INITSHUTDOWN]
 -OBJ_FILES = gen_ndr/ndr_initshutdown_c.o
  PUBLIC_DEPENDENCIES = dcerpc NDR_INITSHUTDOWN
  
- [SUBSYSTEM::dcerpc_mgmt]
 +RPC_NDR_INITSHUTDOWN_OBJ_FILES = librpc/gen_ndr/ndr_initshutdown_c.o
 +
 -OBJ_FILES = gen_ndr/ndr_mgmt_c.o
+ [SUBSYSTEM::RPC_NDR_MGMT]
  PRIVATE_DEPENDENCIES = NDR_MGMT
  
- dcerpc_mgmt_OBJ_FILES = librpc/gen_ndr/ndr_mgmt_c.o
++RPC_NDR_MGMT_OBJ_FILES = librpc/gen_ndr/ndr_mgmt_c.o
 +
  [SUBSYSTEM::RPC_NDR_PROTECTED_STORAGE]
 -OBJ_FILES = gen_ndr/ndr_protected_storage_c.o
  PUBLIC_DEPENDENCIES = dcerpc NDR_PROTECTED_STORAGE
  
 +RPC_NDR_PROTECTED_STORAGE_OBJ_FILES = librpc/gen_ndr/ndr_protected_storage_c.o
 +
  [SUBSYSTEM::RPC_NDR_OXIDRESOLVER]
 -OBJ_FILES = gen_ndr/ndr_oxidresolver_c.o
  PUBLIC_DEPENDENCIES = dcerpc NDR_OXIDRESOLVER
  
 +RPC_NDR_OXIDRESOLVER_OBJ_FILES = librpc/gen_ndr/ndr_oxidresolver_c.o
 +
  [SUBSYSTEM::RPC_NDR_REMACT]
 -OBJ_FILES = gen_ndr/ndr_remact_c.o
  PUBLIC_DEPENDENCIES = dcerpc NDR_REMACT
  
 +RPC_NDR_REMACT_OBJ_FILES = librpc/gen_ndr/ndr_remact_c.o
 +
  [SUBSYSTEM::RPC_NDR_WZCSVC]
 -OBJ_FILES = gen_ndr/ndr_wzcsvc_c.o
  PUBLIC_DEPENDENCIES = dcerpc NDR_WZCSVC
  
 +RPC_NDR_WZCSVC_OBJ_FILES = librpc/gen_ndr/ndr_wzcsvc_c.o
 +
  [SUBSYSTEM::RPC_NDR_W32TIME]
 -OBJ_FILES = gen_ndr/ndr_w32time_c.o
  PUBLIC_DEPENDENCIES = dcerpc NDR_W32TIME
  
 +RPC_NDR_W32TIME_OBJ_FILES = librpc/gen_ndr/ndr_w32time_c.o
 +
  [SUBSYSTEM::RPC_NDR_SCERPC]
 -OBJ_FILES = gen_ndr/ndr_scerpc_c.o
  PUBLIC_DEPENDENCIES = dcerpc NDR_SCERPC
  
 +RPC_NDR_SCERPC_OBJ_FILES = librpc/gen_ndr/ndr_scerpc_c.o
 +
  [SUBSYSTEM::RPC_NDR_NTSVCS]
 -OBJ_FILES = gen_ndr/ndr_ntsvcs_c.o
  PUBLIC_DEPENDENCIES = dcerpc NDR_NTSVCS
  
 +RPC_NDR_NTSVCS_OBJ_FILES = librpc/gen_ndr/ndr_ntsvcs_c.o
 +
  [SUBSYSTEM::RPC_NDR_NETLOGON]
 -OBJ_FILES = gen_ndr/ndr_netlogon_c.o
  PUBLIC_DEPENDENCIES = NDR_NETLOGON
  
 +RPC_NDR_NETLOGON_OBJ_FILES = librpc/gen_ndr/ndr_netlogon_c.o
 +
  [SUBSYSTEM::RPC_NDR_TRKWKS]
 -OBJ_FILES = gen_ndr/ndr_trkwks_c.o
  PUBLIC_DEPENDENCIES = dcerpc NDR_TRKWKS
  
 +RPC_NDR_TRKWKS_OBJ_FILES = librpc/gen_ndr/ndr_trkwks_c.o
 +
  [SUBSYSTEM::RPC_NDR_KEYSVC]
 -OBJ_FILES = gen_ndr/ndr_keysvc_c.o
  PUBLIC_DEPENDENCIES = dcerpc NDR_KEYSVC
  
 +RPC_NDR_KEYSVC_OBJ_FILES = librpc/gen_ndr/ndr_keysvc_c.o
 +
  [SUBSYSTEM::NDR_DCERPC]
 -OBJ_FILES = gen_ndr/ndr_dcerpc.o
  PUBLIC_DEPENDENCIES = LIBNDR NDR_MISC
  
 +NDR_DCERPC_OBJ_FILES = librpc/gen_ndr/ndr_dcerpc.o
 +
  PUBLIC_HEADERS += $(addprefix librpc/, gen_ndr/dcerpc.h gen_ndr/ndr_dcerpc.h)
  
  ################################################
  # Start SUBSYSTEM dcerpc
  [LIBRARY::dcerpc]
 -VERSION = 0.0.1
 -SO_VERSION = 0
 -PC_FILE = dcerpc.pc
  PRIVATE_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 \
+               RPC_NDR_MGMT \
                gensec LIBCLI_AUTH LIBCLI_RAW \
                LP_RESOLVE
  PUBLIC_DEPENDENCIES = CREDENTIALS 
  # End SUBSYSTEM dcerpc
  ################################################
  
 +PC_FILES += librpc/dcerpc.pc
 +dcerpc_VERSION = 0.0.1
 +dcerpc_SOVERSION = 0
 +
 +dcerpc_OBJ_FILES = $(addprefix librpc/rpc/, dcerpc.o dcerpc_auth.o dcerpc_schannel.o dcerpc_util.o \
 +                                dcerpc_error.o dcerpc_smb.o dcerpc_smb2.o dcerpc_sock.o dcerpc_connect.o dcerpc_secondary.o)
 +
 +
  PUBLIC_HEADERS += $(addprefix librpc/, 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)
  
  [MODULE::RPC_EJS_ECHO]
  INIT_FUNCTION = ejs_init_rpcecho
 -OBJ_FILES = gen_ndr/ndr_echo_ejs.o
  SUBSYSTEM = smbcalls
  PRIVATE_DEPENDENCIES = dcerpc NDR_ECHO EJSRPC
  
 +RPC_EJS_ECHO_OBJ_FILES = librpc/gen_ndr/ndr_echo_ejs.o
 +
  [MODULE::RPC_EJS_MISC]
  INIT_FUNCTION = ejs_init_misc
 -OBJ_FILES = gen_ndr/ndr_misc_ejs.o
  SUBSYSTEM = smbcalls
  PRIVATE_DEPENDENCIES = dcerpc NDR_MISC EJSRPC
  
 +RPC_EJS_MISC_OBJ_FILES = librpc/gen_ndr/ndr_misc_ejs.o
 +
  [MODULE::RPC_EJS_SAMR]
  INIT_FUNCTION = ejs_init_samr
 -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
  
 +RPC_EJS_SAMR_OBJ_FILES = librpc/gen_ndr/ndr_samr_ejs.o
 +
  [MODULE::RPC_EJS_SECURITY]
  INIT_FUNCTION = ejs_init_security
 -OBJ_FILES = gen_ndr/ndr_security_ejs.o
  SUBSYSTEM = smbcalls
  PRIVATE_DEPENDENCIES = dcerpc NDR_SECURITY EJSRPC
  
 +RPC_EJS_SECURITY_OBJ_FILES = librpc/gen_ndr/ndr_security_ejs.o
 +
  [MODULE::RPC_EJS_LSA]
  INIT_FUNCTION = ejs_init_lsarpc
 -OBJ_FILES = gen_ndr/ndr_lsa_ejs.o
  SUBSYSTEM = smbcalls
  PRIVATE_DEPENDENCIES = dcerpc NDR_LSA EJSRPC RPC_EJS_SECURITY RPC_EJS_MISC
  
 +RPC_EJS_LSA_OBJ_FILES = librpc/gen_ndr/ndr_lsa_ejs.o
 +
  [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
  
 +RPC_EJS_DFS_OBJ_FILES = librpc/gen_ndr/ndr_dfs_ejs.o
 +
  [MODULE::RPC_EJS_DRSUAPI]
  INIT_FUNCTION = ejs_init_drsuapi
 -OBJ_FILES = gen_ndr/ndr_drsuapi_ejs.o
  SUBSYSTEM = smbcalls
  PRIVATE_DEPENDENCIES = dcerpc NDR_DRSUAPI EJSRPC RPC_EJS_MISC RPC_EJS_SAMR
  
 +RPC_EJS_DRSUAPI_OBJ_FILES = librpc/gen_ndr/ndr_drsuapi_ejs.o
 +
  [MODULE::RPC_EJS_SPOOLSS]
  INIT_FUNCTION = ejs_init_spoolss
 -OBJ_FILES = gen_ndr/ndr_spoolss_ejs.o
  SUBSYSTEM = smbcalls
  ENABLE = NO
  PRIVATE_DEPENDENCIES = dcerpc NDR_SPOOLSS EJSRPC
  
 +RPC_EJS_SPOOLSS_OBJ_FILES = librpc/gen_ndr/ndr_spoolss_ejs.o
 +
  [MODULE::RPC_EJS_WKSSVC]
  INIT_FUNCTION = ejs_init_wkssvc
 -OBJ_FILES = gen_ndr/ndr_wkssvc_ejs.o
  SUBSYSTEM = smbcalls
  PRIVATE_DEPENDENCIES = dcerpc NDR_WKSSVC EJSRPC RPC_EJS_SRVSVC RPC_EJS_MISC
  
 +RPC_EJS_WKSSVC_OBJ_FILES = librpc/gen_ndr/ndr_wkssvc_ejs.o
 +
  [MODULE::RPC_EJS_SRVSVC]
  INIT_FUNCTION = ejs_init_srvsvc
 -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
  
 +RPC_EJS_SRVSVC_OBJ_FILES = librpc/gen_ndr/ndr_srvsvc_ejs.o
 +
  [MODULE::RPC_EJS_EVENTLOG]
  INIT_FUNCTION = ejs_init_eventlog
 -OBJ_FILES = gen_ndr/ndr_eventlog_ejs.o
  SUBSYSTEM = smbcalls
  PRIVATE_DEPENDENCIES = dcerpc NDR_EVENTLOG EJSRPC RPC_EJS_MISC
  
 +RPC_EJS_EVENTLOG_OBJ_FILES = librpc/gen_ndr/ndr_eventlog_ejs.o
 +
  [MODULE::RPC_EJS_WINREG]
  INIT_FUNCTION = ejs_init_winreg
 -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
  
 +RPC_EJS_WINREG_OBJ_FILES = librpc/gen_ndr/ndr_winreg_ejs.o
 +
  [MODULE::RPC_EJS_INITSHUTDOWN]
  INIT_FUNCTION = ejs_init_initshutdown
 -OBJ_FILES = gen_ndr/ndr_initshutdown_ejs.o
  SUBSYSTEM = smbcalls
  PRIVATE_DEPENDENCIES = dcerpc NDR_INITSHUTDOWN EJSRPC
  
 +RPC_EJS_INITSHUTDOWN_OBJ_FILES = librpc/gen_ndr/ndr_initshutdown_ejs.o
 +
  [MODULE::RPC_EJS_NETLOGON]
  INIT_FUNCTION = ejs_init_netlogon
 -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
  
 +RPC_EJS_NETLOGON_OBJ_FILES = librpc/gen_ndr/ndr_netlogon_ejs.o
 +
  [MODULE::RPC_EJS_SVCCTL]
  INIT_FUNCTION = ejs_init_svcctl
 -OBJ_FILES = gen_ndr/ndr_svcctl_ejs.o
  SUBSYSTEM = smbcalls
  PRIVATE_DEPENDENCIES = dcerpc NDR_SVCCTL EJSRPC RPC_EJS_MISC
  
 +RPC_EJS_SVCCTL_OBJ_FILES = librpc/gen_ndr/ndr_svcctl_ejs.o
 +
  [MODULE::RPC_EJS_IRPC]
  INIT_FUNCTION = ejs_init_irpc
 -OBJ_FILES = gen_ndr/ndr_irpc_ejs.o
  SUBSYSTEM = smbcalls
  PRIVATE_DEPENDENCIES = dcerpc NDR_IRPC EJSRPC
  
 +RPC_EJS_IRPC_OBJ_FILES = librpc/gen_ndr/ndr_irpc_ejs.o
 +
  [PYTHON::swig_dcerpc]
  SWIG_FILE = rpc/dcerpc.i
- PUBLIC_DEPENDENCIES = LIBCLI_SMB NDR_MISC LIBSAMBA-UTIL LIBSAMBA-CONFIG dcerpc_samr RPC_NDR_LSA DYNCONFIG
+ PUBLIC_DEPENDENCIES = LIBCLI_SMB NDR_MISC LIBSAMBA-UTIL LIBSAMBA-HOSTCONFIG dcerpc_samr RPC_NDR_LSA DYNCONFIG
  
 +swig_dcerpc_OBJ_FILES = librpc/rpc/dcerpc_wrap.o
 +
  [PYTHON::python_echo]
 -OBJ_FILES = gen_ndr/py_echo.o
  PRIVATE_DEPENDENCIES = RPC_NDR_ECHO
  
 +python_echo_OBJ_FILES = librpc/gen_ndr/py_echo.o
 +
  [PYTHON::python_winreg]
 -OBJ_FILES = gen_ndr/py_winreg.o
  PRIVATE_DEPENDENCIES = RPC_NDR_WINREG python_misc
  
 +python_winreg_OBJ_FILES = librpc/gen_ndr/py_winreg.o
 +
  [PYTHON::python_dcerpc_misc]
 -OBJ_FILES = gen_ndr/py_misc.o
 +
 +python_dcerpc_misc_OBJ_FILES = librpc/gen_ndr/py_misc.o
  
  [PYTHON::python_initshutdown]
 -OBJ_FILES = gen_ndr/py_initshutdown.o
  PRIVATE_DEPENDENCIES = RPC_NDR_INITSHUTDOWN
  
 +python_initshutdown_OBJ_FILES = librpc/gen_ndr/py_initshutdown.o
 +
  [PYTHON::python_epmapper]
 -OBJ_FILES = gen_ndr/py_epmapper.o
 +
 +python_epmapper_OBJ_FILES = librpc/gen_ndr/py_epmapper.o
  
  [PYTHON::python_mgmt]
 -OBJ_FILES = gen_ndr/py_mgmt.o
  PRIVATE_DEPENDENCIES = dcerpc_mgmt
  
 +python_mgmt_OBJ_FILES = librpc/gen_ndr/py_mgmt.o
 +
  [PYTHON::python_atsvc]
 -OBJ_FILES = gen_ndr/py_atsvc.o
  PRIVATE_DEPENDENCIES = dcerpc_atsvc
  
 +python_atsvc_OBJ_FILES = librpc/gen_ndr/py_atsvc.o
 +
  [PYTHON::python_samr]
 -OBJ_FILES = gen_ndr/py_samr.o
  PRIVATE_DEPENDENCIES = dcerpc_samr
  
 +python_samr_OBJ_FILES = librpc/gen_ndr/py_samr.o
 +
  [PYTHON::python_svcctl]
 -OBJ_FILES = gen_ndr/py_svcctl.o
  PRIVATE_DEPENDENCIES = RPC_NDR_SVCCTL
  
 +python_svcctl_OBJ_FILES = librpc/gen_ndr/py_svcctl.o
 +
  [PYTHON::python_lsa]
 -OBJ_FILES = gen_ndr/py_lsa.o
  PRIVATE_DEPENDENCIES = RPC_NDR_LSA
  
 +python_lsa_OBJ_FILES = librpc/gen_ndr/py_lsa.o
 +
  [PYTHON::python_wkssvc]
 -OBJ_FILES = gen_ndr/py_wkssvc.o
  PRIVATE_DEPENDENCIES = RPC_NDR_WKSSVC
  
 -OBJ_FILES = gen_ndr/py_dfs.o
 +python_wkssvc_OBJ_FILES = librpc/gen_ndr/py_wkssvc.o
 +
+ [PYTHON::python_dfs]
 -OBJ_FILES = gen_ndr/py_unixinfo.o
+ PRIVATE_DEPENDENCIES = RPC_NDR_DFS
++python_dfs_OBJ_FILES = gen_ndr/py_dfs.o
++
+ [PYTHON::python_unixinfo]
 -OBJ_FILES = gen_ndr/py_drsuapi.o
+ PRIVATE_DEPENDENCIES = RPC_NDR_UNIXINFO
++python_unixinfo_OBJ_FILES = gen_ndr/py_unixinfo.o
++
+ [PYTHON::python_drsuapi]
+ PRIVATE_DEPENDENCIES = RPC_NDR_DRSUAPI
++python_drsuapi_OBJ_FILES = gen_ndr/py_drsuapi.o
++
  [PYTHON::python_dcerpc_security]
 -OBJ_FILES = gen_ndr/py_security.o
 +
 +python_dcerpc_security_OBJ_FILES = librpc/gen_ndr/py_security.o
index f69b73ccfbb93942d8c1ea4b83865831ae0d1c7a,b510a6e2d68f85f255fa288490b1d633f8a031e8..84e6b661bff2ba7ec35255b939d3cde8752bf8ab
@@@ -3,71 -3,76 +3,71 @@@
  #######################
  # Start SUBSYSTEM WINSDB
  [SUBSYSTEM::WINSDB]
 -OBJ_FILES = \
 -              wins/winsdb.o \
 -              wins/wins_hook.o
  PRIVATE_PROTO_HEADER = wins/winsdb_proto.h
  PUBLIC_DEPENDENCIES = \
                LIBLDB
  # End SUBSYSTEM WINSDB
  #######################
  
 +WINSDB_OBJ_FILES = $(addprefix nbt_server/wins/, winsdb.o wins_hook.o)
 +
  #######################
  # Start MODULE ldb_wins_ldb
  [MODULE::ldb_wins_ldb]
  SUBSYSTEM = LIBLDB
  OUTPUT_TYPE = SHARED_LIBRARY
 -INIT_FUNCTION = &ldb_wins_ldb_module_ops
 -OBJ_FILES = \
 -              wins/wins_ldb.o
 +INIT_FUNCTION = LDB_MODULE(wins_ldb)
  PRIVATE_DEPENDENCIES = \
-               LIBNETIF LIBSAMBA-CONFIG LIBSAMBA-UTIL
+               LIBNETIF LIBSAMBA-HOSTCONFIG LIBSAMBA-UTIL
  # End MODULE ldb_wins_ldb
  #######################
  
 +ldb_wins_ldb_OBJ_FILES = nbt_server/wins/wins_ldb.o
 +
  #######################
  # Start SUBSYSTEM NBTD_WINS
  [SUBSYSTEM::NBTD_WINS]
 -OBJ_FILES = \
 -              wins/winsserver.o \
 -              wins/winsclient.o \
 -              wins/winswack.o \
 -              wins/wins_dns_proxy.o
  PRIVATE_PROTO_HEADER = wins/winsserver_proto.h
  PRIVATE_DEPENDENCIES = \
                LIBCLI_NBT WINSDB
  # End SUBSYSTEM NBTD_WINS
  #######################
  
 +NBTD_WINS_OBJ_FILES = $(addprefix nbt_server/wins/, winsserver.o winsclient.o winswack.o wins_dns_proxy.o)
 +
  #######################
  # Start SUBSYSTEM NBTD_DGRAM
  [SUBSYSTEM::NBTD_DGRAM]
  PRIVATE_PROTO_HEADER = dgram/proto.h
 -OBJ_FILES = \
 -              dgram/request.o \
 -              dgram/netlogon.o \
 -              dgram/ntlogon.o \
 -              dgram/browse.o
  PRIVATE_DEPENDENCIES = \
                LIBCLI_DGRAM
  # End SUBSYSTEM NBTD_DGRAM
  #######################
  
 +NBTD_DGRAM_OBJ_FILES = $(addprefix nbt_server/dgram/, request.o netlogon.o ntlogon.o browse.o)
 +
  #######################
  # Start SUBSYSTEM NBTD
  [SUBSYSTEM::NBT_SERVER]
 -OBJ_FILES = \
 +PRIVATE_PROTO_HEADER = nbt_server_proto.h
 +PRIVATE_DEPENDENCIES = \
 +              LIBCLI_NBT NBTD_WINS NBTD_DGRAM 
 +# End SUBSYSTEM NBTD
 +#######################
 +
 +NBT_SERVER_OBJ_FILES = $(addprefix nbt_server/, \
                interfaces.o \
                register.o \
                query.o \
                nodestatus.o \
                defense.o \
                packet.o \
 -              irpc.o
 -PRIVATE_PROTO_HEADER = nbt_server_proto.h
 -PRIVATE_DEPENDENCIES = \
 -              LIBCLI_NBT NBTD_WINS NBTD_DGRAM 
 -# End SUBSYSTEM NBTD
 -#######################
 +              irpc.o)
  
  [MODULE::service_nbtd]
  INIT_FUNCTION = server_service_nbtd_init
 -SUBSYSTEM = service
 -OBJ_FILES = \
 -              nbt_server.o
 +SUBSYSTEM = smbd
  PRIVATE_DEPENDENCIES = NBT_SERVER process_model
 +
 +service_nbtd_OBJ_FILES = \
 +              nbt_server/nbt_server.o
index 8c1eaa72eb6925233405c15651192a34df42cfd4,c7c70c141ea9d82d58e3c66759a1f72b18cb525c..a0ceff00331daca062a1c1e3253c9a4e43e51b6c
@@@ -1,25 -1,26 +1,25 @@@
  [SUBSYSTEM::LIBWINBIND-CLIENT]
 -OBJ_FILES = wb_common.o
  PRIVATE_DEPENDENCIES = SOCKET_WRAPPER
  
 +LIBWINBIND-CLIENT_OBJ_FILES = nsswitch/wb_common.o
 +
  #################################
  # Start BINARY nsstest
  [BINARY::nsstest]
  INSTALLDIR = BINDIR
 -OBJ_FILES = \
 -              nsstest.o
  PRIVATE_DEPENDENCIES = \
                LIBSAMBA-UTIL \
                LIBREPLACE_EXT \
-               LIBSAMBA-CONFIG
+               LIBSAMBA-HOSTCONFIG
  # End BINARY nsstest
  #################################
  
 +nsstest_OBJ_FILES = nsswitch/nsstest.o
 +
  #################################
  # Start BINARY wbinfo
  [BINARY::wbinfo]
  INSTALLDIR = BINDIR
 -OBJ_FILES = \
 -              wbinfo.o
  PRIVATE_DEPENDENCIES = \
                LIBSAMBA-UTIL \
                LIBREPLACE_EXT \
@@@ -29,6 -30,3 +29,6 @@@
                LIBWINBIND-CLIENT
  # End BINARY nsstest
  #################################
 +
 +wbinfo_OBJ_FILES = \
 +              nsswitch/wbinfo.o
diff --combined source4/ntvfs/config.mk
index 436fe11522357068de38bbc335313ede97090a93,2f57c787ef2c26315f24d669ded0c3edd46f8991..93cbf64d8f0b4dbed570cf5461a0717888bf8e8c
@@@ -9,24 -9,25 +9,24 @@@ mkinclude sysdep/config.m
  [MODULE::ntvfs_cifs]
  INIT_FUNCTION = ntvfs_cifs_init 
  SUBSYSTEM = ntvfs
 -OBJ_FILES = \
 -              cifs/vfs_cifs.o
  PRIVATE_DEPENDENCIES = \
                LIBCLI_SMB LIBCLI_RAW
  # End MODULE ntvfs_cifs
  ################################################
  
 +ntvfs_cifs_OBJ_FILES = ntvfs/cifs/vfs_cifs.o
 +
  ################################################
  # Start MODULE ntvfs_simple
  [MODULE::ntvfs_simple]
  INIT_FUNCTION = ntvfs_simple_init 
  SUBSYSTEM = ntvfs 
  PRIVATE_PROTO_HEADER = simple/proto.h
 -OBJ_FILES = \
 -              simple/vfs_simple.o \
 -              simple/svfs_util.o
  # End MODULE ntvfs_simple
  ################################################
  
 +ntvfs_simple_OBJ_FILES = $(addprefix ntvfs/simple/, vfs_simple.o svfs_util.o)
 +
  ################################################
  # Start MODULE ntvfs_cifsposix
  [MODULE::ntvfs_cifsposix]
  INIT_FUNCTION = ntvfs_cifs_posix_init
  SUBSYSTEM = ntvfs
  PRIVATE_PROTO_HEADER = cifs_posix_cli/proto.h
 -OBJ_FILES = \
 -                cifs_posix_cli/vfs_cifs_posix.o \
 -                cifs_posix_cli/svfs_util.o
  # End MODULE ntvfs_cifsposix
  ################################################
  
 +ntvfs_cifsposix_OBJ_FILES = \
 +      $(addprefix ntvfs/cifs_posix_cli/, vfs_cifs_posix.o svfs_util.o)
 +
  ################################################
  # Start MODULE ntvfs_print
  [MODULE::ntvfs_print]
  INIT_FUNCTION = ntvfs_print_init 
  SUBSYSTEM = ntvfs 
 -OBJ_FILES = \
 -              print/vfs_print.o
  # End MODULE ntvfs_print
  ################################################
  
 +ntvfs_print_OBJ_FILES = ntvfs/print/vfs_print.o
 +
  ################################################
  # Start MODULE ntvfs_ipc
  [MODULE::ntvfs_ipc]
  SUBSYSTEM = ntvfs
  INIT_FUNCTION = ntvfs_ipc_init 
  PRIVATE_PROTO_HEADER = ipc/proto.h
 -OBJ_FILES = \
 -              ipc/vfs_ipc.o \
 -              ipc/ipc_rap.o \
 -              ipc/rap_server.o
  PRIVATE_DEPENDENCIES = dcerpc_server DCERPC_COMMON
  # End MODULE ntvfs_ipc
  ################################################
  
 +ntvfs_ipc_OBJ_FILES = $(addprefix ntvfs/ipc/, vfs_ipc.o ipc_rap.o rap_server.o)
  
  ################################################
  # Start MODULE ntvfs_nbench
  [MODULE::ntvfs_nbench]
  SUBSYSTEM = ntvfs
  INIT_FUNCTION = ntvfs_nbench_init 
 -OBJ_FILES = \
 -              nbench/vfs_nbench.o
  # End MODULE ntvfs_nbench
  ################################################
  
 +ntvfs_nbench_OBJ_FILES = ntvfs/nbench/vfs_nbench.o
  
  ################################################
  # Start SUBSYSTEM NTVFS
  [SUBSYSTEM::ntvfs]
  PRIVATE_PROTO_HEADER = ntvfs_proto.h
 -OBJ_FILES = \
 -              ntvfs_base.o \
 -              ntvfs_generic.o \
 -              ntvfs_interface.o \
 -              ntvfs_util.o
 +
 +ntvfs_OBJ_FILES = $(addprefix ntvfs/, ntvfs_base.o ntvfs_generic.o ntvfs_interface.o ntvfs_util.o)
  
- PUBLIC_HEADERS += ntvfs/ntvfs.h
PUBLIC_HEADERS += ntvfs/ntvfs.h
  #
  # End SUBSYSTEM NTVFS
  ################################################
index 4cd6192c776d6704a50a1bd87538e7270d0e6aa2,51faa443720197350607728ab5cc3be75176cfe6..3706cd172c6c56a032ef5365243115f8ce9f4678
@@@ -24,6 -24,7 +24,6 @@@
  
  #include "includes.h"
  #include "lib/util/dlinklist.h"
 -#include "build.h"
  #include "ntvfs/ntvfs.h"
  #include "param/param.h"
  
@@@ -43,7 -44,7 +43,7 @@@ static int num_backends
  
    The 'type' is used to specify whether this is for a disk, printer or IPC$ share
  */
_PUBLIC_ NTSTATUS ntvfs_register(const struct ntvfs_ops *ops,
+ NTSTATUS ntvfs_register(const struct ntvfs_ops *ops,
                                 const struct ntvfs_critical_sizes *const sizes)
  {
        struct ntvfs_ops *new_ops;
@@@ -84,7 -85,7 +84,7 @@@
  /*
    return the operations structure for a named backend of the specified type
  */
_PUBLIC_ const struct ntvfs_ops *ntvfs_backend_byname(const char *name, enum ntvfs_type type)
+ const struct ntvfs_ops *ntvfs_backend_byname(const char *name, enum ntvfs_type type)
  {
        int i;
  
  
  static const NTVFS_CURRENT_CRITICAL_SIZES(critical_sizes);
  
_PUBLIC_ const struct ntvfs_critical_sizes *ntvfs_interface_version(void)
+ const struct ntvfs_critical_sizes *ntvfs_interface_version(void)
  {
        return &critical_sizes;
  }
  
_PUBLIC_ bool ntvfs_interface_differs(const struct ntvfs_critical_sizes *const iface)
+ bool ntvfs_interface_differs(const struct ntvfs_critical_sizes *const iface)
  {
        /* The comparison would be easier with memcmp, but compiler-interset
         * alignment padding is not guaranteed to be zeroed.
@@@ -203,16 -204,6 +203,16 @@@ NTSTATUS ntvfs_init_connection(TALLOC_C
  NTSTATUS ntvfs_init(struct loadparm_context *lp_ctx)
  {
        static bool initialized = false;
 +      extern NTSTATUS ntvfs_posix_init(void);
 +      extern NTSTATUS ntvfs_cifs_init(void);
 +      extern NTSTATUS ntvfs_nbench_init(void);
 +      extern NTSTATUS ntvfs_unixuid_init(void);
 +      extern NTSTATUS ntvfs_ipc_init(void);
 +      extern NTSTATUS pvfs_acl_nfs4_init(void);
 +      extern NTSTATUS pvfs_acl_xattr_init(void);
 +      extern NTSTATUS ntvfs_print_init(void);
 +      extern NTSTATUS ntvfs_simple_init(void);
 +      extern NTSTATUS ntvfs_cifs_posix_init(void);
        init_module_fn static_init[] = { STATIC_ntvfs_MODULES };
        init_module_fn *shared_init;
  
diff --combined source4/param/config.mk
index 4b5af9b6cbde1b006d8239771b5b8d8d8b733fe0,eee22cf1b81d6a22d676ed79094ecb79b4f11ba3..bc8f7a5dc7b69711649e9bd5d0699d9675ea00e6
@@@ -1,26 -1,26 +1,30 @@@
- [SUBSYSTEM::LIBSAMBA-CONFIG]
+ [LIBRARY::LIBSAMBA-HOSTCONFIG]
+ VERSION = 0.0.1
+ SO_VERSION = 1
 -OBJ_FILES = loadparm.o \
 -                      generic.o \
 -                      util.o \
 -                      ../lib/version.o
 -PC_FILE = samba-hostconfig.pc
  PUBLIC_DEPENDENCIES = LIBSAMBA-UTIL 
  PRIVATE_DEPENDENCIES = DYNCONFIG LIBREPLACE_EXT CHARSET
  PRIVATE_PROTO_HEADER = proto.h
  
 +LIBSAMBA-CONFIG_OBJ_FILES = param/loadparm.o \
 +                      param/params.o \
 +                      param/generic.o \
 +                      param/util.o \
 +                      lib/version.o
 +
  PUBLIC_HEADERS += param/param.h
  
++PC_FILES += param/samba-hostconfig.pc
++
  #################################
  # Start SUBSYSTEM share
  [SUBSYSTEM::share]
  PRIVATE_PROTO_HEADER = share_proto.h
 -OBJ_FILES = share.o
  PRIVATE_DEPENDENCIES = LIBSAMBA-UTIL
  # End SUBSYSTEM share
  #################################
  
 +share_OBJ_FILES = param/share.o
 +
  PUBLIC_HEADERS += param/share.h
  
  ################################################
  [MODULE::share_classic]
  SUBSYSTEM = share
  INIT_FUNCTION = share_classic_init
 -OBJ_FILES = share_classic.o 
  PRIVATE_DEPENDENCIES = LIBSAMBA-UTIL
  # End MODULE share_classic
  ################################################
  
 +share_classic_OBJ_FILES = param/share_classic.o 
 +
  ################################################
  # Start MODULE share_ldb
  [MODULE::share_ldb]
  SUBSYSTEM = share
  INIT_FUNCTION = share_ldb_init
 -OBJ_FILES = share_ldb.o 
  PRIVATE_DEPENDENCIES = LIBLDB LDB_WRAP
  # End MODULE share_ldb
  ################################################
  
 +share_ldb_OBJ_FILES = param/share_ldb.o 
 +
  [SUBSYSTEM::SECRETS]
 -OBJ_FILES = secrets.o
  PRIVATE_DEPENDENCIES = LIBLDB TDB_WRAP UTIL_TDB NDR_SECURITY
  
 +SECRETS_OBJ_FILES = param/secrets.o
 +
  [PYTHON::param]
  SWIG_FILE = param.i
- PRIVATE_DEPENDENCIES = LIBSAMBA-CONFIG
+ PRIVATE_DEPENDENCIES = LIBSAMBA-HOSTCONFIG
 +
 +param_OBJ_FILES = param/param_wrap.o
index ea3053392254c7cfdb4bcc909b490516b92ad0e3,d6d77dd0d903eac88dfffe05176e4f9c25b16104..974d12c882346278eb10d4358a50b6ed2ff070b7
@@@ -4,94 -4,98 +4,95 @@@
  # Start SUBSYSTEM DCERPC_COMMON
  [SUBSYSTEM::DCERPC_COMMON]
  PRIVATE_PROTO_HEADER = common/proto.h
 -OBJ_FILES = \
 -              common/server_info.o \
 -              common/share_info.o
  #
  # End SUBSYSTEM DCERPC_COMMON
  ################################################
  
 +DCERPC_COMMON_OBJ_FILES = $(addprefix rpc_server/common/, server_info.o share_info.o)
 +
 +PUBLIC_HEADERS += rpc_server/common/common.h
 +
  ################################################
  # Start MODULE dcerpc_rpcecho
  [MODULE::dcerpc_rpcecho]
  INIT_FUNCTION = dcerpc_server_rpcecho_init
 -SUBSYSTEM = dcerpc_server
 -OBJ_FILES = \
 -              echo/rpc_echo.o
 +SUBSYSTEM = DCESRV
  PRIVATE_DEPENDENCIES = NDR_ECHO 
  # End MODULE dcerpc_rpcecho
  ################################################
  
 +dcerpc_rpcecho_OBJ_FILES = rpc_server/echo/rpc_echo.o
 +
  ################################################
  # Start MODULE dcerpc_epmapper
  [MODULE::dcerpc_epmapper]
  INIT_FUNCTION = dcerpc_server_epmapper_init
 -SUBSYSTEM = dcerpc_server
 -OBJ_FILES = \
 -              epmapper/rpc_epmapper.o
 +SUBSYSTEM = DCESRV
  PRIVATE_DEPENDENCIES = NDR_EPMAPPER
  # End MODULE dcerpc_epmapper
  ################################################
  
 +dcerpc_epmapper_OBJ_FILES = rpc_server/epmapper/rpc_epmapper.o
 +
  ################################################
  # Start MODULE dcerpc_remote
  [MODULE::dcerpc_remote]
  INIT_FUNCTION = dcerpc_server_remote_init
 -SUBSYSTEM = dcerpc_server
 -OBJ_FILES = \
 -              remote/dcesrv_remote.o
 +SUBSYSTEM = DCESRV
  PRIVATE_DEPENDENCIES = \
                LIBCLI_SMB NDR_TABLE
  # End MODULE dcerpc_remote
  ################################################
  
 +dcerpc_remote_OBJ_FILES = rpc_server/remote/dcesrv_remote.o
 +
  ################################################
  # Start MODULE dcerpc_srvsvc
  [MODULE::dcerpc_srvsvc]
  INIT_FUNCTION = dcerpc_server_srvsvc_init
  PRIVATE_PROTO_HEADER = srvsvc/proto.h
 -SUBSYSTEM = dcerpc_server
 -OBJ_FILES = \
 -              srvsvc/dcesrv_srvsvc.o \
 -              srvsvc/srvsvc_ntvfs.o
 +SUBSYSTEM = DCESRV
  PRIVATE_DEPENDENCIES = \
                DCERPC_COMMON NDR_SRVSVC share
  # End MODULE dcerpc_srvsvc
  ################################################
  
 +dcerpc_srvsvc_OBJ_FILES = $(addprefix rpc_server/srvsvc/, dcesrv_srvsvc.o srvsvc_ntvfs.o)
 +
  ################################################
  # Start MODULE dcerpc_wkssvc
  [MODULE::dcerpc_wkssvc]
  INIT_FUNCTION = dcerpc_server_wkssvc_init
 -SUBSYSTEM = dcerpc_server
 -OBJ_FILES = \
 -              wkssvc/dcesrv_wkssvc.o
 +SUBSYSTEM = DCESRV
  PRIVATE_DEPENDENCIES = \
                DCERPC_COMMON NDR_WKSSVC
  # End MODULE dcerpc_wkssvc
  ################################################
  
 +dcerpc_wkssvc_OBJ_FILES = rpc_server/wkssvc/dcesrv_wkssvc.o
 +
  ################################################
  # Start MODULE dcerpc_unixinfo
  [MODULE::dcerpc_unixinfo]
  INIT_FUNCTION = dcerpc_server_unixinfo_init
 -SUBSYSTEM = dcerpc_server
 -OBJ_FILES = \
 -              unixinfo/dcesrv_unixinfo.o
 +SUBSYSTEM = DCESRV
  PRIVATE_DEPENDENCIES = \
                DCERPC_COMMON \
                SAMDB \
                NDR_UNIXINFO \
-               NSS_WRAPPER
+               NSS_WRAPPER \
+               LIBWBCLIENT
  # End MODULE dcerpc_unixinfo
  ################################################
  
 +dcerpc_unixinfo_OBJ_FILES = rpc_server/unixinfo/dcesrv_unixinfo.o
 +
  ################################################
  # Start MODULE dcesrv_samr
  [MODULE::dcesrv_samr]
  INIT_FUNCTION = dcerpc_server_samr_init
  PRIVATE_PROTO_HEADER = samr/proto.h
 -SUBSYSTEM = dcerpc_server
 -OBJ_FILES = \
 -              samr/dcesrv_samr.o \
 -              samr/samr_password.o
 +SUBSYSTEM = DCESRV
  PRIVATE_DEPENDENCIES = \
                SAMDB \
                DCERPC_COMMON \
  # End MODULE dcesrv_samr
  ################################################
  
 +dcesrv_samr_OBJ_FILES = $(addprefix rpc_server/samr/, dcesrv_samr.o samr_password.o)
 +
  ################################################
  # Start MODULE dcerpc_winreg
  [MODULE::dcerpc_winreg]
  INIT_FUNCTION = dcerpc_server_winreg_init
 -SUBSYSTEM = dcerpc_server
 +SUBSYSTEM = DCESRV
  OUTPUT_TYPE = MERGED_OBJ
 -OBJ_FILES = \
 -              winreg/rpc_winreg.o
  PRIVATE_DEPENDENCIES = \
                registry NDR_WINREG
  # End MODULE dcerpc_winreg
  ################################################
  
 +dcerpc_winreg_OBJ_FILES = rpc_server/winreg/rpc_winreg.o
 +
  ################################################
  # Start MODULE dcerpc_netlogon
  [MODULE::dcerpc_netlogon]
  INIT_FUNCTION = dcerpc_server_netlogon_init
 -SUBSYSTEM = dcerpc_server
 -OBJ_FILES = \
 -              netlogon/dcerpc_netlogon.o
 +SUBSYSTEM = DCESRV
  PRIVATE_DEPENDENCIES = \
                DCERPC_COMMON \
                SCHANNELDB \
  # End MODULE dcerpc_netlogon
  ################################################
  
 +dcerpc_netlogon_OBJ_FILES = rpc_server/netlogon/dcerpc_netlogon.o
 +
  ################################################
  # Start MODULE dcerpc_lsa
  [MODULE::dcerpc_lsarpc]
  INIT_FUNCTION = dcerpc_server_lsa_init
 -SUBSYSTEM = dcerpc_server
 +SUBSYSTEM = DCESRV
  PRIVATE_PROTO_HEADER= lsa/proto.h
 -OBJ_FILES = \
 -              lsa/dcesrv_lsa.o \
 -              lsa/lsa_init.o \
 -              lsa/lsa_lookup.o
  PRIVATE_DEPENDENCIES = \
                SAMDB \
                DCERPC_COMMON \
  # End MODULE dcerpc_lsa
  ################################################
  
 +dcerpc_lsarpc_OBJ_FILES = $(addprefix rpc_server/lsa/, dcesrv_lsa.o lsa_init.o lsa_lookup.o)
 +
 +
  ################################################
  # Start MODULE dcerpc_spoolss
  [MODULE::dcerpc_spoolss]
  INIT_FUNCTION = dcerpc_server_spoolss_init
 -SUBSYSTEM = dcerpc_server
 +SUBSYSTEM = DCESRV
  OUTPUT_TYPE = MERGED_OBJ
 -OBJ_FILES = \
 -              spoolss/dcesrv_spoolss.o
  PRIVATE_DEPENDENCIES = \
                DCERPC_COMMON \
                NDR_SPOOLSS \
  # End MODULE dcerpc_spoolss
  ################################################
  
 +dcerpc_spoolss_OBJ_FILES = rpc_server/spoolss/dcesrv_spoolss.o
 +
  ################################################
  # Start MODULE dcerpc_drsuapi
  [MODULE::dcerpc_drsuapi]
  INIT_FUNCTION = dcerpc_server_drsuapi_init
 -SUBSYSTEM = dcerpc_server
 -OBJ_FILES = \
 -              drsuapi/dcesrv_drsuapi.o
 +SUBSYSTEM = DCESRV
  PRIVATE_DEPENDENCIES = \
                SAMDB \
                DCERPC_COMMON \
  # End MODULE dcerpc_drsuapi
  ################################################
  
 +dcerpc_drsuapi_OBJ_FILES = rpc_server/drsuapi/dcesrv_drsuapi.o
 +
  ################################################
  # Start SUBSYSTEM dcerpc_server
  [SUBSYSTEM::dcerpc_server]
  PRIVATE_PROTO_HEADER = dcerpc_server_proto.h
 -OBJ_FILES = \
 -              dcerpc_server.o \
 -              dcesrv_auth.o \
 -              dcesrv_mgmt.o \
 -              handles.o
  PRIVATE_DEPENDENCIES = \
                LIBCLI_AUTH \
                LIBNDR \
                dcerpc
 -#
 +
 +dcerpc_server_OBJ_FILES = $(addprefix rpc_server/, \
 +              dcerpc_server.o \
 +              dcesrv_auth.o \
 +              dcesrv_mgmt.o \
 +              handles.o)
 +
  # End SUBSYSTEM DCERPC
  ################################################
  
@@@ -199,7 -201,6 +200,7 @@@ PUBLIC_HEADERS += rpc_server/dcerpc_ser
  
  [MODULE::DCESRV]
  INIT_FUNCTION = server_service_rpc_init
 -OBJ_FILES = service_rpc.o
 -SUBSYSTEM = service
 +SUBSYSTEM = smbd
  PRIVATE_DEPENDENCIES = dcerpc_server
 +
 +DCESRV_OBJ_FILES = rpc_server/service_rpc.o
index cc9819e40c4a8c6c2fecdf12a076398c93ae309f,beb795ea222b292ef87e4f92636a8dff6630f394..1962a97d5b49d3863e283a5ee1a15c156e06f7d8
  #include "auth/gensec/gensec.h"
  #include "lib/util/dlinklist.h"
  #include "rpc_server/dcerpc_server.h"
+ #include "rpc_server/dcerpc_server_proto.h"
+ #include "librpc/rpc/dcerpc_proto.h"
  #include "lib/events/events.h"
  #include "smbd/service_task.h"
  #include "smbd/service_stream.h"
  #include "smbd/service.h"
  #include "system/filesys.h"
  #include "libcli/security/security.h"
 -#include "build.h"
  #include "param/param.h"
  
  extern const struct dcesrv_interface dcesrv_mgmt_interface;
@@@ -298,7 -301,7 +300,7 @@@ static int dcesrv_endpoint_destructor(s
  /*
    connect to a dcerpc endpoint
  */
- NTSTATUS dcesrv_endpoint_connect(struct dcesrv_context *dce_ctx,
_PUBLIC_ NTSTATUS dcesrv_endpoint_connect(struct dcesrv_context *dce_ctx,
                                 TALLOC_CTX *mem_ctx,
                                 const struct dcesrv_endpoint *ep,
                                 struct auth_session_info *session_info,
index 0d10fc6e3a3b8791e0948f9e9a54583f758c9cf1,33a4ac915f79adebefa6212ea9c82a06a7f73cc1..4eef0207f98f9e0c3de74d86fbde6b291d87f29a
@@@ -1,85 -1,84 +1,85 @@@
  [SUBSYSTEM::EJSRPC]
 -OBJ_FILES = \
 -              ejsrpc.o
 +
 +EJSRPC_OBJ_FILES = scripting/ejs/ejsrpc.o
  
  [MODULE::smbcalls_config]
 -OBJ_FILES = smbcalls_config.o
  OUTPUT_TYPE = MERGED_OBJ
  SUBSYSTEM = smbcalls
  INIT_FUNCTION = smb_setup_ejs_config
  
 +smbcalls_config_OBJ_FILES = scripting/ejs/smbcalls_config.o
 +
  [MODULE::smbcalls_ldb]
 -OBJ_FILES = smbcalls_ldb.o
  OUTPUT_TYPE = MERGED_OBJ
  SUBSYSTEM = smbcalls
  INIT_FUNCTION = smb_setup_ejs_ldb
  PRIVATE_DEPENDENCIES = LIBLDB SAMDB LIBNDR
  
 +smbcalls_ldb_OBJ_FILES = scripting/ejs/smbcalls_ldb.o
 +
  [MODULE::smbcalls_reg]
 -OBJ_FILES = smbcalls_reg.o
  SUBSYSTEM = smbcalls
  OUTPUT_TYPE = MERGED_OBJ
  INIT_FUNCTION = smb_setup_ejs_reg
  PRIVATE_DEPENDENCIES = registry SAMDB LIBNDR
  
 +smbcalls_reg_OBJ_FILES = scripting/ejs/smbcalls_reg.o
 +
  [MODULE::smbcalls_nbt]
 -OBJ_FILES = smbcalls_nbt.o
  SUBSYSTEM = smbcalls
  OUTPUT_TYPE = MERGED_OBJ
  INIT_FUNCTION = smb_setup_ejs_nbt
  
 +smbcalls_nbt_OBJ_FILES = scripting/ejs/smbcalls_nbt.o
 +
  [MODULE::smbcalls_rand]
 -OBJ_FILES = smbcalls_rand.o
  SUBSYSTEM = smbcalls
  OUTPUT_TYPE = MERGED_OBJ
  INIT_FUNCTION = smb_setup_ejs_random
  
 +smbcalls_rand_OBJ_FILES = scripting/ejs/smbcalls_rand.o
 +
  [MODULE::smbcalls_nss]
 -OBJ_FILES = smbcalls_nss.o
  SUBSYSTEM = smbcalls
  OUTPUT_TYPE = MERGED_OBJ
  INIT_FUNCTION = smb_setup_ejs_nss
  PRIVATE_DEPENDENCIES = NSS_WRAPPER
  
 +smbcalls_nss_OBJ_FILES = scripting/ejs/smbcalls_nss.o
 +
  [MODULE::smbcalls_data]
 -OBJ_FILES = smbcalls_data.o
  SUBSYSTEM = smbcalls
  OUTPUT_TYPE = MERGED_OBJ
  INIT_FUNCTION = smb_setup_ejs_datablob
  
 +smbcalls_data_OBJ_FILES = scripting/ejs/smbcalls_data.o
 +
  [MODULE::smbcalls_auth]
 -OBJ_FILES = smbcalls_auth.o
  OUTPUT_TYPE = MERGED_OBJ
  SUBSYSTEM = smbcalls
  INIT_FUNCTION = smb_setup_ejs_auth
 -PRIVATE_DEPENDENCIES = auth
 +PRIVATE_DEPENDENCIES = service_auth
 +
 +smbcalls_auth_OBJ_FILES = scripting/ejs/smbcalls_auth.o
  
  [MODULE::smbcalls_string]
 -OBJ_FILES = smbcalls_string.o
  SUBSYSTEM = smbcalls
  OUTPUT_TYPE = MERGED_OBJ
  INIT_FUNCTION = smb_setup_ejs_string
  
 +smbcalls_string_OBJ_FILES = scripting/ejs/smbcalls_string.o
 +
  [MODULE::smbcalls_sys]
 -OBJ_FILES = smbcalls_sys.o
  SUBSYSTEM = smbcalls
  OUTPUT_TYPE = MERGED_OBJ
  INIT_FUNCTION = smb_setup_ejs_system
  
 +smbcalls_sys_OBJ_FILES = scripting/ejs/smbcalls_sys.o
 +
  mkinclude ejsnet/config.mk
  
  [SUBSYSTEM::smbcalls]
  PRIVATE_PROTO_HEADER = proto.h
 -OBJ_FILES = \
 -              smbcalls.o \
 -              smbcalls_cli.o \
 -              smbcalls_rpc.o \
 -              smbcalls_options.o \
 -              smbcalls_creds.o \
 -              smbcalls_param.o \
 -              mprutil.o \
 -              literal.o
  PRIVATE_DEPENDENCIES = \
                EJS LIBSAMBA-UTIL \
                EJSRPC MESSAGING \
                dcerpc \
                NDR_TABLE
  
 +smbcalls_OBJ_FILES = $(addprefix scripting/ejs/, \
 +              smbcalls.o \
 +              smbcalls_cli.o \
 +              smbcalls_rpc.o \
 +              smbcalls_options.o \
 +              smbcalls_creds.o \
 +              smbcalls_param.o \
 +              mprutil.o \
 +              literal.o)
 +
  #######################
  # Start BINARY SMBSCRIPT
  [BINARY::smbscript]
  INSTALLDIR = BINDIR
- PRIVATE_DEPENDENCIES = EJS LIBSAMBA-UTIL smbcalls LIBSAMBA-CONFIG
 -OBJ_FILES = \
 -              smbscript.o
+ PRIVATE_DEPENDENCIES = EJS LIBSAMBA-UTIL smbcalls LIBSAMBA-HOSTCONFIG
  # End BINARY SMBSCRIPT
  #######################
 +
 +smbscript_OBJ_FILES = scripting/ejs/smbscript.o
index 2c10a35c60cbff125edb025a530d2349d08c7f48,ba85994636186fe23f12f2681989857979f3c246..08f3c1156c432dd678e85ff10d3457a35ad62767
@@@ -19,6 -19,7 +19,6 @@@
  
  #include "includes.h"
  #include <Python.h>
 -#include "build.h"
  
  extern void init_ldb(void);
  extern void init_security(void);
@@@ -34,6 -35,8 +34,8 @@@ extern void init_events(void)
  extern void inituuid(void);
  extern void init_net(void);
  extern void initecho(void);
+ extern void initdfs(void);
+ extern void initdrsuapi(void);
  extern void initwinreg(void);
  extern void initepmapper(void);
  extern void initinitshutdown(void);
@@@ -45,6 -48,7 +47,7 @@@ static void initdcerpc_security(void) {
  extern void initlsa(void);
  extern void initsvcctl(void);
  extern void initwkssvc(void);
+ extern void initunixinfo(void);
  extern void init_libcli_nbt(void);
  extern void init_libcli_smb(void);
  
diff --combined source4/smbd/config.mk
index dc8afeba7833320fb36458132456e849989e265a,6cbfa160459c052aea873a435e2a6690de341f45..006135f818a763f321aa7597b76b5d0fd4147707
@@@ -1,28 -1,38 +1,28 @@@
  # server subsystem
  
 -################################################
 -# Start MODULE service_auth
 -[MODULE::service_auth]
 -INIT_FUNCTION = server_service_auth_init
 -SUBSYSTEM = service
 -PRIVATE_DEPENDENCIES = \
 -              auth
 -# End MODULE server_auth
 -################################################
 -
  [SUBSYSTEM::service]
  PRIVATE_PROTO_HEADER = service_proto.h
 -OBJ_FILES = \
 -              service.o \
 -              service_stream.o \
 -              service_task.o
  PRIVATE_DEPENDENCIES = \
                MESSAGING samba-socket
  
 +service_OBJ_FILES = $(addprefix smbd/, \
 +              service.o \
 +              service_stream.o \
 +              service_task.o)
 +
  [SUBSYSTEM::PIDFILE]
 -OBJ_FILES = pidfile.o
  PRIVATE_PROTO_HEADER = pidfile.h
  
 +PIDFILE_OBJ_FILES = smbd/pidfile.o
 +
  #################################
  # Start BINARY smbd
  [BINARY::smbd]
  INSTALLDIR = SBINDIR
 -OBJ_FILES = \
 -              server.o
  PRIVATE_DEPENDENCIES = \
                process_model \
                service \
-               LIBSAMBA-CONFIG \
+               LIBSAMBA-HOSTCONFIG \
                LIBSAMBA-UTIL \
                POPT_SAMBA \
                PIDFILE \
@@@ -34,8 -44,6 +34,8 @@@
                share \
                CLUSTER
  
 +smbd_OBJ_FILES = smbd/server.o
 +
  MANPAGES += smbd/smbd.8
  # End BINARY smbd
  #################################
index e267995596bf2b8aaa22cfeb28040cdf1d33f94f,fcbe2d9872e9b6103c0d2278b6b913f7e8d92bb7..e631975b37613d7b29a9c30ada7f4e4e9d017ac1
@@@ -20,6 -20,7 +20,6 @@@
  
  #include "includes.h"
  #include "smbd/process_model.h"
 -#include "build.h"
  #include "param/param.h"
  
  /*
@@@ -79,11 -80,8 +79,11 @@@ _PUBLIC_ NTSTATUS register_process_mode
        return NT_STATUS_OK;
  }
  
- NTSTATUS process_model_init(struct loadparm_context *lp_ctx)
_PUBLIC_ NTSTATUS process_model_init(struct loadparm_context *lp_ctx)
  {
 +      extern NTSTATUS process_model_standard_init(void);
 +      extern NTSTATUS process_model_prefork_init(void);
 +      extern NTSTATUS process_model_single_init(void);
        init_module_fn static_init[] = { STATIC_process_model_MODULES };
        init_module_fn *shared_init = load_samba_modules(NULL, lp_ctx, "process_model");
  
@@@ -98,7 -96,7 +98,7 @@@
  /*
    return the operations structure for a named backend of the specified type
  */
- const struct model_ops *process_model_byname(const char *name)
_PUBLIC_ const struct model_ops *process_model_byname(const char *name)
  {
        int i;
  
index 638b280564d7cedde3c131f37240e5f0192af57a,d559ce157715360a1f56ddbdb186b37b04d7b04d..48899078f7803c4912c08bedbed7e35aed9c8cae
@@@ -5,45 -5,45 +5,45 @@@
  [MODULE::process_model_single]
  INIT_FUNCTION = process_model_single_init 
  SUBSYSTEM = process_model
 -OBJ_FILES = \
 -              process_single.o
  # End MODULE process_model_single
  ################################################
  
 +process_model_single_OBJ_FILES = smbd/process_single.o
 +
  ################################################
  # Start MODULE process_model_standard
  [MODULE::process_model_standard]
  INIT_FUNCTION = process_model_standard_init 
  SUBSYSTEM = process_model
 -OBJ_FILES = \
 -              process_standard.o
  PRIVATE_DEPENDENCIES = SETPROCTITLE
  # End MODULE process_model_standard
  ################################################
  
 +process_model_standard_OBJ_FILES = smbd/process_standard.o
 +
  ################################################
  # Start MODULE process_model_thread
  [MODULE::process_model_thread]
  INIT_FUNCTION = process_model_thread_init 
  SUBSYSTEM = process_model
 -OBJ_FILES = \
 -              process_thread.o
  PRIVATE_DEPENDENCIES = PTHREAD
  # End MODULE process_model_thread
  ################################################
  
 +process_model_thread_OBJ_FILES = smbd/process_thread.o
 +
  ################################################
  # Start MODULE process_model_prefork
  [MODULE::process_model_prefork]
  INIT_FUNCTION = process_model_prefork_init 
  SUBSYSTEM = process_model
 -OBJ_FILES = \
 -              process_prefork.o
  # End MODULE process_model_thread
  ################################################
  
 +process_model_prefork_OBJ_FILES = smbd/process_prefork.o
 +
  [SUBSYSTEM::process_model]
  PRIVATE_PROTO_HEADER = process_model_proto.h
- PRIVATE_DEPENDENCIES = LIBSAMBA-UTIL LIBSAMBA-CONFIG
 -OBJ_FILES = \
 -              process_model.o
+ PRIVATE_DEPENDENCIES = LIBSAMBA-UTIL LIBSAMBA-HOSTCONFIG
 +
 +process_model_OBJ_FILES = smbd/process_model.o
diff --combined source4/smbd/server.c
index ded84f24269b11502a16b3d6de2b2aae6fb79fbf,d6e2fb19e4ad94eb0de130934fe8457901939aa2..e1ebd133ce19ebd3c0ea59ad72f9a20649b14b08
@@@ -28,6 -28,7 +28,6 @@@
  #include "lib/cmdline/popt_common.h"
  #include "system/dir.h"
  #include "system/filesys.h"
 -#include "build.h"
  #include "ldb/include/ldb.h"
  #include "registry/registry.h"
  #include "ntvfs/ntvfs.h"
@@@ -186,19 -187,7 +186,19 @@@ static int binary_smbd_main(const char 
        bool opt_interactive = false;
        int opt;
        poptContext pc;
 -      init_module_fn static_init[] = { STATIC_service_MODULES };
 +      extern NTSTATUS server_service_wrepl_init(void);
 +      extern NTSTATUS server_service_kdc_init(void);
 +      extern NTSTATUS server_service_ldap_init(void);
 +      extern NTSTATUS server_service_web_init(void);
 +      extern NTSTATUS server_service_ldap_init(void);
 +      extern NTSTATUS server_service_winbind_init(void);
 +      extern NTSTATUS server_service_nbtd_init(void);
 +      extern NTSTATUS server_service_auth_init(void);
 +      extern NTSTATUS server_service_cldapd_init(void);
 +      extern NTSTATUS server_service_smb_init(void);
 +      extern NTSTATUS server_service_drepl_init(void);
 +      extern NTSTATUS server_service_rpc_init(void);
 +      init_module_fn static_init[] = { STATIC_smbd_MODULES };
        init_module_fn *shared_init;
        struct event_context *event_ctx;
        NTSTATUS status;
        /* Do *not* remove this, until you have removed
         * passdb/secrets.c, and proved that Samba still builds... */
        /* Setup the SECRETS subsystem */
-       if (!secrets_init(cmdline_lp_ctx)) {
+       if (secrets_init(talloc_autofree_context(), cmdline_lp_ctx) == NULL) {
                exit(1);
        }
  
index 8c61771e9be8ac4840ecd42594c99bc2a05607cd,1d09d74f99601753564151afb44b124996b37a8f..7209838d33a26e46aa03a752a47e9556c94d88e8
@@@ -1,23 -1,25 +1,23 @@@
  # TORTURE subsystem
  [LIBRARY::torture]
 -SO_VERSION = 0
 -VERSION = 0.0.1
 -PC_FILE = torture.pc
  PRIVATE_PROTO_HEADER = proto.h
 -OBJ_FILES = \
 -              torture.o \
 -              ui.o
  PUBLIC_DEPENDENCIES = \
-               LIBSAMBA-CONFIG \
+               LIBSAMBA-HOSTCONFIG \
                LIBSAMBA-UTIL \
                LIBTALLOC \
                LIBPOPT
  
 +PC_FILES += torture/torture.pc
 +torture_OBJ_FILES = $(addprefix torture/, torture.o ui.o)
 +
  PUBLIC_HEADERS += torture/torture.h torture/ui.h
  
  [SUBSYSTEM::TORTURE_UTIL]
 -OBJ_FILES = util_smb.o util_provision.o
  PRIVATE_DEPENDENCIES = LIBCLI_RAW LIBPYTHON smbcalls
  PUBLIC_DEPENDENCIES = POPT_CREDENTIALS
  
 +TORTURE_UTIL_OBJ_FILES = $(addprefix torture/, util_smb.o util_provision.o)
 +
  #################################
  # Start SUBSYSTEM TORTURE_BASIC
  [MODULE::TORTURE_BASIC]
@@@ -25,6 -27,25 +25,6 @@@ SUBSYSTEM = tortur
  INIT_FUNCTION = torture_base_init
  PRIVATE_PROTO_HEADER = \
                basic/proto.h
 -OBJ_FILES = \
 -              basic/base.o \
 -              basic/misc.o \
 -              basic/scanner.o \
 -              basic/utable.o \
 -              basic/charset.o \
 -              basic/mangle_test.o \
 -              basic/denytest.o \
 -              basic/aliases.o \
 -              basic/locking.o \
 -              basic/secleak.o \
 -              basic/rename.o \
 -              basic/dir.o \
 -              basic/delete.o \
 -              basic/unlink.o \
 -              basic/disconnect.o \
 -              basic/delaywrite.o \
 -              basic/attr.o \
 -              basic/properties.o 
  PRIVATE_DEPENDENCIES = \
                LIBCLI_SMB POPT_CREDENTIALS \
                TORTURE_UTIL LIBCLI_RAW \
  # End SUBSYSTEM TORTURE_BASIC
  #################################
  
 +TORTURE_BASIC_OBJ_FILES = $(addprefix torture/basic/,  \
 +              base.o \
 +              misc.o \
 +              scanner.o \
 +              utable.o \
 +              charset.o \
 +              mangle_test.o \
 +              denytest.o \
 +              aliases.o \
 +              locking.o \
 +              secleak.o \
 +              rename.o \
 +              dir.o \
 +              delete.o \
 +              unlink.o \
 +              disconnect.o \
 +              delaywrite.o \
 +              attr.o \
 +              properties.o)
 +
 +
  #################################
  # Start SUBSYSTEM TORTURE_RAW
  [MODULE::TORTURE_RAW]
@@@ -60,52 -60,58 +60,52 @@@ SUBSYSTEM = tortur
  INIT_FUNCTION = torture_raw_init
  PRIVATE_PROTO_HEADER = \
                raw/proto.h
 -OBJ_FILES = \
 -              raw/qfsinfo.o \
 -              raw/qfileinfo.o \
 -              raw/setfileinfo.o \
 -              raw/search.o \
 -              raw/close.o \
 -              raw/open.o \
 -              raw/mkdir.o \
 -              raw/oplock.o \
 -              raw/notify.o \
 -              raw/mux.o \
 -              raw/ioctl.o \
 -              raw/chkpath.o \
 -              raw/unlink.o \
 -              raw/read.o \
 -              raw/context.o \
 -              raw/write.o \
 -              raw/lock.o \
 -              raw/pingpong.o \
 -              raw/lockbench.o \
 -              raw/openbench.o \
 -              raw/rename.o \
 -              raw/eas.o \
 -              raw/streams.o \
 -              raw/acls.o \
 -              raw/seek.o \
 -              raw/samba3hide.o \
 -              raw/samba3misc.o \
 -              raw/composite.o \
 -              raw/raw.o \
 -              raw/offline.o
  PRIVATE_DEPENDENCIES = \
                LIBCLI_SMB LIBCLI_LSA LIBCLI_SMB_COMPOSITE \
                POPT_CREDENTIALS TORTURE_UTIL
  # End SUBSYSTEM TORTURE_RAW
  #################################
  
 +TORTURE_RAW_OBJ_FILES = $(addprefix torture/raw/, \
 +              qfsinfo.o \
 +              qfileinfo.o \
 +              setfileinfo.o \
 +              search.o \
 +              close.o \
 +              open.o \
 +              mkdir.o \
 +              oplock.o \
 +              notify.o \
 +              mux.o \
 +              ioctl.o \
 +              chkpath.o \
 +              unlink.o \
 +              read.o \
 +              context.o \
 +              write.o \
 +              lock.o \
 +              pingpong.o \
 +              lockbench.o \
 +              openbench.o \
 +              rename.o \
 +              eas.o \
 +              streams.o \
 +              acls.o \
 +              seek.o \
 +              samba3hide.o \
 +              samba3misc.o \
 +              composite.o \
 +              raw.o \
 +              offline.o)
 +
 +
  mkinclude smb2/config.mk
  mkinclude winbind/config.mk
  
  [SUBSYSTEM::TORTURE_NDR]
  PRIVATE_PROTO_HEADER = ndr/proto.h
 -OBJ_FILES = ndr/ndr.o \
 -                      ndr/winreg.o \
 -                      ndr/atsvc.o \
 -                      ndr/lsa.o \
 -                      ndr/epmap.o \
 -                      ndr/dfs.o \
 -                      ndr/netlogon.o \
 -                      ndr/drsuapi.o \
 -                      ndr/spoolss.o \
 -                      ndr/samr.o
 +
 +TORTURE_NDR_OBJ_FILES = $(addprefix torture/ndr/, ndr.o winreg.o atsvc.o lsa.o epmap.o dfs.o netlogon.o drsuapi.o spoolss.o samr.o)
  
  [MODULE::torture_rpc]
  # TORTURE_NET and TORTURE_NBT use functions from torture_rpc...
@@@ -114,6 -120,50 +114,6 @@@ SUBSYSTEM = tortur
  INIT_FUNCTION = torture_rpc_init
  PRIVATE_PROTO_HEADER = \
                rpc/proto.h
 -OBJ_FILES = \
 -              rpc/join.o \
 -              rpc/lsa.o \
 -              rpc/lsa_lookup.o \
 -              rpc/session_key.o \
 -              rpc/echo.o \
 -              rpc/dfs.o \
 -              rpc/drsuapi.o \
 -              rpc/drsuapi_cracknames.o \
 -              rpc/dssync.o \
 -              rpc/spoolss.o \
 -              rpc/spoolss_notify.o \
 -              rpc/spoolss_win.o \
 -              rpc/unixinfo.o \
 -              rpc/samr.o \
 -              rpc/samr_accessmask.o \
 -              rpc/wkssvc.o \
 -              rpc/srvsvc.o \
 -              rpc/svcctl.o \
 -              rpc/atsvc.o \
 -              rpc/eventlog.o \
 -              rpc/epmapper.o \
 -              rpc/winreg.o \
 -              rpc/initshutdown.o \
 -              rpc/oxidresolve.o \
 -              rpc/remact.o \
 -              rpc/mgmt.o \
 -              rpc/scanner.o \
 -              rpc/autoidl.o \
 -              rpc/countcalls.o \
 -              rpc/testjoin.o \
 -              rpc/schannel.o \
 -              rpc/netlogon.o \
 -              rpc/samlogon.o \
 -              rpc/samsync.o \
 -              rpc/bind.o \
 -              rpc/dssetup.o \
 -              rpc/alter_context.o \
 -              rpc/bench.o \
 -              rpc/samba3rpc.o \
 -              rpc/rpc.o \
 -              rpc/async_bind.o \
 -              rpc/handles.o \
 -              rpc/frsapi.o
  PRIVATE_DEPENDENCIES = \
                NDR_TABLE RPC_NDR_UNIXINFO dcerpc_samr RPC_NDR_WINREG RPC_NDR_INITSHUTDOWN \
                RPC_NDR_OXIDRESOLVER RPC_NDR_EVENTLOG RPC_NDR_ECHO RPC_NDR_SVCCTL \
                RPC_NDR_SRVSVC RPC_NDR_WKSSVC RPC_NDR_ROT RPC_NDR_DSSETUP \
                RPC_NDR_REMACT RPC_NDR_OXIDRESOLVER WB_HELPER LIBSAMBA-NET \
                LIBCLI_AUTH POPT_CREDENTIALS TORTURE_LDAP TORTURE_UTIL TORTURE_RAP \
 -              dcerpc_server service process_model
 +              dcerpc_server service process_model ntvfs SERVICE_SMB
 +
 +torture_rpc_OBJ_FILES = $(addprefix torture/rpc/, \
 +              join.o lsa.o lsa_lookup.o session_key.o echo.o dfs.o drsuapi.o \
 +              drsuapi_cracknames.o dssync.o spoolss.o spoolss_notify.o spoolss_win.o \
 +              unixinfo.o samr.o samr_accessmask.o wkssvc.o srvsvc.o svcctl.o atsvc.o \
 +              eventlog.o epmapper.o winreg.o initshutdown.o oxidresolve.o remact.o mgmt.o \
 +              scanner.o autoidl.o countcalls.o testjoin.o schannel.o netlogon.o samlogon.o \
 +              samsync.o bind.o dssetup.o alter_context.o bench.o samba3rpc.o rpc.o async_bind.o \
 +              handles.o frsapi.o)
  
  #################################
  # Start SUBSYSTEM TORTURE_RAP
@@@ -140,26 -181,27 +140,26 @@@ SUBSYSTEM = tortur
  INIT_FUNCTION = torture_rap_init
  PRIVATE_PROTO_HEADER = \
                rap/proto.h
 -OBJ_FILES = \
 -              rap/rap.o
  PRIVATE_DEPENDENCIES = TORTURE_UTIL LIBCLI_SMB
  # End SUBSYSTEM TORTURE_RAP
  #################################
  
 +TORTURE_RAP_OBJ_FILES = torture/rap/rap.o
 +
  #################################
  # Start SUBSYSTEM TORTURE_AUTH
  [MODULE::TORTURE_AUTH]
  SUBSYSTEM = torture
  PRIVATE_PROTO_HEADER = \
                auth/proto.h
 -OBJ_FILES = \
 -              auth/ntlmssp.o \
 -              auth/pac.o
  PRIVATE_DEPENDENCIES = \
                LIBCLI_SMB gensec auth KERBEROS \
                POPT_CREDENTIALS SMBPASSWD
  # End SUBSYSTEM TORTURE_AUTH
  #################################
  
 +TORTURE_AUTH_OBJ_FILES = $(addprefix torture/auth/, ntlmssp.o pac.o)
 +
  mkinclude local/config.mk
  
  #################################
@@@ -170,11 -212,12 +170,11 @@@ INIT_FUNCTION = torture_nbench_ini
  PRIVATE_DEPENDENCIES = TORTURE_UTIL 
  PRIVATE_PROTO_HEADER = \
                nbench/proto.h
 -OBJ_FILES = \
 -              nbench/nbio.o \
 -              nbench/nbench.o
  # End MODULE TORTURE_NBENCH
  #################################
  
 +TORTURE_NBENCH_OBJ_FILES = $(addprefix torture/nbench/, nbio.o nbench.o)
 +
  #################################
  # Start MODULE TORTURE_UNIX
  [MODULE::TORTURE_UNIX]
@@@ -183,11 -226,13 +183,11 @@@ INIT_FUNCTION = torture_unix_ini
  PRIVATE_DEPENDENCIES = TORTURE_UTIL 
  PRIVATE_PROTO_HEADER = \
                unix/proto.h
 -OBJ_FILES = \
 -              unix/unix.o \
 -              unix/whoami.o \
 -              unix/unix_info2.o
  # End MODULE TORTURE_UNIX
  #################################
  
 +TORTURE_UNIX_OBJ_FILES = $(addprefix torture/unix/, unix.o whoami.o unix_info2.o)
 +
  #################################
  # Start SUBSYSTEM TORTURE_LDAP
  [MODULE::TORTURE_LDAP]
@@@ -195,14 -240,18 +195,14 @@@ SUBSYSTEM = tortur
  INIT_FUNCTION = torture_ldap_init
  PRIVATE_PROTO_HEADER = \
                ldap/proto.h
 -OBJ_FILES = \
 -              ldap/common.o \
 -              ldap/basic.o \
 -              ldap/schema.o \
 -              ldap/uptodatevector.o \
 -              ldap/cldap.o \
 -              ldap/cldapbench.o
  PRIVATE_DEPENDENCIES = \
                LIBCLI_LDAP LIBCLI_CLDAP SAMDB POPT_CREDENTIALS
  # End SUBSYSTEM TORTURE_LDAP
  #################################
  
 +TORTURE_LDAP_OBJ_FILES = $(addprefix torture/ldap/, common.o basic.o schema.o uptodatevector.o cldap.o cldapbench.o)
 +
 +
  #################################
  # Start SUBSYSTEM TORTURE_NBT
  [MODULE::TORTURE_NBT]
@@@ -210,15 -259,19 +210,15 @@@ SUBSYSTEM = tortur
  INIT_FUNCTION = torture_nbt_init
  PRIVATE_PROTO_HEADER = \
                nbt/proto.h
 -OBJ_FILES = \
 -              nbt/query.o \
 -              nbt/register.o \
 -              nbt/wins.o \
 -              nbt/winsbench.o \
 -              nbt/winsreplication.o \
 -              nbt/dgram.o \
 -              nbt/nbt.o
  PRIVATE_DEPENDENCIES = \
                LIBCLI_SMB LIBCLI_NBT LIBCLI_DGRAM LIBCLI_WREPL torture_rpc
  # End SUBSYSTEM TORTURE_NBT
  #################################
  
 +TORTURE_NBT_OBJ_FILES = $(addprefix torture/nbt/, query.o register.o \
 +      wins.o winsbench.o winsreplication.o dgram.o nbt.o)
 +
 +
  #################################
  # Start SUBSYSTEM TORTURE_NET
  [MODULE::TORTURE_NET]
@@@ -226,6 -279,21 +226,6 @@@ SUBSYSTEM = tortur
  INIT_FUNCTION = torture_net_init
  PRIVATE_PROTO_HEADER = \
                libnet/proto.h
 -OBJ_FILES = \
 -              libnet/libnet.o \
 -              libnet/utils.o \
 -              libnet/userinfo.o \
 -              libnet/userman.o \
 -              libnet/groupinfo.o \
 -              libnet/groupman.o \
 -              libnet/domain.o \
 -              libnet/libnet_lookup.o \
 -              libnet/libnet_user.o \
 -              libnet/libnet_group.o \
 -              libnet/libnet_share.o \
 -              libnet/libnet_rpc.o \
 -              libnet/libnet_domain.o \
 -              libnet/libnet_BecomeDC.o
  PRIVATE_DEPENDENCIES = \
                LIBSAMBA-NET \
                POPT_CREDENTIALS \
  # End SUBSYSTEM TORTURE_NET
  #################################
  
 +TORTURE_NET_OBJ_FILES = $(addprefix torture/libnet/, libnet.o \
 +                                         utils.o userinfo.o userman.o groupinfo.o groupman.o \
 +                                         domain.o libnet_lookup.o libnet_user.o libnet_group.o \
 +                                         libnet_share.o libnet_rpc.o libnet_domain.o libnet_BecomeDC.o)
 +
 +
  #################################
  # Start BINARY smbtorture
  [BINARY::smbtorture]
  INSTALLDIR = BINDIR
 -OBJ_FILES = \
 -              smbtorture.o
  PRIVATE_DEPENDENCIES = \
                torture \
                LIBPOPT \
  # End BINARY smbtorture
  #################################
  
 +smbtorture_OBJ_FILES = torture/smbtorture.o
 +
  MANPAGES += torture/man/smbtorture.1
  
  #################################
  # Start BINARY gentest
  [BINARY::gentest]
  INSTALLDIR = BINDIR
 -OBJ_FILES = \
 -              gentest.o
  PRIVATE_DEPENDENCIES = \
-               LIBSAMBA-CONFIG \
+               LIBSAMBA-HOSTCONFIG \
                LIBSAMBA-UTIL \
                LIBPOPT \
                POPT_SAMBA \
  # End BINARY gentest
  #################################
  
 +gentest_OBJ_FILES = torture/gentest.o
 +
  MANPAGES += torture/man/gentest.1
  
  #################################
  # Start BINARY masktest
  [BINARY::masktest]
  INSTALLDIR = BINDIR
 -OBJ_FILES = \
 -              masktest.o
  PRIVATE_DEPENDENCIES = \
-               LIBSAMBA-CONFIG \
+               LIBSAMBA-HOSTCONFIG \
                LIBSAMBA-UTIL \
                LIBPOPT \
                POPT_SAMBA \
  # End BINARY masktest
  #################################
  
 +masktest_OBJ_FILES = torture/masktest.o
 +
  MANPAGES += torture/man/masktest.1
  
  #################################
  # Start BINARY locktest
  [BINARY::locktest]
  INSTALLDIR = BINDIR
 -OBJ_FILES = \
 -              locktest.o
  PRIVATE_DEPENDENCIES = \
                LIBPOPT \
                POPT_SAMBA \
                POPT_CREDENTIALS \
                LIBSAMBA-UTIL \
                LIBCLI_SMB \
-               LIBSAMBA-CONFIG
+               LIBSAMBA-HOSTCONFIG
  # End BINARY locktest
  #################################
  
 +locktest_OBJ_FILES = torture/locktest.o
 +
  MANPAGES += torture/man/locktest.1
  
  COV_TARGET = test
index 8f6dae7665c49d5422114cda716f32aa868121ec,ea8efaa8c37c8d037175e20136da30a3828aa8c0..39d85e0572f9f968aa4e37da4b0f088a4ad1f796
@@@ -21,6 -21,7 +21,6 @@@
  #include "includes.h"
  #include "system/time.h"
  #include "torture/torture.h"
 -#include "build.h"
  #include "lib/util/dlinklist.h"
  #include "param/param.h"
  #include "lib/cmdline/popt_common.h"
@@@ -45,20 -46,8 +45,20 @@@ bool torture_register_suite(struct tort
  }
  
  
- int torture_init(void)
_PUBLIC_ int torture_init(void)
  {
 +      extern NTSTATUS torture_base_init(void);
 +      extern NTSTATUS torture_ldap_init(void);
 +      extern NTSTATUS torture_local_init(void);
 +      extern NTSTATUS torture_nbt_init(void);
 +      extern NTSTATUS torture_nbench_init(void);
 +      extern NTSTATUS torture_rap_init(void);
 +      extern NTSTATUS torture_rpc_init(void);
 +      extern NTSTATUS torture_smb2_init(void);
 +      extern NTSTATUS torture_net_init(void);
 +      extern NTSTATUS torture_raw_init(void);
 +      extern NTSTATUS torture_unix_init(void);
 +      extern NTSTATUS torture_winbind_init(void);
        init_module_fn static_init[] = { STATIC_torture_MODULES };
        init_module_fn *shared_init = load_samba_modules(NULL, cmdline_lp_ctx, "torture");
  
diff --combined source4/utils/config.mk
index 9e79898373af2cec460c043f6514d6a1afa24604,9dea2c5af3a0fb3f591433860595cf0d93725b45..a7d82684e4305f232943251d2969374576b1a70b
@@@ -4,8 -4,10 +4,8 @@@
  # Start BINARY ntlm_auth
  [BINARY::ntlm_auth]
  INSTALLDIR = BINDIR
 -OBJ_FILES = \
 -              ntlm_auth.o
  PRIVATE_DEPENDENCIES = \
-               LIBSAMBA-CONFIG \
+               LIBSAMBA-HOSTCONFIG \
                LIBSAMBA-UTIL \
                LIBPOPT \
                POPT_SAMBA \
  # End BINARY ntlm_auth
  #################################
  
 +ntlm_auth_OBJ_FILES = utils/ntlm_auth.o
 +
  MANPAGES += utils/man/ntlm_auth.1
  
  #################################
  # Start BINARY getntacl
  [BINARY::getntacl]
  INSTALLDIR = BINDIR
 -OBJ_FILES = \
 -              getntacl.o
  PRIVATE_DEPENDENCIES = \
-               LIBSAMBA-CONFIG \
+               LIBSAMBA-HOSTCONFIG \
                LIBSAMBA-UTIL \
                NDR_XATTR \
                WRAP_XATTR \
                LIBSAMBA-ERRORS
  
 +getntacl_OBJ_FILES = utils/getntacl.o
 +
  # End BINARY getntacl
  #################################
  
@@@ -45,27 -45,29 +45,27 @@@ MANPAGES += utils/man/getntacl.
  [BINARY::setntacl]
  # disabled until rewritten
  #INSTALLDIR = BINDIR
 -OBJ_FILES = \
 -              setntacl.o
  # End BINARY setntacl
  #################################
  
 +setntacl_OBJ_FILES = utils/setntacl.o
 +
  #################################
  # Start BINARY setnttoken
  [BINARY::setnttoken]
  INSTALLDIR = BINDIR
 -OBJ_FILES = \
 -              setnttoken.o
  PRIVATE_DEPENDENCIES =
  # End BINARY setnttoken
  #################################
  
 +setnttoken_OBJ_FILES = utils/setnttoken.o
 +
  #################################
  # Start BINARY nmblookup
  [BINARY::nmblookup]
  INSTALLDIR = BINDIR
 -OBJ_FILES = \
 -              nmblookup.o
  PRIVATE_DEPENDENCIES = \
-               LIBSAMBA-CONFIG \
+               LIBSAMBA-HOSTCONFIG \
                LIBSAMBA-UTIL \
                LIBCLI_NBT \
                LIBPOPT \
  # End BINARY nmblookup
  #################################
  
 +nmblookup_OBJ_FILES = utils/nmblookup.o
 +
  #################################
  # Start BINARY testparm
  [BINARY::testparm]
  INSTALLDIR = BINDIR
 -OBJ_FILES = \
 -              testparm.o
  PRIVATE_DEPENDENCIES = \
-               LIBSAMBA-CONFIG \
+               LIBSAMBA-HOSTCONFIG \
                LIBSAMBA-UTIL \
                LIBPOPT \
                samba-socket \
@@@ -91,5 -93,3 +91,5 @@@
                CHARSET
  # End BINARY testparm
  #################################
 +
 +testparm_OBJ_FILES = utils/testparm.o
index d3ed02b50e91814451da88e62935743a9fb87a69,ced0710ae07b0e80b0fdaebf526a7bcf251c77ab..4423c44c15cafa13ff248eb0f08b0a9b4574c53d
@@@ -5,8 -5,15 +5,8 @@@
  [BINARY::net]
  INSTALLDIR = BINDIR
  PRIVATE_PROTO_HEADER = net_proto.h
 -OBJ_FILES = \
 -              net.o \
 -              net_password.o \
 -              net_time.o \
 -              net_join.o \
 -              net_vampire.o \
 -              net_user.o
  PRIVATE_DEPENDENCIES = \
-               LIBSAMBA-CONFIG \
+               LIBSAMBA-HOSTCONFIG \
                LIBSAMBA-UTIL \
                LIBSAMBA-NET \
                LIBPOPT \
                POPT_CREDENTIALS
  # End BINARY net
  #################################
 +
 +net_OBJ_FILES = $(addprefix utils/net/,  \
 +              net.o \
 +              net_password.o \
 +              net_time.o \
 +              net_join.o \
 +              net_vampire.o \
 +              net_user.o)
 +