s3:gdbtestenv: also set the xterm's window title appropriately
[amitay/samba.git] / source3 / Makefile.in
index 4721463ed4c89abd4d95527f617c657a0c960bc1..728ce0871100acaa12b12526a53c4859416c0477 100644 (file)
@@ -41,17 +41,18 @@ MODULE_EXPORTS=@MODULE_EXPORTS@
 # --enable-picky-developer and --enable-krb5developer.
 DEVELOPER_CFLAGS=@DEVELOPER_CFLAGS@
 CFLAGS=@CFLAGS@
+CPP=@CPP@
 CPPFLAGS=-DHAVE_CONFIG_H @CPPFLAGS@
+PICFLAG=@PICFLAG@
 
 EXEEXT=@EXEEXT@
 AR=@AR@
-LDSHFLAGS=@LDSHFLAGS@ @RELRO_LDFLAGS@ @LDFLAGS@ -lc @LDSHFLAGS_Z_DEFS@
-LDSHFLAGS_MODULES=@LDSHFLAGS@ @RELRO_LDFLAGS@ @LDFLAGS@ @LDSHFLAGS_Z_NODEFS@
+LDSHFLAGS=$(PICFLAG) @LDSHFLAGS@ @RELRO_LDFLAGS@ @LDFLAGS@ -lc @LDSHFLAGS_Z_DEFS@
+LDSHFLAGS_MODULES=$(PICFLAG) @LDSHFLAGS@ @RELRO_LDFLAGS@ @LDFLAGS@ @LDSHFLAGS_Z_NODEFS@
 LDFLAGS=@PIE_LDFLAGS@ @RELRO_LDFLAGS@ @LDFLAGS@
 
-WINBIND_NSS_LDSHFLAGS=@WINBIND_NSS_LDSHFLAGS@ @LDFLAGS@ -lc @LDSHFLAGS_Z_DEFS@
+WINBIND_NSS_LDSHFLAGS=$(PICFLAG) @WINBIND_NSS_LDSHFLAGS@ @LDFLAGS@ -lc @LDSHFLAGS_Z_DEFS@
 AWK=@AWK@
-PICFLAG=@PICFLAG@
 DYNEXP=@DYNEXP@
 PERL=@PERL@
 LIBDL=@LIBDL@
@@ -82,6 +83,7 @@ LIBTALLOC_LIBS=@LIBTALLOC_LIBS@
 LIBREPLACE_LIBS=@LIBREPLACE_LIBS@
 LIBTDB=@LIBTDB_STATIC@ @LIBTDB_SHARED@
 LIBTDB_LIBS=@LIBTDB_LIBS@
+TDB_DEPS=@TDB_DEPS@
 LIBNETAPI=@LIBNETAPI_STATIC@ @LIBNETAPI_SHARED@
 LIBNETAPI_LIBS=@LIBNETAPI_LIBS@
 LIBSMBCLIENT_LIBS=@LIBSMBCLIENT_LIBS@
@@ -217,8 +219,6 @@ BIN_PROGS2 = bin/smbcontrol@EXEEXT@ bin/smbtree@EXEEXT@ $(TDBBACKUP) \
 BIN_PROGS3 = bin/smbpasswd@EXEEXT@ bin/rpcclient@EXEEXT@ bin/smbcacls@EXEEXT@ \
        bin/profiles@EXEEXT@ bin/ntlm_auth@EXEEXT@ bin/sharesec@EXEEXT@ \
        bin/smbcquotas@EXEEXT@ bin/eventlogadm@EXEEXT@ 
-BIN_PROGS4 = bin/ldbedit@EXEEXT@ bin/ldbsearch@EXEEXT@ bin/ldbadd@EXEEXT@ \
-       bin/ldbdel@EXEEXT@ bin/ldbmodify@EXEEXT@ bin/ldbrename@EXEEXT@ 
 
 TORTURE_PROGS = bin/smbtorture@EXEEXT@ bin/msgtest@EXEEXT@ \
        bin/masktest@EXEEXT@ bin/locktest@EXEEXT@ \
@@ -228,7 +228,7 @@ TORTURE_PROGS = bin/smbtorture@EXEEXT@ bin/msgtest@EXEEXT@ \
        bin/smbconftort@EXEEXT@ bin/vlp@EXEEXT@
 
 BIN_PROGS = @EXTRA_BIN_PROGS@ \
-       $(BIN_PROGS1) $(BIN_PROGS2) $(BIN_PROGS3) $(BIN_PROGS4) 
+       $(BIN_PROGS1) $(BIN_PROGS2) $(BIN_PROGS3)
 
 EVERYTHING_PROGS = bin/debug2html@EXEEXT@ bin/smbfilter@EXEEXT@ \
        $(TALLOCTORT) bin/replacetort@EXEEXT@ \
@@ -288,9 +288,9 @@ PASSCHANGE_OBJ = libsmb/passchange.o
 
 LIBNDR_DRSUAPI_OBJ = ../librpc/ndr/ndr_drsuapi.o \
                     ../librpc/ndr/ndr_compression.o \
-                    ../librpc/gen_ndr/ndr_drsuapi.o \
+                    librpc/gen_ndr/ndr_drsuapi.o \
                     ../librpc/ndr/ndr_drsblobs.o \
-                    ../librpc/gen_ndr/ndr_drsblobs.o
+                    librpc/gen_ndr/ndr_drsblobs.o
 
 ZLIB_OBJ = @ZLIB_OBJS@
 
@@ -301,57 +301,65 @@ COMPRESSION_OBJ = ../lib/compression/mszip.o \
 DRSUAPI_OBJ = $(LIBNDR_DRSUAPI_OBJ) \
              $(COMPRESSION_OBJ)
 
-LIBNDR_NTLMSSP_OBJ = ../librpc/gen_ndr/ndr_ntlmssp.o \
+LIBNDR_NTLMSSP_OBJ = librpc/gen_ndr/ndr_ntlmssp.o \
                     ../librpc/ndr/ndr_ntlmssp.o
 
 LIBNDR_OBJ = ../librpc/ndr/ndr_basic.o \
             ../librpc/ndr/ndr.o \
             ../librpc/ndr/ndr_misc.o \
-            ../librpc/gen_ndr/ndr_misc.o \
-            ../librpc/gen_ndr/ndr_security.o \
+            librpc/gen_ndr/ndr_misc.o \
+            librpc/gen_ndr/ndr_security.o \
             ../librpc/ndr/ndr_sec_helper.o \
-            librpc/ndr/ndr_string.o \
+            ../librpc/ndr/ndr_string.o \
             ../librpc/ndr/uuid.o \
             librpc/ndr/util.o \
-            ../librpc/gen_ndr/ndr_dcerpc.o
+            librpc/gen_ndr/ndr_dcerpc.o
 
 RPCCLIENT_NDR_OBJ = rpc_client/ndr.o
 
-LIBNDR_GEN_OBJ0 = ../librpc/gen_ndr/ndr_samr.o \
-                 ../librpc/gen_ndr/ndr_lsa.o
+LIBNDR_GEN_OBJ0 = librpc/gen_ndr/ndr_samr.o \
+                 librpc/gen_ndr/ndr_lsa.o
 
-LIBNDR_GEN_OBJ1 = ../librpc/gen_ndr/ndr_netlogon.o \
+LIBNDR_NETLOGON_OBJ = librpc/gen_ndr/ndr_netlogon.o \
                  ../librpc/ndr/ndr_netlogon.o
 
-LIBNDR_GEN_OBJ2 = ../librpc/gen_ndr/ndr_spoolss.o \
+LIBNDR_SCHANNEL_OBJ = librpc/gen_ndr/ndr_schannel.o \
+                     ../librpc/ndr/ndr_schannel.o
+
+LIBNDR_SPOOLSS_OBJ = librpc/gen_ndr/ndr_spoolss.o \
                  ../librpc/ndr/ndr_spoolss_buf.o
 
-LIBNDR_GEN_OBJ = ../librpc/gen_ndr/ndr_wkssvc.o \
+LIBNDR_NTPRINTING_OBJ = librpc/gen_ndr/ndr_ntprinting.o \
+                       ../librpc/ndr/ndr_ntprinting.o \
+
+LIBNDR_PREG_OBJ = librpc/gen_ndr/ndr_preg.o \
+                 librpc/ndr/ndr_preg.o
+
+LIBNDR_XATTR_OBJ = librpc/gen_ndr/ndr_xattr.o \
+                  ../librpc/ndr/ndr_xattr.o
+
+LIBNDR_GEN_OBJ = librpc/gen_ndr/ndr_wkssvc.o \
                 $(LIBNDR_GEN_OBJ0) \
-                ../librpc/gen_ndr/ndr_dfs.o \
-                ../librpc/gen_ndr/ndr_echo.o \
-                ../librpc/gen_ndr/ndr_winreg.o \
-                ../librpc/gen_ndr/ndr_initshutdown.o \
-                ../librpc/gen_ndr/ndr_srvsvc.o \
-                ../librpc/gen_ndr/ndr_eventlog.o \
-                $(LIBNDR_GEN_OBJ1) \
-                ../librpc/gen_ndr/ndr_dssetup.o \
+                librpc/gen_ndr/ndr_dfs.o \
+                librpc/gen_ndr/ndr_echo.o \
+                librpc/gen_ndr/ndr_winreg.o \
+                librpc/gen_ndr/ndr_initshutdown.o \
+                librpc/gen_ndr/ndr_srvsvc.o \
+                librpc/gen_ndr/ndr_eventlog.o \
+                $(LIBNDR_NETLOGON_OBJ) \
+                librpc/gen_ndr/ndr_dssetup.o \
                 librpc/gen_ndr/ndr_notify.o \
-                ../librpc/gen_ndr/ndr_xattr.o \
-                ../librpc/ndr/ndr_xattr.o \
-                ../librpc/gen_ndr/ndr_epmapper.o \
-                ../librpc/gen_ndr/ndr_named_pipe_auth.o \
-                ../librpc/gen_ndr/ndr_ntsvcs.o \
-                $(LIBNDR_GEN_OBJ2)
-
-RPC_PARSE_OBJ0 = rpc_parse/parse_prs.o rpc_parse/parse_misc.o
+                $(LIBNDR_XATTR_OBJ) \
+                librpc/gen_ndr/ndr_epmapper.o \
+                librpc/gen_ndr/ndr_named_pipe_auth.o \
+                librpc/gen_ndr/ndr_ntsvcs.o \
+                $(LIBNDR_SPOOLSS_OBJ)
 
 # this includes only the low level parse code, not stuff
 # that requires knowledge of security contexts
