#########################################################################
# 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@
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)\"
# 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
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_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/ndr_dcerpc.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_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
-LIBRAW_RPC_OBJ = librpc/rpc/dcerpc.o librpc/rpc/dcerpc_smb.o \
- librpc/gen_rpc/rpc_echo.o librpc/gen_rpc/rpc_lsa.o \
- librpc/gen_rpc/rpc_dfs.o librpc/gen_rpc/rpc_spoolss.o \
- librpc/gen_rpc/rpc_samr.o librpc/gen_rpc/rpc_wkssvc.o \
- librpc/gen_rpc/rpc_srvsvc.o librpc/gen_rpc/rpc_atsvc.o \
- librpc/gen_rpc/rpc_eventlog.o librpc/gen_rpc/rpc_epmapper.o \
- librpc/gen_rpc/rpc_winreg.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 \
libcli/raw/rawfileinfo.o libcli/raw/rawnotify.o \
libcli/raw/rawioctl.o libcli/raw/rawacl.o \
$(LIBRAW_NDR_OBJ) $(LIBRAW_RPC_OBJ) $(LIBSAMBA_OBJ) $(LIBCLIUTIL_OBJ) \
- $(RPC_PARSE_OBJ1) $(LIBNTLMSSP_OBJ) $(LIBNMB_OBJ) $(KRBCLIENT_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 \
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
-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
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 \
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/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_NTVFS_OBJ = ntvfs/ntvfs_base.o ntvfs/ntvfs_util.o \
+ ntvfs/ntvfs_generic.o @NTVFS_STATIC@
+
+SMBD_RPC_OBJ = rpc_server/dcerpc_server.o \
+ rpc_server/dcesrv_auth.o \
+ rpc_server/dcerpc_tcp.o \
+ rpc_server/handles.o \
+ rpc_server/echo/rpc_echo.o \
+ rpc_server/epmapper/rpc_epmapper.o
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
# 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) \
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)
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) \
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/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) \
$(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)
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) \
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) \
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)
modules: SHOWFLAGS proto_exists $(VFS_MODULES) $(PDB_MODULES) $(MODULES)
-everything: all libsmbclient debug2html smbfilter talloctort
+everything: all
.SUFFIXES:
.SUFFIXES: .c .o .po .po32 .lo
@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:
- script/build_idl.sh FULL
+idl_full: build/pidl/idl.pm
+ CPP="@CPP@" script/build_idl.sh FULL
-idl_test:
- @script/build_idl.sh
+idl: build/pidl/idl.pm
+ @CPP="@CPP@" script/build_idl.sh
-basics: idl_test proto_test
+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
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 $@
@$(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@
@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)
@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)
# Python extensions
PYTHON_OBJS = $(LIB_OBJ) $(LIBSMB_OBJ) $(RPC_PARSE_OBJ) \
- $(PARAM_OBJ) $(LIBMSRPC_OBJ) $(PASSDB_OBJ) $(GROUPDB_OBJ) \
+ $(PARAM_OBJ) $(PASSDB_OBJ) $(GROUPDB_OBJ) \
$(SECRETS_OBJ) $(KRBCLIENT_OBJ)
python_ext: $(PYTHON_OBJS)
# 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/build_env.h \
- include/tdbsam2_parse_info.h
+proto_exists: include/proto.h include/build_env.h
delheaders:
@/bin/rm -f $(srcdir)/include/proto.h $(srcdir)/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/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: delheaders include/proto.h include/build_env.h include/tdbsam2_parse_info.h
+headers: delheaders include/proto.h include/build_env.h
-proto: headers
+proto: idl headers
proto_test:
@[ -f include/proto.h ] || $(MAKE) proto