Fix --with-fhs for swatdir
[ira/wip.git] / source / Makefile.in
index ef3267abd3be543fa8e0412eb8fc5d5c5e4c5bde..8445cd0064ad6c9d61b51cab85bcfb1b60379aa2 100644 (file)
@@ -1,10 +1,11 @@
 #########################################################################
 # Makefile.in for Samba - rewritten for autoconf support
-# Copyright Andrew Tridgell 1992-1998
+# Copyright Andrew Tridgell 1992-2003
 # Copyright (C) 2001 by Martin Pool <mbp@samba.org>
-# Copyright Andrew Barteltt 2002
+# Copyright (C) 2002 Andrew Bartlett <abartlet@samba.org>
 # Copyright (C) 2003 Anthony Liguori <aliguor@us.ibm.com>
 # Copyright (C) 2003 James Myers <myersjj@samba.org>
+# Copyright (C) 2002-2003 Jelmer Vernooij <jelmer@samba.org>
 ###########################################################################
 
 prefix=@prefix@
@@ -20,6 +21,7 @@ EXEEXT=@EXEEXT@
 LDFLAGS=@LDFLAGS@
 LDSHFLAGS=@LDSHFLAGS@ @LDFLAGS@ @CFLAGS@
 AWK=@AWK@
+PERL=@PERL@
 DYNEXP=@DYNEXP@
 PYTHON=@PYTHON@
 
@@ -67,6 +69,7 @@ PRIVATEDIR = @privatedir@
 
 SMB_PASSWD_FILE = $(PRIVATEDIR)/smbpasswd
 PRIVATE_DIR = $(PRIVATEDIR)
+DATADIR = @datadir@
 
 # This is where SWAT images and help files go
 SWATDIR = @swatdir@
@@ -83,13 +86,7 @@ LIBSMBCLIENT_MAJOR=0
 LIBSMBCLIENT_MINOR=1
 
 
-FLAGS1 = $(CFLAGS) @FLAGS1@ -Iinclude -I$(srcdir)/include -I$(srcdir)/ubiqx -I. $(CPPFLAGS) -I$(srcdir)
-FLAGS2 = -I/usr/src/newport/csm/include/@STFS_CSM_INCLUDE@ -I/usr/src/newport/csm/include/common -I/usr/src/newport/stp/include
-FLAGS3 = 
-FLAGS4 = 
-FLAGS5 = $(FLAGS1) $(FLAGS2) $(FLAGS3) $(FLAGS4)
-FLAGS  = $(ISA) $(FLAGS5) 
-FLAGS32  = $(ISA32) $(FLAGS5)
+FLAGS = $(CFLAGS) @FLAGS1@ -Iinclude -I$(srcdir)/include -I$(srcdir)/ubiqx -I. $(CPPFLAGS) -I$(srcdir)
 
 PASSWD_FLAGS = -DSMB_PASSWD_FILE=\"$(SMB_PASSWD_FILE)\" -DPRIVATE_DIR=\"$(PRIVATE_DIR)\"
 PATH_FLAGS1 = -DCONFIGFILE=\"$(CONFIGFILE)\"  -DSBINDIR=\"$(SBINDIR)\"
@@ -128,10 +125,9 @@ SCRIPTS = $(srcdir)/script/smbtar $(srcdir)/script/addtosmbpass $(srcdir)/script
 
 # QUOTAOBJS=@QUOTAOBJS@
 
-VFS_MODULES = bin/vfs_audit.@SHLIBEXT@ bin/vfs_extd_audit.@SHLIBEXT@ bin/vfs_recycle.@SHLIBEXT@ \
-       bin/vfs_netatalk.@SHLIBEXT@ bin/vfs_fake_perms.@SHLIBEXT@
-PDB_MODULES = @MODULE_MYSQL@ @MODULE_XML@
-MODULES = bin/developer.@SHLIBEXT@ 
+VFS_MODULES = @NTVFS_MODULES@
+CHARSET_MODULES = @CHARSET_MODULES@
+MODULES = $(NTVFS_MODULES) $(CHARSET_MODULES)
 
 ######################################################################
 # object file lists
@@ -184,16 +180,37 @@ SECRETS_OBJ = passdb/secrets.o
 LIBNMB_OBJ = libcli/unexpected.o libcli/namecache.o libcli/nmblib.o \
             libcli/namequery.o 
 
-LIBNTLMSSP_OBJ = libcli/ntlmssp.o libcli/ntlmssp_parse.o libcli/util/ntlmssp_sign.o
-
 LIBSAMBA_OBJ = libcli/util/nterr.o libcli/util/smbdes.o libcli/util/smbencrypt.o
 
 LIBCLIUTIL_OBJ = libcli/util/asn1.o \
-            libcli/util/smberr.o libcli/util/credentials.o \
+            libcli/util/smberr.o \
             libcli/util/doserr.o libcli/util/errormap.o \
             libcli/util/pwd_cache.o libcli/util/clierror.o libcli/util/cliutil.o
 
-LIBRAW_RPC_OBJ = libcli/rpc/rpcparse.o libcli/rpc/rpc_basic.o libcli/rpc/rpc_sec.o 
+LIBRAW_NDR_OBJ = librpc/ndr/ndr.o librpc/ndr/ndr_basic.o librpc/ndr/ndr_sec.o \
+               librpc/ndr/ndr_spoolss_buf.o \
+               librpc/gen_ndr/tables.o librpc/gen_ndr/ndr_dcerpc.o \
+               librpc/gen_ndr/ndr_echo.o librpc/gen_ndr/ndr_misc.o \
+               librpc/gen_ndr/ndr_lsa.o librpc/gen_ndr/ndr_dfs.o \
+               librpc/gen_ndr/ndr_samr.o librpc/gen_ndr/ndr_spoolss.o \
+               librpc/gen_ndr/ndr_wkssvc.o librpc/gen_ndr/ndr_srvsvc.o \
+               librpc/gen_ndr/ndr_atsvc.o librpc/gen_ndr/ndr_eventlog.o \
+               librpc/gen_ndr/ndr_epmapper.o librpc/gen_ndr/ndr_winreg.o \
+               librpc/gen_ndr/ndr_mgmt.o librpc/gen_ndr/ndr_protected_storage.o \
+               librpc/gen_ndr/ndr_dcom.o librpc/gen_ndr/ndr_wzcsvc.o \
+               librpc/gen_ndr/ndr_browser.o librpc/gen_ndr/ndr_w32time.o \
+               librpc/gen_ndr/ndr_scerpc.o librpc/gen_ndr/ndr_ntsvcs.o \
+               librpc/gen_ndr/ndr_netlogon.o librpc/gen_ndr/ndr_trkwks.o \
+               librpc/gen_ndr/ndr_keysvc.o
+
+LIBRAW_RPC_OBJ = librpc/rpc/dcerpc.o librpc/rpc/dcerpc_auth.o \
+               librpc/rpc/dcerpc_util.o \
+               librpc/rpc/dcerpc_smb.o librpc/rpc/dcerpc_tcp.o
+
+LIBNTLMSSP_OBJ = libcli/auth/ntlmssp.o libcli/auth/ntlmssp_parse.o \
+               libcli/auth/ntlmssp_sign.o
+
+LIBCLIAUTH_OBJ = $(LIBNTLMSSP_OBJ) libcli/auth/credentials.o
 
 LIBRAW_OBJ = libcli/raw/rawfile.o libcli/raw/smb_signing.o  \
             libcli/raw/clisocket.o libcli/raw/clitransport.o \
