s3-build: only link in dssetup client code where needed.
[metze/samba/wip.git] / source3 / Makefile.in
index 08d629a7545c87c8e0f4abfff263ec5512a5b33d..66a693ae1d0c9df61962fb4980bcd5e421da9b88 100644 (file)
@@ -55,6 +55,7 @@ WINBIND_NSS_LDSHFLAGS=$(PICFLAG) @WINBIND_NSS_LDSHFLAGS@ @LDFLAGS@ -lc @LDSHFLAG
 AWK=@AWK@
 DYNEXP=@DYNEXP@
 PERL=@PERL@
+PYTHON=@PYTHON@
 LIBDL=@LIBDL@
 
 PIDL_ARGS=@PIDL_ARGS@
@@ -83,6 +84,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@
@@ -314,8 +316,6 @@ LIBNDR_OBJ = ../librpc/ndr/ndr_basic.o \
             librpc/ndr/util.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
 
@@ -334,6 +334,38 @@ LIBNDR_NTPRINTING_OBJ = librpc/gen_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
+
+LIBCLI_SPOOLSS_OBJ = librpc/gen_ndr/cli_spoolss.o \
+                    librpc/gen_ndr/ndr_spoolss_c.o \
+                    rpc_client/cli_spoolss.o \
+                    rpc_client/init_spoolss.o
+
+LIBCLI_EVENTLOG_OBJ = librpc/gen_ndr/cli_eventlog.o \
+                     librpc/gen_ndr/ndr_eventlog_c.o
+
+LIBCLI_WINREG_OBJ = librpc/gen_ndr/cli_winreg.o \
+                    librpc/gen_ndr/ndr_winreg_c.o
+
+LIBCLI_NTSVCS_OBJ = librpc/gen_ndr/cli_ntsvcs.o \
+                   librpc/gen_ndr/ndr_ntsvcs_c.o
+
+LIBCLI_DRSUAPI_OBJ = librpc/gen_ndr/cli_drsuapi.o \
+                    librpc/gen_ndr/ndr_drsuapi_c.o
+
+LIBCLI_DFS_OBJ = librpc/gen_ndr/cli_dfs.o \
+                librpc/gen_ndr/ndr_dfs_c.o
+
+LIBCLI_ECHO_OBJ = librpc/gen_ndr/cli_echo.o \
+                 librpc/gen_ndr/ndr_echo_c.o
+
+LIBCLI_INITSHUTDOWN_OBJ = librpc/gen_ndr/cli_initshutdown.o \
+                         librpc/gen_ndr/ndr_initshutdown_c.o
+
+LIBCLI_DSSETUP_OBJ = librpc/gen_ndr/cli_dssetup.o \
+                    librpc/gen_ndr/ndr_dssetup_c.o
+
 LIBNDR_GEN_OBJ = librpc/gen_ndr/ndr_wkssvc.o \
                 $(LIBNDR_GEN_OBJ0) \
                 librpc/gen_ndr/ndr_dfs.o \
@@ -345,8 +377,7 @@ LIBNDR_GEN_OBJ = librpc/gen_ndr/ndr_wkssvc.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 \
+                $(LIBNDR_XATTR_OBJ) \
                 librpc/gen_ndr/ndr_epmapper.o \
                 librpc/gen_ndr/ndr_named_pipe_auth.o \
                 librpc/gen_ndr/ndr_ntsvcs.o \
@@ -354,9 +385,9 @@ LIBNDR_GEN_OBJ = librpc/gen_ndr/ndr_wkssvc.o \
 
 # this includes only the low level parse code, not stuff
 # that requires knowledge of security contexts
-RPC_PARSE_OBJ1 = rpc_parse/parse_prs.o
+REG_PARSE_PRS_OBJ = registry/reg_parse_prs.o
 
-RPC_PARSE_OBJ2 = rpc_client/init_netlogon.o \
+RPC_PARSE_OBJ = rpc_client/init_netlogon.o \
                 rpc_client/init_lsa.o
 
 LIBREPLACE_OBJ = @LIBREPLACE_OBJS@
@@ -452,17 +483,21 @@ 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/disp_sec.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
 
+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
 
@@ -487,16 +522,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_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)
@@ -542,31 +579,30 @@ RPC_CLIENT_OBJ1 = rpc_client/cli_netlogon.o \
 LIBMSRPC_OBJ = rpc_client/cli_lsarpc.o rpc_client/cli_samr.o \
               $(RPC_CLIENT_OBJ1) \
               $(RPC_CLIENT_OBJ) \