-RPC_PARSE_OBJ1 = $(RPC_PARSE_OBJ0)
+REG_PARSE_PRS_OBJ = registry/reg_parse_prs.o
 
-RPC_PARSE_OBJ2 = rpc_parse/parse_rpc.o \
-                rpc_client/init_netlogon.o \
+RPC_PARSE_OBJ = rpc_client/init_netlogon.o \
                 rpc_client/init_lsa.o
 
 LIBREPLACE_OBJ = @LIBREPLACE_OBJS@
@@ -387,6 +395,7 @@ LIB_OBJ = $(LIBSAMBAUTIL_OBJ) $(UTIL_OBJ) $(CRYPTO_OBJ) \
          lib/interfaces.o lib/memcache.o \
          lib/talloc_dict.o \
          lib/serverid.o \
+         lib/util_sconn.o \
          lib/util_transfer_file.o ../lib/async_req/async_sock.o \
          $(TDB_LIB_OBJ) \
          $(VERSION_OBJ) lib/charcnv.o lib/debug.o lib/fault.o \
@@ -399,7 +408,8 @@ LIB_OBJ = $(LIBSAMBAUTIL_OBJ) $(UTIL_OBJ) $(CRYPTO_OBJ) \
          lib/wins_srv.o \
          lib/util_str.o lib/clobber.o lib/util_sid.o lib/util_uuid.o \
          lib/util_unistr.o lib/util_file.o \
-         lib/util.o lib/util_sock.o lib/sock_exec.o lib/util_sec.o \
+         lib/util.o lib/util_names.o \
+         lib/util_sock.o lib/sock_exec.o lib/util_sec.o \
          lib/substitute.o lib/dbwrap_util.o \
          lib/ms_fnmatch.o lib/select.o lib/errmap_unix.o \
          lib/tallocmsg.o lib/dmallocmsg.o \
@@ -408,6 +418,7 @@ LIB_OBJ = $(LIBSAMBAUTIL_OBJ) $(UTIL_OBJ) $(CRYPTO_OBJ) \
          lib/conn_tdb.o lib/adt_tree.o lib/gencache.o \
          lib/sessionid_tdb.o \
          lib/module.o lib/events.o @LIBTEVENT_OBJ0@ \
+         lib/server_contexts.o \
          lib/ldap_escape.o @CHARSET_STATIC@ \
          lib/secdesc.o lib/util_seaccess.o ../libcli/security/secace.o \
          ../libcli/security/sddl.o \
@@ -426,7 +437,7 @@ READLINE_OBJ = lib/readline.o
 # Be sure to include them into your application
 POPT_LIB_OBJ = lib/popt_common.o
 
-PARAM_WITHOUT_REG_OBJ = dynconfig.o param/loadparm.o param/util.o lib/sharesec.o lib/ldap_debug_handler.o
+PARAM_WITHOUT_REG_OBJ = dynconfig.o param/loadparm.o param/loadparm_server_role.o param/util.o lib/sharesec.o lib/ldap_debug_handler.o
 PARAM_REG_ADD_OBJ = $(REG_SMBCONF_OBJ) $(LIBSMBCONF_OBJ) $(PRIVILEGES_BASIC_OBJ)
 PARAM_OBJ = $(PARAM_WITHOUT_REG_OBJ) $(PARAM_REG_ADD_OBJ)
 
@@ -444,25 +455,29 @@ LIBGPO_OBJ0 = ../libgpo/gpo_ldap.o ../libgpo/gpo_ini.o ../libgpo/gpo_util.o \
              $(GPEXT_OBJ)
 LIBGPO_OBJ = $(LIBGPO_OBJ0)
 
-LIBADS_OBJ = libads/ldap.o libads/ldap_printer.o \
+LIBADS_OBJ = libads/ldap.o \
             libads/sasl.o libads/sasl_wrapping.o \
-            libads/krb5_setpw.o libads/ldap_user.o \
+            libads/krb5_setpw.o \
+            libads/kerberos_util.o \
+            libads/ldap_user.o \
             libads/ads_struct.o libads/kerberos_keytab.o \
              libads/disp_sec.o libads/ads_utils.o libads/ldap_utils.o \
             libads/ldap_schema.o libads/util.o libads/ndr.o
 
 LIBADS_SERVER_OBJ = libads/kerberos_verify.o libads/authdata.o \
                    ../librpc/ndr/ndr_krb5pac.o \
-                   ../librpc/gen_ndr/ndr_krb5pac.o
+                   librpc/gen_ndr/ndr_krb5pac.o
 
-SECRETS_OBJ = passdb/secrets.o passdb/machine_sid.o \
+LIBADS_PRINTER_OBJ = libads/ldap_printer.o
+
+SECRETS_OBJ = passdb/secrets.o passdb/machine_account_secrets.o passdb/machine_sid.o \
              librpc/gen_ndr/ndr_secrets.o
 
 LIBNBT_OBJ = ../libcli/nbt/nbtname.o \
             ../libcli/netlogon.o \
             ../libcli/ndr_netlogon.o \
-            ../librpc/gen_ndr/ndr_nbt.o \
-            ../librpc/gen_ndr/ndr_svcctl.o \
+            librpc/gen_ndr/ndr_nbt.o \
+            librpc/gen_ndr/ndr_svcctl.o \
             ../librpc/ndr/ndr_svcctl.o
 
 LIBNMB_OBJ = libsmb/unexpected.o libsmb/namecache.o libsmb/nmblib.o \
@@ -479,15 +494,18 @@ LIBSMB_ERR_OBJ0 = $(NTERR_OBJ) $(DOSERR_OBJ) $(ERRORMAP_OBJ) $(DCE_RPC_ERR_OBJ)
 LIBSMB_ERR_OBJ1 = ../libcli/auth/smbdes.o ../libcli/auth/smbencrypt.o ../libcli/auth/msrpc_parse.o ../libcli/auth/session.o
 
 LIBSMB_ERR_OBJ = $(LIBSMB_ERR_OBJ0) $(LIBSMB_ERR_OBJ1) \
-                $(RPC_PARSE_OBJ1) \
+                $(REG_PARSE_PRS_OBJ) \
                 $(SECRETS_OBJ)
 
 LIBSMB_OBJ0 = \
               ../libcli/auth/ntlm_check.o \
               libsmb/ntlmssp.o \
-              libsmb/ntlmssp_sign.o \
+              libsmb/ntlmssp_wrap.o \
+              ../libcli/auth/ntlmssp.o \
+              ../libcli/auth/ntlmssp_sign.o \
               $(LIBNDR_NTLMSSP_OBJ) \
-              ../libcli/auth/ntlmssp_ndr.o
+              ../libcli/auth/ntlmssp_ndr.o \
+              ../libcli/auth/ntlmssp_server.o
 
 LIBSAMBA_OBJ = $(LIBSMB_OBJ0) \
               $(LIBSMB_ERR_OBJ)
@@ -500,7 +518,7 @@ LIBTSOCKET_OBJ = ../lib/tsocket/tsocket.o \
                ../lib/tsocket/tsocket_bsd.o
 
 CLDAP_OBJ = libads/cldap.o \
-       ../libcli/cldap/cldap.o \
+       ../libcli/cldap/cldap.o lib/ldb_compat.o \
        ../lib/util/idtree.o \
        $(LIBCLI_LDAP_MESSAGE_OBJ) $(LIBCLI_LDAP_NDR_OBJ) $(LIBTSOCKET_OBJ)
 
@@ -509,8 +527,7 @@ TLDAP_OBJ = lib/tldap.o lib/tldap_util.o lib/util_tsock.o
 SCHANNEL_OBJ = ../libcli/auth/credentials.o \
               ../libcli/auth/schannel_sign.o \
               ../libcli/auth/schannel_state_tdb.o \
-              ../librpc/gen_ndr/ndr_schannel.o \
-              ../librpc/ndr/ndr_schannel.o
+              $(LIBNDR_SCHANNEL_OBJ)
 
 LIBSMB_OBJ = libsmb/clientgen.o libsmb/cliconnect.o libsmb/clifile.o \
             libsmb/clikrb5.o libsmb/clispnego.o \
@@ -539,22 +556,44 @@ LIBMSRPC_OBJ = rpc_client/cli_lsarpc.o rpc_client/cli_samr.o \
               rpc_client/init_samr.o \
                   ../librpc/rpc/binding.o
 
-LIBMSRPC_GEN_OBJ = ../librpc/gen_ndr/cli_lsa.o \
-                  ../librpc/gen_ndr/cli_dfs.o \
-                  ../librpc/gen_ndr/cli_echo.o \
-                  ../librpc/gen_ndr/cli_srvsvc.o \
-                  ../librpc/gen_ndr/cli_svcctl.o \
-                  ../librpc/gen_ndr/cli_winreg.o \
-                  ../librpc/gen_ndr/cli_initshutdown.o \
-                  ../librpc/gen_ndr/cli_eventlog.o \
-                  ../librpc/gen_ndr/cli_wkssvc.o \
-                  ../librpc/gen_ndr/cli_netlogon.o \
-                  ../librpc/gen_ndr/cli_samr.o \
-                  ../librpc/gen_ndr/cli_dssetup.o \
-                  ../librpc/gen_ndr/cli_ntsvcs.o \
-                  ../librpc/gen_ndr/cli_epmapper.o \
-                  ../librpc/gen_ndr/cli_drsuapi.o \
-                  ../librpc/gen_ndr/cli_spoolss.o \
+DCERPC_CLIENT_GEN_OBJ = \
+               librpc/gen_ndr/ndr_lsa_c.o \
+               librpc/gen_ndr/ndr_dfs_c.o \
+               librpc/gen_ndr/ndr_echo_c.o \
+               librpc/gen_ndr/ndr_srvsvc_c.o \
+               librpc/gen_ndr/ndr_svcctl_c.o \
+               librpc/gen_ndr/ndr_winreg_c.o \
+               librpc/gen_ndr/ndr_initshutdown_c.o \
+               librpc/gen_ndr/ndr_eventlog_c.o \
+               librpc/gen_ndr/ndr_wkssvc_c.o \
+               librpc/gen_ndr/ndr_netlogon_c.o \
+               librpc/gen_ndr/ndr_samr_c.o \
+               librpc/gen_ndr/ndr_dssetup_c.o \
+               librpc/gen_ndr/ndr_ntsvcs_c.o \
+               librpc/gen_ndr/ndr_epmapper_c.o \
+               librpc/gen_ndr/ndr_drsuapi_c.o \
+               librpc/gen_ndr/ndr_spoolss_c.o
+
+LIBMSRPC_GEN_OBJ = librpc/gen_ndr/cli_lsa.o \
+                  librpc/gen_ndr/cli_dfs.o \
+                  librpc/gen_ndr/cli_echo.o \
+                  librpc/gen_ndr/cli_srvsvc.o \
+                  librpc/gen_ndr/cli_svcctl.o \
+                  librpc/gen_ndr/cli_winreg.o \
+                  librpc/gen_ndr/cli_initshutdown.o \
+                  librpc/gen_ndr/cli_eventlog.o \
+                  librpc/gen_ndr/cli_wkssvc.o \
+                  librpc/gen_ndr/cli_netlogon.o \
+                  librpc/gen_ndr/cli_samr.o \
+                  librpc/gen_ndr/cli_dssetup.o \
+                  librpc/gen_ndr/cli_ntsvcs.o \
+                  librpc/gen_ndr/cli_epmapper.o \
+                  librpc/gen_ndr/cli_drsuapi.o \
+                  librpc/gen_ndr/cli_spoolss.o \
+                  $(DCERPC_CLIENT_GEN_OBJ) \
+                  ../librpc/rpc/dcerpc_util.o \
+                  ../librpc/rpc/binding_handle.o \
+                  librpc/rpc/dcerpc_helpers.o \
                   $(LIBNDR_GEN_OBJ) \
                   $(RPCCLIENT_NDR_OBJ)
 