@@ -204,89 +221,16 @@ LIBRAW_OBJ = libcli/raw/rawfile.o libcli/raw/smb_signing.o  \
             libcli/raw/rawtrans.o libcli/raw/clioplock.o \
             libcli/raw/rawnegotiate.o libcli/raw/rawfsinfo.o \
             libcli/raw/rawfileinfo.o libcli/raw/rawnotify.o \
-            libcli/raw/rawioctl.o libcli/raw/rawacl.o libcli/raw/rawdcerpc.o \
-            $(LIBRAW_RPC_OBJ) $(LIBSAMBA_OBJ) $(LIBCLIUTIL_OBJ) \
-            $(RPC_PARSE_OBJ1) $(LIBNTLMSSP_OBJ) $(LIBNMB_OBJ) $(KRBCLIENT_OBJ)
+            libcli/raw/rawioctl.o libcli/raw/rawacl.o \
+            $(LIBRAW_NDR_OBJ) $(LIBRAW_RPC_OBJ) $(LIBSAMBA_OBJ) $(LIBCLIUTIL_OBJ) \
+            $(RPC_PARSE_OBJ1) $(LIBNMB_OBJ) $(KRBCLIENT_OBJ) $(LIBCLIAUTH_OBJ) 
 
 LIBSMB_OBJ = libcli/clireadwrite.o libcli/cliconnect.o \
             libcli/clifile.o libcli/clilist.o libcli/clitrans2.o  \
-            libcli/clisecdesc.o libcli/climessage.o \
-            libcli/clideltree.o libcli/clidcerpc.o \
+            libcli/climessage.o \
+            libcli/clideltree.o \
             $(LIBRAW_OBJ)
 
-# LIBDFS_OBJ = libcli/clidfs.o
-
-LIBMSRPC_OBJ = rpc_client/cli_lsarpc.o rpc_client/cli_samr.o \
-              rpc_client/cli_netlogon.o rpc_client/cli_srvsvc.o \
-              rpc_client/cli_wkssvc.o rpc_client/cli_dfs.o \
-              rpc_client/cli_reg.o rpc_client/cli_pipe.o \
-              rpc_client/cli_spoolss.o rpc_client/cli_spoolss_notify.o  \
-              rpc_client/cli_ds.o libcli/namequery_dc.o
-
-#LIBMSRPC_SERVER_OBJ = libcli/trust_passwd.o
-
-#REGOBJS_OBJ = registry/reg_objects.o
-#REGISTRY_OBJ = registry/reg_frontend.o registry/reg_cachehook.o registry/reg_printing.o \
-#               registry/reg_db.o 
-
-#RPC_LSA_OBJ = rpc_server/srv_lsa.o rpc_server/srv_lsa_nt.o
-
-#RPC_NETLOG_OBJ = rpc_server/srv_netlog.o rpc_server/srv_netlog_nt.o
-
-#RPC_SAMR_OBJ = rpc_server/srv_samr.o rpc_server/srv_samr_nt.o \
-#               rpc_server/srv_samr_util.o
-
-#RPC_REG_OBJ =  rpc_server/srv_reg.o rpc_server/srv_reg_nt.o
-
-#RPC_SVC_OBJ = rpc_server/srv_srvsvc.o rpc_server/srv_srvsvc_nt.o
-
-#RPC_WKS_OBJ =  rpc_server/srv_wkssvc.o rpc_server/srv_wkssvc_nt.o
-
-#RPC_DFS_OBJ =  rpc_server/srv_dfs.o rpc_server/srv_dfs_nt.o
-#RPC_SPOOLSS_OBJ = rpc_server/srv_spoolss.o rpc_server/srv_spoolss_nt.o 
-
-RPC_PIPE_OBJ = rpc_server/srv_pipe_hnd.o rpc_server/srv_util.o \
-               rpc_server/srv_pipe.o rpc_server/srv_lsa_hnd.o
-
-# These are like they are to avoid a dependency on GNU MAKE
-@LSA_DYNAMIC_YES@RPC_MODULES1 = bin/librpc_lsarpc.@SHLIBEXT@
-@NETLOG_DYNAMIC_YES@RPC_MODULES2 = bin/librpc_NETLOGON.@SHLIBEXT@
-@SAMR_DYNAMIC_YES@RPC_MODULES3 = bin/librpc_samr.@SHLIBEXT@
-@SVC_DYNAMIC_YES@RPC_MODULES4 = bin/librpc_srvsvc.@SHLIBEXT@
-@WKS_DYNAMIC_YES@RPC_MODULES5 = bin/librpc_wkssvc.@SHLIBEXT@
-@REG_DYNAMIC_YES@RPC_MODULES6 = bin/librpc_winreg.@SHLIBEXT@
-@SPOOLSS_DYNAMIC_YES@RPC_MODULES7 = bin/librpc_spoolss.@SHLIBEXT@
-@DFS_DYNAMIC_YES@RPC_MODULES8 = bin/librpc_netdfs.@SHLIBEXT@
-RPC_MODULES = $(RPC_MODULES1) $(RPC_MODULES2) $(RPC_MODULES3) $(RPC_MODULES4) \
-       $(RPC_MODULES5) $(RPC_MODULES6) $(RPC_MODULES7) $(RPC_MODULES8)
-
-@LSA_DYNAMIC_NO@RPC_PIPE_OBJ1 = $(RPC_LSA_OBJ)
-@NETLOG_DYNAMIC_NO@RPC_PIPE_OBJ2 = $(RPC_NETLOG_OBJ)
-@SAMR_DYNAMIC_NO@RPC_PIPE_OBJ3 = $(RPC_SAMR_OBJ)
-@SVC_DYNAMIC_NO@RPC_PIPE_OBJ4 = $(RPC_SVC_OBJ)
-@WKS_DYNAMIC_NO@RPC_PIPE_OBJ5 = $(RPC_WKS_OBJ)
-@REG_DYNAMIC_NO@RPC_PIPE_OBJ6 = $(RPC_REG_OBJ)
-@SPOOLSS_DYNAMIC_NO@RPC_PIPE_OBJ7 = $(RPC_SPOOLSS_OBJ)
-@DFS_DYNAMIC_NO@RPC_PIPE_OBJ8 =        $(RPC_DFS_OBJ)
-RPC_SERVER_OBJ = $(RPC_PIPE_OBJ1) $(RPC_PIPE_OBJ2) $(RPC_PIPE_OBJ3) \
-       $(RPC_PIPE_OBJ4) $(RPC_PIPE_OBJ5) $(RPC_PIPE_OBJ6) $(RPC_PIPE_OBJ7) \
-       $(RPC_PIPE_OBJ8) $(RPC_PIPE_OBJ)
-
-# 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_sec.o \
-                rpc_parse/parse_misc.o
-
-RPC_PARSE_OBJ = rpc_parse/parse_lsa.o rpc_parse/parse_net.o \
-                rpc_parse/parse_reg.o rpc_parse/parse_rpc.o \
-                rpc_parse/parse_samr.o rpc_parse/parse_srv.o \
-                rpc_parse/parse_wks.o rpc_parse/parse_ds.o \
-               rpc_parse/parse_spoolss.o rpc_parse/parse_dfs.o \
-               $(REGOBJS_OBJ)
-
-
-RPC_CLIENT_OBJ = rpc_client/cli_pipe.o 
-
 #LOCKING_OBJ = locking/locking.o locking/brlock.o locking/posix.o
 
 PASSDB_GET_SET_OBJ = passdb/pdb_get_set.o