-              rpc_client/cli_spoolss.o \
-              rpc_client/init_spoolss.o \
               rpc_client/init_samr.o \
                   ../librpc/rpc/binding.o
 
+DCERPC_CLIENT_GEN_OBJ = \
+               librpc/gen_ndr/ndr_lsa_c.o \
+               librpc/gen_ndr/ndr_srvsvc_c.o \
+               librpc/gen_ndr/ndr_svcctl_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_epmapper_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)
+                  $(LIBNDR_GEN_OBJ)
 
 #
 # registry-related objects
@@ -669,12 +705,16 @@ RPC_PIPE_OBJ = rpc_server/srv_pipe.o rpc_server/srv_pipe_hnd.o \
 
 RPC_ECHO_OBJ = rpc_server/srv_echo_nt.o librpc/gen_ndr/srv_echo.o
 
-RPC_SERVER_OBJ = @RPC_STATIC@ $(RPC_PIPE_OBJ) $(NPA_TSTREAM_OBJ)
-
-RPC_PARSE_OBJ = $(RPC_PARSE_OBJ2)
+RPC_SERVER_OBJ = @RPC_STATIC@ $(RPC_PIPE_OBJ) $(NPA_TSTREAM_OBJ) \
+                 $(LIBCLI_SPOOLSS_OBJ) \
+                $(LIBCLI_WINREG_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
 
 LOCKING_OBJ = locking/locking.o locking/brlock.o locking/posix.o
 
@@ -806,8 +846,10 @@ SMBD_OBJ_SRV = smbd/server_reload.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 \
+              lib/sysquotas_nfs.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 \
@@ -842,7 +884,7 @@ 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) $(LIBNET_OBJ) \
                $(LIBSMBCONF_OBJ) \
@@ -854,7 +896,14 @@ PRINTING_OBJ = printing/pcap.o printing/print_svid.o printing/print_aix.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)
 
@@ -895,7 +944,7 @@ 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) $(GROUPDB_OBJ) \
             $(LIBMSRPC_GEN_OBJ)
@@ -944,7 +993,14 @@ 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)
+            $(SMBLDAP_OBJ) $(DCUTIL_OBJ) \
+            $(LIBCLI_SPOOLSS_OBJ) \
+            $(LIBCLI_EVENTLOG_OBJ) \
+            $(LIBCLI_NTSVCS_OBJ) \
+            $(LIBCLI_DRSUAPI_OBJ) \
+            $(LIBCLI_DFS_OBJ) \
+            $(LIBCLI_ECHO_OBJ) \
+            $(LIBCLI_DSSETUP_OBJ)
 
 PAM_WINBIND_OBJ = ../nsswitch/pam_winbind.o $(WBCOMMON_OBJ) \
                  $(LIBREPLACE_OBJ) @BUILD_INIPARSER@
@@ -989,7 +1045,7 @@ 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) \
@@ -1043,8 +1099,12 @@ NET_OBJ1 = utils/net.o utils/net_ads.o utils/net_help.o \
           utils/net_eventlog.o \
           utils/net_printing.o \
           $(LIBNDR_NTPRINTING_OBJ) \
-          $(LIBNDR_PREG_OBJ)
-
+          $(LIBNDR_PREG_OBJ) \
+          $(LIBCLI_SPOOLSS_OBJ) \
+          $(LIBCLI_WINREG_OBJ) \
+          $(LIBCLI_DRSUAPI_OBJ) \
+          $(LIBCLI_INITSHUTDOWN_OBJ) \
+          $(LIBCLI_DSSETUP_OBJ)
 
 # these are not processed by make proto
 NET_OBJ2 = utils/net_registry_util.o utils/net_help_common.o
@@ -1055,7 +1115,7 @@ 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) \
          $(LIBGPO_OBJ) @BUILD_INIPARSER@ $(DISPLAY_SEC_OBJ) \
@@ -1074,6 +1134,7 @@ 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) \
@@ -1115,7 +1176,7 @@ LOCKTEST2_OBJ = torture/locktest2.o $(PARAM_OBJ) $(LOCKING_OBJ) $(LIBSMB_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) 
+               $(POPT_LIB_OBJ) $(SMBLDAP_OBJ)
 
 SMBCQUOTAS_OBJ = utils/smbcquotas.o $(LIBSMB_OBJ) $(KRBCLIENT_OBJ) \
                $(PARAM_OBJ) \
