s3:smbd: add a nfs backend for sysquotas.
[amitay/samba.git] / source3 / Makefile.in
index bb9f440a58aa34b0ad78cb6b4d22532029536ea6..d80c6c7eee2fd945674846e4cca53672c2472ebf 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,9 @@ 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
+
 LIBNDR_GEN_OBJ = librpc/gen_ndr/ndr_wkssvc.o \
                 $(LIBNDR_GEN_OBJ0) \
                 librpc/gen_ndr/ndr_dfs.o \
@@ -345,8 +348,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,10 +356,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 rpc_parse/parse_misc.o
+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@
@@ -453,17 +454,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
 
@@ -488,16 +493,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)
@@ -548,6 +555,24 @@ LIBMSRPC_OBJ = rpc_client/cli_lsarpc.o rpc_client/cli_samr.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_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 \
@@ -564,8 +589,11 @@ LIBMSRPC_GEN_OBJ = librpc/gen_ndr/cli_lsa.o \
                   librpc/gen_ndr/cli_epmapper.o \
                   librpc/gen_ndr/cli_drsuapi.o \
                   librpc/gen_ndr/cli_spoolss.o \
-                  $(LIBNDR_GEN_OBJ) \
-                  $(RPCCLIENT_NDR_OBJ)
+                  $(DCERPC_CLIENT_GEN_OBJ) \
+                  ../librpc/rpc/dcerpc_util.o \
+                  ../librpc/rpc/binding_handle.o \
+                  librpc/rpc/dcerpc_helpers.o \
+                  $(LIBNDR_GEN_OBJ)
 
 #
 # registry-related objects
@@ -670,10 +698,12 @@ 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_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
 
@@ -805,8 +835,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 \
@@ -841,7 +873,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) \
@@ -853,7 +885,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)
 
@@ -894,7 +933,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)
@@ -988,7 +1027,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) \
@@ -1054,7 +1093,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) \
@@ -1073,6 +1112,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) \
@@ -1114,7 +1154,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) \
@@ -1160,7 +1200,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@
 
@@ -1194,6 +1236,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 \
@@ -1257,9 +1300,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 \
@@ -1338,9 +1378,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)
 
@@ -1945,7 +1988,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)
@@ -2640,13 +2683,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 $@"
@@ -3235,7 +3278,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}
 
@@ -3252,29 +3295,37 @@ 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) 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"
 
 
 # Check for Winbind struct 32/64bit padding