@@ -295,8 +239,7 @@ PASSDB_OBJ = $(PASSDB_GET_SET_OBJ) passdb/passdb.o passdb/pdb_interface.o \
                passdb/machine_sid.o passdb/pdb_smbpasswd.o \
                passdb/pdb_tdb.o passdb/pdb_ldap.o \
                passdb/pdb_unix.o passdb/pdb_guest.o passdb/util_sam_sid.o \
-               passdb/pdb_compat.o passdb/pdb_nisplus.o \
-               passdb/privileges.o 
+               passdb/pdb_compat.o passdb/pdb_nisplus.o
 
 XML_OBJ = modules/xml.o
 MYSQL_OBJ = modules/mysql.o
@@ -304,10 +247,6 @@ DEVEL_HELP_OBJ = modules/developer.o
 
 
 
-GROUPDB_OBJ = groupdb/mapping.o
-
-# passdb/smbpass.o passdb/ldap.o passdb/nispass.o 
-
 #PROFILE_OBJ = profile/profile.o
 
 # OPLOCK_OBJ = smbd/oplock.o smbd/oplock_irix.o smbd/oplock_linux.o
@@ -320,18 +259,16 @@ PLAINTEXT_AUTH_OBJ = auth/pampass.o auth/pass_check.o
 
 AUTH_OBJ = auth/auth.o auth/auth_sam.o \
           auth/auth_unix.o auth/auth_util.o    \
-          auth/auth_builtin.o auth/auth_compat.o \
+          auth/auth_builtin.o auth/auth_compat.o auth/auth_ntlmssp.o \
           $(PLAINTEXT_AUTH_OBJ) $(UNIGRP_OBJ)
 
-# auth/auth_server.o auth/auth_domain.o auth/auth_winbind.o auth/auth_ntlmssp.o 
-
 MANGLE_OBJ = smbd/mangle.o smbd/mangle_hash.o smbd/mangle_map.o smbd/mangle_hash2.o
 
 SMBD_OBJ_MAIN = smbd/server.o
 
-CSM_NTVFS_MAIN = ntvfs/tank/vfs_tank.o
+NTVFS_CSM_MAIN = ntvfs/tank/vfs_tank.o
 #we don't want these in main proto.h
-CSM_NTVFS_OBJ = ntvfs/tank/csm_init.o ntvfs/tank/csm_unlink.o \
+NTVFS_CSM_OBJ = ntvfs/tank/csm_init.o ntvfs/tank/csm_unlink.o \
                ntvfs/tank/csm_util.o ntvfs/tank/csm_error.o ntvfs/tank/csm_lookup.o \
                ntvfs/tank/csm_blockmap.o ntvfs/tank/csm_dir.o \
                ntvfs/tank/csm_fcntl.o ntvfs/tank/csm_io.o ntvfs/tank/csm_mkdir.o \
@@ -339,25 +276,32 @@ CSM_NTVFS_OBJ = ntvfs/tank/csm_init.o ntvfs/tank/csm_unlink.o \
                ntvfs/tank/csm_attr.o ntvfs/tank/csm_truncate.o \
                ntvfs/tank/csm_fd.o
 
-@STFS_ENABLED@STFS_MAIN = $(CSM_NTVFS_MAIN)
-@STFS_ENABLED@STFS_OBJS = $(CSM_NTVFS_OBJ)
-@STFS_ENABLED@STFS_LIBS = -L/usr/lib -L/usr/src/newport/csm/lib -Wl,"-(,-lcsm,-lcsmlinuxusp,-)"
+NTVFS_CIFS_OBJ = ntvfs/cifs/vfs_cifs.o
+NTVFS_SIMPLE_OBJ = ntvfs/simple/vfs_simple.o ntvfs/simple/svfs_util.o
+NTVFS_IPC_OBJ = ntvfs/ipc/vfs_ipc.o
+NTVFS_PRINT_OBJ = ntvfs/print/vfs_print.o
+NTVFS_POSIX_OBJ = ntvfs/posix/vfs_posix.o
+
+SMBD_NTVFS_OBJ = ntvfs/ntvfs_base.o ntvfs/ntvfs_util.o \
+       ntvfs/ntvfs_generic.o @NTVFS_STATIC@
+
+DCERPC_RPCECHO_OBJ = rpc_server/echo/rpc_echo.o
+DCERPC_EPMAPPER_OBJ = rpc_server/epmapper/rpc_epmapper.o
+DCERPC_REMOTE_OBJ = rpc_server/remote/dcesrv_remote.o
 
-SMBD_NTVFS_OBJ = ntvfs/ntvfs_base.o ntvfs/ntvfs_util.o ntvfs/ntvfs_generic.o \
-       ntvfs/simple/vfs_simple.o ntvfs/simple/svfs_util.o \
-       ntvfs/ipc/vfs_ipc.o ntvfs/cifs/vfs_cifs.o \
-       ntvfs/print/vfs_print.o
+SMBD_RPC_OBJ = rpc_server/dcerpc_server.o rpc_server/dcesrv_auth.o \
+               rpc_server/dcerpc_tcp.o rpc_server/handles.o @DCERPC_STATIC@
 
 SMBD_OBJ_SRV = smbd/connection.o \
               smbd/session.o \
            smbd/password.o smbd/conn.o \
            smbd/negprot.o smbd/request.o \
            smbd/reply.o smbd/sesssetup.o \