@@ -1161,7 +1222,9 @@ PAM_SMBPASS_OBJ = $(PAM_SMBPASS_OBJ_0) $(PARAM_OBJ) $(LIB_NONSMBD_OBJ) $(PASSDB_
                $(SMBLDAP_OBJ) $(LIBSAMBA_OBJ) \
                $(LIBTSOCKET_OBJ)
 
-IDMAP_OBJ     = winbindd/idmap.o winbindd/idmap_util.o @IDMAP_STATIC@
+IDMAP_RW_OBJ = winbindd/idmap_rw.o
+
+IDMAP_OBJ     = winbindd/idmap.o winbindd/idmap_util.o $(IDMAP_RW_OBJ) @IDMAP_STATIC@
 
 NSS_INFO_OBJ = winbindd/nss_info.o @NSS_INFO_STATIC@
 
@@ -1195,6 +1258,7 @@ WINBINDD_OBJ1 = \
                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 \
@@ -1258,9 +1322,6 @@ WINBINDD_OBJ1 = \
                winbindd/winbindd_check_machine_acct.o \
                winbindd/winbindd_change_machine_acct.o \
                winbindd/winbindd_ping_dc.o \
-               winbindd/winbindd_set_mapping.o \
-               winbindd/winbindd_remove_mapping.o \
-               winbindd/winbindd_set_hwm.o \
                winbindd/winbindd_pam_auth.o \
                winbindd/winbindd_pam_auth_crap.o \
                winbindd/winbindd_pam_chauthtok.o \
@@ -1286,7 +1347,8 @@ WINBINDD_OBJ = \
                $(RPC_NCACN_NP_INTERNAL) $(RPC_SAMR_OBJ) $(RPC_LSA_OBJ) \
                $(AFS_OBJ) $(AFS_SETTOKEN_OBJ) \
                $(LIBADS_SERVER_OBJ) \
-               $(TDB_VALIDATE_OBJ)
+               $(TDB_VALIDATE_OBJ) \
+               $(LIBCLI_DSSETUP_OBJ)
 
 WBINFO_OBJ = ../nsswitch/wbinfo.o $(LIBSAMBA_OBJ) $(PARAM_OBJ) $(LIB_NONSMBD_OBJ) \
                $(POPT_LIB_OBJ) $(AFS_SETTOKEN_OBJ) \
@@ -1339,9 +1401,12 @@ RPC_OPEN_TCP_OBJ = torture/rpc_open_tcp.o \
                   $(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)
 
@@ -1946,7 +2011,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 +2264,8 @@ LIBNETAPI_OBJ  = $(LIBNETAPI_OBJ0) $(LIBNET_OBJ) \
                 $(LIBMSRPC_OBJ) $(LIBMSRPC_GEN_OBJ) $(RPC_PARSE_OBJ) \
                 $(PASSDB_OBJ) $(SMBLDAP_OBJ) $(GROUPDB_OBJ) \
                 $(DCUTIL_OBJ) $(LIBADS_OBJ) $(PRIVILEGES_BASIC_OBJ) \
-                auth/token_util.o
+                auth/token_util.o \
+                $(LIBCLI_INITSHUTDOWN_OBJ)
 
 LIBNETAPI_SHARED_TARGET=@LIBNETAPI_SHARED_TARGET@
 LIBNETAPI_SOVER=@LIBNETAPI_SOVER@
@@ -2641,13 +2707,13 @@ bin/adex.@SHLIBEXT@: $(BINARY_PREREQS) $(IDMAP_ADEX_OBJ)
        @echo "Building plugin $@"
        @$(SHLD_MODULE) $(IDMAP_ADEX_OBJ)
 
-bin/tdb2.@SHLIBEXT@: $(BINARY_PREREQS) winbindd/idmap_tdb2.o
+bin/tdb2.@SHLIBEXT@: $(BINARY_PREREQS) winbindd/idmap_tdb2.o $(IDMAP_RW_OBJ)
        @echo "Building plugin $@"
-       @$(SHLD_MODULE) winbindd/idmap_tdb2.o
+       @$(SHLD_MODULE) winbindd/idmap_tdb2.o $(IDMAP_RW_OBJ)
 
-bin/ldap.@SHLIBEXT@: $(BINARY_PREREQS) winbindd/idmap_ldap.o
+bin/ldap.@SHLIBEXT@: $(BINARY_PREREQS) winbindd/idmap_ldap.o $(IDMAP_RW_OBJ)
        @echo "Building plugin $@"
-       @$(SHLD_MODULE) winbindd/idmap_ldap.o
+       @$(SHLD_MODULE) winbindd/idmap_ldap.o $(IDMAP_RW_OBJ)
 
 bin/weird.@SHLIBEXT@: $(BINARY_PREREQS) $(DEVEL_HELP_WEIRD_OBJ)
        @echo "Building plugin $@"
@@ -3236,7 +3302,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}
 