@@ -562,7 +601,6 @@ LIBMSRPC_GEN_OBJ = ../librpc/gen_ndr/cli_lsa.o \
 # registry-related objects
 #
 UTIL_REG_OBJ = ../libcli/registry/util_reg.o
-UTIL_REG_API_OBJ = lib/util_reg_api.o
 
 REG_INIT_BASIC_OBJ = registry/reg_init_basic.o
 REG_INIT_SMBCONF_OBJ = registry/reg_init_smbconf.o
@@ -590,13 +628,13 @@ REG_BASE_OBJ = registry/reg_api.o \
               registry/reg_cachehook.o \
               $(REGFIO_OBJ) \
               $(REGOBJS_OBJ) \
-              registry/reg_util.o \
-              $(UTIL_REG_API_OBJ) \
+              registry/reg_util_internal.o \
               lib/util_nttoken.o \
               $(REG_BACKENDS_BASE_OBJ) \
               $(REG_INIT_BASIC_OBJ)
 
 REG_SMBCONF_OBJ = $(REG_BASE_OBJ) \
+                 registry/reg_util_token.o \
                  $(REG_BACKENDS_SMBCONF_OBJ) \
                  $(REG_INIT_SMBCONF_OBJ)
 
@@ -610,56 +648,65 @@ REG_FULL_OBJ = $(REG_SMBCONF_OBJ) \
 
 LIB_EVENTLOG_OBJ = lib/eventlog/eventlog.o
 
-RPC_LSA_OBJ = rpc_server/srv_lsa_nt.o ../librpc/gen_ndr/srv_lsa.o
+RPC_LSA_OBJ = rpc_server/srv_lsa_nt.o librpc/gen_ndr/srv_lsa.o
 
 RPC_NETLOG_OBJ = rpc_server/srv_netlog_nt.o \
-                ../librpc/gen_ndr/srv_netlogon.o
+                librpc/gen_ndr/srv_netlogon.o
 
 RPC_SAMR_OBJ = rpc_server/srv_samr_nt.o \
                rpc_server/srv_samr_util.o \
-              ../librpc/gen_ndr/srv_samr.o
+               rpc_server/srv_samr_chgpasswd.o \
+              librpc/gen_ndr/srv_samr.o
 
-RPC_INITSHUTDOWN_OBJ =  ../librpc/gen_ndr/srv_initshutdown.o rpc_server/srv_initshutdown_nt.o
+RPC_INITSHUTDOWN_OBJ =  librpc/gen_ndr/srv_initshutdown.o rpc_server/srv_initshutdown_nt.o
 
 RPC_REG_OBJ =  rpc_server/srv_winreg_nt.o \
-              ../librpc/gen_ndr/srv_winreg.o
+              librpc/gen_ndr/srv_winreg.o
 
-RPC_DSSETUP_OBJ =  rpc_server/srv_dssetup_nt.o ../librpc/gen_ndr/srv_dssetup.o
+RPC_DSSETUP_OBJ =  rpc_server/srv_dssetup_nt.o librpc/gen_ndr/srv_dssetup.o
 
 RPC_SVC_OBJ = rpc_server/srv_srvsvc_nt.o \
-             ../librpc/gen_ndr/srv_srvsvc.o
+             librpc/gen_ndr/srv_srvsvc.o
 
-RPC_WKS_OBJ =  ../librpc/gen_ndr/srv_wkssvc.o rpc_server/srv_wkssvc_nt.o
+RPC_WKS_OBJ =  librpc/gen_ndr/srv_wkssvc.o rpc_server/srv_wkssvc_nt.o
 
 RPC_SVCCTL_OBJ =  rpc_server/srv_svcctl_nt.o \
-                 ../librpc/gen_ndr/srv_svcctl.o \
+                 librpc/gen_ndr/srv_svcctl.o \
                   services/svc_spoolss.o services/svc_rcinit.o services/services_db.o \
                   services/svc_netlogon.o services/svc_winreg.o \
                   services/svc_wins.o
 
 RPC_NTSVCS_OBJ = rpc_server/srv_ntsvcs_nt.o \
-                ../librpc/gen_ndr/srv_ntsvcs.o
+                librpc/gen_ndr/srv_ntsvcs.o
 
-RPC_DFS_OBJ =  ../librpc/gen_ndr/srv_dfs.o rpc_server/srv_dfs_nt.o
+RPC_DFS_OBJ =  librpc/gen_ndr/srv_dfs.o rpc_server/srv_dfs_nt.o
 
 RPC_SPOOLSS_OBJ = rpc_server/srv_spoolss_nt.o \
                  rpc_server/srv_spoolss_util.o \
-                 ../librpc/gen_ndr/srv_spoolss.o
+                 librpc/gen_ndr/srv_spoolss.o
 
 RPC_EVENTLOG_OBJ = rpc_server/srv_eventlog_nt.o \
-                  $(LIB_EVENTLOG_OBJ) ../librpc/gen_ndr/srv_eventlog.o
+                  $(LIB_EVENTLOG_OBJ) librpc/gen_ndr/srv_eventlog.o
+
+NPA_TSTREAM_OBJ = ../libcli/named_pipe_auth/npa_tstream.o
 
-RPC_PIPE_OBJ = rpc_server/srv_pipe_hnd.o \
-               rpc_server/srv_pipe.o rpc_server/srv_lsa_hnd.o
+RPC_NCACN_NP_INTERNAL = rpc_server/srv_pipe_register.o rpc_server/rpc_ncacn_np_internal.o \
+                       rpc_server/rpc_handles.o
 
-RPC_ECHO_OBJ = rpc_server/srv_echo_nt.o ../librpc/gen_ndr/srv_echo.o
+RPC_PIPE_OBJ = rpc_server/srv_pipe.o rpc_server/srv_pipe_hnd.o \
+              $(RPC_NCACN_NP_INTERNAL)
 
-RPC_SERVER_OBJ = @RPC_STATIC@ $(RPC_PIPE_OBJ)
+RPC_ECHO_OBJ = rpc_server/srv_echo_nt.o librpc/gen_ndr/srv_echo.o
 
-RPC_PARSE_OBJ = $(RPC_PARSE_OBJ2)
+RPC_SERVER_OBJ = @RPC_STATIC@ $(RPC_PIPE_OBJ) $(NPA_TSTREAM_OBJ)
 
-RPC_CLIENT_OBJ = rpc_client/cli_pipe.o rpc_client/rpc_transport_np.o \
-       rpc_client/rpc_transport_sock.o rpc_client/rpc_transport_smbd.o
+RPC_CLIENT_OBJ = rpc_client/cli_pipe.o \
+                librpc/rpc/dcerpc_gssapi.o \
+                librpc/rpc/dcerpc_spnego.o \
+                librpc/rpc/rpc_common.o \
+                rpc_client/rpc_transport_np.o \
+                rpc_client/rpc_transport_sock.o \
+                rpc_client/rpc_transport_smbd.o
 
 LOCKING_OBJ = locking/locking.o locking/brlock.o locking/posix.o
 
@@ -673,7 +720,7 @@ PASSDB_OBJ = $(PASSDB_GET_SET_OBJ) passdb/passdb.o passdb/pdb_interface.o \
                passdb/util_wellknown.o passdb/util_builtin.o passdb/pdb_compat.o \
                passdb/util_unixsids.o passdb/lookup_sid.o \
                passdb/login_cache.o @PDB_STATIC@ \
-               lib/account_pol.o $(PRIVILEGES_OBJ) \
+               passdb/account_pol.o $(PRIVILEGES_OBJ) \
                lib/util_nscd.o lib/winbind_util.o $(SERVER_MUTEX_OBJ)
 
 DEVEL_HELP_WEIRD_OBJ = modules/weird.o
@@ -746,6 +793,7 @@ PERFCOUNT_TEST_OBJ = modules/perfcount_test.o
 VFS_DIRSORT_OBJ = modules/vfs_dirsort.o
 VFS_SCANNEDONLY_OBJ = modules/vfs_scannedonly.o
 VFS_CROSSRENAME_OBJ = modules/vfs_crossrename.o
+VFS_LINUX_XFS_SGID_OBJ = modules/vfs_linux_xfs_sgid.o
 
 PLAINTEXT_AUTH_OBJ = auth/pampass.o auth/pass_check.o
 
@@ -767,17 +815,19 @@ AUTH_OBJ = auth/auth.o @AUTH_STATIC@ auth/auth_util.o auth/token_util.o \
           auth/server_info.o \
           auth/server_info_sam.o \
           auth/user_info.o \
+          auth/user_util.o \
           auth/auth_compat.o auth/auth_ntlmssp.o \
           $(PLAINTEXT_AUTH_OBJ) $(SLCACHE_OBJ) $(DCUTIL_OBJ)
 
 MANGLE_OBJ = smbd/mangle.o smbd/mangle_hash.o smbd/mangle_hash2.o
 
-SMBD_OBJ_MAIN = smbd/server.o
+SMBD_OBJ_MAIN = smbd/server.o smbd/server_exit.o
 
 BUILDOPT_OBJ = smbd/build_options.o
 