-          smbd/trans2.o \
+          smbd/trans2.o smbd/search.o smbd/nttrans.o \
            lib/sysacls.o lib/server_mutex.o \
            smbd/build_options.o smbd/service.o \
-          smbd/rewrite.o \
-              $(SMBD_NTVFS_OBJ) $(STFS_MAIN) @SMBD_EXTRA_OBJS@ 
+          smbd/rewrite.o $(SMBD_RPC_OBJ) \
+              $(SMBD_NTVFS_OBJ) @SMBD_EXTRA_OBJS@ 
 
 PROCESS_MODEL_OBJ = smbd/process.o smbd/process_model.o smbd/process_standard.o \
                        smbd/process_single.o
@@ -366,25 +310,13 @@ PROCESS_MODEL_OBJ = smbd/process.o smbd/process_model.o smbd/process_standard.o
 
 # printing/printfsp.o
 
-SMBD_OBJ_BASE = $(PROCESS_MODEL_OBJ) $(SMBD_OBJ_SRV) $(STFS_OBJS) \
+SMBD_OBJ_BASE = $(PROCESS_MODEL_OBJ) $(SMBD_OBJ_SRV) \
                $(MSDFS_OBJ) $(PARAM_OBJ) \
                $(SECRETS_OBJ) \
                $(PASSDB_OBJ)  \
                $(AUTH_OBJ) $(GROUPDB_OBJ) \
                $(LIB_SMBD_OBJ) $(POPT_LIB_OBJ) $(LIBSMB_OBJ)           
 
-#  $(RPC_SERVER_OBJ) $(RPC_PARSE_OBJ)  $(LOCKING_OBJ) $(LIBMSRPC_OBJ) $(LIBMSRPC_SERVER_OBJ) $(LIBADS_OBJ) $(KRBCLIENT_OBJ) $(LIBADS_SERVER_OBJ) 
-# $(PRINTING_OBJ) $(PROFILE_OBJ) $(PRINTBACKEND_OBJ) $(QUOTAOBJS) $(OPLOCK_OBJ) $(NOTIFY_OBJ) $(REGISTRY_OBJ) 
-
-#PRINTING_OBJ = printing/pcap.o printing/print_svid.o \
-#                              printing/print_cups.o printing/print_generic.o \
-#                              printing/lpq_parse.o printing/load.o
-
-#PRINTBACKEND_OBJ = printing/printing.o printing/nt_printing.o printing/notify.o \
-#              printing/printing_db.o
-
-# MSDFS_OBJ = msdfs/msdfs.o 
-
 SMBD_OBJ = $(SMBD_OBJ_MAIN) $(SMBD_OBJ_BASE)
 
 NMBD_OBJ1 = nmbd/asyncdns.o nmbd/nmbd.o nmbd/nmbd_become_dmb.o \
@@ -446,18 +378,6 @@ PDBEDIT_OBJ = utils/pdbedit.o $(PARAM_OBJ) $(PASSDB_OBJ) $(LIBSAMBA_OBJ) \
 SMBGROUPEDIT_OBJ = utils/smbgroupedit.o $(GROUPDB_OBJ) $(PARAM_OBJ) \
                $(LIBSAMBA_OBJ) $(PASSDB_OBJ) $(SECRETS_OBJ) $(LIB_OBJ)
 
-RPCCLIENT_OBJ1 = rpcclient/rpcclient.o rpcclient/cmd_lsarpc.o \
-                rpcclient/cmd_samr.o rpcclient/cmd_spoolss.o \
-                rpcclient/cmd_netlogon.o rpcclient/cmd_srvsvc.o \
-                rpcclient/cmd_dfs.o rpcclient/cmd_reg.o \
-                rpcclient/display_sec.o rpcclient/cmd_ds.o
-
-RPCCLIENT_OBJ = $(RPCCLIENT_OBJ1) \
-             $(PARAM_OBJ) $(LIBSMB_OBJ) $(LIB_OBJ) \
-             $(RPC_PARSE_OBJ) $(PASSDB_OBJ) $(LIBMSRPC_OBJ) \
-             $(READLINE_OBJ) $(GROUPDB_OBJ) $(KRBCLIENT_OBJ) \
-            $(LIBADS_OBJ) $(SECRETS_OBJ) $(POPT_LIB_OBJ)
-
 PAM_WINBIND_OBJ = nsswitch/pam_winbind.po nsswitch/wb_common.po lib/snprintf.po
 
 #SMBW_OBJ1 = smbwrapper/smbw.o \
@@ -483,7 +403,7 @@ LIBSMBCLIENT_OBJ = libcli/libcliclient.o libcli/libcli_compat.o \
 LIBBIGBALLOFMUD_MAJOR = 0
 
 LIBBIGBALLOFMUD_OBJ = $(LIB_OBJ) $(PARAM_OBJ) $(SECRETS_OBJ) \
-       $(LIBSMB_OBJ) $(LIBMSRPC_OBJ) $(RPC_PARSE_OBJ) $(PASSDB_OBJ) \
+       $(LIBSMB_OBJ) $(RPC_PARSE_OBJ) $(PASSDB_OBJ) \
        $(GROUPDB_OBJ) $(KRBCLIENT_OBJ)
 
 LIBBIGBALLOFMUD_PICOBJS = $(LIBBIGBALLOFMUD_OBJ:.o=.po)
@@ -502,7 +422,6 @@ NET_OBJ1 = utils/net.o utils/net_ads.o utils/net_ads_cldap.o utils/net_help.o \
 NET_OBJ = $(NET_OBJ1) $(SECRETS_OBJ) $(LIBSMB_OBJ) $(KRBCLIENT_OBJ) \
          $(RPC_PARSE_OBJ) $(PASSDB_OBJ) $(GROUPDB_OBJ) \
          $(PARAM_OBJ) $(LIB_OBJ) \
-         $(LIBMSRPC_OBJ) $(LIBMSRPC_SERVER_OBJ) \
          $(LIBADS_OBJ) $(LIBADS_SERVER_OBJ) $(POPT_LIB_OBJ)
 
 CUPS_OBJ = client/smbspool.o $(PARAM_OBJ) $(LIBSMB_OBJ) \
@@ -525,12 +444,21 @@ SMBTORTURE_RAW_OBJ = torture/raw/qfsinfo.o torture/raw/qfileinfo.o torture/raw/s
                torture/raw/chkpath.o torture/raw/unlink.o torture/raw/read.o torture/raw/context.o \
                torture/raw/write.o torture/raw/lock.o torture/raw/rename.o torture/raw/seek.o 
 