@@ -3253,34 +3319,36 @@ selftestdir = ../selftest
 
 S3_LD_LIBPATH_OVERRIDE = $(LIB_PATH_VAR)="$(builddir)/bin:$$$(LIB_PATH_VAR)"
 
-SUBUNIT_FORMATTER = $(PYTHON) $(selftestdir)/format-subunit --immediate
-
-selftest:: all torture timelimit
+test:: all torture timelimit
        @LIB_PATH_VAR=$(LIB_PATH_VAR) $(S3_LD_LIBPATH_OVERRIDE) \
                SAMBA4SHAREDDIR="$(builddir)/bin/shared" SMBTORTURE4=$(smbtorture4_path) \
+               NSS_WRAPPER_WINBIND_SO_PATH="$(srcdir)/../nsswitch/libnss_winbind.so" \
+               SELFTESTDIR="$(selftestdir)" SELFTESTPREFIX="$(selftest_prefix)" \
+               SOURCEDIR="$(srcdir)" \
+               RUN_FROM_BUILD_FARM="$(RUN_FROM_BUILD_FARM)" \
                PERL="$(PERL)" PYTHON="$(PYTHON)" \
-               NSS_WRAPPER_WINBIND_SO_PATH="$(srcdir)/@WINBIND_NSS@" \
-               $(PERL) $(selftestdir)/selftest.pl \
-               --prefix=${selftest_prefix} --target=samba3 \
-               --testlist="$(srcdir)/selftest/tests.sh|" \
-               --exclude=$(srcdir)/selftest/skip \
-               --socket-wrapper $(TESTS) | \
-               $(PYTHON) $(selftestdir)/filter-subunit \
-               --expected-failures=$(srcdir)/selftest/knownfail | \
-               $(SUBUNIT_FORMATTER)
-
-selftest-%:
-       $(MAKE) selftest TESTS=$*
+               $(selftestdir)/s3-selftest.sh
+
+test-%:
+       $(MAKE) test TESTS=$*
 
 SELFTEST_TESTENV = dc
 
 testenv:
-       $(MAKE) selftest SELFTEST_TESTENV=$(SELFTEST_TESTENV) TESTS="--testenv"
+       $(MAKE) test SELFTEST_TESTENV=$(SELFTEST_TESTENV) TESTS="--testenv"
 
 gdbtestenv:
-       $(MAKE) selftest SELFTEST_TESTENV=$(SELFTEST_TESTENV) \
-               SMBD_VALGRIND="xterm -n server -e $(selftestdir)/gdb_run $(S3_LD_LIBPATH_OVERRIDE)" \
-               WINBINDD_VALGRIND="xterm -n server -e $(selftestdir)/gdb_run $(S3_LD_LIBPATH_OVERRIDE)" \
+       $(MAKE) test SELFTEST_TESTENV=$(SELFTEST_TESTENV) \
+               NMBD_VALGRIND="xterm -n nmbd -title nmbd -e $(selftestdir)/gdb_run $(S3_LD_LIBPATH_OVERRIDE)" \
+               WINBINDD_VALGRIND="xterm -n winbindd -title winbindd -e $(selftestdir)/gdb_run $(S3_LD_LIBPATH_OVERRIDE)" \
+               SMBD_VALGRIND="xterm -n smbd -title smbd -e $(selftestdir)/gdb_run $(S3_LD_LIBPATH_OVERRIDE)" \
+               TESTS="--testenv"
+
+valgrindtestenv:
+       $(MAKE) test SELFTEST_TESTENV=$(SELFTEST_TESTENV) \
+               NMBD_VALGRIND="xterm -n nmbd -title nmbd -e valgrind -q --db-attach=yes --num-callers=30" \
+               WINBINDD_VALGRIND="xterm -n winbindd -title winbindd -e valgrind -q --db-attach=yes --num-callers=30" \
+               SMBD_VALGRIND="xterm -n smbd -title smbd -e valgrind -q --db-attach=yes --num-callers=30" \
                TESTS="--testenv"