-SMBD_OBJ_SRV = smbd/files.o smbd/chgpasswd.o smbd/connection.o \
-              smbd/utmp.o smbd/session.o smbd/map_username.o \
+SMBD_OBJ_SRV = smbd/server_reload.o \
+              smbd/files.o smbd/connection.o \
+              smbd/utmp.o smbd/session.o \
                smbd/dfree.o smbd/dir.o smbd/password.o smbd/conn.o \
               smbd/share_access.o smbd/fileio.o \
                smbd/ipc.o smbd/lanman.o smbd/negprot.o \
@@ -788,9 +838,10 @@ SMBD_OBJ_SRV = smbd/files.o smbd/chgpasswd.o smbd/connection.o \
               smbd/vfs.o smbd/perfcount.o smbd/statcache.o smbd/seal.o \
                smbd/posix_acls.o lib/sysacls.o \
               smbd/process.o smbd/service.o smbd/error.o \
-              printing/printfsp.o lib/sysquotas.o lib/sysquotas_linux.o \
+              printing/printspoolss.o \
+              lib/sysquotas.o lib/sysquotas_linux.o \
               lib/sysquotas_xfs.o lib/sysquotas_4A.o \
-              smbd/change_trust_pw.o smbd/fake_file.o \
+              smbd/fake_file.o \
               smbd/quotas.o smbd/ntquotas.o $(AFS_OBJ) smbd/msdfs.o \
               $(AFS_SETTOKEN_OBJ) smbd/aio.o smbd/statvfs.o \
               smbd/dmapi.o smbd/signing.o \
@@ -824,19 +875,26 @@ SMBD_OBJ_BASE = $(PARAM_WITHOUT_REG_OBJ) $(SMBD_OBJ_SRV) $(LIBSMB_OBJ) \
                $(LIB_OBJ) $(PRINTBACKEND_OBJ) $(OPLOCK_OBJ) \
                $(NOTIFY_OBJ) $(FNAME_UTIL_OBJ) $(GROUPDB_OBJ) $(AUTH_OBJ) \
                $(LIBMSRPC_OBJ) $(LIBMSRPC_GEN_OBJ) $(AVAHI_OBJ) \
-               $(LIBADS_OBJ) $(KRBCLIENT_OBJ) $(LIBADS_SERVER_OBJ) \
+               $(LIBADS_OBJ) $(KRBCLIENT_OBJ) $(LIBADS_SERVER_OBJ) $(LIBADS_PRINTER_OBJ) \
                $(REG_FULL_OBJ) $(POPT_LIB_OBJ) $(BUILDOPT_OBJ) \
-               $(SMBLDAP_OBJ) $(LDB_OBJ) $(LIBNET_OBJ) \
+               $(SMBLDAP_OBJ) $(LIBNET_OBJ) \
                $(LIBSMBCONF_OBJ) \
                $(PRIVILEGES_BASIC_OBJ)
 
 PRINTING_OBJ = printing/pcap.o printing/print_svid.o printing/print_aix.o \
                printing/print_cups.o printing/print_generic.o \
                printing/lpq_parse.o printing/load.o \
-               printing/print_iprint.o
+               printing/print_iprint.o printing/print_standard.o
 
 PRINTBASE_OBJ = printing/notify.o printing/printing_db.o
-PRINTBACKEND_OBJ = printing/printing.o printing/nt_printing.o $(PRINTBASE_OBJ)
+PRINTBACKEND_OBJ = printing/printing.o \
+                  printing/nt_printing.o \
+                  printing/nt_printing_tdb.o \
+                  printing/nt_printing_migrate.o \
+                  printing/nt_printing_ads.o \
+                  librpc/gen_ndr/ndr_ntprinting.o \
+                   ../librpc/ndr/ndr_ntprinting.o \
+                  $(PRINTBASE_OBJ)
 
 SMBD_OBJ = $(SMBD_OBJ_BASE) $(SMBD_OBJ_MAIN)
 
@@ -853,7 +911,7 @@ NMBD_OBJ1 = nmbd/asyncdns.o nmbd/nmbd.o nmbd/nmbd_become_dmb.o \
             nmbd/nmbd_subnetdb.o nmbd/nmbd_winsproxy.o nmbd/nmbd_winsserver.o \
             nmbd/nmbd_workgroupdb.o nmbd/nmbd_synclists.o
 
-NMBD_OBJ = $(NMBD_OBJ1) $(PARAM_OBJ) $(LIBSMB_OBJ) $(LDB_OBJ) $(KRBCLIENT_OBJ) \
+NMBD_OBJ = $(NMBD_OBJ1) $(PARAM_OBJ) $(LIBSMB_OBJ) $(KRBCLIENT_OBJ) \
            $(PROFILE_OBJ) $(LIB_NONSMBD_OBJ) $(POPT_LIB_OBJ) \
           $(LIBNDR_GEN_OBJ0)
 