+SMBTORTURE_RPC_OBJ = torture/rpc/lsa.o torture/rpc/echo.o torture/rpc/dfs.o \
+               torture/rpc/spoolss.o torture/rpc/samr.o torture/rpc/wkssvc.o \
+               torture/rpc/srvsvc.o torture/rpc/atsvc.o torture/rpc/eventlog.o \
+               torture/rpc/epmapper.o torture/rpc/winreg.o torture/rpc/mgmt.o \
+               torture/rpc/scanner.o torture/rpc/autoidl.o torture/rpc/netlogon.o
+
 SMBTORTURE_OBJ1 = torture/torture.o torture/torture_util.o torture/nbio.o torture/scanner.o \
                torture/utable.o torture/denytest.o torture/mangle_test.o \
                torture/aliases.o libcli/raw/clirewrite.o $(SMBTORTURE_RAW_OBJ) \
-               rpc_parse/parse_lsa.o
+               $(SMBTORTURE_RPC_OBJ)
 
-SMBTORTURE_OBJ = $(SMBTORTURE_OBJ1) \
+SMBTORTURE_OBJ = $(SMBTORTURE_OBJ1) $(SECRETS_OBJ) \
+       $(LIBSMB_OBJ) $(LIBDFS_OBJ) $(PARAM_OBJ) $(LIB_OBJ)
+
+NDRDUMP_OBJ = utils/ndrdump.o utils/rewrite.o \
        $(LIBSMB_OBJ) $(LIBDFS_OBJ) $(PARAM_OBJ) $(LIB_OBJ)
 
 
@@ -549,6 +477,8 @@ GENTEST_OBJ = torture/gentest.o torture/torture_util.o $(LOCKING_OBJ) $(LIBSMB_O
 NSSTEST_OBJ = torture/nsstest.o $(LIBSMB_OBJ) $(KRBCLIENT_OBJ) $(PARAM_OBJ) \
                  $(LIB_OBJ)
 
+SMBICONV_OBJ = torture/smbiconv.o $(LIB_OBJ) $(PARAM_OBJ) utils/rewrite.o $(LIB_POPT_OBJ)
+
 VFSTEST_OBJ = torture/cmd_vfs.o torture/vfstest.o $(READLINE_OBJ)
 
 VFS_AUDIT_OBJ = modules/vfs_audit.o
@@ -564,20 +494,10 @@ LOCKTEST2_OBJ = torture/locktest2.o $(LOCKING_OBJ) $(LIBSMB_OBJ) \
 SMBCACLS_OBJ = utils/smbcacls.o $(LOCKING_OBJ) $(LIBSMB_OBJ) $(KRBCLIENT_OBJ) \
                $(PARAM_OBJ) \
                  $(LIB_OBJ) $(RPC_PARSE_OBJ) $(PASSDB_GET_SET_OBJ) \
-                $(LIBMSRPC_OBJ) $(SECRETS_OBJ)
+                $(SECRETS_OBJ)
 
 TALLOCTORT_OBJ = lib/talloctort.o  $(LIB_OBJ) $(PARAM_OBJ)
 
-RPCTORTURE_OBJ = torture/rpctorture.o \
-             rpcclient/display.o \
-             rpcclient/cmd_lsarpc.o \
-             rpcclient/cmd_wkssvc.o \
-             rpcclient/cmd_samr.o \
-             rpcclient/cmd_srvsvc.o \
-             rpcclient/cmd_netlogon.o \
-             $(PARAM_OBJ) $(LIBSMB_OBJ) $(LIB_OBJ) $(KRBCLIENT_OBJ) \
-             $(RPC_CLIENT_OBJ) $(RPC_PARSE_OBJ) $(PASSDB_GET_SET_OBJ)
-
 DEBUG2HTML_OBJ = utils/debug2html.o ubiqx/debugparse.o
 
 SMBFILTER_OBJ = utils/smbfilter.o $(LIBSMB_OBJ) $(PARAM_OBJ) \
@@ -586,9 +506,8 @@ SMBFILTER_OBJ = utils/smbfilter.o $(LIBSMB_OBJ) $(PARAM_OBJ) \
 PROTO_OBJ = $(SMBD_OBJ_SRV) \
            $(SMBD_OBJ_MAIN) $(PROCESS_MODEL_OBJ) \
            $(NMBD_OBJ1) $(SWAT_OBJ1) $(LIBSMB_OBJ) \
-           $(LIBRAW_OBJ) $(LIBDFS_OBJ) $(LIBCLIUTIL) $(LIBNTLMSSP_OBJ) \
-           $(SMBW_OBJ1) $(SMBWRAPPER_OBJ1) $(SMBTORTURE_OBJ1) $(RPCCLIENT_OBJ1) \
-           $(LIBMSRPC_OBJ) $(LIBMSRPC_SERVER_OBJ) $(RPC_CLIENT_OBJ) \
+           $(LIBRAW_OBJ) $(LIBDFS_OBJ) $(LIBCLIUTIL) $(LIBCLIAUTH_OBJ) \
+           $(SMBW_OBJ1) $(SMBWRAPPER_OBJ1) $(SMBTORTURE_OBJ1) \
            $(RPC_PIPE_OBJ) $(RPC_PARSE_OBJ) $(KRBCLIENT_OBJ) \
            $(AUTH_OBJ) $(PARAM_OBJ) $(LOCKING_OBJ) $(SECRETS_OBJ) \
            $(PRINTING_OBJ) $(PRINTBACKEND_OBJ) $(OPLOCK_OBJ) $(NOTIFY_OBJ) \
@@ -596,7 +515,8 @@ PROTO_OBJ = $(SMBD_OBJ_SRV) \
            $(READLINE_OBJ) $(PROFILE_OBJ) $(LIBADS_OBJ) $(LIBADS_SERVER_OBJ) \
            $(LIB_SMBD_OBJ) $(SAM_OBJ) $(REGISTRY_OBJ) $(POPT_LIB_OBJ) \
            $(RPC_LSA_OBJ) $(RPC_NETLOG_OBJ) $(RPC_SAMR_OBJ) $(RPC_REG_OBJ) \
-           $(RPC_SVC_OBJ) $(RPC_WKS_OBJ) $(RPC_DFS_OBJ) $(RPC_SPOOLSS_OBJ)
+           $(RPC_SVC_OBJ) $(RPC_WKS_OBJ) $(RPC_DFS_OBJ) $(RPC_SPOOLSS_OBJ) \
+           $(CLIENT_OBJ1)
 
 NSS_OBJ_0 = nsswitch/wins.o $(PARAM_OBJ) $(LIBSMB_OBJ) \
            $(LIB_OBJ) $(NSSWINS_OBJ)
@@ -635,7 +555,7 @@ WINBINDD_OBJ1 = \
 WINBINDD_OBJ = \
                $(WINBINDD_OBJ1) $(PASSDB_GET_SET_OBJ) \
                $(PARAM_OBJ) $(LIB_OBJ) \
-               $(LIBSMB_OBJ) $(LIBMSRPC_OBJ) $(RPC_PARSE_OBJ) \
+               $(LIBSMB_OBJ) $(RPC_PARSE_OBJ) \
                $(PROFILE_OBJ) $(UNIGRP_OBJ) \
                $(SECRETS_OBJ) $(LIBADS_OBJ) $(KRBCLIENT_OBJ)
 
@@ -655,10 +575,7 @@ NTLM_AUTH_OBJ = utils/ntlm_auth.o $(LIBNTLMSSP_OBJ) $(LIBSAMBA_OBJ) $(POPT_LIB_O
 ######################################################################
 # now the rules...
 ######################################################################
-all: bin/smbd bin/smbclient bin/smbtorture bin/locktest bin/masktest bin/gentest
-
-#SHOWFLAGS proto_exists $(SBIN_PROGS) $(BIN_PROGS) $(SHLIBS) \
-#      $(TORTURE_PROGS) $(RPC_MODULES) @EXTRA_ALL_TARGETS@
+all: SHOWFLAGS bin/smbd bin/smbclient bin/smbtorture bin/locktest bin/masktest bin/gentest
 
 pam_smbpass : SHOWFLAGS bin/pam_smbpass.@SHLIBEXT@
 
@@ -694,12 +611,12 @@ wins : SHOWFLAGS nsswitch/libnss_wins.@SHLIBEXT@
 
 modules: SHOWFLAGS proto_exists $(VFS_MODULES) $(PDB_MODULES) $(MODULES)
 
-everything: all libsmbclient debug2html smbfilter talloctort
+everything: all
 
 .SUFFIXES:
 .SUFFIXES: .c .o .po .po32 .lo
 
-SHOWFLAGS:
+SHOWFLAGS: basics
        @echo "Using FLAGS = $(FLAGS)"
        @echo "      FLAGS32 = $(FLAGS32)"
        @echo "      LIBS = $(LIBS)"
@@ -715,18 +632,28 @@ MAKEDIR = || exec false; \
          exec false; fi || exec false
 
 .c.o:
-       @if (: >> $@ || : > $@) >/dev/null 2>&1; then rm -f $@; else \
-        dir=`echo $@ | sed 's,/[^/]*$$,,;s,^$$,.,'` $(MAKEDIR); fi
        @echo Compiling $*.c
        @$(CC) -I. -I$(srcdir) $(FLAGS) -c $< \
          -o $@ 
 @BROKEN_CC@    -mv `echo $@ | sed 's%^.*/%%g'` $@
 
 # 'make pch' is extremely useful for fast compiles if you have gcc-3.4
-pch:
+pch: basics
+       rm -f $(srcdir)/include/includes.h.gch
        $(CC) -I. -I$(srcdir) $(FLAGS) -c $(srcdir)/include/includes.h -o $(srcdir)/include/includes.h.gch
 
 
+idl_full: build/pidl/idl.pm
+       CPP="@CPP@" script/build_idl.sh FULL
+
+idl: build/pidl/idl.pm
+       @CPP="@CPP@" script/build_idl.sh
+
+basics: idl proto_test
+
+build/pidl/idl.pm: build/pidl/idl.yp
+       -yapp -s build/pidl/idl.yp
+
 # These dependencies are only approximately correct: we want to make
 # sure Samba's paths are updated if ./configure is re-run.  Really it
 # would be nice if "make prefix=/opt/samba all" also rebuilt things,
@@ -771,7 +698,7 @@ bin/.dummy:
 bin/smbd@EXEEXT@: $(SMBD_OBJ) @BUILD_POPT@ bin/.dummy
        @echo Linking $@
        @$(CC) $(FLAGS) -o $@ $(SMBD_OBJ) $(LDFLAGS) $(DYNEXP) $(PRINTLIBS) \
-         $(AUTHLIBS) $(ACLLIBS) $(LIBS) $(PTHREAD_LIB) @SMBD_EXTRA_LIBS@ $(STFS_LIBS) @BUILD_POPT@
+         $(AUTHLIBS) $(ACLLIBS) $(LIBS) $(PTHREAD_LIB) @SMBD_EXTRA_LIBS@ @BUILD_POPT@
 
 bin/nmbd@EXEEXT@: $(NMBD_OBJ) @BUILD_POPT@ bin/.dummy
        @echo Linking $@
@@ -786,10 +713,6 @@ bin/swat@EXEEXT@: $(SWAT_OBJ) bin/.dummy
        @$(CC) $(FLAGS) -o $@ $(SWAT_OBJ) $(LDFLAGS) $(DYNEXP) $(PRINTLIBS) \
          $(AUTHLIBS) $(LIBS) 
 
-bin/rpcclient@EXEEXT@: $(RPCCLIENT_OBJ) @BUILD_POPT@ bin/.dummy
-       @echo Linking $@
-       @$(CC) $(FLAGS) -o $@ $(RPCCLIENT_OBJ) $(LDFLAGS) $(DYNEXP) $(TERMLDFLAGS) $(TERMLIBS) $(LIBS) @BUILD_POPT@
-
 bin/smbclient@EXEEXT@: $(CLIENT_OBJ) @BUILD_POPT@ bin/.dummy
        @echo Linking $@
        @$(CC) $(FLAGS) -o $@ $(CLIENT_OBJ) $(LDFLAGS) $(TERMLDFLAGS) $(TERMLIBS) $(LIBS) @BUILD_POPT@
@@ -862,6 +785,10 @@ bin/smbtorture@EXEEXT@: $(SMBTORTURE_OBJ) bin/.dummy
        @echo Linking $@
        @$(CC) $(FLAGS) -o $@ $(SMBTORTURE_OBJ) $(LDFLAGS) $(LIBS)
 
+bin/ndrdump@EXEEXT@: $(NDRDUMP_OBJ) bin/.dummy
+       @echo Linking $@
+       @$(CC) $(FLAGS) -o $@ $(NDRDUMP_OBJ) $(LDFLAGS) $(LIBS)
+
 bin/gentest@EXEEXT@: $(GENTEST_OBJ) bin/.dummy
        @echo Linking $@
        @$(CC) $(FLAGS) -o $@ $(GENTEST_OBJ) $(LDFLAGS) $(LIBS)
@@ -890,6 +817,10 @@ bin/nsstest@EXEEXT@: $(NSSTEST_OBJ) bin/.dummy
        @echo Linking $@
        @$(CC) $(FLAGS) -o $@ $(NSSTEST_OBJ) $(LDFLAGS) $(LIBS)
 
+bin/smbiconv@EXEEXT@: $(SMBICONV_OBJ) @BUILD_POPT@ bin/.dummy
+       @echo Linking $@
+       @$(CC) $(FLAGS) -o $@ $(SMBICONV_OBJ) $(DYNEXP) $(LDFLAGS) $(LIBS) @BUILD_POPT@
+
 bin/vfstest@EXEEXT@: $(VFSTEST_OBJ) @BUILD_POPT@ bin/.dummy
        @echo Linking $@
        @$(CC) $(FLAGS) -o $@ $(VFSTEST_OBJ) $(LDFLAGS) $(TERMLDFLAGS) $(TERMLIBS) $(DYNEXP) $(PRINTLIBS) $(AUTHLIBS) $(ACLLIBS) $(LIBS) @BUILD_POPT@
@@ -937,6 +868,20 @@ bin/libsmbclient.a: $(LIBSMBCLIENT_PICOBJS)
        @echo Linking libsmbclient non-shared library $@
        -$(AR) -rc $@ $(LIBSMBCLIENT_PICOBJS) 
 
+LIBRPC_OBJS = $(LIBRAW_RPC_OBJ)
+
+LIBRPC_MAJOR=1
+LIBRPC_PICOBJS = $(LIBRPC_OBJS:.o=.po)
+
+bin/librpc.@SHLIBEXT@: $(LIBRPC_PICOBJS)
+       @echo Linking librpc shared library $@
+       $(SHLD) $(LDSHFLAGS) -o $@ $(LIBRPC_PICOBJS) $(LDFLAGS) $(LIBS) \
+               @SONAMEFLAG@`basename $@`.$(LIBRPC_MAJOR)
+
+bin/librpc.a: $(LIBRPC_PICOBJS)
+       @echo Linking librpc non-shared library $@
+       -$(AR) -rc $@ $(LIBRPC_PICOBJS) 
+
 bin/libbigballofmud.@SHLIBEXT@: $(LIBBIGBALLOFMUD_PICOBJS)
        @echo Linking bigballofmud shared library $@
        $(SHLD) $(LDSHFLAGS) -o $@ $(LIBBIGBALLOFMUD_PICOBJS) $(LIBS) \
@@ -944,46 +889,6 @@ bin/libbigballofmud.@SHLIBEXT@: $(LIBBIGBALLOFMUD_PICOBJS)
 
 libsmbclient: bin/libsmbclient.a @LIBSMBCLIENT_SHARED@
 
-bin/librpc_lsarpc.@SHLIBEXT@: $(RPC_LSA_OBJ)
-       @echo "Linking $@"
-       @$(SHLD) $(LDSHFLAGS) -o $@ $(RPC_LSA_OBJ) -lc \
-               @SONAMEFLAG@`basename $@`
-
-bin/librpc_samr.@SHLIBEXT@: $(RPC_SAMR_OBJ)
-       @echo "Linking $@"
-       @$(SHLD) $(LDSHFLAGS) -o $@ $(RPC_SAMR_OBJ) -lc \
-               @SONAMEFLAG@`basename $@`
-
-bin/librpc_srvsvc.@SHLIBEXT@: $(RPC_SVC_OBJ)
-       @echo "Linking $@"
-       @$(SHLD) $(LDSHFLAGS) -o $@ $(RPC_SVC_OBJ) -lc \
-               @SONAMEFLAG@`basename $@`
-
-bin/librpc_wkssvc.@SHLIBEXT@: $(RPC_WKS_OBJ)
-       @echo "Linking $@"
-       @$(SHLD) $(LDSHFLAGS) -o $@ $(RPC_WKS_OBJ) -lc \
-               @SONAMEFLAG@`basename $@`
-
-bin/librpc_NETLOGON.@SHLIBEXT@: $(RPC_NETLOG_OBJ)
-       @echo "Linking $@"
-       @$(SHLD) $(LDSHFLAGS) -o $@ $(RPC_NETLOG_OBJ) -lc \
-               @SONAMEFLAG@`basename $@`
-
-bin/librpc_winreg.@SHLIBEXT@: $(RPC_REG_OBJ)
-       @echo "Linking $@"
-       @$(SHLD) $(LDSHFLAGS) -o $@ $(RPC_REG_OBJ) -lc \
-               @SONAMEFLAG@`basename $@`
-
-bin/librpc_spoolss.@SHLIBEXT@: $(RPC_SPOOLSS_OBJ)
-       @echo "Linking $@"
-       @$(SHLD) $(LDSHFLAGS) -o $@ $(RPC_SPOOLSS_OBJ) -lc \
-               @SONAMEFLAG@`basename $@`
-
-bin/librpc_netdfs.@SHLIBEXT@: $(RPC_DFS_OBJ)
-       @echo "Linking $@"
-       @$(SHLD) $(LDSHFLAGS) -o $@ $(RPC_DFS_OBJ) -lc \
-               @SONAMEFLAG@`basename $@`
-
 nsswitch/libnss_wins.@SHLIBEXT@: $(NSS_OBJ)
        @echo "Linking $@"
        @$(SHLD) $(LDSHFLAGS) -o $@ $(NSS_OBJ) -lc \
@@ -1064,9 +969,6 @@ bin/pam_smbpass.@SHLIBEXT@: $(PAM_SMBPASS_PICOOBJ)
        @echo "Linking shared library $@"
        $(SHLD) $(LDSHFLAGS) -o $@ $(PAM_SMBPASS_PICOOBJ) -lpam $(DYNEXP) $(LIBS) -lc
 
-bin/libmsrpc.a: $(LIBMSRPC_PICOBJ)
-       -$(AR) -rc $@ $(LIBMSRPC_PICOBJ) 
-
 bin/tdbbackup@EXEEXT@: $(TDBBACKUP_OBJ) bin/.dummy
        @echo Linking $@
        @$(CC) $(FLAGS) -o $@ $(TDBBACKUP_OBJ)
@@ -1112,31 +1014,6 @@ installclientlib:
        -$(INSTALLCMD) -d $(DESTDIR)${prefix}/include
        -$(INSTALLCMD) include/libsmbclient.h $(DESTDIR)${prefix}/include
 
-# Python extensions
-
-PYTHON_OBJS = $(LIB_OBJ) $(LIBSMB_OBJ) $(RPC_PARSE_OBJ) \
-       $(PARAM_OBJ) $(LIBMSRPC_OBJ) $(PASSDB_OBJ) $(GROUPDB_OBJ) \
-       $(SECRETS_OBJ) $(KRBCLIENT_OBJ)
-
-python_ext: $(PYTHON_OBJS)
-       @if test -z "$(PYTHON)"; then \
-               echo Use the option --with-python to configure python; \
-               exit 1; fi
-       PYTHON_OBJS="$(PYTHON_OBJS)" PYTHON_CFLAGS="$(CFLAGS) $(CPPFLAGS) $(FLAGS)" \
-       LIBS="$(LIBS)" \
-               $(PYTHON) python/setup.py build
-
-python_install: $(PYTHON_OBJS)
-       @if test -z "$(PYTHON)"; then \
-               echo Use the option --with-python to configure python; \
-               exit 1; fi
-       PYTHON_OBJS="$(PYTHON_OBJS)" PYTHON_CFLAGS="$(CFLAGS) $(CPPFLAGS)" \
-       LIBS="$(LIBS)" \
-               $(PYTHON) python/setup.py install
-
-python_clean:
-       @-if test -n "$(PYTHON)"; then $(PYTHON) python/setup.py clean; fi
-
 # revert to the previously installed version
 revert:
        @$(SHELL) $(srcdir)/script/revert.sh $(SBINDIR) $(SBIN_PROGS) 
@@ -1178,32 +1055,23 @@ uninstallscripts:
 # Toplevel clean files
 TOPFILES=dynconfig.o dynconfig.po
 
-clean: delheaders python_clean
+clean: delheaders
        -rm -f core */*~ *~ */*.o */*/*.o */*/*.po */*/*.po32 */*.po */*.po32 */*.@SHLIBEXT@ \
-               $(TOPFILES) $(BIN_PROGS) $(SBIN_PROGS) $(MODULES) $(TORTURE_PROGS) .headers.stamp
+               $(TOPFILES) $(BIN_PROGS) $(SBIN_PROGS) $(MODULES) $(TORTURE_PROGS) \
+               .headers.stamp 
+       -rm -rf librpc/gen_*
 
 # Making this target will just make sure that the prototype files
 # exist, not necessarily that they are up to date.  Since they're
 # removed by "make clean" this will always be run when you do anything
 # afterwards.
-proto_exists: include/proto.h include/wrepld_proto.h include/build_env.h \
-               nsswitch/winbindd_proto.h web/swat_proto.h \
-@STFS_ENABLED@ ntvfs/tank/vfs_tank_proto.h \
-               client/client_proto.h utils/net_proto.h \
-               include/tdbsam2_parse_info.h
+proto_exists: include/proto.h include/build_env.h
 
 delheaders:
-       @echo Removing prototype headers
        @/bin/rm -f $(srcdir)/include/proto.h $(srcdir)/include/build_env.h 
-       @/bin/rm -f $(srcdir)/include/wrepld_proto.h $(srcdir)/nsswitch/winbindd_proto.h 
-       @/bin/rm -f $(srcdir)/web/swat_proto.h
-       @/bin/rm -f $(srcdir)/client/client_proto.h $(srcdir)/utils/net_proto.h
-       @/bin/rm -f $(srcdir)/include/tdbsam2_parse_info.h
-@STFS_ENABLED@ @/bin/rm -f $(srcdir)/ntvfs/tank/vfs_tank_proto.h
 
 include/proto.h:
-       @echo Building include/proto.h
-       @cd $(srcdir) && $(SHELL) script/mkproto.sh $(AWK) \
+       @cd $(srcdir) && $(SHELL) script/mkproto.sh $(PERL) \
          -h _PROTO_H_ $(builddir)/include/proto.h \
          $(PROTO_OBJ)
 
@@ -1211,58 +1079,15 @@ include/build_env.h:
        @echo Building include/build_env.h
        @cd $(srcdir) && $(SHELL) script/build_env.sh $(srcdir) $(builddir) $(CC) > $(builddir)/include/build_env.h
 
-include/wrepld_proto.h:
-       @echo Building include/wrepld_proto.h
-       @cd $(srcdir) && $(SHELL) script/mkproto.sh $(AWK) \
-         -h _WREPLD_PROTO_H_ $(builddir)/include/wrepld_proto.h \
-         $(WREPL_OBJ1)
-
-nsswitch/winbindd_proto.h: 
-       @cd $(srcdir) && $(SHELL) script/mkproto.sh $(AWK) \
-         -h _WINBINDD_PROTO_H_ nsswitch/winbindd_proto.h \
-         $(WINBINDD_OBJ1)
-
-ntvfs/tank/vfs_tank_proto.h: 
-       @cd $(srcdir) && $(SHELL) script/mkproto.sh $(AWK) \
-         -h _VFS_TANK_PROTO_H_ ntvfs/tank/vfs_tank_proto.h \
-         $(STFS_OBJS)
-
-web/swat_proto.h: 
-       @cd $(srcdir) && $(SHELL) script/mkproto.sh $(AWK) \
-         -h _SWAT_PROTO_H_ web/swat_proto.h \
-         $(SWAT_OBJ1)
-
-client/client_proto.h: 
-       @cd $(srcdir) && $(SHELL) script/mkproto.sh $(AWK) \
-         -h _CLIENT_PROTO_H_ client/client_proto.h \
-         $(CLIENT_OBJ1)
-
-utils/net_proto.h: 
-       @cd $(srcdir) && $(SHELL) script/mkproto.sh $(AWK) \
-         -h _CLIENT_PROTO_H_ utils/net_proto.h \
-         $(NET_OBJ1)
-
-include/tdbsam2_parse_info.h:
-       @cd $(srcdir) && @PERL@ -w script/genstruct.pl \
-       -o include/tdbsam2_parse_info.h $(CC) -E -g \
-       include/tdbsam2.h
-
 # "make headers" or "make proto" calls a subshell because we need to
 # make sure these commands are executed in sequence even for a
 # parallel make.
-headers: 
-       $(MAKE) delheaders; \
-       $(MAKE) include/proto.h; \
-       $(MAKE) include/build_env.h; \
-       $(MAKE) include/wrepld_proto.h; \
-       $(MAKE) nsswitch/winbindd_proto.h; \
-       $(MAKE) web/swat_proto.h; \
-       $(MAKE) client/client_proto.h; \
-       $(MAKE) utils/net_proto.h; \
-       $(MAKE) include/tdbsam2_parse_info.h; \
-@STFS_ENABLED@ $(MAKE) ntvfs/tank/vfs_tank_proto.h
-
-proto: headers 
+headers: delheaders include/proto.h include/build_env.h 
+
+proto: idl headers 
+
+proto_test:
+       @[ -f include/proto.h ] || $(MAKE) proto
 
 .PHONY: headers proto
 
@@ -1285,8 +1110,8 @@ distclean: realclean
 # range of machines and is used to produce a list of potentially
 # dead (ie. unused) functions in the code. (tridge)
 finddead:
-       nm */*.o |grep 'U ' | awk '{print $$2}' | sort -u > nmused.txt
-       nm */*.o |grep 'T ' | awk '{print $$3}' | sort -u > nmfns.txt
+       nm */*.o |grep 'U ' | $(AWK) '{print $$2}' | sort -u > nmused.txt
+       nm */*.o |grep 'T ' | $(AWK) '{print $$3}' | sort -u > nmfns.txt
        comm -13 nmused.txt nmfns.txt