@@ -864,7 +922,7 @@ SWAT_OBJ = $(SWAT_OBJ1) $(PARAM_OBJ) $(PRINTING_OBJ) $(PRINTBASE_OBJ) $(LIBSMB_O
           $(LOCKING_OBJ) $(PASSDB_OBJ) $(KRBCLIENT_OBJ) \
           $(LIB_NONSMBD_OBJ) $(GROUPDB_OBJ) $(PLAINTEXT_AUTH_OBJ) \
           $(POPT_LIB_OBJ) $(SMBLDAP_OBJ) $(RPC_PARSE_OBJ) $(LIBMSRPC_GEN_OBJ) $(LIBMSRPC_OBJ) \
-           $(PASSCHANGE_OBJ) $(LDB_OBJ) $(FNAME_UTIL_OBJ)
+           $(PASSCHANGE_OBJ) $(FNAME_UTIL_OBJ)
 
 STATUS_OBJ = utils/status.o utils/status_profile.o \
             $(LOCKING_OBJ) $(PARAM_OBJ) \
@@ -877,9 +935,9 @@ SMBCONTROL_OBJ = utils/smbcontrol.o $(PARAM_OBJ) $(LIB_NONSMBD_OBJ) \
 SMBTREE_OBJ = utils/smbtree.o $(PARAM_OBJ) \
              $(PROFILE_OBJ) $(LIB_NONSMBD_OBJ) $(LIBSMB_OBJ) \
             $(KRBCLIENT_OBJ) $(POPT_LIB_OBJ) \
-             $(RPC_CLIENT_OBJ) ../librpc/rpc/binding.o $(RPC_PARSE_OBJ2) \
+             $(RPC_CLIENT_OBJ) ../librpc/rpc/binding.o $(RPC_PARSE_OBJ) \
              $(RPC_CLIENT_OBJ1) \
-            $(PASSDB_OBJ) $(SMBLDAP_OBJ) $(LDB_OBJ) $(GROUPDB_OBJ) \
+            $(PASSDB_OBJ) $(SMBLDAP_OBJ) $(GROUPDB_OBJ) \
             $(LIBMSRPC_GEN_OBJ)
 
 TESTPARM_OBJ = utils/testparm.o \
@@ -900,13 +958,12 @@ SMBPASSWD_OBJ = utils/smbpasswd.o $(PASSWD_UTIL_OBJ) $(PASSCHANGE_OBJ) \
                $(PARAM_OBJ) $(LIBSMB_OBJ) $(PASSDB_OBJ) \
                $(GROUPDB_OBJ) $(LIB_NONSMBD_OBJ) $(KRBCLIENT_OBJ) \
                $(POPT_LIB_OBJ) $(SMBLDAP_OBJ) $(RPC_PARSE_OBJ) \
-               $(LIBMSRPC_GEN_OBJ) $(LIBMSRPC_OBJ) $(LDB_OBJ)
+               $(LIBMSRPC_GEN_OBJ) $(LIBMSRPC_OBJ)
 
 PDBEDIT_OBJ = utils/pdbedit.o $(PASSWD_UTIL_OBJ) $(PARAM_OBJ) $(PASSDB_OBJ) \
                $(LIBSAMBA_OBJ) $(LIBTSOCKET_OBJ) \
                $(LIB_NONSMBD_OBJ) $(GROUPDB_OBJ) \
-               $(POPT_LIB_OBJ) $(SMBLDAP_OBJ) ../lib/util/asn1.o \
-               $(LDB_OBJ)
+               $(POPT_LIB_OBJ) $(SMBLDAP_OBJ) ../lib/util/asn1.o
 
 SMBGET_OBJ = utils/smbget.o $(POPT_LIB_OBJ) $(LIBSMBCLIENT_OBJ1)
 
@@ -927,7 +984,7 @@ RPCCLIENT_OBJ = $(RPCCLIENT_OBJ1) \
              $(RPC_PARSE_OBJ) $(PASSDB_OBJ) $(LIBMSRPC_GEN_OBJ) $(LIBMSRPC_OBJ) \
              $(READLINE_OBJ) $(GROUPDB_OBJ) $(KRBCLIENT_OBJ) \
             $(LIBADS_OBJ) $(POPT_LIB_OBJ) \
-            $(SMBLDAP_OBJ) $(DCUTIL_OBJ) $(LDB_OBJ) 
+            $(SMBLDAP_OBJ) $(DCUTIL_OBJ)
 
 PAM_WINBIND_OBJ = ../nsswitch/pam_winbind.o $(WBCOMMON_OBJ) \
                  $(LIBREPLACE_OBJ) @BUILD_INIPARSER@
@@ -954,7 +1011,7 @@ LIBSMBCLIENT_OBJ1 = $(LIBSMBCLIENT_OBJ0) \
                    $(PARAM_OBJ) $(LIB_NONSMBD_OBJ) \
                    $(LIBSMB_OBJ) $(KRBCLIENT_OBJ) \
                    $(LIBMSRPC_OBJ) $(LIBMSRPC_GEN_OBJ) $(RPC_PARSE_OBJ) \
-                   $(PASSDB_OBJ) $(SMBLDAP_OBJ) $(GROUPDB_OBJ) $(LDB_OBJ)
+                   $(PASSDB_OBJ) $(SMBLDAP_OBJ) $(GROUPDB_OBJ)
 
 LIBSMBCLIENT_OBJ = $(LIBSMBCLIENT_OBJ1)
 
@@ -966,18 +1023,18 @@ LIBBIGBALLOFMUD_MAJOR = 0
 
 LIBBIGBALLOFMUD_OBJ = $(PARAM_OBJ) $(LIB_NONSMBD_OBJ) \
        $(LIBSMB_OBJ) $(LIBMSRPC_OBJ) $(LIBMSRPC_GEN_OBJ) $(RPC_PARSE_OBJ) $(PASSDB_OBJ) \
-       $(GROUPDB_OBJ) $(KRBCLIENT_OBJ) $(SMBLDAP_OBJ) $(LDB_OBJ)
+       $(GROUPDB_OBJ) $(KRBCLIENT_OBJ) $(SMBLDAP_OBJ)
 
 CLIENT_OBJ1 = client/client.o client/clitar.o $(RPC_CLIENT_OBJ) \
              ../librpc/rpc/binding.o \
              client/dnsbrowse.o \
              $(RPC_CLIENT_OBJ1) \
-             $(RPC_PARSE_OBJ2)
+             $(RPC_PARSE_OBJ)
 
 CLIENT_OBJ = $(CLIENT_OBJ1) $(PARAM_OBJ) $(LIBSMB_OBJ) \
             $(LIB_NONSMBD_OBJ) $(KRBCLIENT_OBJ) $(LIBMSRPC_GEN_OBJ) \
              $(READLINE_OBJ) $(POPT_LIB_OBJ) \
-             $(PASSDB_OBJ) $(SMBLDAP_OBJ) $(GROUPDB_OBJ) $(LDB_OBJ) \
+             $(PASSDB_OBJ) $(SMBLDAP_OBJ) $(GROUPDB_OBJ) \
             $(DISPLAY_SEC_OBJ)
 
 LIBSMBCONF_OBJ = ../lib/smbconf/smbconf.o \
@@ -1023,7 +1080,11 @@ NET_OBJ1 = utils/net.o utils/net_ads.o utils/net_help.o \
           auth/token_util.o utils/net_dom.o utils/net_share.o \
           utils/net_g_lock.o \
           utils/net_serverid.o \
-          utils/net_eventlog.o
+          utils/net_eventlog.o \
+          utils/net_printing.o \
+          $(LIBNDR_NTPRINTING_OBJ) \
+          $(LIBNDR_PREG_OBJ)
+
 
 # these are not processed by make proto
 NET_OBJ2 = utils/net_registry_util.o utils/net_help_common.o
@@ -1034,17 +1095,17 @@ NET_OBJ = $(NET_OBJ1) \
          $(RPC_PARSE_OBJ) $(PASSDB_OBJ) $(GROUPDB_OBJ) \
          $(KRBCLIENT_OBJ) $(LIB_NONSMBD_OBJ) $(LIBADDNS_OBJ0) \
          $(LIBMSRPC_OBJ) $(LIBMSRPC_GEN_OBJ) \
-         $(LIBADS_OBJ) $(LIBADS_SERVER_OBJ) $(POPT_LIB_OBJ) \
+         $(LIBADS_OBJ) $(LIBADS_SERVER_OBJ) $(LIBADS_PRINTER_OBJ) $(POPT_LIB_OBJ) \
          $(SMBLDAP_OBJ) $(DCUTIL_OBJ) \
          $(AFS_OBJ) $(AFS_SETTOKEN_OBJ) $(READLINE_OBJ) \
-         $(LDB_OBJ) $(LIBGPO_OBJ) @BUILD_INIPARSER@ $(DISPLAY_SEC_OBJ) \
+         $(LIBGPO_OBJ) @BUILD_INIPARSER@ $(DISPLAY_SEC_OBJ) \
          $(REG_SMBCONF_OBJ) \
          $(LIBNET_OBJ) $(LIBNET_DSSYNC_OBJ) $(LIBNET_SAMSYNC_OBJ) \
          $(LIBSMBCONF_OBJ) \
          $(PRIVILEGES_BASIC_OBJ) \
          $(LIB_EVENTLOG_OBJ) localedir.o
 
-CUPS_OBJ = client/smbspool.o $(PARAM_OBJ) $(LIBSMB_OBJ) $(LDB_OBJ) \
+CUPS_OBJ = client/smbspool.o $(PARAM_OBJ) $(LIBSMB_OBJ) \
          $(LIB_NONSMBD_OBJ) $(KRBCLIENT_OBJ) $(POPT_LIB_OBJ) \
          $(LIBNDR_GEN_OBJ0)
 
@@ -1053,32 +1114,33 @@ NMBLOOKUP_OBJ = utils/nmblookup.o $(PARAM_OBJ) $(LIBNMB_OBJ) \
 
 SMBTORTURE_OBJ1 = torture/torture.o torture/nbio.o torture/scanner.o torture/utable.o \
                torture/denytest.o torture/mangle_test.o \
+               torture/nbench.o \
                torture/test_posix_append.o
 
 SMBTORTURE_OBJ = $(SMBTORTURE_OBJ1) $(PARAM_OBJ) $(TLDAP_OBJ) \
-       $(LIBSMB_OBJ) $(LDB_OBJ) $(KRBCLIENT_OBJ) $(LIB_NONSMBD_OBJ) \
+       $(LIBSMB_OBJ) $(KRBCLIENT_OBJ) $(LIB_NONSMBD_OBJ) \
        @LIBWBCLIENT_STATIC@ \
         ../nsswitch/libwbclient/wbc_async.o \
         ../nsswitch/libwbclient/wb_reqtrans.o \
        $(LIBNDR_GEN_OBJ0)
 
-MASKTEST_OBJ = torture/masktest.o $(PARAM_OBJ) $(LIBSMB_OBJ) $(LDB_OBJ) $(KRBCLIENT_OBJ) \
+MASKTEST_OBJ = torture/masktest.o $(PARAM_OBJ) $(LIBSMB_OBJ) $(KRBCLIENT_OBJ) \
                  $(LIB_NONSMBD_OBJ) \
                 $(LIBNDR_GEN_OBJ0)
 
-MSGTEST_OBJ = torture/msgtest.o $(PARAM_OBJ) $(LIBSMB_ERR_OBJ) $(LDB_OBJ) \
+MSGTEST_OBJ = torture/msgtest.o $(PARAM_OBJ) $(LIBSMB_ERR_OBJ) \
                  $(LIB_NONSMBD_OBJ) \
                 $(LIBNDR_GEN_OBJ0)
 
 LOCKTEST_OBJ = torture/locktest.o $(PARAM_OBJ) $(LOCKING_OBJ) $(KRBCLIENT_OBJ) \
-               $(LIBSMB_OBJ) $(LDB_OBJ) $(LIB_NONSMBD_OBJ) \
+               $(LIBSMB_OBJ) $(LIB_NONSMBD_OBJ) \
                $(LIBNDR_GEN_OBJ0) $(FNAME_UTIL_OBJ)
 
 NSSTEST_OBJ = torture/nsstest.o $(LIBSAMBAUTIL_OBJ)
 
 PDBTEST_OBJ = torture/pdbtest.o $(PARAM_OBJ) $(LIBSMB_OBJ) $(KRBCLIENT_OBJ) \
                $(LIB_NONSMBD_OBJ) $(PASSDB_OBJ) $(GROUPDB_OBJ) \
-               $(SMBLDAP_OBJ) $(POPT_LIB_OBJ) $(LDB_OBJ) \
+               $(SMBLDAP_OBJ) $(POPT_LIB_OBJ) \
                $(LIBNDR_GEN_OBJ0)
 
 VFSTEST_OBJ = torture/cmd_vfs.o torture/vfstest.o $(SMBD_OBJ_BASE) $(READLINE_OBJ)
@@ -1087,28 +1149,28 @@ SMBICONV_OBJ = $(PARAM_OBJ) torture/smbiconv.o $(LIB_NONSMBD_OBJ) $(POPT_LIB_OBJ
 
 LOG2PCAP_OBJ = utils/log2pcaphex.o
 
-LOCKTEST2_OBJ = torture/locktest2.o $(PARAM_OBJ) $(LOCKING_OBJ) $(LIBSMB_OBJ) $(LDB_OBJ) \
+LOCKTEST2_OBJ = torture/locktest2.o $(PARAM_OBJ) $(LOCKING_OBJ) $(LIBSMB_OBJ) \
                $(KRBCLIENT_OBJ) $(LIB_NONSMBD_OBJ) \
                $(LIBNDR_GEN_OBJ0) $(FNAME_UTIL_OBJ)
 
 SMBCACLS_OBJ = utils/smbcacls.o $(PARAM_OBJ) $(LIBSMB_OBJ) \
                $(KRBCLIENT_OBJ) $(LIB_NONSMBD_OBJ) $(RPC_PARSE_OBJ) \
                $(PASSDB_OBJ) $(GROUPDB_OBJ) $(LIBMSRPC_OBJ) $(LIBMSRPC_GEN_OBJ) \
-               $(POPT_LIB_OBJ) $(DCUTIL_OBJ) $(LIBADS_OBJ) $(SMBLDAP_OBJ) $(LDB_OBJ)
+               $(POPT_LIB_OBJ) $(SMBLDAP_OBJ)
 
 SMBCQUOTAS_OBJ = utils/smbcquotas.o $(LIBSMB_OBJ) $(KRBCLIENT_OBJ) \
                $(PARAM_OBJ) \
                $(LIB_NONSMBD_OBJ) $(RPC_PARSE_OBJ) \
                $(LIBMSRPC_OBJ) $(LIBMSRPC_GEN_OBJ) $(POPT_LIB_OBJ) \
-               $(PASSDB_OBJ) $(SMBLDAP_OBJ) $(GROUPDB_OBJ) $(LDB_OBJ)
+               $(PASSDB_OBJ) $(SMBLDAP_OBJ) $(GROUPDB_OBJ)
 
 EVTLOGADM_OBJ0 = utils/eventlogadm.o
 
 EVTLOGADM_OBJ  = $(EVTLOGADM_OBJ0) $(PARAM_OBJ) $(LIB_NONSMBD_OBJ) \
                $(LIBSMB_ERR_OBJ) \
                registry/reg_eventlog.o $(LIB_EVENTLOG_OBJ) \
-               ../librpc/gen_ndr/ndr_eventlog.o \
-               ../librpc/gen_ndr/ndr_lsa.o
+               librpc/gen_ndr/ndr_eventlog.o \
+               librpc/gen_ndr/ndr_lsa.o
 
 SHARESEC_OBJ0 = utils/sharesec.o
 SHARESEC_OBJ  = $(SHARESEC_OBJ0) $(PARAM_OBJ) $(LIB_NONSMBD_OBJ) \
@@ -1127,7 +1189,7 @@ REPLACETORT_OBJ = @libreplacedir@/test/testsuite.o \
 
 DEBUG2HTML_OBJ = utils/debug2html.o utils/debugparse.o
 
-SMBFILTER_OBJ = utils/smbfilter.o $(PARAM_OBJ) $(LIBSMB_OBJ) $(LDB_OBJ) \
+SMBFILTER_OBJ = utils/smbfilter.o $(PARAM_OBJ) $(LIBSMB_OBJ) \
                  $(LIB_NONSMBD_OBJ) $(KRBCLIENT_OBJ) \
                 $(LIBNDR_GEN_OBJ0)
 
@@ -1138,7 +1200,7 @@ PAM_SMBPASS_OBJ_0 = pam_smbpass/pam_smb_auth.o pam_smbpass/pam_smb_passwd.o \
                pam_smbpass/pam_smb_acct.o pam_smbpass/support.o ../lib/util/asn1.o
 PAM_SMBPASS_OBJ = $(PAM_SMBPASS_OBJ_0) $(PARAM_OBJ) $(LIB_NONSMBD_OBJ) $(PASSDB_OBJ) $(GROUPDB_OBJ) \
                $(SMBLDAP_OBJ) $(LIBSAMBA_OBJ) \
-               $(LDB_OBJ) $(LIBTSOCKET_OBJ)
+               $(LIBTSOCKET_OBJ)
 
 IDMAP_OBJ     = winbindd/idmap.o winbindd/idmap_util.o @IDMAP_STATIC@
 
@@ -1165,14 +1227,16 @@ WINBINDD_OBJ1 = \
                winbindd/winbindd_misc.o  \
                winbindd/winbindd_cm.o    \
                winbindd/winbindd_wins.o  \
+               winbindd/winbindd_msrpc.o \
                winbindd/winbindd_rpc.o   \
                winbindd/winbindd_reconnect.o \
                winbindd/winbindd_ads.o   \
-               winbindd/winbindd_passdb.o \
+               winbindd/winbindd_samr.o \
                winbindd/winbindd_dual.o  \
                winbindd/winbindd_dual_ndr.o  \
                winbindd/winbindd_dual_srv.o  \
                librpc/gen_ndr/cli_wbint.o \
+               librpc/gen_ndr/ndr_wbint_c.o \
                librpc/gen_ndr/srv_wbint.o \
                librpc/gen_ndr/ndr_wbint.o \
                winbindd/winbindd_async.o \
@@ -1244,13 +1308,14 @@ WINBINDD_OBJ1 = \
                winbindd/winbindd_pam_chauthtok.o \
                winbindd/winbindd_pam_chng_pswd_auth_crap.o \
                winbindd/winbindd_pam_logoff.o \
+               auth/auth_util.o \
                auth/token_util.o \
+               auth/user_util.o \
                auth/check_samsec.o \
                auth/server_info.o \
                auth/server_info_sam.o \
                auth/user_info.o \
                auth/pampass.o \
-               smbd/chgpasswd.o \
                ../nsswitch/libwbclient/wb_reqtrans.o
 
 WINBINDD_OBJ = \
@@ -1260,8 +1325,9 @@ WINBINDD_OBJ = \
                $(PROFILE_OBJ) $(SLCACHE_OBJ) $(SMBLDAP_OBJ) \
                $(LIBADS_OBJ) $(KRBCLIENT_OBJ) $(POPT_LIB_OBJ) \
                $(DCUTIL_OBJ) $(IDMAP_OBJ) $(NSS_INFO_OBJ) \
+               $(RPC_NCACN_NP_INTERNAL) $(RPC_SAMR_OBJ) $(RPC_LSA_OBJ) \
                $(AFS_OBJ) $(AFS_SETTOKEN_OBJ) \
-               $(LIBADS_SERVER_OBJ) $(LDB_OBJ) \
+               $(LIBADS_SERVER_OBJ) \
                $(TDB_VALIDATE_OBJ)
 
 WBINFO_OBJ = ../nsswitch/wbinfo.o $(LIBSAMBA_OBJ) $(PARAM_OBJ) $(LIB_NONSMBD_OBJ) \
@@ -1270,38 +1336,6 @@ WBINFO_OBJ = ../nsswitch/wbinfo.o $(LIBSAMBA_OBJ) $(PARAM_OBJ) $(LIB_NONSMBD_OBJ
 
 WINBIND_NSS_OBJ = $(WBCOMMON_OBJ) $(LIBREPLACE_OBJ) @WINBIND_NSS_EXTRA_OBJS@
 
-LDB_COMMON_OBJ=lib/ldb/common/ldb.o lib/ldb/common/ldb_ldif.o \
-          lib/ldb/common/ldb_parse.o lib/ldb/common/ldb_msg.o lib/ldb/common/ldb_utf8.o \
-          lib/ldb/common/ldb_debug.o lib/ldb/common/ldb_modules.o \
-          lib/ldb/common/ldb_dn.o lib/ldb/common/ldb_match.o lib/ldb/common/ldb_attributes.o \
-          lib/ldb/common/attrib_handlers.o lib/ldb/common/ldb_controls.o lib/ldb/common/qsort.o
-
-LDB_TDB_OBJ=lib/ldb/ldb_tdb/ldb_tdb.o \
-       lib/ldb/ldb_tdb/ldb_pack.o lib/ldb/ldb_tdb/ldb_search.o lib/ldb/ldb_tdb/ldb_index.o \
-       lib/ldb/ldb_tdb/ldb_cache.o lib/ldb/ldb_tdb/ldb_tdb_wrap.o
-
-LDB_MODULES_OBJ=lib/ldb/modules/operational.o lib/ldb/modules/rdn_name.o \
-          lib/ldb/modules/objectclass.o \
-          lib/ldb/modules/paged_results.o lib/ldb/modules/sort.o lib/ldb/modules/asq.o
-
-# enabled in configure.in
-LDB_LDAP_OBJ=@LDBLDAP@
-
-LDB_OBJ = ${LDB_COMMON_OBJ} ${LDB_TDB_OBJ} ${LDB_LDAP_OBJ} ${LDB_MODULES_OBJ}
-
-LDB_CMDLINE_OBJ = $(PARAM_OBJ) \
-         $(POPT_LIB_OBJ) $(LIB_OBJ) $(LIB_DUMMY_OBJ) $(LIBSMB_ERR_OBJ0) $(LIBSMB_ERR_OBJ1) \
-         $(RPC_PARSE_OBJ1) $(SECRETS_OBJ) \
-         $(LDB_OBJ) lib/ldb/tools/cmdline.o 
-
-
-LDBEDIT_OBJ = $(LDB_CMDLINE_OBJ) lib/ldb/tools/ldbedit.o
-LDBSEARCH_OBJ = $(LDB_CMDLINE_OBJ) lib/ldb/tools/ldbsearch.o
-LDBADD_OBJ = $(LDB_CMDLINE_OBJ) lib/ldb/tools/ldbadd.o
-LDBDEL_OBJ = $(LDB_CMDLINE_OBJ) lib/ldb/tools/ldbdel.o
-LDBMODIFY_OBJ = $(LDB_CMDLINE_OBJ) lib/ldb/tools/ldbmodify.o
-LDBRENAME_OBJ = $(LDB_CMDLINE_OBJ) lib/ldb/tools/ldbrename.o
-
 WINBIND_KRB5_LOCATOR_OBJ1 = ../nsswitch/winbind_krb5_locator.o
 WINBIND_KRB5_LOCATOR_OBJ = $(WINBIND_KRB5_LOCATOR_OBJ1) $(LIBREPLACE_OBJ)
 
@@ -1331,8 +1365,8 @@ NTLM_AUTH_OBJ = ${NTLM_AUTH_OBJ1} $(LIBSAMBA_OBJ) $(POPT_LIB_OBJ) \
                $(LIBADS_SERVER_OBJ) \
                $(PASSDB_OBJ) $(LIBTSOCKET_OBJ) $(GROUPDB_OBJ) \
                $(SMBLDAP_OBJ) $(LIBNMB_OBJ) \
-               $(LDB_OBJ) $(WBCOMMON_OBJ) \
-               $(LIBNDR_GEN_OBJ0) $(LIBNDR_GEN_OBJ1) @BUILD_INIPARSER@
+               $(WBCOMMON_OBJ) \
+               $(LIBNDR_GEN_OBJ0) $(LIBNDR_NETLOGON_OBJ) @BUILD_INIPARSER@
 
 
 VLP_OBJ = printing/tests/vlp.o \
@@ -1344,12 +1378,15 @@ RPC_OPEN_TCP_OBJ = torture/rpc_open_tcp.o \
                   $(LIBSMB_OBJ) \
                   $(PARAM_OBJ) \
                   $(PASSDB_OBJ) \
-                  $(SMBLDAP_OBJ) $(LDB_OBJ) $(GROUPDB_OBJ) \
+                  $(SMBLDAP_OBJ) $(GROUPDB_OBJ) \
                   $(LIB_NONSMBD_OBJ) \
                   $(KRBCLIENT_OBJ) \
-                  $(RPC_PARSE_OBJ2) \
+                  $(RPC_PARSE_OBJ) \
                   $(RPC_CLIENT_OBJ1) \
+                  librpc/rpc/rpc_common.o \
                   rpc_client/cli_pipe.o \
+                  librpc/rpc/dcerpc_gssapi.o \
+                  librpc/rpc/dcerpc_spnego.o \
                   ../librpc/rpc/binding.o \
                   $(LIBMSRPC_GEN_OBJ)
 
@@ -1377,7 +1414,7 @@ all:: SHOWFLAGS basics libs $(SBIN_PROGS) $(BIN_PROGS) \
        $(MODULES) $(NSS_MODULES) $(PAM_MODULES) \
        $(EXTRA_ALL_TARGETS)
 
-basics::
+basics:: samba3-idl
 
 nss_modules:: $(NSS_MODULES)
 
@@ -1389,7 +1426,7 @@ pam_winbind: SHOWFLAGS bin/pam_winbind.@SHLIBEXT@
 
 gpext_modules:: $(GPEXT_MODULES)
 
-torture:: SHOWFLAGS basics $(TORTURE_PROGS) 
+torture:: SHOWFLAGS basics $(TORTURE_PROGS) @SMBTORTURE4@
 
 smbtorture : SHOWFLAGS bin/smbtorture@EXEEXT@
 
@@ -1429,18 +1466,30 @@ wins : SHOWFLAGS @WINBIND_WINS_NSS@
 
 modules:: SHOWFLAGS $(MODULES)
 
-$(LIBSMBCLIENT_THREAD_OBJ) ../nsswitch/wins.o ../nsswitch/winbind_nss_linux.o: EXTRA_FLAGS := $(PTHREAD_CFLAGS)
 
 #####################################################################
 ## Perl IDL Compiler
+
+IDL_FILES = librpc/idl/messaging.idl \
+           librpc/idl/libnetapi.idl \
+           librpc/idl/notify.idl \
+           librpc/idl/wbint.idl \
+           librpc/idl/perfcount.idl \
+           librpc/idl/secrets.idl \
+           librpc/idl/libnet_join.idl \
+           librpc/idl/preg.idl
+
 samba3-idl::
-       @PIDL_OUTPUTDIR="../librpc/gen_ndr" PIDL_ARGS="$(PIDL_ARGS)" CPP="$(CPP)" PIDL="../pidl/pidl" \
+       @PIDL_OUTPUTDIR="librpc/gen_ndr" PIDL_ARGS="$(PIDL_ARGS)" CPP="$(CPP)" PIDL="../pidl/pidl" \
         srcdir="$(srcdir)" ../librpc/build_idl.sh ../librpc/idl/*.idl
        @PIDL_OUTPUTDIR="librpc/gen_ndr" PIDL_ARGS="$(PIDL_ARGS)" CPP="$(CPP)" PIDL="../pidl/pidl" \
-        srcdir="$(srcdir)" $(srcdir)/script/build_idl.sh \
-               librpc/idl/messaging.idl librpc/idl/libnetapi.idl librpc/idl/notify.idl \
-               librpc/idl/wbint.idl librpc/idl/perfcount.idl \
-               librpc/idl/secrets.idl
+        srcdir="$(srcdir)" $(srcdir)/script/build_idl.sh $(IDL_FILES)
+
+idl_full::
+       @PIDL_OUTPUTDIR="librpc/gen_ndr" PIDL_ARGS="$(PIDL_ARGS)" CPP="$(CPP)" PIDL="../pidl/pidl" \
+        srcdir="$(srcdir)" ../librpc/build_idl.sh --full ../librpc/idl/*.idl
+       @PIDL_OUTPUTDIR="librpc/gen_ndr" PIDL_ARGS="$(PIDL_ARGS)" CPP="$(CPP)" PIDL="../pidl/pidl" \
+        srcdir="$(srcdir)" $(srcdir)/script/build_idl.sh --full $(IDL_FILES)
 
 #####################################################################
 
@@ -1489,11 +1538,11 @@ MAKEDIR = || exec false; \
          exec false; fi || exec false
 
 # Run a static checker.
-CHECK_CC = $(CC_CHECKER) $(CFLAGS) $(EXTRA_FLAGS) $(PICFLAG) -c $< -o $@
+CHECK_CC = $(CC_CHECKER) $(CFLAGS) $(PICFLAG) -c $< -o $@
 # Compile a source file.
-COMPILE_CC = $(CC) $(CFLAGS) $(EXTRA_FLAGS) $(PICFLAG) -c $< -o $@
+COMPILE_CC = $(CC) $(CFLAGS) $(PICFLAG) -c $< -o $@
 # Compile a source file with the installation paths defined.
-COMPILE_CC_PATH = $(CC) $(PATH_FLAGS) $(CFLAGS) $(EXTRA_FLAGS) $(PICFLAG) -c $< -o $@
+COMPILE_CC_PATH = $(CC) $(PATH_FLAGS) $(CFLAGS) $(PICFLAG) -c $< -o $@
 
 COMPILE = $(COMPILE_CC)
 
@@ -1544,6 +1593,36 @@ dynconfig.o: dynconfig.c Makefile
                echo "$(COMPILE_CC_PATH)" 1>&2;\
                $(COMPILE_CC_PATH) >/dev/null 2>&1
 
+### Start section of object files that require PTHREAD_CFLAGS
+../nsswitch/wins.o: ../nsswitch/wins.c
+       @echo Compiling $*.c
+       @$(COMPILE) $(PTHREAD_CFLAGS) && exit 0;\
+               echo "The following command failed:" 1>&2;\
+               echo "$(COMPILE_CC) $(PTHREAD_CFLAGS)" 1>&2;\
+               $(COMPILE_CC) $(PTHREAD_CFLAGS) >/dev/null 2>&1
+
+../nsswitch/winbind_nss_linux.o: ../nsswitch/winbind_nss_linux.c
+       @echo Compiling $*.c
+       @$(COMPILE_CC) $(PTHREAD_CFLAGS) && exit 0;\
+               echo "The following command failed:" 1>&2;\
+               echo "$(COMPILE_CC) $(PTHREAD_CFLAGS)" 1>&2;\
+               $(COMPILE_CC) $(PTHREAD_CFLAGS) >/dev/null 2>&1
+
+libsmb/libsmb_thread_impl.o: libsmb/libsmb_thread_impl.c
+       @echo Compiling $*.c
+       @$(COMPILE) $(PTHREAD_CFLAGS) && exit 0;\
+               echo "The following command failed:" 1>&2;\
+               echo "$(COMPILE_CC) $(PTHREAD_CFLAGS)" 1>&2;\
+               $(COMPILE_CC) $(PTHREAD_CFLAGS) >/dev/null 2>&1
+
+libsmb/libsmb_thread_posix.o: libsmb/libsmb_thread_posix.c
+       @echo Compiling $*.c
+       @$(COMPILE) $(PTHREAD_CFLAGS) && exit 0;\
+               echo "The following command failed:" 1>&2;\
+               echo "$(COMPILE_CC) $(PTHREAD_CFLAGS)" 1>&2;\
+               $(COMPILE_CC) $(PTHREAD_CFLAGS) >/dev/null 2>&1
+### End section of object files that require PTHREAD_CFLAGS
+
 localedir.o: localedir.c Makefile
        @echo Compiling $*.c
        @$(COMPILE_CC_PATH) && exit 0;\
@@ -1700,12 +1779,12 @@ bin/talloctort@EXEEXT@: $(BINARY_PREREQS) $(TALLOCTORT_OBJ) @BUILD_POPT@ $(LIBTA
 
 bin/replacetort@EXEEXT@: $(REPLACETORT_OBJ) @BUILD_POPT@ $(LIBTALLOC)
        @echo Linking $@
-       @$(CC) @PIE_LDFLAGS@ -o $@ $(REPLACETORT_OBJ) $(LDFLAGS) \
+       @$(CC) -o $@ $(REPLACETORT_OBJ) $(LDFLAGS) \
                $(DYNEXP) $(LIBS) $(POPT_LIBS) $(LIBTALLOC_LIBS)
 
 bin/smbconftort@EXEEXT@: $(SMBCONFTORT_OBJ) @BUILD_POPT@ $(LIBTALLOC) $(LIBTDB)
        @echo Linking $@
-       @$(CC) @PIE_LDFLAGS@ -o $@ $(SMBCONFTORT_OBJ) $(LDFLAGS) \
+       @$(CC) -o $@ $(SMBCONFTORT_OBJ) $(LDFLAGS) \
                $(DYNEXP) $(LIBS) $(LDAP_LIBS) $(POPT_LIBS) \
                $(LIBTALLOC_LIBS) $(LIBTDB_LIBS)
 
@@ -1794,47 +1873,11 @@ bin/debug2html@EXEEXT@: $(BINARY_PREREQS) $(DEBUG2HTML_OBJ) @BUILD_POPT@ $(LIBTA
 
 bin/smbfilter@EXEEXT@: $(BINARY_PREREQS) $(SMBFILTER_OBJ) @BUILD_POPT@ $(LIBTALLOC) $(LIBTDB) $(LIBWBCLIENT)
        @echo Linking $@
-       @$(CC) -o $@ $(SMBFILTER_OBJ) $(LDFLAGS) $(LIBS) \
+       @$(CC) -o $@ $(SMBFILTER_OBJ) $(LDFLAGS) $(DYNEXP) $(LIBS) \
                $(KRB5LIBS) $(LDAP_LIBS) $(POPT_LIBS) \
                @LIBWBCLIENT_STATIC@ $(LIBWBCLIENT_LIBS) \
                $(LIBTALLOC_LIBS) $(LIBTDB_LIBS) $(ZLIB_LIBS)
 
-bin/ldbedit: $(BINARY_PREREQS) $(LDBEDIT_OBJ) @BUILD_POPT@ $(LIBTALLOC) $(LIBTDB) $(LIBWBCLIENT)
-       @echo Linking $@
-       @$(CC) -o $@ $(LDBEDIT_OBJ) $(DYNEXP) $(LDFLAGS) \
-               $(LIBS) $(POPT_LIBS) $(LDAP_LIBS) \
-               $(LIBTALLOC_LIBS) $(LIBTDB_LIBS)
-
-bin/ldbsearch: $(BINARY_PREREQS) $(LDBSEARCH_OBJ) @BUILD_POPT@ $(LIBTALLOC) $(LIBTDB) $(LIBWBCLIENT)
-       @echo Linking $@
-       @$(CC) -o $@ $(LDBSEARCH_OBJ) $(DYNEXP) $(LDFLAGS) \
-               $(LIBS) $(POPT_LIBS) $(LDAP_LIBS) \
-               $(LIBTALLOC_LIBS) $(LIBTDB_LIBS)
-
-bin/ldbadd: $(BINARY_PREREQS) $(LDBADD_OBJ) @BUILD_POPT@ $(LIBTALLOC) $(LIBTDB) $(LIBWBCLIENT)
-       @echo Linking $@
-       @$(CC) -o $@ $(LDBADD_OBJ) $(DYNEXP) $(LDFLAGS) \
-               $(LIBS) $(POPT_LIBS) $(LDAP_LIBS) \
-               $(LIBTALLOC_LIBS) $(LIBTDB_LIBS)
-
-bin/ldbmodify: $(BINARY_PREREQS) $(LDBMODIFY_OBJ) @BUILD_POPT@ $(LIBTALLOC) $(LIBTDB) $(LIBWBCLIENT)
-       @echo Linking $@
-       @$(CC) -o $@ $(LDBMODIFY_OBJ) $(DYNEXP) $(LDFLAGS) \
-               $(LIBS) $(POPT_LIBS) $(LDAP_LIBS) \
-               $(LIBTALLOC_LIBS) $(LIBTDB_LIBS)
-
-bin/ldbdel: $(BINARY_PREREQS) $(LDBDEL_OBJ) @BUILD_POPT@ $(LIBTALLOC) $(LIBTDB) $(LIBWBCLIENT)
-       @echo Linking $@
-       @$(CC) -o $@ $(LDBDEL_OBJ) $(DYNEXP) $(LDFLAGS) \
-               $(LIBS) $(POPT_LIBS) $(LDAP_LIBS) \
-               $(LIBTALLOC_LIBS) $(LIBTDB_LIBS)
-
-bin/ldbrename: $(BINARY_PREREQS) $(LDBRENAME_OBJ) @BUILD_POPT@ $(LIBTALLOC) $(LIBTDB) $(LIBWBCLIENT)
-       @echo Linking $@
-       @$(CC) $(FLAGS) -o $@ $(LDBRENAME_OBJ) $(DYNEXP) $(LDFLAGS) \
-               $(LIBS) $(POPT_LIBS) $(LDAP_LIBS) \
-               $(LIBTALLOC_LIBS) $(LIBTDB_LIBS)
-
 bin/versiontest: $(BINARY_PREREQS) lib/version_test.o $(VERSION_OBJ)
        @echo Linking $@
        @$(CC) $(FLAGS) -o $@ $(VERSION_OBJ) lib/version_test.o
@@ -1948,7 +1991,7 @@ $(LIBTDB_SYMS): $(LIBTDB_HEADERS)
 
 $(LIBTDB_SHARED_TARGET_SONAME): $(BINARY_PREREQS) $(LIBTDB_OBJ) $(LIBTDB_SYMS)
        @echo Linking shared library $@
-       @$(SHLD_DSO) $(LIBTDB_OBJ) $(LIBREPLACE_LIBS) \
+       @$(SHLD_DSO) $(LIBTDB_OBJ) $(LIBREPLACE_LIBS) $(TDB_DEPS) \
                @SONAMEFLAG@`basename $@`
 
 $(LIBTDB_SHARED_TARGET): $(LIBTDB_SHARED_TARGET_SONAME)
@@ -2199,7 +2242,7 @@ LIBNETAPI_OBJ  = $(LIBNETAPI_OBJ0) $(LIBNET_OBJ) \
                 $(PARAM_WITHOUT_REG_OBJ) $(LIB_NONSMBD_OBJ) \
                 $(LIBSMB_OBJ) $(KRBCLIENT_OBJ) \
                 $(LIBMSRPC_OBJ) $(LIBMSRPC_GEN_OBJ) $(RPC_PARSE_OBJ) \
-                $(PASSDB_OBJ) $(SMBLDAP_OBJ) $(GROUPDB_OBJ) $(LDB_OBJ) \
+                $(PASSDB_OBJ) $(SMBLDAP_OBJ) $(GROUPDB_OBJ) \
                 $(DCUTIL_OBJ) $(LIBADS_OBJ) $(PRIVILEGES_BASIC_OBJ) \
                 auth/token_util.o
 
@@ -2627,6 +2670,10 @@ bin/rid.@SHLIBEXT@: $(BINARY_PREREQS) winbindd/idmap_rid.o
        @echo "Building plugin $@"
        @$(SHLD_MODULE) winbindd/idmap_rid.o
 
+bin/passdb.@SHLIBEXT@: $(BINARY_PREREQS) winbindd/idmap_passdb.o
+       @echo "Building plugin $@"
+       @$(SHLD_MODULE) winbindd/idmap_passdb.o
+
 bin/ad.@SHLIBEXT@: $(BINARY_PREREQS) winbindd/idmap_ad.o
        @echo "Building plugin $@"
        @$(SHLD_MODULE) winbindd/idmap_ad.o
@@ -2862,6 +2909,10 @@ bin/crossrename.@SHLIBEXT@: $(BINARY_PREREQS) $(VFS_CROSSRENAME_OBJ)
        @echo "Building plugin $@"
        @$(SHLD_MODULE) $(VFS_CROSSRENAME_OBJ)
 
+bin/linux_xfs_sgid.@SHLIBEXT@: $(BINARY_PREREQS) $(VFS_LINUX_XFS_SGID_OBJ)
+       @echo "Building plugin $@"
+       @$(SHLD_MODULE) $(VFS_LINUX_XFS_SGID_OBJ)
+
 #########################################################
 ## IdMap NSS plugins
 
@@ -2937,14 +2988,14 @@ bin/rpc_open_tcp@EXEEXT@: $(BINARY_PREREQS) $(RPC_OPEN_TCP_OBJ) $(LIBTALLOC) $(L
 bin/test_lp_load@EXEEXT@: $(BINARY_PREREQS) $(TEST_LP_LOAD_OBJ) @BUILD_POPT@ $(LIBTALLOC) $(LIBTDB)
        @echo "Linking $@"
        @$(CC) -o $@ $(TEST_LP_LOAD_OBJ) \
-               $(LDFLAGS) $(DYNEEXP) $(LIBS) \
+               $(LDFLAGS) $(DYNEXP) $(LIBS) \
                $(LDAP_LIBS) \
                $(POPT_LIBS) $(LIBTALLOC_LIBS) $(LIBTDB_LIBS)
 
 bin/dbwrap_tool@EXEEXT@: $(DBWRAP_TOOL_OBJ) $(LIBTALLOC) $(LIBTDB)
        @echo "Linking $@"
        @$(CC) -o $@ $(DBWRAP_TOOL_OBJ)\
-               $(LDFLAGS) $(DYNEEXP) $(LIBS) \
+               $(LDFLAGS) $(DYNEXP) $(LIBS) \
                $(LDAP_LIBS) \
                $(LIBTALLOC_LIBS) $(LIBTDB_LIBS)
 
@@ -2954,7 +3005,7 @@ install-dbwrap_tool:: bin/dbwrap_tool@EXEEXT@
 bin/dbwrap_torture@EXEEXT@: $(DBWRAP_TORTURE_OBJ) $(LIBTALLOC) $(LIBTDB)
        @echo "Linking $@"
        @$(CC) -o $@ $(DBWRAP_TORTURE_OBJ)\
-               $(LDFLAGS) $(DYNEEXP) $(LIBS) \
+               $(LDFLAGS) $(DYNEXP) $(LIBS) \
                $(LDAP_LIBS) \
                $(POPT_LIBS) \
                $(LIBTALLOC_LIBS) $(LIBTDB_LIBS)
@@ -2965,7 +3016,7 @@ install-dbwrap_torture:: bin/dbwrap_torture@EXEEXT@
 bin/split_tokens@EXEEXT@: $(BINARY_PREREQS) $(SPLIT_TOKENS_OBJ) @BUILD_POPT@ $(LIBTALLOC) $(LIBTDB)
        @echo "Linking $@"
        @$(CC) -o $@ $(SPLIT_TOKENS_OBJ) \
-               $(LDFLAGS) $(DYNEEXP) \
+               $(LDFLAGS) $(DYNEXP) \
                $(LIBS) $(POPT_LIBS) \
                $(LDAP_LIBS) \
                $(LIBTALLOC_LIBS) $(LIBTDB_LIBS)
@@ -3230,7 +3281,7 @@ test_pam_modules:: pam_modules
 
 TEST_EXTRA_ARGS = ${smbtorture4_option} ${selftest_shrdir} ${selftest_custom_conf}
 
-test:: all torture timelimit
+oldtest:: all torture timelimit
        @echo Running Test suite
        @LIB_PATH_VAR=$(LIB_PATH_VAR) PERL="$(PERL)" NSS_WRAPPER_WINBIND_SO_PATH="$(srcdir)/@WINBIND_NSS@" $(srcdir)/script/tests/selftest.sh ${selftest_prefix} all ${TEST_EXTRA_ARGS}
 
@@ -3247,7 +3298,9 @@ selftestdir = ../selftest
 
 S3_LD_LIBPATH_OVERRIDE = $(LIB_PATH_VAR)="$(builddir)/bin:$$$(LIB_PATH_VAR)"
 
-selftest:: all torture timelimit
+SUBUNIT_FORMATTER = $(PYTHON) $(selftestdir)/format-subunit --immediate
+
+test:: all torture timelimit
        @LIB_PATH_VAR=$(LIB_PATH_VAR) $(S3_LD_LIBPATH_OVERRIDE) \
                SAMBA4SHAREDDIR="$(builddir)/bin/shared" SMBTORTURE4=$(smbtorture4_path) \
                PERL="$(PERL)" PYTHON="$(PYTHON)" \
@@ -3259,10 +3312,22 @@ selftest:: all torture timelimit
                --socket-wrapper $(TESTS) | \
                $(PYTHON) $(selftestdir)/filter-subunit \
                --expected-failures=$(srcdir)/selftest/knownfail | \
-               $(PYTHON) $(selftestdir)/format-subunit --immediate
+               $(SUBUNIT_FORMATTER)
+
+test-%:
+       $(MAKE) test TESTS=$*
+
+SELFTEST_TESTENV = dc
+
+testenv:
+       $(MAKE) test SELFTEST_TESTENV=$(SELFTEST_TESTENV) TESTS="--testenv"
+
+gdbtestenv:
+       $(MAKE) test SELFTEST_TESTENV=$(SELFTEST_TESTENV) \
+               SMBD_VALGRIND="xterm -n smbd -T smbd -e $(selftestdir)/gdb_run $(S3_LD_LIBPATH_OVERRIDE)" \
+               WINBINDD_VALGRIND="xterm -n winbindd -T winbindd -e $(selftestdir)/gdb_run $(S3_LD_LIBPATH_OVERRIDE)" \
+               TESTS="--testenv"
 
-selftest-%:
-       $(MAKE) selftest TESTS=$*
 
 # Check for Winbind struct 32/64bit padding
 test_wbpad:
@@ -3284,3 +3349,22 @@ libnetapi_examples: libnetapi
 
 clean_libnetapi_examples:
        $(MAKE) -C lib/netapi/examples clean
+
+../source4/configure: ../buildtools/scripts/configure.waf
+       cd ../source4 && ./autogen.sh
+
+samba4-configure: ../source4/configure
+       @$(MAKE) -C ../source4 reconfigure || ( cd ../source4 && \
+               ./configure.developer --nonshared-binary=smbtorture --enable-auto-reconfigure )
+
+.PHONY: samba4-configure
+
+bin/smbtorture4: $(BINARY_PREREQS) samba4-configure
+       cd ../source4 && ../buildtools/bin/waf build --targets=smbtorture
+       cp ../source4/bin/smbtorture bin/smbtorture4
+
+bin/ndrdump4: $(BINARY_PREREQS) samba4-configure
+       cd ../source4 && ../buildtools/bin/waf build --targets=ndrdump
+       cp ../source4/bin/ndrdump bin/ndrdump4
+
+.PHONY: bin/smbtorture4