1
0
mirror of https://github.com/samba-team/samba.git synced 2024-12-27 03:21:53 +03:00
samba-mirror/source3/Makefile.in

3373 lines
119 KiB
Makefile
Raw Normal View History

#########################################################################
# Makefile.in for Samba - rewritten for autoconf support
# Copyright Andrew Tridgell 1992-1998
# Copyright (C) 2001 by Martin Pool <mbp@samba.org>
# Copyright Andrew Bartlett 2002
# Copyright (C) 2003 Jim McDonough <jmcd@us.ibm.com>
# Copyright (C) 2002-2003 Jelmer Vernooij <jelmer@samba.org>
# Copyright (C) 2006 Lars Mueller <lars@samba.org>
# Copyright (C) 2007 James Peach <jpeach@samba.org>
# Copyright (C) 2008 Michael Adam <obnox@samba.org>
###########################################################################
prefix=@prefix@
exec_prefix=@exec_prefix@
sysconfdir=@sysconfdir@
localstatedir=@localstatedir@
datarootdir=@datarootdir@
# the following vars come from ../dynconfig/config.m4
BINDIR=@BINDIR@
SBINDIR=@SBINDIR@
LIBDIR=@LIBDIR@
#LIBEXECDIR=@LIBEXECDIR@
MANDIR=@MANDIR@
DATADIR=@DATADIR@
LOCALEDIR=@LOCALEDIR@
#SCRIPTSBINDIR=@SCRIPTSBINDIR@
#PYTHONDIR=@PYTHONDIR@
#PYTHONARCHDIR=@PYTHONARCHDIR@
MODULESDIR=@MODULESDIR@
INCLUDEDIR=@INCLUDEDIR@
SETUPDIR=@SETUPDIR@
#PKGCONFIGDIR=@PKGCONFIGDIR@
SWATDIR=@SWATDIR@
CODEPAGEDIR=@CODEPAGEDIR@
PAMMODULESDIR=@PAMMODULESDIR@
CONFIGDIR=@CONFIGDIR@
PRIVATE_DIR=@PRIVATE_DIR@
LOCKDIR=@LOCKDIR@
PIDDIR=@PIDDIR@
STATEDIR=@STATEDIR@
CACHEDIR=@CACHEDIR@
LOGFILEBASE=@LOGFILEBASE@
SOCKET_DIR=@SOCKET_DIR@
PRIVILEGED_SOCKET_DIR=@PRIVILEGED_SOCKET_DIR@
WINBINDD_SOCKET_DIR=@WINBINDD_SOCKET_DIR@
WINBINDD_PRIVILEGED_SOCKET_DIR=@WINBINDD_PRIVILEGED_SOCKET_DIR@
NMBDSOCKETDIR=@NMBDSOCKETDIR@
#NTP_SIGND_SOCKET_DIR=@NTP_SIGND_SOCKET_DIR@
NCALRPCDIR=@NCALRPCDIR@
CONFIGFILE=@CONFIGFILE@
LMHOSTSFILE=@LMHOSTSFILE@
SMB_PASSWD_FILE=@SMB_PASSWD_FILE@
selftest_prefix=@selftest_prefix@
LIBS=@LIBS@
CC=@CC@
SHLD=@SHLD@
LIB_PATH_VAR=@LIB_PATH_VAR@
## Dynamic shared libraries build settings
DSO_EXPORTS_CMD=-Wl,--version-script,$(srcdir)/exports/`basename $@ | sed 's:\.@SHLIBEXT@[\.0-9]*$$:.@SYMSEXT@:'`
DSO_EXPORTS=@DSO_EXPORTS@
SHLD_DSO = $(SHLD) $(LDSHFLAGS) $(DSO_EXPORTS) -o $@
# The MODULE_EXPORTS variable contains the platform-specific linker flags
# needed to restrict the exports for VFS, IDMAP, RPC and PASSDB modules.
MODULE_EXPORTS=@MODULE_EXPORTS@
# Add $(DEVELOPER_CFLAGS) to $(CFLAGS) to enable extra compiler
2009-06-26 18:45:25 +04:00
# (GCC) warnings. This is done automatically for --enable-developer,
# --enable-picky-developer and --enable-krb5developer.
DEVELOPER_CFLAGS=@DEVELOPER_CFLAGS@
CFLAGS=@CFLAGS@
CPP=@CPP@
CPPFLAGS=-DHAVE_CONFIG_H @CPPFLAGS@
PICFLAG=@PICFLAG@
AR=@AR@
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=$(PICFLAG) @WINBIND_NSS_LDSHFLAGS@ @LDFLAGS@ -lc @LDSHFLAGS_Z_DEFS@
AWK=@AWK@
DYNEXP=@DYNEXP@
PERL=@PERL@
PYTHON=@PYTHON@
LIBDL=@LIBDL@
PIDL_ARGS=@PIDL_ARGS@
TERMLDFLAGS=@TERMLDFLAGS@
TERMLIBS=@TERMLIBS@
PRINT_LIBS=@PRINT_LIBS@
ZLIB_LIBS=@ZLIB_LIBS@
AUTH_LIBS=@AUTH_LIBS@
ACL_LIBS=@ACL_LIBS@
PASSDB_LIBS=@PASSDB_LIBS@
IDMAP_LIBS=@IDMAP_LIBS@
KRB5LIBS=@KRB5_LIBS@
LDAP_LIBS=@LDAP_LIBS@
NSCD_LIBS=@NSCD_LIBS@
LIBWBCLIENT=@LIBWBCLIENT_STATIC@ @LIBWBCLIENT_SHARED@
LIBWBCLIENT_LIBS=@LIBWBCLIENT_LIBS@
PTHREAD_LDFLAGS=@PTHREAD_LDFLAGS@
PTHREAD_CFLAGS=@PTHREAD_CFLAGS@
DNSSD_LIBS=@DNSSD_LIBS@
2009-03-20 16:53:10 +03:00
AVAHI_LIBS=@AVAHI_LIBS@
POPT_LIBS=@POPTLIBS@
LIBTALLOC=@LIBTALLOC_STATIC@
LIBTALLOC_LIBS=@LIBTALLOC_LIBS@
LIBREPLACE_LIBS=@LIBREPLACE_LIBS@
LIBTDB=@LIBTDB_STATIC@
LIBTDB_LIBS=@LIBTDB_LIBS@
TDB_DEPS=@TDB_DEPS@
LIBNTDB=@LIBNTDB_STATIC@
LIBNTDB_LIBS=@LIBNTDB_LIBS@
NTDB_DEPS=@NTDB_DEPS@
LIBNETAPI=@LIBNETAPI_STATIC@ @LIBNETAPI_SHARED@
LIBNETAPI_LIBS=@LIBNETAPI_LIBS@
LIBSMBCLIENT_LIBS=@LIBSMBCLIENT_LIBS@
LIBSMBSHAREMODES_LIBS=@LIBSMBSHAREMODES_LIBS@
TALLOCTORT = @TALLOCTORT@
TDBBACKUP = @TDBBACKUP@
TDBTOOL = @TDBTOOL@
TDBDUMP = @TDBDUMP@
TDBRESTORE = @TDBRESTORE@
TDBTORTURE = @TDBTORTURE@
NTDBBACKUP = @NTDBBACKUP@
NTDBTOOL = @NTDBTOOL@
NTDBDUMP = @NTDBDUMP@
NTDBRESTORE = @NTDBRESTORE@
NTDBTORTURE = @NTDBTORTURE@
2011-04-23 18:49:04 +04:00
PTHREADPOOLTEST = @PTHREADPOOLTEST@
INSTALLCMD=@INSTALL@
INSTALLLIBCMD_SH=@INSTALLLIBCMD_SH@
INSTALLLIBCMD_A=@INSTALLLIBCMD_A@
UNINSTALLLIBCMD_SH=@UNINSTALLLIBCMD_SH@
UNINSTALLLIBCMD_A=@UNINSTALLLIBCMD_A@
VPATH=@srcdir@
srcdir=@abs_srcdir@
builddir=@abs_builddir@
# XXX: Perhaps this should be @SHELL@ instead -- apparently autoconf
# will search for a POSIX-compliant shell, and that might not be
# /bin/sh on some platforms. I guess it's not a big problem -- mbp
2009-03-14 23:08:09 +03:00
SHELL=/bin/sh
DESTDIR=/
# See the autoconf manual "Installation Directory Variables" for a
# discussion of the subtle use of these variables.
VFSLIBDIR = $(MODULESDIR)/vfs
PERFCOUNTLIBDIR = $(MODULESDIR)/perfcount
PDBLIBDIR = $(MODULESDIR)/pdb
RPCLIBDIR = $(MODULESDIR)/rpc
IDMAPLIBDIR = $(MODULESDIR)/idmap
NSSINFOLIBDIR = $(MODULESDIR)/nss_info
AUTHLIBDIR = $(MODULESDIR)/auth
CONFIGLIBDIR = $(MODULESDIR)/config
GPEXTLIBDIR = $(MODULESDIR)/gpext
VARDIR = @localstatedir@
# The permissions to give the executables and other data
INSTALLPERMS_BIN = 0755
INSTALLPERMS_DATA = 0644
FLAGS = -I. \
-I$(srcdir) \
@FLAGS1@ \
@SAMBA_CPPFLAGS@ \
$(CPPFLAGS) \
$(ISA) \
-I$(srcdir)/lib \
-I.. \
-I./../lib/ldb/include \
-DDISABLE_NTDB \
-D_SAMBA_BUILD_=3
PATH_FLAGS = -DSMB_PASSWD_FILE=\"$(SMB_PASSWD_FILE)\" \
-DPRIVATE_DIR=\"$(PRIVATE_DIR)\" \
-DCONFIGFILE=\"$(CONFIGFILE)\" \
-DSBINDIR=\"$(SBINDIR)\" \
-DBINDIR=\"$(BINDIR)\" \
-DLMHOSTSFILE=\"$(LMHOSTSFILE)\" \
-DSWATDIR=\"$(SWATDIR)\" \
-DLOCKDIR=\"$(LOCKDIR)\" \
-DPIDDIR=\"$(PIDDIR)\" \
-DLIBDIR=\"$(LIBDIR)\" \
-DMODULESDIR=\"$(MODULESDIR)\" \
-DLOGFILEBASE=\"$(LOGFILEBASE)\" \
-DSHLIBEXT=\"@SHLIBEXT@\" \
2008-09-22 21:24:59 +04:00
-DNCALRPCDIR=\"$(NCALRPCDIR)\" \
-DCONFIGDIR=\"$(CONFIGDIR)\" \
-DCODEPAGEDIR=\"$(CODEPAGEDIR)\" \
-DCACHEDIR=\"$(CACHEDIR)\" \
-DSTATEDIR=\"$(STATEDIR)\" \
-DNMBDSOCKETDIR=\"$(NMBDSOCKETDIR)\" \
-DWINBINDD_SOCKET_DIR=\"$(WINBINDD_SOCKET_DIR)\" \
-DWINBINDD_PRIVILEGED_SOCKET_DIR=\"$(WINBINDD_PRIVILEGED_SOCKET_DIR)\" \
-DLOCALEDIR=\"$(LOCALEDIR)\" \
-DDATADIR=\"$(DATADIR)\" \
-DSETUPDIR=\"$(SETUPDIR)\"
# Note that all executable programs now provide for an optional executable suffix.
SBIN_PROGS = bin/smbd bin/nmbd @SWAT_SBIN_TARGETS@ @EXTRA_SBIN_PROGS@
BIN_PROGS1 = bin/smbclient bin/net bin/smbspool \
bin/testparm bin/smbstatus bin/smbget \
bin/smbta-util
BIN_PROGS2 = bin/smbcontrol bin/smbtree $(TDBBACKUP) \
bin/nmblookup bin/pdbedit $(TDBDUMP) \
$(TDBRESTORE) $(TDBTOOL) bin/dbwrap_tool
BIN_PROGS3 = bin/smbpasswd bin/rpcclient bin/smbcacls \
bin/profiles bin/ntlm_auth bin/sharesec \
bin/smbcquotas bin/eventlogadm
TORTURE_PROGS = bin/smbtorture3 bin/msgtest \
bin/locktest2 bin/nsstest bin/vfstest \
$(TALLOCTORT) bin/replacetort \
2011-04-23 18:49:04 +04:00
$(TDBTORTURE) $(PTHREADPOOLTEST) \
bin/smbconftort bin/vlp
BIN_PROGS = @EXTRA_BIN_PROGS@ \
$(BIN_PROGS1) $(BIN_PROGS2) $(BIN_PROGS3)
EVERYTHING_PROGS = bin/debug2html bin/smbfilter \
$(TALLOCTORT) bin/replacetort \
bin/log2pcap \
bin/vlp \
bin/dbwrap_tool \
bin/dbwrap_torture
PAM_MODULES = @PAM_MODULES@
NSS_MODULES = @NSS_MODULES@
SCRIPTS = $(srcdir)/script/smbtar $(builddir)/script/findsmb
VFS_MODULES = @VFS_MODULES@
PERFCOUNT_MODULES = @PERFCOUNT_MODULES@
PDB_MODULES = @PDB_MODULES@
IDMAP_MODULES = @IDMAP_MODULES@
AUTH_MODULES = @AUTH_MODULES@
NSS_INFO_MODULES = @NSS_INFO_MODULES@
GPEXT_MODULES = @GPEXT_MODULES@
MODULES = $(VFS_MODULES) $(PDB_MODULES) $(IDMAP_MODULES) \
$(AUTH_MODULES) $(NSS_INFO_MODULES) \
$(GPEXT_MODULES) $(PERFCOUNT_MODULES)
EXTRA_ALL_TARGETS = @EXTRA_ALL_TARGETS@
######################################################################
# object file lists
######################################################################
2008-10-12 18:53:17 +04:00
TDB_LIB_OBJ = lib/util_tdb.o ../lib/util/util_tdb.o \
../lib/tdb_wrap/tdb_wrap.o \
../lib/dbwrap/dbwrap.o \
../lib/dbwrap/dbwrap_local_open.o \
lib/dbwrap/dbwrap_open.o \
../lib/dbwrap/dbwrap_tdb.o \
lib/dbwrap/dbwrap_ctdb.o \
lib/g_lock.o \
../lib/dbwrap/dbwrap_cache.o \
lib/dbwrap/dbwrap_watch.o \
../lib/dbwrap/dbwrap_rbt.o \
../lib/dbwrap/dbwrap_util.o
TDB_VALIDATE_OBJ = lib/tdb_validate.o
SMBLDAP_OBJ = @SMBLDAP@
VERSION_OBJ = lib/version.o
WBCOMMON_OBJ = ../nsswitch/wb_common.o
AFS_OBJ = lib/afs.o
AFS_SETTOKEN_OBJ = lib/afs_settoken.o
2009-03-20 16:55:05 +03:00
AVAHI_OBJ = @AVAHI_OBJ@
SERVER_MUTEX_OBJ = lib/server_mutex.o
PASSCHANGE_OBJ = libsmb/passchange.o
LIBNDR_DRSUAPI_OBJ = ../librpc/ndr/ndr_drsuapi.o \
2008-10-15 01:46:34 +04:00
../librpc/ndr/ndr_compression.o \
autoconf/librpc/gen_ndr/ndr_drsuapi.o \
2008-10-19 01:54:49 +04:00
../librpc/ndr/ndr_drsblobs.o \
autoconf/librpc/gen_ndr/ndr_drsblobs.o
ZLIB_OBJ = @ZLIB_OBJS@
COMPRESSION_OBJ = ../lib/compression/lzxpress.o \
$(ZLIB_OBJ)
DRSUAPI_OBJ = $(LIBNDR_DRSUAPI_OBJ) \
$(COMPRESSION_OBJ)
LIBNDR_NTLMSSP_OBJ = autoconf/librpc/gen_ndr/ndr_ntlmssp.o \
../librpc/ndr/ndr_ntlmssp.o
2008-10-13 17:20:10 +04:00
LIBNDR_OBJ = ../librpc/ndr/ndr_basic.o \
2008-10-13 18:09:48 +04:00
../librpc/ndr/ndr.o \
2008-10-13 17:22:27 +04:00
../librpc/ndr/ndr_misc.o \
autoconf/librpc/gen_ndr/ndr_misc.o \
autoconf/librpc/gen_ndr/ndr_security.o \
../librpc/ndr/ndr_sec_helper.o \
../librpc/ndr/ndr_string.o \
2008-10-13 17:23:35 +04:00
../librpc/ndr/uuid.o \
../librpc/ndr/util.o \
autoconf/librpc/gen_ndr/ndr_server_id.o \
autoconf/librpc/gen_ndr/ndr_file_id.o \
autoconf/librpc/gen_ndr/ndr_dcerpc.o
LIBNDR_GEN_OBJ0 = autoconf/librpc/gen_ndr/ndr_samr.o \
autoconf/librpc/gen_ndr/ndr_lsa.o
LIBNDR_NETLOGON_OBJ = autoconf/librpc/gen_ndr/ndr_netlogon.o \
../librpc/ndr/ndr_netlogon.o
LIBNDR_SCHANNEL_OBJ = autoconf/librpc/gen_ndr/ndr_schannel.o \
../librpc/ndr/ndr_schannel.o
LIBNDR_SPOOLSS_OBJ = autoconf/librpc/gen_ndr/ndr_spoolss.o \
../librpc/ndr/ndr_spoolss_buf.o
LIBNDR_NTPRINTING_OBJ = autoconf/librpc/gen_ndr/ndr_ntprinting.o \
../librpc/ndr/ndr_ntprinting.o \
LIBNDR_PREG_OBJ = autoconf/librpc/gen_ndr/ndr_preg.o \
../librpc/ndr/ndr_preg.o
LIBNDR_XATTR_OBJ = autoconf/librpc/gen_ndr/ndr_xattr.o \
../librpc/ndr/ndr_xattr.o
LIBCLI_SPOOLSS_OBJ = autoconf/librpc/gen_ndr/ndr_spoolss_c.o \
rpc_client/cli_spoolss.o \
rpc_client/init_spoolss.o \
rpc_client/cli_winreg_spoolss.o \
printing/nt_printing_os2.o
LIBCLI_EVENTLOG_OBJ = autoconf/librpc/gen_ndr/ndr_eventlog_c.o
LIBCLI_WINREG_OBJ = autoconf/librpc/gen_ndr/ndr_winreg_c.o \
rpc_client/cli_winreg.o
LIBCLI_WINREG_INT_OBJ = $(LIBCLI_WINREG_OBJ) \
rpc_client/cli_winreg_int.o
LIBCLI_NTSVCS_OBJ = autoconf/librpc/gen_ndr/ndr_ntsvcs_c.o
LIBCLI_DRSUAPI_OBJ = autoconf/librpc/gen_ndr/ndr_drsuapi_c.o
LIBCLI_DFS_OBJ = autoconf/librpc/gen_ndr/ndr_dfs_c.o
LIBCLI_ECHO_OBJ = autoconf/librpc/gen_ndr/ndr_echo_c.o
LIBCLI_INITSHUTDOWN_OBJ = autoconf/librpc/gen_ndr/ndr_initshutdown_c.o
LIBCLI_DSSETUP_OBJ = autoconf/librpc/gen_ndr/ndr_dssetup_c.o
LIBCLI_SVCCTL_OBJ = autoconf/librpc/gen_ndr/ndr_svcctl_c.o
LIBCLI_WKSSVC_OBJ = autoconf/librpc/gen_ndr/ndr_wkssvc_c.o
LIBCLI_SRVSVC_OBJ = autoconf/librpc/gen_ndr/ndr_srvsvc_c.o
LIBCLI_LSA_OBJ = autoconf/librpc/gen_ndr/ndr_lsa_c.o \
rpc_client/cli_lsarpc.o \
rpc_client/init_lsa.o
LIBCLI_SAMR_OBJ = autoconf/librpc/gen_ndr/ndr_samr_c.o \
rpc_client/cli_samr.o
LIBCLI_NETLOGON_OBJ = autoconf/librpc/gen_ndr/ndr_netlogon_c.o \
rpc_client/cli_netlogon.o \
rpc_client/util_netlogon.o \
rpc_client/init_netlogon.o
LIBCLI_EPMAPPER_OBJ = autoconf/librpc/gen_ndr/ndr_epmapper_c.o
LIBCLI_FSRVP_OBJ = autoconf/librpc/gen_ndr/ndr_fsrvp_c.o
LIBNDR_GEN_OBJ = autoconf/librpc/gen_ndr/ndr_wkssvc.o \
$(LIBNDR_GEN_OBJ0) \
autoconf/librpc/gen_ndr/ndr_dfs.o \
autoconf/librpc/gen_ndr/ndr_dfsblobs.o \
autoconf/librpc/gen_ndr/ndr_echo.o \
autoconf/librpc/gen_ndr/ndr_winreg.o \
autoconf/librpc/gen_ndr/ndr_initshutdown.o \
autoconf/librpc/gen_ndr/ndr_srvsvc.o \
autoconf/librpc/gen_ndr/ndr_eventlog.o \
$(LIBNDR_NETLOGON_OBJ) \
autoconf/librpc/gen_ndr/ndr_dssetup.o \
autoconf/librpc/gen_ndr/ndr_epmapper.o \
autoconf/librpc/gen_ndr/ndr_ntsvcs.o \
$(LIBNDR_SPOOLSS_OBJ) \
autoconf/librpc/gen_ndr/ndr_fsrvp.o
# this includes only the low level parse code, not stuff
# that requires knowledge of security contexts
REG_PARSE_PRS_OBJ = registry/reg_parse_prs.o
LIBREPLACE_OBJ = @LIBREPLACE_OBJS@
SOCKET_WRAPPER_OBJ = @SOCKET_WRAPPER_OBJS@
NSS_WRAPPER_OBJ = @NSS_WRAPPER_OBJS@
UID_WRAPPER_OBJ = @UID_WRAPPER_OBJS@
LIBSAMBAUTIL_OBJ = \
$(LIBREPLACE_OBJ) \
$(SOCKET_WRAPPER_OBJ) \
$(UID_WRAPPER_OBJ) \
$(NSS_WRAPPER_OBJ)
UTIL_OBJ = ../lib/util/rbtree.o ../lib/util/signal.o ../lib/util/time.o \
../lib/util/xfile.o ../lib/util/util_strlist.o \
../lib/util/util_file.o ../lib/util/data_blob.o \
../lib/util/util.o ../lib/util/util_paths.o ../lib/util/fsusage.o \
2008-10-23 20:46:35 +04:00
../lib/util/params.o ../lib/util/talloc_stack.o \
../lib/util/genrand.o ../lib/util/util_net.o \
2009-02-22 21:47:54 +03:00
../lib/util/become_daemon.o ../lib/util/system.o \
../lib/util/tevent_unix.o ../lib/util/tevent_ntstatus.o \
../lib/util/tevent_werror.o \
lib/tevent_barrier.o \
../lib/util/smb_threads.o ../lib/util/util_id.o \
2010-10-01 12:08:15 +04:00
../lib/util/blocking.o ../lib/util/rfc1738.o \
../lib/util/select.o ../lib/util/util_pw.o ../lib/util/server_id.o \
../lib/util/setid.o ../lib/util/pidfile.o ../lib/util/getpass.o
CRYPTO_OBJ = ../lib/crypto/crc32.o @CRYPTO_MD5_OBJ@ \
../lib/crypto/hmacmd5.o ../lib/crypto/arcfour.o \
../lib/crypto/md4.o \
../lib/crypto/sha256.o ../lib/crypto/hmacsha256.o \
../lib/crypto/aes.o ../lib/crypto/rijndael-alg-fst.o \
2012-07-20 09:37:48 +04:00
../lib/crypto/aes_cmac_128.o ../lib/crypto/aes_ccm_128.o
LIB_OBJ = $(LIBSAMBAUTIL_OBJ) $(UTIL_OBJ) $(CRYPTO_OBJ) $(LIBTSOCKET_OBJ) \
lib/messages.o autoconf/librpc/gen_ndr/ndr_messaging.o lib/messages_local.o \
lib/messages_ctdbd.o lib/ctdb_packet.o lib/ctdbd_conn.o \
lib/ctdb_conn.o \
lib/msg_channel.o \
lib/id_cache.o \
../lib/socket/interfaces.o lib/memcache.o \
2009-08-16 12:44:06 +04:00
lib/talloc_dict.o \
s3: Fix a long-standing problem with recycled PIDs When a samba server process dies hard, it has no chance to clean up its entries in locking.tdb, brlock.tdb, connections.tdb and sessionid.tdb. For locking.tdb and brlock.tdb Samba is robust by checking every time we read an entry from the database if the corresponding process still exists. If it does not exist anymore, the entry is deleted. This is not 100% failsafe though: On systems with a limited PID space there is a non-zero chance that between the smbd's death and the fresh access, the PID is recycled by another long-running process. This renders all files that had been locked by the killed smbd potentially unusable until the new process also dies. This patch is supposed to fix the problem the following way: Every process ID in every database is augmented by a random 64-bit number that is stored in a serverid.tdb. Whenever we need to check if a process still exists we know its PID and the 64-bit number. We look up the PID in serverid.tdb and compare the 64-bit number. If it's the same, the process still is a valid smbd holding the lock. If it is different, a new smbd has taken over. I believe this is safe against an smbd that has died hard and the PID has been taken over by a non-samba process. This process would not have registered itself with a fresh 64-bit number in serverid.tdb, so the old one still exists in serverid.tdb. We protect against this case by the parent smbd taking care of deregistering PIDs from serverid.tdb and the fact that serverid.tdb is CLEAR_IF_FIRST. CLEAR_IF_FIRST does not work in a cluster, so the automatic cleanup does not work when all smbds are restarted. For this, "net serverid wipe" has to be run before smbd starts up. As a convenience, "net serverid wipedbs" also cleans up sessionid.tdb and connections.tdb. While there, this also cleans up overloading connections.tdb with all the process entries just for messaging_send_all(). Volker
2010-03-02 19:02:01 +03:00
lib/serverid.o \
lib/asys/asys.o \
2009-04-09 01:03:59 +04:00
lib/util_transfer_file.o ../lib/async_req/async_sock.o \
lib/addrchange.o \
$(TDB_LIB_OBJ) \
$(VERSION_OBJ) lib/charcnv.o ../lib/util/charset/convert_string.o \
../lib/util/charset/pull_push.o \
lib/fstring.o ../lib/util/debug.o ../lib/util/debug_s3.o ../lib/util/fault.o \
lib/interface.o lib/dumpcore.o \
lib/system.o lib/sendfile.o lib/recvfile.o lib/time.o \
2008-10-23 20:46:35 +04:00
lib/username.o \
../libds/common/flag_mapping.o \
lib/access.o lib/smbrun.o \
2011-07-07 15:04:31 +04:00
../lib/util/bitmap.o ../lib/util/dprintf.o $(UTIL_REG_OBJ) \
lib/wins_srv.o \
lib/util_str.o ../lib/util/util_str_common.o \
../lib/util/util_str.o \
../lib/util/base64.o lib/util_sid.o \
../lib/util/charset/util_unistr.o \
../lib/util/charset/util_unistr_w.o ../lib/util/charset/codepoints.o ../lib/util/charset/util_str.o lib/util_file.o \
lib/util.o lib/util_malloc.o lib/namearray.o lib/util_cmdline.o lib/util_names.o \
lib/util_sock.o lib/sock_exec.o lib/util_sec.o \
lib/substitute.o lib/substitute_generic.o ../lib/util/substitute.o \
lib/ms_fnmatch.o ../lib/util/ms_fnmatch.o lib/errmap_unix.o ../libcli/util/errmap_unix.o \
lib/tallocmsg.o lib/dmallocmsg.o \
../libcli/smb/smb_signing.o \
../lib/util/charset/iconv.o ../lib/util/charset/weird.o \
../lib/util/charset/charset_macosxfs.o intl/lang_tdb.o \
lib/adt_tree.o lib/gencache.o \
../lib/util/modules.o lib/events.o ../lib/util/tevent_debug.o @LIBTEVENT_OBJ0@ \
@CCAN_OBJ@ \
lib/server_contexts.o \
lib/server_prefork.o \
lib/server_prefork_util.o \
lib/ldap_escape.o \
../libcli/security/secdesc.o ../libcli/security/access_check.o \
../libcli/security/secace.o ../libcli/security/object_tree.o \
../libcli/security/sddl.o ../libcli/security/session.o \
../libcli/security/secacl.o @PTHREADPOOL_OBJ@ \
2009-04-25 22:02:24 +04:00
lib/fncall.o \
libads/krb5_errs.o lib/system_smbd.o lib/audit.o $(LIBNDR_OBJ) \
lib/file_id.o lib/idmap_cache.o \
lib/tevent_wait.o \
../libcli/security/dom_sid.o ../libcli/security/security_descriptor.o \
../libcli/security/security_token.o ../libcli/security/util_sid.o \
../libcli/smb/util.o ../lib/util/idtree.o
LIB_DUMMY_OBJ = lib/smbd_shim.o lib/dummyparam.o
LIB_NONSMBD_OBJ = $(LIB_OBJ) $(LIB_DUMMY_OBJ)
READLINE_OBJ = ../libcli/smbreadline/smbreadline.o
# Also depends on $(SECRETS_OBJ) $(LIBSAMBA_OBJ)
# Be sure to include them into your application
POPT_LIB_OBJ = lib/popt_common.o
PARAM_WITHOUT_REG_OBJ = ../dynconfig/dynconfig.o param/loadparm.o param/loadparm_ctx.o ../lib/param/loadparm_server_role.o param/util.o lib/sharesec.o lib/ldap_debug_handler.o ../lib/param/loadparm.o ../lib/param/util.o
PARAM_REG_ADD_OBJ = $(REG_SMBCONF_OBJ) $(LIBSMBCONF_OBJ) $(PRIVILEGES_BASIC_OBJ)
r23509: This activates the global options from the registry in loadparm. The global options are stored as values in the subkey "global" of the SMBCONF registry key. The activation is accomplished in smb.conf though a new special semantic of the "include" parameter: "include = registry" triggers the processing of the registry global options exactly at the position of the include statement. Options read from the registry take the same precedence as parameters loaded from a file via include. Need to reload the registry globals is detected by watching the tdb sequence number. Registry shares are automatically activated when the registry globals are processed. So a "registry only" configuration can be realized by an smb.conf that looks as follows: ================================ [global] include = registry ================================ The global options and registry shares can be conveniently edited with the "net conf" utility. Caveat: A possible pitfall consists in using "include = registry" together with the "lock directory" directive in the registry. This problem will be addressed in the next time. Note on the code: Processing of the registry options is accomplished by a function process_registry_globals() in loadparm.c The current version is only an interim solution: It is handcoded instead of using the infrastructure of reg_api.c. The reason for this is that using reg_api still has too large linker dependencies, bloating virtually all targets by PASSDB_OBJ, SMBLDAP_OBJ, GROUPDB_OBJ and LDB stuff. A version of process_registry_globals that uses reg_api is included but commented out. The goal is to eventually refactor and restructure the registry code so that one can use the reg_api to access only the registry tdb and not link all the dynamic backends with all their linking implications. (This used to be commit 24b0cbcb3741dd14b04728448a85cc04a057e7d0)
2007-06-16 01:38:10 +04:00
PARAM_OBJ = $(PARAM_WITHOUT_REG_OBJ) $(PARAM_REG_ADD_OBJ)
KRBCLIENT_OBJ = libads/kerberos.o libads/ads_status.o
LIBADDNS_OBJ0 = ../lib/addns/dnsrecord.o ../lib/addns/dnsutils.o ../lib/addns/dnssock.o \
../lib/addns/dnsgss.o ../lib/addns/dnsmarshall.o ../lib/addns/error.o
LIBADDNS_OBJ = $(LIBADDNS_OBJ0) $(SOCKET_WRAPPER_OBJ)
GPEXT_OBJ = ../libgpo/gpext/gpext.o @GPEXT_STATIC@
LIBGPO_OBJ0 = ../libgpo/gpo_ldap.o ../libgpo/gpo_ini.o ../libgpo/gpo_util.o \
../libgpo/gpo_fetch.o libgpo/gpo_filesync.o ../libgpo/gpo_sec.o \
libgpo/gpo_reg.o \
$(GPEXT_OBJ)
LIBGPO_OBJ = $(LIBGPO_OBJ0)
LIBADS_OBJ = libads/ldap.o \
libads/sasl.o libads/sasl_wrapping.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/ldap_utils.o \
libads/ldap_schema.o libads/util.o libads/ndr.o
LIBADS_SERVER_OBJ = libads/authdata.o ../auth/kerberos/kerberos_pac.o \
2008-10-15 01:52:20 +04:00
../librpc/ndr/ndr_krb5pac.o \
autoconf/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 \
autoconf/librpc/gen_ndr/ndr_secrets.o \
passdb/secrets_lsa.o
LIBNBT_OBJ = ../libcli/nbt/nbtname.o \
../libcli/netlogon/netlogon.o \
autoconf/librpc/gen_ndr/ndr_nbt.o \
../librpc/ndr/ndr_nbt.o \
autoconf/librpc/gen_ndr/ndr_svcctl.o \
../librpc/ndr/ndr_svcctl.o
LIBNMB_OBJ = libsmb/unexpected.o libsmb/namecache.o libsmb/nmblib.o \
libsmb/namequery.o ../libcli/nbt/lmhosts.o ../libcli/dns/dns_hosts_file.o libsmb/conncache.o \
../lib/addns/dnsquery.o libads/sitename_cache.o
NTERR_OBJ = ../libcli/util/nterr.o libsmb/smberr.o
2008-11-01 19:28:16 +03:00
DOSERR_OBJ = ../libcli/util/doserr.o
ERRORMAP_OBJ = ../libcli/util/errormap.o libsmb/errormap.o
DCE_RPC_ERR_OBJ = ../librpc/rpc/dcerpc_error.o
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) \
$(SECRETS_OBJ)
LIBSMB_OBJ0 = \
../lib/util/asn1.o \
../libcli/auth/spnego_parse.o \
../libcli/auth/ntlm_check.o \
libsmb/ntlmssp.o \
libsmb/ntlmssp_wrap.o \
libsmb/auth_generic.o \
../lib/krb5_wrap/krb5_samba.o \
libsmb/clispnego.o \
../auth/gensec/gensec.o \
../auth/gensec/gensec_start.o \
../auth/gensec/gensec_util.o \
../auth/gensec/spnego.o \
../auth/credentials/credentials.o \
../auth/credentials/credentials_ntlm.o \
../auth/credentials/credentials_samba3.o \
../auth/ntlmssp/ntlmssp.o \
../auth/ntlmssp/ntlmssp_util.o \
../auth/ntlmssp/ntlmssp_sign.o \
../auth/ntlmssp/ntlmssp_client.o \
../auth/ntlmssp/gensec_ntlmssp.o \
../auth/ntlmssp/gensec_ntlmssp_server.o \
$(LIBNDR_NTLMSSP_OBJ) \
../auth/ntlmssp/ntlmssp_ndr.o \
../auth/ntlmssp/ntlmssp_server.o
LIBSAMBA_OBJ = $(LIBSMB_OBJ0) \
$(LIBSMB_ERR_OBJ)
LIBCLI_LDAP_MESSAGE_OBJ = ../libcli/ldap/ldap_message.o
LIBCLI_LDAP_NDR_OBJ = ../libcli/ldap/ldap_ndr.o ../lib/ldb/common/ldb_parse.o
LIBTSOCKET_OBJ = ../lib/tsocket/tsocket.o \
../lib/tsocket/tsocket_helpers.o \
../lib/tsocket/tsocket_bsd.o
CLDAP_OBJ = libads/cldap.o \
../libcli/cldap/cldap.o \
$(LIBCLI_LDAP_MESSAGE_OBJ) $(LIBCLI_LDAP_NDR_OBJ)
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 \
$(LIBNDR_SCHANNEL_OBJ)
LIBSMB_OBJ = libsmb/clientgen.o libsmb/cliconnect.o libsmb/clifile.o \
libsmb/reparse_symlink.o \
2011-06-23 18:49:17 +04:00
libsmb/clisymlink.o \
libsmb/clirap.o libsmb/clierror.o libsmb/climessage.o \
libsmb/clireadwrite.o libsmb/clilist.o libsmb/cliprint.o \
libsmb/clitrans.o libsmb/clisecdesc.o libsmb/clidgram.o \
libsmb/clistr.o libsmb/cliquota.o libsmb/clifsinfo.o libsmb/clidfs.o \
libsmb/clioplock.o libsmb/clirap2.o \
libsmb/async_smb.o \
../libcli/smb/smb_seal.o \
../libcli/smb/read_smb.o \
../libcli/smb/smbXcli_base.o \
../libcli/smb/smb1cli_trans.o \
2012-09-28 21:53:16 +04:00
../libcli/smb/smb1cli_echo.o \
../libcli/smb/smb2cli_session.o \
libsmb/smb2cli_tcon.o \
../libcli/smb/smb2cli_create.o \
../libcli/smb/smb2_create_blob.o \
../libcli/smb/smb2_signing.o \
../libcli/smb/smb2cli_close.o \
../libcli/smb/smb2cli_flush.o \
../libcli/smb/smb2cli_read.o \
../libcli/smb/smb2cli_write.o \
../libcli/smb/smb2cli_query_directory.o \
../libcli/smb/smb2cli_ioctl.o \
../libcli/smb/smb2cli_query_info.o \
../libcli/smb/smb2cli_set_info.o \
2012-09-28 21:18:37 +04:00
../libcli/smb/smb2cli_echo.o \
libsmb/cli_np_tstream.o \
libsmb/smbsock_connect.o \
$(LIBSAMBA_OBJ) \
$(LIBNMB_OBJ) \
$(LIBNBT_OBJ) \
$(CLDAP_OBJ) \
$(DRSUAPI_OBJ)
LIBMSRPC_OBJ = $(SCHANNEL_OBJ) \
rpc_client/cli_pipe.o \
$(LIBCLI_NETLOGON_OBJ) \
librpc/crypto/gse_krb5.o \
librpc/crypto/gse.o \
../auth/kerberos/gssapi_pac.o \
../lib/krb5_wrap/gss_samba.o \
librpc/rpc/rpc_common.o \
rpc_client/rpc_transport_np.o \
rpc_client/rpc_transport_sock.o \
rpc_client/rpc_transport_tstream.o \
../librpc/rpc/binding.o \
../librpc/rpc/dcerpc_util.o \
../librpc/rpc/binding_handle.o \
librpc/rpc/dcerpc_helpers.o \
$(LIBCLI_EPMAPPER_OBJ)
LIBMSRPC_GEN_OBJ = $(LIBNDR_GEN_OBJ)
#
# registry-related objects
#
UTIL_REG_OBJ = ../libcli/registry/util_reg.o
REG_INIT_BASIC_OBJ = registry/reg_init_basic.o
REG_INIT_SMBCONF_OBJ = registry/reg_init_smbconf.o
REG_INIT_FULL_OBJ = registry/reg_init_full.o
REGFIO_OBJ = registry/regfio.o \
$(REG_PARSE_PRS_OBJ)
REG_API_REGF_OBJ = registry/reg_api_regf.o
REGOBJS_OBJ = registry/reg_objects.o
REG_BACKENDS_BASE_OBJ = registry/reg_backend_db.o
REG_BACKENDS_SMBCONF_OBJ = registry/reg_backend_smbconf.o
REG_BACKENDS_EXTRA_OBJ = registry/reg_backend_printing.o \
registry/reg_backend_shares.o \
registry/reg_backend_netlogon_params.o \
registry/reg_backend_prod_options.o \
registry/reg_backend_tcpip_params.o \
registry/reg_backend_hkpt_params.o \
registry/reg_backend_current_version.o \
registry/reg_backend_perflib.o
REG_BASE_OBJ = registry/reg_api.o \
registry/reg_dispatcher.o \
registry/reg_cachehook.o \
$(REGOBJS_OBJ) \
registry/reg_util_internal.o \
lib/util_nttoken.o \
$(REG_BACKENDS_BASE_OBJ) \
registry/reg_parse_internal.o \
lib/cbuf.o lib/srprs.o \
$(REG_INIT_BASIC_OBJ)
REG_SMBCONF_OBJ = $(REG_BASE_OBJ) \
registry/reg_util_token.o \
registry/reg_api_util.o \
$(REG_BACKENDS_SMBCONF_OBJ) \
$(REG_INIT_SMBCONF_OBJ)
REG_FULL_OBJ = $(REG_SMBCONF_OBJ) \
$(REG_BACKENDS_EXTRA_OBJ) \
$(REG_INIT_FULL_OBJ) \
registry/reg_perfcount.o \
autoconf/librpc/gen_ndr/ndr_perfcount.o
LIB_EVENTLOG_OBJ = lib/eventlog/eventlog.o
DCE_RPC_EP_OBJ = librpc/rpc/dcerpc_ep.o
RPC_LSARPC_OBJ = rpc_server/lsa/srv_lsa_nt.o \
autoconf/librpc/gen_ndr/srv_lsa.o \
../libcli/lsarpc/util_lsarpc.o
RPC_NETLOGON_OBJ = rpc_server/netlogon/srv_netlog_nt.o \
autoconf/librpc/gen_ndr/srv_netlogon.o
RPC_SAMR_OBJ = rpc_server/samr/srv_samr_nt.o \
rpc_server/samr/srv_samr_util.o \
rpc_server/samr/srv_samr_chgpasswd.o \
autoconf/librpc/gen_ndr/srv_samr.o
RPC_INITSHUTDOWN_OBJ = autoconf/librpc/gen_ndr/srv_initshutdown.o rpc_server/initshutdown/srv_initshutdown_nt.o
RPC_WINREG_OBJ = rpc_server/winreg/srv_winreg_nt.o \
autoconf/librpc/gen_ndr/srv_winreg.o
RPC_DSSETUP_OBJ = rpc_server/dssetup/srv_dssetup_nt.o autoconf/librpc/gen_ndr/srv_dssetup.o
RPC_SRVSVC_OBJ = rpc_server/srvsvc/srv_srvsvc_nt.o \
autoconf/librpc/gen_ndr/srv_srvsvc.o
RPC_WKSSVC_OBJ = autoconf/librpc/gen_ndr/srv_wkssvc.o \
rpc_server/wkssvc/srv_wkssvc_nt.o
RPC_SVCCTL_OBJ = rpc_server/svcctl/srv_svcctl_nt.o \
rpc_server/svcctl/srv_svcctl_reg.o \
autoconf/librpc/gen_ndr/srv_svcctl.o \
services/svc_winreg_glue.o \
services/svc_spoolss.o services/svc_rcinit.o \
services/svc_netlogon.o services/svc_winreg.o \
services/svc_wins.o
RPC_NTSVCS_OBJ = rpc_server/ntsvcs/srv_ntsvcs_nt.o \
autoconf/librpc/gen_ndr/srv_ntsvcs.o
RPC_NETDFS_OBJ = autoconf/librpc/gen_ndr/srv_dfs.o \
rpc_server/dfs/srv_dfs_nt.o
RPC_SPOOLSS_OBJ = rpc_server/spoolss/srv_spoolss_nt.o \
rpc_server/spoolss/srv_spoolss_util.o \
autoconf/librpc/gen_ndr/srv_spoolss.o
RPC_EVENTLOG_OBJ = rpc_server/eventlog/srv_eventlog_nt.o \
rpc_server/eventlog/srv_eventlog_reg.o \
$(LIB_EVENTLOG_OBJ) autoconf/librpc/gen_ndr/srv_eventlog.o
NPA_TSTREAM_OBJ = ../libcli/named_pipe_auth/npa_tstream.o \
autoconf/librpc/gen_ndr/ndr_named_pipe_auth.o \
../auth/auth_sam_reply.o autoconf/librpc/gen_ndr/ndr_auth.o ../librpc/ndr/ndr_auth.o
RPC_NCACN_NP = rpc_server/srv_pipe_register.o rpc_server/rpc_ncacn_np.o \
rpc_server/rpc_handles.o rpc_server/rpc_contexts.o \
rpc_server/srv_access_check.o
RPC_CONFIG = rpc_server/rpc_config.o
RPC_SERVICE = rpc_server/rpc_server.o
RPC_CRYPTO = rpc_server/dcesrv_auth_generic.o
RPC_PIPE_OBJ = rpc_server/srv_pipe.o rpc_server/srv_pipe_hnd.o \
$(RPC_CONFIG) $(RPC_NCACN_NP) $(RPC_SERVICE) $(RPC_CRYPTO)
RPC_RPCECHO_OBJ = rpc_server/echo/srv_echo_nt.o autoconf/librpc/gen_ndr/srv_echo.o
RPC_EPMAPPER_OBJ = rpc_server/epmapper/srv_epmapper.o autoconf/librpc/gen_ndr/srv_epmapper.o
RPC_SERVER_REGISTER_OBJ = rpc_server/rpc_ep_register.o $(DCE_RPC_EP_OBJ)
RPC_SERVER_OBJ = $(RPC_LSARPC_OBJ) $(RPC_WINREG_OBJ) $(RPC_INITSHUTDOWN_OBJ) \
$(RPC_DSSETUP_OBJ) $(RPC_WKSSVC_OBJ) $(RPC_SVCCTL_OBJ) \
$(RPC_NTSVCS_OBJ) $(RPC_NETLOGON_OBJ) $(RPC_NETDFS_OBJ) \
$(RPC_SRVSVC_OBJ) $(RPC_SPOOLSS_OBJ) $(RPC_EVENTLOG_OBJ) \
$(RPC_SAMR_OBJ) $(RPC_RPCECHO_OBJ) $(RPC_EPMAPPER_OBJ) \
$(RPC_PIPE_OBJ) $(NPA_TSTREAM_OBJ) \
$(LIBCLI_SPOOLSS_OBJ) \
$(LIBCLI_WINREG_INT_OBJ) \
$(LIBCLI_SRVSVC_OBJ) \
$(LIBCLI_LSA_OBJ) \
$(LIBCLI_SAMR_OBJ) \
$(RPC_SERVER_REGISTER_OBJ) \
$(RPC_CLIENT_SCHANNEL_OBJ) \
rpc_server/rpc_sock_helper.o \
rpc_server/rpc_service_setup.o \
rpc_client/init_samr.o
RPC_CLIENT_SCHANNEL_OBJ = rpc_client/cli_pipe_schannel.o
2011-11-24 17:11:28 +04:00
LOCKING_OBJ = locking/locking.o locking/brlock.o locking/posix.o \
autoconf/librpc/gen_ndr/ndr_open_files.o locking/share_mode_lock.o
PRIVILEGES_BASIC_OBJ = ../libcli/security/privileges.o
PRIVILEGES_OBJ = lib/privileges.o
PASSDB_GET_SET_OBJ = passdb/pdb_get_set.o
PASSDB_OBJ = $(PASSDB_GET_SET_OBJ) passdb/passdb.o passdb/pdb_interface.o \
lib/util_wellknown.o lib/util_builtin.o passdb/pdb_compat.o \
lib/util_sid_passdb.o \
lib/util_unixsids.o passdb/lookup_sid.o \
passdb/login_cache.o @PDB_STATIC@ \
passdb/account_pol.o $(PRIVILEGES_OBJ) \
lib/util_nscd.o lib/winbind_util.o $(SERVER_MUTEX_OBJ) \
passdb/pdb_util.o passdb/pdb_ldap_schema.o \
passdb/pdb_secrets.o
DEVEL_HELP_WEIRD_OBJ = ../lib/util/charset/weird.o
CHARSET_MACOSXFS_OBJ = ../lib/util/charset/charset_macosxfs.o
GROUPDB_OBJ = groupdb/mapping.o groupdb/mapping_tdb.o
PROFILE_OBJ = profile/profile.o
PROFILES_OBJ = utils/profiles.o \
2010-01-04 00:28:33 +03:00
$(LIBSMB_ERR_OBJ) \
$(PARAM_OBJ) \
$(LIB_OBJ) $(LIB_DUMMY_OBJ) \
$(POPT_LIB_OBJ) \
$(REGFIO_OBJ)
OPLOCK_OBJ = smbd/oplock.o smbd/oplock_irix.o smbd/oplock_linux.o
NOTIFY_OBJ = smbd/notify.o smbd/notify_inotify.o smbd/notify_internal.o \
autoconf/librpc/gen_ndr/ndr_notify.o
FNAME_UTIL_OBJ = lib/filename_util.o
NFS4ACL_OBJ = modules/nfs4_acls.o modules/non_posix_acls.o
VFS_DEFAULT_OBJ = modules/vfs_default.o
VFS_AUDIT_OBJ = modules/vfs_audit.o
VFS_EXTD_AUDIT_OBJ = modules/vfs_extd_audit.o
VFS_FULL_AUDIT_OBJ = modules/vfs_full_audit.o
VFS_FAKE_PERMS_OBJ = modules/vfs_fake_perms.o
VFS_FAKE_ACLS_OBJ = modules/vfs_fake_acls.o autoconf/librpc/gen_ndr/ndr_smb_acl.o
VFS_RECYCLE_OBJ = modules/vfs_recycle.o
VFS_NETATALK_OBJ = modules/vfs_netatalk.o
VFS_DEFAULT_QUOTA_OBJ = modules/vfs_default_quota.o
VFS_READONLY_OBJ = modules/vfs_readonly.o modules/getdate.o
VFS_CAP_OBJ = modules/vfs_cap.o
VFS_EXPAND_MSDFS_OBJ = modules/vfs_expand_msdfs.o
VFS_SHADOW_COPY_OBJ = modules/vfs_shadow_copy.o
VFS_SHADOW_COPY2_OBJ = modules/vfs_shadow_copy2.o
VFS_AFSACL_OBJ = modules/vfs_afsacl.o
VFS_XATTR_TDB_OBJ = modules/vfs_xattr_tdb.o lib/xattr_tdb.o
VFS_POSIXACL_OBJ = modules/vfs_posixacl.o
VFS_AIXACL_OBJ = modules/vfs_aixacl.o modules/vfs_aixacl_util.o
VFS_AIXACL2_OBJ = modules/vfs_aixacl2.o modules/vfs_aixacl_util.o $(NFS4ACL_OBJ)
VFS_SOLARISACL_OBJ = modules/vfs_solarisacl.o
VFS_ZFSACL_OBJ = modules/vfs_zfsacl.o $(NFS4ACL_OBJ)
VFS_HPUXACL_OBJ = modules/vfs_hpuxacl.o
VFS_TRU64ACL_OBJ = modules/vfs_tru64acl.o
VFS_CATIA_OBJ = modules/vfs_catia.o
VFS_STREAMS_XATTR_OBJ = modules/vfs_streams_xattr.o
VFS_STREAMS_DEPOT_OBJ = modules/vfs_streams_depot.o
VFS_CACHEPRIME_OBJ = modules/vfs_cacheprime.o
VFS_PREALLOC_OBJ = modules/vfs_prealloc.o
VFS_COMMIT_OBJ = modules/vfs_commit.o
VFS_GPFS_OBJ = modules/vfs_gpfs.o modules/gpfs.o $(NFS4ACL_OBJ)
VFS_NOTIFY_FAM_OBJ = modules/vfs_notify_fam.o
VFS_READAHEAD_OBJ = modules/vfs_readahead.o
VFS_TSMSM_OBJ = modules/vfs_tsmsm.o
VFS_FILEID_OBJ = modules/vfs_fileid.o
VFS_AIO_FORK_OBJ = modules/vfs_aio_fork.o
VFS_AIO_PTHREAD_OBJ = modules/vfs_aio_pthread.o
VFS_AIO_POSIX_OBJ = modules/vfs_aio_posix.o
VFS_AIO_LINUX_OBJ = modules/vfs_aio_linux.o
VFS_PREOPEN_OBJ = modules/vfs_preopen.o
VFS_SYNCOPS_OBJ = modules/vfs_syncops.o
VFS_ACL_XATTR_OBJ = modules/vfs_acl_xattr.o
VFS_ACL_TDB_OBJ = modules/vfs_acl_tdb.o
VFS_SMB_TRAFFIC_ANALYZER_OBJ = modules/vfs_smb_traffic_analyzer.o
PERFCOUNT_TEST_OBJ = modules/perfcount_test.o
2009-03-22 13:06:52 +03:00
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
VFS_TIME_AUDIT_OBJ = modules/vfs_time_audit.o
VFS_MEDIA_HARMONY_OBJ = modules/vfs_media_harmony.o
PAM_ERRORS_OBJ = ../libcli/auth/pam_errors.o
PLAINTEXT_AUTH_OBJ = auth/pampass.o auth/pass_check.o $(PAM_ERRORS_OBJ)
SLCACHE_OBJ = libsmb/samlogon_cache.o
DCUTIL_OBJ = libsmb/namequery_dc.o libsmb/trustdom_cache.o libsmb/trusts_util.o libsmb/dsgetdcname.o
AUTH_BUILTIN_OBJ = auth/auth_builtin.o
AUTH_DOMAIN_OBJ = auth/auth_domain.o
AUTH_SAM_OBJ = auth/auth_sam.o auth/check_samsec.o
AUTH_UNIX_OBJ = auth/auth_unix.o
AUTH_WINBIND_OBJ = auth/auth_winbind.o
AUTH_WBC_OBJ = auth/auth_wbc.o
AUTH_SCRIPT_OBJ = auth/auth_script.o
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/user_krb5.o \
auth/auth_ntlmssp.o auth/auth_generic.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/server_exit.o
BUILDOPT_OBJ = smbd/build_options.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/conn_idle.o smbd/conn_msg.o \
smbd/share_access.o smbd/fileio.o \
smbd/ipc.o smbd/lanman.o smbd/negprot.o \
smbd/message.o smbd/nttrans.o smbd/pipes.o \
smbd/reply.o smbd/sesssetup.o smbd/trans2.o smbd/uid.o \
smbd/dosmode.o smbd/filename.o smbd/open.o smbd/close.o \
smbd/blocking.o smbd/sec_ctx.o smbd/srvstr.o \
smbd/vfs.o smbd/perfcount.o smbd/statcache.o smbd/seal.o \
smbd/posix_acls.o lib/sysacls.o autoconf/librpc/gen_ndr/ndr_smb_acl.o\
smbd/process.o smbd/service.o param/service.o smbd/error.o \
rpc_server/epmd.o \
rpc_server/lsasd.o \
printing/printspoolss.o printing/spoolssd.o \
lib/sysquotas.o lib/sysquotas_linux.o \
lib/sysquotas_xfs.o lib/sysquotas_4A.o lib/sysquotas_4B.o \
lib/sysquotas_nfs.o \
lib/smbd_shim.o \
lib/background.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 \
smbd/file_access.o \
smbd/dnsregister.o smbd/globals.o \
smbd/smb2_server.o \
smbd/smb2_glue.o \
smbd/smb2_negprot.o \
smbd/smb2_sesssetup.o \
smbd/smb2_tcon.o \
smbd/smb2_create.o \
2009-06-02 15:42:28 +04:00
smbd/smb2_close.o \
smbd/smb2_flush.o \
smbd/smb2_read.o \
smbd/smb2_write.o \
smbd/smb2_lock.o \
smbd/smb2_ioctl.o \
smbd/smb2_ioctl_dfs.o \
smbd/smb2_ioctl_filesys.o \
smbd/smb2_ioctl_named_pipe.o \
smbd/smb2_ioctl_network_fs.o \
smbd/smb2_keepalive.o \
smbd/smb2_find.o \
smbd/smb2_notify.o \
smbd/smb2_getinfo.o \
smbd/smb2_setinfo.o \
smbd/smb2_break.o \
2011-12-15 17:45:56 +04:00
autoconf/librpc/gen_ndr/ndr_smbXsrv.o \
smbd/smbXsrv_version.o \
smbd/smbXsrv_session.o \
smbd/smbXsrv_tcon.o \
smbd/smbXsrv_open.o \
smbd/durable.o \
autoconf/librpc/gen_ndr/ndr_ioctl.o \
$(MANGLE_OBJ) @VFS_STATIC@
r23509: This activates the global options from the registry in loadparm. The global options are stored as values in the subkey "global" of the SMBCONF registry key. The activation is accomplished in smb.conf though a new special semantic of the "include" parameter: "include = registry" triggers the processing of the registry global options exactly at the position of the include statement. Options read from the registry take the same precedence as parameters loaded from a file via include. Need to reload the registry globals is detected by watching the tdb sequence number. Registry shares are automatically activated when the registry globals are processed. So a "registry only" configuration can be realized by an smb.conf that looks as follows: ================================ [global] include = registry ================================ The global options and registry shares can be conveniently edited with the "net conf" utility. Caveat: A possible pitfall consists in using "include = registry" together with the "lock directory" directive in the registry. This problem will be addressed in the next time. Note on the code: Processing of the registry options is accomplished by a function process_registry_globals() in loadparm.c The current version is only an interim solution: It is handcoded instead of using the infrastructure of reg_api.c. The reason for this is that using reg_api still has too large linker dependencies, bloating virtually all targets by PASSDB_OBJ, SMBLDAP_OBJ, GROUPDB_OBJ and LDB stuff. A version of process_registry_globals that uses reg_api is included but commented out. The goal is to eventually refactor and restructure the registry code so that one can use the reg_api to access only the registry tdb and not link all the dynamic backends with all their linking implications. (This used to be commit 24b0cbcb3741dd14b04728448a85cc04a057e7d0)
2007-06-16 01:38:10 +04:00
SMBD_OBJ_BASE = $(PARAM_WITHOUT_REG_OBJ) $(SMBD_OBJ_SRV) $(LIBSMB_OBJ) \
$(RPC_SERVER_OBJ) \
$(LOCKING_OBJ) $(PASSDB_OBJ) $(PRINTING_OBJ) $(PROFILE_OBJ) \
$(LIB_OBJ) $(PRINTBACKEND_OBJ) $(OPLOCK_OBJ) \
$(NOTIFY_OBJ) $(FNAME_UTIL_OBJ) $(GROUPDB_OBJ) $(AUTH_OBJ) \
2009-03-20 16:55:05 +03:00
$(LIBMSRPC_OBJ) $(LIBMSRPC_GEN_OBJ) $(AVAHI_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) \
$(PRIVILEGES_BASIC_OBJ) \
$(REGFIO_OBJ) \
$(REG_API_REGF_OBJ) \
$(LIBNDR_XATTR_OBJ) \
lib/conn_tdb.o lib/sessionid_tdb.o
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_standard.o \
printing/printer_list.o autoconf/librpc/gen_ndr/ndr_printcap.o
PRINTBASE_OBJ = printing/notify.o printing/printing_db.o
PRINTBACKEND_OBJ = printing/printing.o \
printing/nt_printing.o \
printing/nt_printing_tdb.o \
printing/nt_printing_migrate.o \
printing/nt_printing_migrate_internal.o \
printing/nt_printing_ads.o \
autoconf/librpc/gen_ndr/ndr_ntprinting.o \
../librpc/ndr/ndr_ntprinting.o \
printing/queue_process.o \
$(PRINTBASE_OBJ)
SMBD_OBJ = $(SMBD_OBJ_BASE) $(SMBD_OBJ_MAIN)
NMBD_OBJ1 = nmbd/asyncdns.o nmbd/nmbd.o nmbd/nmbd_become_dmb.o \
nmbd/nmbd_become_lmb.o nmbd/nmbd_browserdb.o \
nmbd/nmbd_browsesync.o nmbd/nmbd_elections.o \
nmbd/nmbd_incomingdgrams.o nmbd/nmbd_incomingrequests.o \
nmbd/nmbd_lmhosts.o nmbd/nmbd_logonnames.o nmbd/nmbd_mynames.o \
nmbd/nmbd_namelistdb.o nmbd/nmbd_namequery.o \
nmbd/nmbd_nameregister.o nmbd/nmbd_namerelease.o \
nmbd/nmbd_nodestatus.o nmbd/nmbd_packets.o \
nmbd/nmbd_processlogon.o nmbd/nmbd_responserecordsdb.o \
nmbd/nmbd_sendannounce.o nmbd/nmbd_serverlistdb.o \
nmbd/nmbd_subnetdb.o nmbd/nmbd_winsproxy.o nmbd/nmbd_winsserver.o \
s3: Fix a long-standing problem with recycled PIDs When a samba server process dies hard, it has no chance to clean up its entries in locking.tdb, brlock.tdb, connections.tdb and sessionid.tdb. For locking.tdb and brlock.tdb Samba is robust by checking every time we read an entry from the database if the corresponding process still exists. If it does not exist anymore, the entry is deleted. This is not 100% failsafe though: On systems with a limited PID space there is a non-zero chance that between the smbd's death and the fresh access, the PID is recycled by another long-running process. This renders all files that had been locked by the killed smbd potentially unusable until the new process also dies. This patch is supposed to fix the problem the following way: Every process ID in every database is augmented by a random 64-bit number that is stored in a serverid.tdb. Whenever we need to check if a process still exists we know its PID and the 64-bit number. We look up the PID in serverid.tdb and compare the 64-bit number. If it's the same, the process still is a valid smbd holding the lock. If it is different, a new smbd has taken over. I believe this is safe against an smbd that has died hard and the PID has been taken over by a non-samba process. This process would not have registered itself with a fresh 64-bit number in serverid.tdb, so the old one still exists in serverid.tdb. We protect against this case by the parent smbd taking care of deregistering PIDs from serverid.tdb and the fact that serverid.tdb is CLEAR_IF_FIRST. CLEAR_IF_FIRST does not work in a cluster, so the automatic cleanup does not work when all smbds are restarted. For this, "net serverid wipe" has to be run before smbd starts up. As a convenience, "net serverid wipedbs" also cleans up sessionid.tdb and connections.tdb. While there, this also cleans up overloading connections.tdb with all the process entries just for messaging_send_all(). Volker
2010-03-02 19:02:01 +03:00
nmbd/nmbd_workgroupdb.o nmbd/nmbd_synclists.o
NMBD_OBJ = $(NMBD_OBJ1) $(PARAM_OBJ) $(LIBSMB_OBJ) $(KRBCLIENT_OBJ) \
$(PROFILE_OBJ) $(LIB_NONSMBD_OBJ) $(POPT_LIB_OBJ) \
$(LIBMSRPC_OBJ) $(LIBMSRPC_GEN_OBJ)
SWAT_OBJ1 = web/cgi.o web/diagnose.o web/startstop.o web/statuspage.o \
web/swat.o web/neg_lang.o
SWAT_OBJ = $(SWAT_OBJ1) $(SMBD_OBJ_BASE) $(PASSCHANGE_OBJ)
STATUS_OBJ = utils/status.o utils/status_profile.o $(SMBD_OBJ_BASE)
2010-01-03 15:55:54 +03:00
SMBCONTROL_OBJ = utils/smbcontrol.o $(PARAM_OBJ) $(LIB_NONSMBD_OBJ) \
$(LIBSMB_ERR_OBJ) $(POPT_LIB_OBJ) $(PRINTBASE_OBJ)
SMBTREE_OBJ = utils/smbtree.o $(PARAM_OBJ) \
$(PROFILE_OBJ) $(LIB_NONSMBD_OBJ) $(LIBSMB_OBJ) \
$(KRBCLIENT_OBJ) $(POPT_LIB_OBJ) \
$(PASSDB_OBJ) $(SMBLDAP_OBJ) $(GROUPDB_OBJ) \
$(LIBMSRPC_GEN_OBJ) \
$(LIBMSRPC_OBJ) \
$(LIBCLI_SRVSVC_OBJ)
TESTPARM_OBJ = utils/testparm.o \
$(PARAM_OBJ) $(LIB_NONSMBD_OBJ) $(POPT_LIB_OBJ) \
2010-01-04 00:28:33 +03:00
$(LIBSMB_ERR_OBJ)
SMBTA_UTIL_OBJ = utils/smbta-util.o $(PARAM_OBJ) $(POPT_LIB_OBJ) \
$(LIB_NONSMBD_OBJ) \
$(LIBSMB_ERR_OBJ) $(FNAME_UTIL_OBJ)
TEST_LP_LOAD_OBJ = param/test_lp_load.o \
$(PARAM_OBJ) $(LIB_NONSMBD_OBJ) \
$(POPT_LIB_OBJ) $(LIBSAMBA_OBJ)
PASSWD_UTIL_OBJ = utils/passwd_util.o
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) \
$(LIBMSRPC_GEN_OBJ) $(LIBMSRPC_OBJ) \
$(LIBCLI_SAMR_OBJ) \
rpc_client/init_lsa.o
PDBEDIT_OBJ = utils/pdbedit.o $(PASSWD_UTIL_OBJ) $(PARAM_OBJ) $(PASSDB_OBJ) \
$(AFS_SETTOKEN_OBJ) \
$(LIB_NONSMBD_OBJ) $(GROUPDB_OBJ) \
$(LIBSMB_ERR_OBJ0) $(LIBSMB_ERR_OBJ1) $(SECRETS_OBJ) \
$(POPT_LIB_OBJ) $(SMBLDAP_OBJ) \
../lib/util/asn1.o $(LIBCLI_LDAP_NDR_OBJ) \
$(LIBNDR_DRSUAPI_OBJ) $(LIBNDR_GEN_OBJ0) $(COMPRESSION_OBJ)
Large commit which restructures the local password storage API. Currently the only backend which works is smbpasswd (tdb, LDAP, and NIS+) are broken, but they were somewhat broken before. :) The following functions implement the storage manipulation interface /*The following definitions come from passdb/pdb_smbpasswd.c */ BOOL pdb_setsampwent (BOOL update); void pdb_endsampwent (void); SAM_ACCOUNT* pdb_getsampwent (void); SAM_ACCOUNT* pdb_getsampwnam (char *username); SAM_ACCOUNT* pdb_getsampwuid (uid_t uid); SAM_ACCOUNT* pdb_getsampwrid (uint32 rid); BOOL pdb_add_sam_account (SAM_ACCOUNT *sampass); BOOL pdb_update_sam_account (SAM_ACCOUNT *sampass, BOOL override); BOOL pdb_delete_sam_account (char* username); There is also a host of pdb_set..() and pdb_get..() functions for manipulating SAM_ACCOUNT struct members. Note that the struct passdb_ops {} has gone away. Also notice that struct smb_passwd (formally in smb.h) has been moved to passdb/pdb_smbpasswd.c and is not accessed outisde of static internal functions in this file. All local password searches should make use of the the SAM_ACCOUNT struct and the previously mentioned functions. I'll write some documentation for this later. The next step is to fix the TDB passdb backend, then work on spliting the backends out into share libraries, and finally get the LDAP backend going. What works and may not: o domain logons from Win9x works o domain logons from WinNT 4 works o user and group enumeration as implemented by Tim works o file and print access works o changing password from Win9x & NT ummm...i'll fix this tonight :) If I broke anything else, just yell and I'll fix it. I think it should be fairly quite. -- jerry (This used to be commit 0b92d0838ebdbe24f34f17e313ecbf61a0301389)
2000-11-14 02:03:34 +03:00
SMBGET_OBJ = utils/smbget.o $(POPT_LIB_OBJ) $(LIBSMBCLIENT_OBJ1)
DISPLAY_SEC_OBJ= ../libcli/security/display_sec.o
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 \
2009-01-06 21:09:57 +03:00
rpcclient/cmd_dfs.o rpcclient/cmd_epmapper.o \
rpcclient/cmd_dssetup.o rpcclient/cmd_echo.o \
rpcclient/cmd_shutdown.o rpcclient/cmd_test.o \
rpcclient/cmd_wkssvc.o rpcclient/cmd_ntsvcs.o \
rpcclient/cmd_drsuapi.o rpcclient/cmd_eventlog.o \
rpcclient/cmd_winreg.o rpcclient/cmd_fss.o \
$(DISPLAY_SEC_OBJ)
RPCCLIENT_OBJ = $(RPCCLIENT_OBJ1) \
$(PARAM_OBJ) $(LIBSMB_OBJ) $(LIB_NONSMBD_OBJ) \
$(PASSDB_OBJ) $(LIBMSRPC_GEN_OBJ) $(LIBMSRPC_OBJ) \
$(READLINE_OBJ) $(GROUPDB_OBJ) $(KRBCLIENT_OBJ) \
$(LIBADS_OBJ) $(POPT_LIB_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) \
$(LIBCLI_WKSSVC_OBJ) \
$(LIBCLI_SRVSVC_OBJ) \
$(LIBCLI_LSA_OBJ) \
$(LIBCLI_SAMR_OBJ) \
$(LIBCLI_WINREG_OBJ) \
$(LIBCLI_FSRVP_OBJ) \
$(RPC_CLIENT_SCHANNEL_OBJ) \
rpc_client/init_samr.o
PAM_WINBIND_OBJ = ../nsswitch/pam_winbind.o $(WBCOMMON_OBJ) \
$(LIBREPLACE_OBJ) @BUILD_INIPARSER@
LIBSMBCLIENT_THREAD_OBJ = \
libsmb/libsmb_thread_impl.o \
libsmb/libsmb_thread_posix.o
LIBSMBCLIENT_OBJ0 = \
libsmb/libsmb_cache.o \
libsmb/libsmb_compat.o \
libsmb/libsmb_context.o \
libsmb/libsmb_dir.o \
libsmb/libsmb_file.o \
libsmb/libsmb_misc.o \
libsmb/libsmb_path.o \
libsmb/libsmb_printjob.o \
libsmb/libsmb_server.o \
libsmb/libsmb_stat.o \
libsmb/libsmb_xattr.o \
libsmb/libsmb_setget.o
LIBSMBCLIENT_OBJ1 = $(LIBSMBCLIENT_OBJ0) \
$(PARAM_OBJ) $(LIB_NONSMBD_OBJ) \
$(LIBSMB_OBJ) $(KRBCLIENT_OBJ) \
$(LIBMSRPC_OBJ) $(LIBMSRPC_GEN_OBJ) \
$(PASSDB_OBJ) $(SMBLDAP_OBJ) $(GROUPDB_OBJ) \
$(LIBCLI_SRVSVC_OBJ) \
$(LIBCLI_LSA_OBJ)
LIBSMBCLIENT_OBJ = $(LIBSMBCLIENT_OBJ1)
CLIENT_OBJ1 = client/client.o client/clitar.o \
client/dnsbrowse.o \
$(LIBMSRPC_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) \
$(DISPLAY_SEC_OBJ) \
$(LIBCLI_SRVSVC_OBJ)
LIBSMBCONF_OBJ = ../lib/smbconf/smbconf.o \
../lib/smbconf/smbconf_util.o \
../lib/smbconf/smbconf_txt.o \
lib/smbconf/smbconf_reg.o \
lib/smbconf/smbconf_init.o
SMBCONFTORT_OBJ0 = lib/smbconf/testsuite.o
SMBCONFTORT_OBJ = $(SMBCONFTORT_OBJ0) \
$(LIB_NONSMBD_OBJ) \
$(PARAM_OBJ) \
$(LIBSMB_ERR_OBJ) \
$(POPT_LIB_OBJ)
2011-04-23 18:49:04 +04:00
PTHREADPOOLTEST_OBJ = lib/pthreadpool/pthreadpool.o \
lib/pthreadpool/tests.o $(LIBREPLACE_OBJ)
2011-04-23 18:49:04 +04:00
LIBNET_OBJ = libnet/libnet_join.o \
libnet/libnet_keytab.o \
autoconf/librpc/gen_ndr/ndr_libnet_join.o
LIBNET_DSSYNC_OBJ = libnet/libnet_dssync.o \
libnet/libnet_dssync_passdb.o \
libnet/libnet_dssync_keytab.o \
../libcli/drsuapi/repl_decrypt.o
LIBNET_SAMSYNC_OBJ = libnet/libnet_samsync.o \
libnet/libnet_samsync_ldif.o \
libnet/libnet_samsync_passdb.o \
libnet/libnet_samsync_display.o \
libnet/libnet_samsync_keytab.o \
../libcli/samsync/decrypt.o
NET_OBJ1 = utils/net.o utils/net_ads.o utils/net_help.o \
utils/net_rap.o utils/net_rpc.o utils/net_rpc_samsync.o \
utils/net_rpc_join.o utils/net_time.o utils/net_lookup.o \
utils/net_cache.o utils/net_groupmap.o utils/net_idmap.o \
utils/net_idmap_check.o utils/interact.o \
utils/net_status.o utils/net_rpc_printer.o utils/net_rpc_rights.o \
utils/net_rpc_service.o utils/net_rpc_registry.o utils/net_usershare.o \
utils/netlookup.o utils/net_sam.o utils/net_rpc_shell.o \
utils/net_util.o utils/net_rpc_sh_acct.o utils/net_rpc_audit.o \
$(PASSWD_UTIL_OBJ) utils/net_dns.o utils/net_ads_gpo.o \
utils/net_conf.o utils/net_join.o utils/net_user.o \
utils/net_group.o utils/net_file.o utils/net_registry.o utils/net_registry_check.o\
utils/net_dom.o utils/net_share.o \
utils/net_g_lock.o \
s3: Fix a long-standing problem with recycled PIDs When a samba server process dies hard, it has no chance to clean up its entries in locking.tdb, brlock.tdb, connections.tdb and sessionid.tdb. For locking.tdb and brlock.tdb Samba is robust by checking every time we read an entry from the database if the corresponding process still exists. If it does not exist anymore, the entry is deleted. This is not 100% failsafe though: On systems with a limited PID space there is a non-zero chance that between the smbd's death and the fresh access, the PID is recycled by another long-running process. This renders all files that had been locked by the killed smbd potentially unusable until the new process also dies. This patch is supposed to fix the problem the following way: Every process ID in every database is augmented by a random 64-bit number that is stored in a serverid.tdb. Whenever we need to check if a process still exists we know its PID and the 64-bit number. We look up the PID in serverid.tdb and compare the 64-bit number. If it's the same, the process still is a valid smbd holding the lock. If it is different, a new smbd has taken over. I believe this is safe against an smbd that has died hard and the PID has been taken over by a non-samba process. This process would not have registered itself with a fresh 64-bit number in serverid.tdb, so the old one still exists in serverid.tdb. We protect against this case by the parent smbd taking care of deregistering PIDs from serverid.tdb and the fact that serverid.tdb is CLEAR_IF_FIRST. CLEAR_IF_FIRST does not work in a cluster, so the automatic cleanup does not work when all smbds are restarted. For this, "net serverid wipe" has to be run before smbd starts up. As a convenience, "net serverid wipedbs" also cleans up sessionid.tdb and connections.tdb. While there, this also cleans up overloading connections.tdb with all the process entries just for messaging_send_all(). Volker
2010-03-02 19:02:01 +03:00
utils/net_serverid.o \
utils/net_eventlog.o \
utils/net_printing.o \
utils/net_rpc_trust.o \
utils/net_rpc_conf.o\
$(LIBNDR_PREG_OBJ) \
$(LIBCLI_DRSUAPI_OBJ) \
$(LIBCLI_INITSHUTDOWN_OBJ) \
$(LIBCLI_DSSETUP_OBJ) \
$(LIBCLI_SVCCTL_OBJ) \
$(LIBCLI_WKSSVC_OBJ) \
registry/reg_parse.o registry/reg_format.o \
registry/reg_import.o
# these are not processed by make proto
NET_OBJ2 = utils/net_registry_util.o utils/net_help_common.o
NET_OBJ = $(NET_OBJ1) \
$(NET_OBJ2) @FAKE_KASERVER_OBJ@ \
$(LIBADDNS_OBJ0) \
$(READLINE_OBJ) \
$(LIBGPO_OBJ) $(INIPARSER_OBJ) $(DISPLAY_SEC_OBJ) \
$(LIBNET_DSSYNC_OBJ) $(LIBNET_SAMSYNC_OBJ) \
$(SMBD_OBJ_BASE)
CUPS_OBJ = client/smbspool.o $(PARAM_OBJ) $(LIBSMB_OBJ) \
$(LIB_NONSMBD_OBJ) $(KRBCLIENT_OBJ) $(POPT_LIB_OBJ) \
$(AFS_SETTOKEN_OBJ) $(LIBMSRPC_OBJ) $(LIBMSRPC_GEN_OBJ)
NMBLOOKUP_OBJ = utils/nmblookup.o $(PARAM_OBJ) $(LIBNMB_OBJ) \
2010-01-04 00:28:33 +03:00
$(LIB_NONSMBD_OBJ) $(POPT_LIB_OBJ) $(LIBSMB_ERR_OBJ)
SMBTORTURE_OBJ1 = torture/torture.o torture/nbio.o torture/scanner.o torture/utable.o \
2009-11-29 18:05:36 +03:00
torture/denytest.o torture/mangle_test.o \
torture/nbench.o \
torture/test_async_echo.o \
2010-12-14 14:50:57 +03:00
torture/test_smbsock_any_connect.o \
torture/test_nttrans_create.o \
torture/test_nttrans_fsctl.o \
torture/test_notify_online.o \
2011-01-27 18:56:13 +03:00
torture/test_addrchange.o \
torture/test_case_insensitive.o \
torture/test_posix_append.o \
torture/test_smb2.o \
torture/test_chain3.o \
torture/test_authinfo_structs.o \
torture/test_cleanup.o \
torture/test_ctdbconn.o \
torture/test_msg.o \
2012-04-04 16:35:12 +04:00
torture/test_notify.o \
torture/test_dbwrap_watch.o \
torture/test_idmap_tdb_common.o \
torture/test_dbwrap_ctdb.o \
torture/t_strappend.o
2009-06-19 15:06:02 +04:00
SMBTORTURE_OBJ = $(SMBTORTURE_OBJ1) $(PARAM_OBJ) $(TLDAP_OBJ) \
$(LIBSMB_OBJ) $(KRBCLIENT_OBJ) $(LIB_NONSMBD_OBJ) $(LOCKING_OBJ) \
2009-04-16 16:53:36 +04:00
@LIBWBCLIENT_STATIC@ \
torture/wbc_async.o \
../nsswitch/wb_reqtrans.o \
../libcli/lsarpc/util_lsarpc.o \
lib/filename_util.o \
$(LIBMSRPC_OBJ) $(LIBMSRPC_GEN_OBJ) $(LIBCLI_ECHO_OBJ)
MSGTEST_OBJ = torture/msgtest.o $(PARAM_OBJ) $(LIBSMB_ERR_OBJ) \
$(LIB_NONSMBD_OBJ) \
$(LIBNDR_GEN_OBJ0)
NSSTEST_OBJ = ../nsswitch/nsstest.o ../lib/util/setid.o $(LIBSAMBAUTIL_OBJ)
VFSTEST_OBJ = torture/cmd_vfs.o torture/vfstest.o $(SMBD_OBJ_BASE) $(READLINE_OBJ) \
torture/vfstest_chain.o
LOG2PCAP_OBJ = utils/log2pcaphex.o
LOCKTEST2_OBJ = torture/locktest2.o $(PARAM_OBJ) $(LOCKING_OBJ) $(LIBSMB_OBJ) \
$(KRBCLIENT_OBJ) $(LIB_NONSMBD_OBJ) \
$(LIBMSRPC_OBJ) $(LIBMSRPC_GEN_OBJ) $(FNAME_UTIL_OBJ)
SMBCACLS_OBJ = utils/smbcacls.o $(PARAM_OBJ) $(LIBSMB_OBJ) \
$(KRBCLIENT_OBJ) $(LIB_NONSMBD_OBJ) \
$(PASSDB_OBJ) $(GROUPDB_OBJ) $(LIBMSRPC_OBJ) $(LIBMSRPC_GEN_OBJ) \
$(POPT_LIB_OBJ) $(SMBLDAP_OBJ) \
$(LIBCLI_LSA_OBJ)
SMBCQUOTAS_OBJ = utils/smbcquotas.o $(LIBSMB_OBJ) $(KRBCLIENT_OBJ) \
$(PARAM_OBJ) \
$(LIB_NONSMBD_OBJ) \
$(LIBMSRPC_OBJ) $(LIBMSRPC_GEN_OBJ) $(POPT_LIB_OBJ) \
$(PASSDB_OBJ) $(SMBLDAP_OBJ) $(GROUPDB_OBJ) \
$(LIBCLI_LSA_OBJ)
EVTLOGADM_OBJ0 = utils/eventlogadm.o
EVTLOGADM_OBJ = $(EVTLOGADM_OBJ0) $(PARAM_OBJ) $(LIB_NONSMBD_OBJ) \
$(LIBSMB_ERR_OBJ) $(LIB_EVENTLOG_OBJ) \
autoconf/librpc/gen_ndr/ndr_eventlog.o \
autoconf/librpc/gen_ndr/ndr_lsa.o
SHARESEC_OBJ0 = utils/sharesec.o
SHARESEC_OBJ = $(SHARESEC_OBJ0) $(PARAM_OBJ) $(LIB_NONSMBD_OBJ) \
2010-01-04 00:28:33 +03:00
$(LIBSMB_ERR_OBJ) \
$(POPT_LIB_OBJ)
TALLOCTORT_OBJ = @tallocdir@/testsuite.o @tallocdir@/testsuite_main.o \
2010-01-04 00:28:33 +03:00
$(PARAM_OBJ) $(LIB_NONSMBD_OBJ) $(LIBSMB_ERR_OBJ)
REPLACETORT_OBJ = @libreplacedir@/test/testsuite.o \
@libreplacedir@/test/getifaddrs.o \
@libreplacedir@/test/os2_delete.o \
@libreplacedir@/test/strptime.o \
@libreplacedir@/test/main.o \
$(LIBREPLACE_OBJ) $(SOCKET_WRAPPER_OBJ)
DEBUG2HTML_OBJ = utils/debug2html.o utils/debugparse.o
SMBFILTER_OBJ = utils/smbfilter.o $(PARAM_OBJ) $(LIBSMB_OBJ) \
$(LIB_NONSMBD_OBJ) $(KRBCLIENT_OBJ) \
$(LIBMSRPC_OBJ) $(LIBMSRPC_GEN_OBJ)
WINBIND_WINS_NSS_OBJ = ../nsswitch/wins.o $(PARAM_OBJ) \
2010-01-10 15:35:37 +03:00
$(LIB_NONSMBD_OBJ) $(LIBSMB_ERR_OBJ) $(LIBNMB_OBJ)
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
PAM_SMBPASS_OBJ = $(PAM_SMBPASS_OBJ_0) $(PARAM_OBJ) $(LIB_NONSMBD_OBJ) $(PASSDB_OBJ) $(GROUPDB_OBJ) \
$(SMBLDAP_OBJ) \
$(LIBSMB_OBJ) $(KRBCLIENT_OBJ) \
$(AFS_SETTOKEN_OBJ) \
$(LIBMSRPC_OBJ) $(LIBMSRPC_GEN_OBJ) \
$(PAM_ERRORS_OBJ)
IDMAP_RW_OBJ = winbindd/idmap_rw.o
IDMAP_TDB_COMMON_OBJ = winbindd/idmap_tdb_common.o
IDMAP_UTIL_OBJ = winbindd/idmap_util.o $(IDMAP_RW_OBJ) \
$(IDMAP_TDB_COMMON_OBJ)
IDMAP_OBJ = winbindd/idmap.o $(IDMAP_UTIL_OBJ) @IDMAP_STATIC@
NSS_INFO_OBJ = winbindd/nss_info.o @NSS_INFO_STATIC@
IDMAP_HASH_OBJ = \
winbindd/idmap_hash/idmap_hash.o \
winbindd/idmap_hash/mapfile.o
WINBINDD_OBJ1 = \
winbindd/winbindd.o \
winbindd/winbindd_group.o \
winbindd/winbindd_util.o \
winbindd/winbindd_cache.o \
winbindd/winbindd_pam.o \
winbindd/winbindd_misc.o \
winbindd/winbindd_cm.o \
winbindd/winbindd_wins_byip.o \
winbindd/winbindd_wins_byname.o \
winbindd/winbindd_msrpc.o \
winbindd/winbindd_rpc.o \
winbindd/winbindd_reconnect.o \
winbindd/winbindd_ads.o \
winbindd/winbindd_samr.o \
winbindd/winbindd_dual.o \
winbindd/winbindd_dual_ndr.o \
winbindd/winbindd_dual_srv.o \
autoconf/librpc/gen_ndr/ndr_wbint_c.o \
autoconf/librpc/gen_ndr/srv_wbint.o \
autoconf/librpc/gen_ndr/ndr_wbint.o \
autoconf/librpc/gen_ndr/ndr_idmap.o \
winbindd/winbindd_async.o \
winbindd/winbindd_creds.o \
winbindd/winbindd_cred_cache.o \
winbindd/winbindd_ccache_access.o \
winbindd/winbindd_domain.o \
winbindd/winbindd_idmap.o \
winbindd/winbindd_locator.o \
winbindd/winbindd_ndr.o \
2009-05-16 14:00:34 +04:00
winbindd/wb_ping.o \
2009-08-04 01:44:46 +04:00
winbindd/wb_lookupsid.o \
winbindd/wb_lookupsids.o \
2009-08-04 15:22:34 +04:00
winbindd/wb_lookupname.o \
2009-08-04 21:52:39 +04:00
winbindd/wb_uid2sid.o \
2009-08-04 22:19:03 +04:00
winbindd/wb_gid2sid.o \
winbindd/wb_sids2xids.o \
2009-08-04 23:23:13 +04:00
winbindd/wb_queryuser.o \
winbindd/wb_lookupuseraliases.o \
winbindd/wb_lookupusergroups.o \
2009-08-04 23:32:11 +04:00
winbindd/wb_getpwsid.o \
2009-08-05 00:22:42 +04:00
winbindd/wb_gettoken.o \
2009-08-15 13:16:28 +04:00
winbindd/wb_seqnum.o \
winbindd/wb_seqnums.o \
2009-08-16 12:58:43 +04:00
winbindd/wb_group_members.o \
2009-08-16 13:25:31 +04:00
winbindd/wb_getgrsid.o \
2009-08-18 00:40:19 +04:00
winbindd/wb_query_user_list.o \
2009-08-18 00:44:55 +04:00
winbindd/wb_fill_pwent.o \
2009-08-18 00:50:39 +04:00
winbindd/wb_next_pwent.o \
2009-08-27 23:53:15 +04:00
winbindd/wb_next_grent.o \
2009-08-26 13:33:16 +04:00
winbindd/wb_dsgetdcname.o \
winbindd/winbindd_lookupsid.o \
winbindd/winbindd_lookupsids.o \
winbindd/winbindd_lookupname.o \
winbindd/winbindd_sid_to_uid.o \
winbindd/winbindd_sid_to_gid.o \
winbindd/winbindd_uid_to_sid.o \
winbindd/winbindd_gid_to_sid.o \
winbindd/winbindd_sids_to_xids.o \
winbindd/winbindd_allocate_uid.o \
winbindd/winbindd_allocate_gid.o \
winbindd/winbindd_getpwsid.o \
winbindd/winbindd_getpwnam.o \
winbindd/winbindd_getpwuid.o \
winbindd/winbindd_getsidaliases.o \
winbindd/winbindd_getuserdomgroups.o \
winbindd/winbindd_getgroups.o \
winbindd/winbindd_show_sequence.o \
winbindd/winbindd_getgrgid.o \
winbindd/winbindd_getgrnam.o \
winbindd/winbindd_getusersids.o \
winbindd/winbindd_lookuprids.o \
winbindd/winbindd_setpwent.o \
winbindd/winbindd_getpwent.o \
winbindd/winbindd_endpwent.o \
winbindd/winbindd_setgrent.o \
winbindd/winbindd_getgrent.o \
winbindd/winbindd_endgrent.o \
winbindd/winbindd_dsgetdcname.o \
winbindd/winbindd_getdcname.o \
winbindd/winbindd_list_users.o \
winbindd/winbindd_list_groups.o \
winbindd/winbindd_check_machine_acct.o \
winbindd/winbindd_change_machine_acct.o \
winbindd/winbindd_ping_dc.o \
winbindd/winbindd_pam_auth.o \
winbindd/winbindd_pam_auth_crap.o \
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 \
2010-04-11 17:27:49 +04:00
auth/check_samsec.o \
auth/server_info.o \
auth/server_info_sam.o \
auth/user_info.o \
auth/pampass.o \
../nsswitch/wb_reqtrans.o
WINBINDD_OBJ = \
$(WINBINDD_OBJ1) $(PASSDB_OBJ) $(GROUPDB_OBJ) \
$(PARAM_OBJ) $(LIB_NONSMBD_OBJ) \
$(LIBSMB_OBJ) $(LIBMSRPC_OBJ) $(LIBMSRPC_GEN_OBJ) \
$(PROFILE_OBJ) $(SLCACHE_OBJ) $(SMBLDAP_OBJ) \
$(LIBADS_OBJ) $(KRBCLIENT_OBJ) $(POPT_LIB_OBJ) \
$(DCUTIL_OBJ) $(IDMAP_OBJ) $(NSS_INFO_OBJ) \
$(RPC_CONFIG) $(RPC_NCACN_NP) \
$(RPC_SAMR_OBJ) $(RPC_LSARPC_OBJ) \
$(NPA_TSTREAM_OBJ) \
$(AFS_OBJ) $(AFS_SETTOKEN_OBJ) \
$(LIBADS_SERVER_OBJ) \
$(TDB_VALIDATE_OBJ) \
$(LIBCLI_DSSETUP_OBJ) \
$(LIBCLI_LSA_OBJ) \
$(LIBCLI_SAMR_OBJ) \
rpc_client/init_samr.o \
$(PAM_ERRORS_OBJ)
WBINFO_OBJ = ../nsswitch/wbinfo.o $(PARAM_OBJ) $(LIB_NONSMBD_OBJ) \
$(POPT_LIB_OBJ) $(AFS_SETTOKEN_OBJ) \
lib/winbind_util.o $(WBCOMMON_OBJ) \
$(LIBSMB_ERR_OBJ0) $(LIBSMB_ERR_OBJ1) $(SECRETS_OBJ)
WINBIND_NSS_OBJ = $(WBCOMMON_OBJ) $(LIBREPLACE_OBJ) @WINBIND_NSS_EXTRA_OBJS@
WINBIND_KRB5_LOCATOR_OBJ1 = ../nsswitch/winbind_krb5_locator.o
WINBIND_KRB5_LOCATOR_OBJ = $(WINBIND_KRB5_LOCATOR_OBJ1) $(LIBREPLACE_OBJ)
2008-09-17 19:12:27 +04:00
POPT_OBJ=../lib/popt/findme.o ../lib/popt/popt.o ../lib/popt/poptconfig.o \
../lib/popt/popthelp.o ../lib/popt/poptparse.o
INIPARSER_OBJ = ../lib/iniparser_build/iniparser.o ../lib/iniparser_build/dictionary.o \
../lib/iniparser_build/strlib.o
TDBBACKUP_OBJ = @tdbdir@/tools/tdbbackup.o $(LIBREPLACE_OBJ) \
$(SOCKET_WRAPPER_OBJ)
TDBTOOL_OBJ = @tdbdir@/tools/tdbtool.o $(LIBREPLACE_OBJ) \
$(SOCKET_WRAPPER_OBJ)
TDBDUMP_OBJ = @tdbdir@/tools/tdbdump.o $(LIBREPLACE_OBJ) \
$(SOCKET_WRAPPER_OBJ)
TDBRESTORE_OBJ = @tdbdir@/tools/tdbrestore.o $(LIBREPLACE_OBJ) \
$(SOCKET_WRAPPER_OBJ)
TDBTORTURE_OBJ = @tdbdir@/tools/tdbtorture.o $(LIBREPLACE_OBJ) \
$(SOCKET_WRAPPER_OBJ)
NTLM_AUTH_OBJ1 = utils/ntlm_auth.o utils/ntlm_auth_diagnostics.o
NTLM_AUTH_OBJ = ${NTLM_AUTH_OBJ1} \
${LIBADS_SERVER_OBJ} \
$(PASSDB_OBJ) $(GROUPDB_OBJ) \
$(WBCOMMON_OBJ) \
$(LIBSMB_OBJ) $(KRBCLIENT_OBJ) \
$(AFS_SETTOKEN_OBJ) \
$(LIBMSRPC_OBJ) $(LIBMSRPC_GEN_OBJ) \
$(POPT_LIB_OBJ) $(SMBLDAP_OBJ) @BUILD_INIPARSER@
VLP_OBJ = printing/tests/vlp.o \
../lib/util/util_tdb.o \
../lib/util/signal.o \
../lib/util/debug.o \
../lib/util/util_strlist.o \
../lib/util/fault.o \
../lib/util/become_daemon.o \
../lib/util/substitute.o \
lib/util_sec.o \
../lib/util/time.o \
../lib/util/charset/util_str.o \
../lib/util/charset/pull_push.o \
../lib/util/charset/util_unistr_w.o \
../lib/util/charset/codepoints.o \
../lib/util/charset/iconv.o \
../lib/util/charset/weird.o \
../lib/util/charset/convert_string.o \
$(CHARSET_MACOSXFS_OBJ) \
../lib/util/talloc_stack.o \
../lib/util/smb_threads.o \
../lib/util/xfile.o \
../lib/util/util_file.o \
../lib/util/util.o \
../lib/util/util_str_common.o \
../lib/util/data_blob.o \
../dynconfig/dynconfig.o \
../lib/util/setid.o \
$(LIBSAMBAUTIL_OBJ) \
param/util.o
RPC_OPEN_TCP_OBJ = torture/rpc_open_tcp.o \
$(LIBSMB_OBJ) \
$(PARAM_OBJ) \
$(PASSDB_OBJ) \
$(SMBLDAP_OBJ) $(GROUPDB_OBJ) \
$(LIB_NONSMBD_OBJ) \
$(KRBCLIENT_OBJ) \
$(LIBMSRPC_OBJ) \
$(LIBMSRPC_GEN_OBJ)
DBWRAP_TOOL_OBJ = utils/dbwrap_tool.o \
$(PARAM_OBJ) \
$(LIB_NONSMBD_OBJ) \
$(LIBSMB_ERR_OBJ) \
$(POPT_LIB_OBJ)
DBWRAP_TORTURE_OBJ = utils/dbwrap_torture.o \
$(PARAM_OBJ) \
$(LIB_NONSMBD_OBJ) \
2010-01-04 00:28:33 +03:00
$(LIBSMB_ERR_OBJ) \
$(POPT_LIB_OBJ)
SPLIT_TOKENS_OBJ = utils/split_tokens.o \
$(PARAM_OBJ) \
$(LIB_NONSMBD_OBJ) \
$(POPT_LIB_OBJ) \
$(LIBSAMBA_OBJ)
######################################################################
# now the rules...
######################################################################
all:: SHOWFLAGS basics libs $(SBIN_PROGS) $(BIN_PROGS) \
$(MODULES) $(NSS_MODULES) $(PAM_MODULES) \
$(EXTRA_ALL_TARGETS)
2011-07-01 08:36:25 +04:00
basics:: samba3-idl mkparam
nss_modules:: $(NSS_MODULES)
pam_modules:: $(PAM_MODULES)
pam_smbpass: SHOWFLAGS bin/pam_smbpass.@SHLIBEXT@
pam_winbind: SHOWFLAGS bin/pam_winbind.@SHLIBEXT@
gpext_modules:: $(GPEXT_MODULES)
torture:: SHOWFLAGS basics $(TORTURE_PROGS)
smbtorture3 : SHOWFLAGS bin/smbtorture3
masktest : SHOWFLAGS bin/masktest
msgtest : SHOWFLAGS bin/msgtest
locktest : SHOWFLAGS bin/locktest
smbcacls : SHOWFLAGS bin/smbcacls
smbcquotas : SHOWFLAGS bin/smbcquotas
locktest2 : SHOWFLAGS bin/locktest2
debug2html : SHOWFLAGS bin/debug2html
smbfilter : SHOWFLAGS bin/smbfilter
eventlogadm: SHOWFLAGS bin/eventlogadm
sharesec: SHOWFLAGS bin/sharesec
talloctort : SHOWFLAGS $(TALLOCTORT)
replacetort : SHOWFLAGS bin/replacetort
smbconftort : SHOWFLAGS bin/smbconftort
pthreadpooltest : SHOWFLAGS bin/pthreadpooltest
2011-04-23 18:49:04 +04:00
timelimit : SHOWFLAGS bin/timelimit
nsswitch : SHOWFLAGS bin/winbindd bin/wbinfo @WINBIND_NSS@ \
@WINBIND_WINS_NSS@ @WINBIND_KRB5_LOCATOR@ \
bin/pam_winbind.@SHLIBEXT@ bin/smbcontrol
wins : SHOWFLAGS @WINBIND_WINS_NSS@
modules:: SHOWFLAGS $(MODULES)
#####################################################################
## Perl IDL Compiler
IDL_FILES = librpc/idl/messaging.idl \
librpc/idl/libnetapi.idl \
librpc/idl/wbint.idl \
librpc/idl/perfcount.idl \
librpc/idl/secrets.idl \
2011-11-24 13:01:57 +04:00
librpc/idl/open_files.idl \
librpc/idl/libnet_join.idl
2008-09-15 16:30:15 +04:00
samba3-idl::
@PIDL_OUTPUTDIR="autoconf/librpc/gen_ndr" PIDL_ARGS="$(PIDL_ARGS)" CPP="$(CPP)" PIDL="../pidl/pidl" \
2008-12-16 20:56:21 +03:00
srcdir="$(srcdir)" ../librpc/build_idl.sh ../librpc/idl/*.idl
@PIDL_OUTPUTDIR="autoconf/librpc/gen_ndr" PIDL_ARGS="$(PIDL_ARGS)" CPP="$(CPP)" PIDL="../pidl/pidl" \
srcdir="$(srcdir)" $(srcdir)/script/build_idl.sh $(IDL_FILES)
2008-10-20 15:19:39 +04:00
idl_full::
@PIDL_OUTPUTDIR="autoconf/librpc/gen_ndr" PIDL_ARGS="$(PIDL_ARGS)" CPP="$(CPP)" PIDL="../pidl/pidl" \
srcdir="$(srcdir)" ../librpc/build_idl.sh --full ../librpc/idl/*.idl
@PIDL_OUTPUTDIR="autoconf/librpc/gen_ndr" PIDL_ARGS="$(PIDL_ARGS)" CPP="$(CPP)" PIDL="../pidl/pidl" \
srcdir="$(srcdir)" $(srcdir)/script/build_idl.sh --full $(IDL_FILES)
mkparam: autoconf/lib/param/param_local.h autoconf/lib/param/param_global.h autoconf/source3/param/param_global.h autoconf/lib/param/param_proto.h autoconf/lib/param/s3_param.h
autoconf/lib/param/param_local.h:
$(PERL) ../script/mkparamdefs.pl $(srcdir)/../lib/param/param_functions.c --file autoconf/lib/param/param_local.h --generate-scope=LOCAL
autoconf/lib/param/param_global.h:
$(PERL) ../script/mkparamdefs.pl $(srcdir)/../lib/param/param_functions.c $(srcdir)/../lib/param/loadparm.c --file autoconf/lib/param/param_global.h --generate-scope=GLOBAL
autoconf/source3/param/param_global.h:
$(PERL) ../script/mkparamdefs.pl $(srcdir)/../lib/param/param_functions.c $(srcdir)/param/loadparm.c --file autoconf/source3/param/param_global.h --generate-scope=GLOBAL
autoconf/lib/param/param_proto.h:
$(PERL) ../source4/script/mkproto.pl $(srcdir)/../lib/param/param_functions.c $(srcdir)/../lib/param/loadparm.c --public autoconf/lib/param/param_proto.h --private autoconf/lib/param/param_proto.h
autoconf/lib/param/s3_param.h:
$(PERL) ../script/mks3param.pl $(srcdir)/../lib/param/param_functions.c $(srcdir)/../lib/param/loadparm.c --file autoconf/lib/param/s3_param.h
2011-07-01 08:36:25 +04:00
#####################################################################
everything:: all libtalloc libsmbclient libnetapi debug2html smbfilter talloctort replacetort smbconftort modules torture \
$(EVERYTHING_PROGS) \
vfs_examples
.SUFFIXES:
.SUFFIXES: .c .o .lo
.PHONY: showflags SHOWFLAGS
showflags: SHOWFLAGS
SHOWFLAGS::
2008-09-15 16:30:15 +04:00
@echo "Using CFLAGS = $(CFLAGS)"
@echo " PICFLAG = $(PICFLAG)"
@echo " LIBS = $(LIBS)"
@echo " LDFLAGS = $(LDFLAGS)"
@echo " DYNEXP = $(DYNEXP)"
@echo " LDSHFLAGS = $(LDSHFLAGS)"
@echo " SHLIBEXT = @SHLIBEXT@"
@echo " SONAMEFLAG = @SONAMEFLAG@"
# "showcflags" target for debuggin how CFLAGS are composed:
.PHONY: showcflags SHOWCFLAGS
showcflags: SHOWCFLAGS
SHOWCFLAGS::
@echo "CFLAGS = $(CFLAGS)"
@echo "FLAGS = $(FLAGS)"
@echo ""
@echo "FLAGS1 = @FLAGS1@"
@echo "SAMBA_CPPFLAGS = @SAMBA_CPPFLAGS@"
@echo "CPPFLAGS = $(CPPFLAGS)"
@echo "ISA = $(ISA)"
MAKEDIR = || exec false; \
if test -d "$$dir"; then :; else \
echo mkdir "$$dir"; \
mkdir -p "$$dir" >/dev/null 2>&1 || \
test -d "$$dir" || \
mkdir "$$dir" || \
exec false; fi || exec false
# Run a static checker.
CHECK_CC = $(CC_CHECKER) $(CFLAGS) $(PICFLAG) -c $< -o $@
# Compile a source file.
COMPILE_CC = $(CC) $(CFLAGS) $(PICFLAG) -c $< -o $@
# Compile a source file with the installation paths defined.
COMPILE_CC_PATH = $(CC) $(PATH_FLAGS) $(CFLAGS) $(PICFLAG) -c $< -o $@
COMPILE = $(COMPILE_CC)
.c.o:
@if (: >> $@ || : > $@) >/dev/null 2>&1; then rm -f $@; else \
dir=`echo $@ | sed 's,/[^/]*$$,,;s,^$$,.,'` $(MAKEDIR); fi
@if test -n "$(CC_CHECKER)"; then \
echo "Checking $*.c with '$(CC_CHECKER)'";\
$(CHECK_CC); \
fi
@echo Compiling $*.c
@$(COMPILE) && exit 0;\
echo "The following command failed:" 1>&2;\
2008-09-15 16:30:15 +04:00
echo "$(subst ",\",$(COMPILE_CC))" 1>&2;\
$(COMPILE_CC) >/dev/null 2>&1
@BROKEN_CC@ -mv `echo $@ | sed 's%^.*/%%g'` $@
PRECOMPILED_HEADER = $(builddir)/include/includes.h.gch
# this adds support for precompiled headers. To use it, install a snapshot
# of gcc-3.4 and run 'make pch' before you do the main build.
pch::
rm -f $(PRECOMPILED_HEADER)
$(MAKE) $(PRECOMPILED_HEADER)
$(PRECOMPILED_HEADER): $(srcdir)/include/includes.h
$(COMPILE)
BINARY_PREREQS = bin/.dummy
# 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,
# but since we also require "make install prefix=/opt/samba" *not* to
# rebuild it's a bit hard.
../dynconfig/dynconfig.o: ../dynconfig/dynconfig.c Makefile
@echo Compiling $*.c
@$(COMPILE_CC_PATH) && exit 0;\
echo "The following command failed:" 1>&2;\
echo "$(COMPILE_CC_PATH)" 1>&2;\
$(COMPILE_CC_PATH) >/dev/null 2>&1
../nsswitch/pam_winbind.o: ../nsswitch/pam_winbind.c Makefile
@echo Compiling $*.c
@$(COMPILE_CC_PATH) && exit 0;\
echo "The following command failed:" 1>&2;\
echo "$(COMPILE_CC_PATH)" 1>&2;\
$(COMPILE_CC_PATH) >/dev/null 2>&1
../nsswitch/wb_common.o: ../nsswitch/wb_common.c Makefile
@echo Compiling $*.c
@$(COMPILE_CC_PATH) && exit 0;\
echo "The following command failed:" 1>&2;\
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
lib/version.o: lib/version.c include/autoconf/version.h
@echo Compiling $*.c
@$(COMPILE_CC_PATH) && exit 0;\
echo "The following command failed:" 1>&2;\
echo "$(COMPILE_CC_PATH)" 1>&2;\
$(COMPILE_CC_PATH) >/dev/null 2>&1
smbd/build_options.o: smbd/build_options.c Makefile include/autoconf/config.h include/build_env.h include/proto.h
@echo Compiling $*.c
@$(COMPILE_CC_PATH) && exit 0;\
echo "The following command failed:" 1>&2;\
echo "$(COMPILE_CC_PATH)" 1>&2;\
$(COMPILE_CC_PATH) >/dev/null 2>&1
smbd/build_options.c: include/autoconf/config.h.in script/mkbuildoptions.awk
@echo Generating $@
@dir=smbd $(MAKEDIR) && $(AWK) -f $(srcdir)/script/mkbuildoptions.awk > $(builddir)/smbd/build_options.c < $(srcdir)/include/autoconf/config.h.in
bin/.dummy:
@if (: >> $@ || : > $@) >/dev/null 2>&1; then :; else \
dir=bin $(MAKEDIR); fi
@: >> $@ || : > $@ # what a fancy emoticon!
bin/smbd: $(BINARY_PREREQS) $(SMBD_OBJ) $(LIBTALLOC) $(LIBTDB) $(LIBWBCLIENT) @BUILD_POPT@
@echo Linking $@
2009-05-16 20:20:02 +04:00
@$(CC) -o $@ $(SMBD_OBJ) $(LDFLAGS) $(LDAP_LIBS) @SMBD_FAM_LIBS@ \
$(KRB5LIBS) $(DYNEXP) $(PRINT_LIBS) $(AUTH_LIBS) \
2009-03-20 16:55:05 +03:00
$(ACL_LIBS) $(PASSDB_LIBS) $(LIBS) $(DNSSD_LIBS) $(AVAHI_LIBS) \
$(POPT_LIBS) @SMBD_LIBS@ $(LIBTALLOC_LIBS) $(LIBTDB_LIBS) \
$(LIBWBCLIENT_LIBS) $(ZLIB_LIBS)
bin/nmbd: $(BINARY_PREREQS) $(NMBD_OBJ) @BUILD_POPT@ $(LIBTALLOC) $(LIBTDB) $(LIBWBCLIENT)
@echo Linking $@
@$(CC) -o $@ $(NMBD_OBJ) $(LDFLAGS) $(DYNEXP) $(LIBS) \
@LIBWBCLIENT_STATIC@ $(LIBWBCLIENT_LIBS) \
$(LIBTALLOC_LIBS) $(LIBTDB_LIBS) $(POPT_LIBS) \
$(KRB5LIBS) $(LDAP_LIBS) $(ZLIB_LIBS)
bin/swat: $(BINARY_PREREQS) $(SWAT_OBJ) $(LIBTALLOC) $(LIBTDB) $(LIBWBCLIENT) @BUILD_POPT@
@echo Linking $@
@$(CC) -o $@ $(SWAT_OBJ) $(LDFLAGS) $(LDAP_LIBS) @SMBD_FAM_LIBS@ \
$(KRB5LIBS) $(DYNEXP) $(PRINT_LIBS) $(AUTH_LIBS) \
$(ACL_LIBS) $(PASSDB_LIBS) $(LIBS) $(DNSSD_LIBS) $(AVAHI_LIBS) \
$(POPT_LIBS) @SMBD_LIBS@ $(LIBTALLOC_LIBS) $(LIBTDB_LIBS) \
$(LIBWBCLIENT_LIBS) $(ZLIB_LIBS)
bin/rpcclient: $(BINARY_PREREQS) $(RPCCLIENT_OBJ) @BUILD_POPT@ $(LIBTALLOC) $(LIBTDB) $(LIBWBCLIENT)
@echo Linking $@
@$(CC) -o $@ $(LDFLAGS) $(RPCCLIENT_OBJ) \
$(DYNEXP) $(TERMLDFLAGS) $(TERMLIBS) $(LIBS) $(POPT_LIBS) \
$(KRB5LIBS) $(LDAP_LIBS) $(LIBTALLOC_LIBS) $(LIBTDB_LIBS) \
$(LIBWBCLIENT_LIBS) $(ZLIB_LIBS) $(PASSDB_LIBS)
bin/smbclient: $(BINARY_PREREQS) $(CLIENT_OBJ) @BUILD_POPT@ $(LIBTALLOC) $(LIBTDB) $(LIBWBCLIENT)
@echo Linking $@
@$(CC) -o $@ $(CLIENT_OBJ) $(LDFLAGS) $(DYNEXP) \
$(TERMLDFLAGS) $(TERMLIBS) $(LIBS) $(POPT_LIBS) \
$(KRB5LIBS) $(LDAP_LIBS) $(NSCD_LIBS) $(DNSSD_LIBS) \
$(LIBTALLOC_LIBS) $(LIBTDB_LIBS) $(LIBWBCLIENT_LIBS) $(ZLIB_LIBS)
bin/net: $(BINARY_PREREQS) $(NET_OBJ) @BUILD_POPT@ $(LIBTALLOC) $(LIBTDB) $(LIBWBCLIENT) $(LIBNETAPI)
@echo Linking $@
@$(CC) -o $@ $(NET_OBJ) $(LDFLAGS) $(LDAP_LIBS) @SMBD_FAM_LIBS@ \
$(KRB5LIBS) $(DYNEXP) $(PRINT_LIBS) $(AUTH_LIBS) \
$(ACL_LIBS) $(PASSDB_LIBS) $(LIBS) $(DNSSD_LIBS) $(AVAHI_LIBS) \
$(POPT_LIBS) @SMBD_LIBS@ $(LIBTALLOC_LIBS) $(LIBTDB_LIBS) \
$(LIBWBCLIENT_LIBS) $(ZLIB_LIBS) $(LIBNETAPI_LIBS) $(TERMLDFLAGS) $(TERMLIBS)
bin/profiles: $(BINARY_PREREQS) $(PROFILES_OBJ) @BUILD_POPT@ $(LIBTALLOC) $(LIBTDB)
@echo Linking $@
@$(CC) -o $@ $(PROFILES_OBJ) $(DYNEXP) $(LDFLAGS) $(LIBS) \
$(LDAP_LIBS) $(POPT_LIBS) $(LIBTALLOC_LIBS) $(LIBTDB_LIBS)
bin/smbspool: $(BINARY_PREREQS) $(CUPS_OBJ) @BUILD_POPT@ $(LIBTALLOC) $(LIBTDB) $(LIBWBCLIENT)
@echo Linking $@
@$(CC) -o $@ $(CUPS_OBJ) $(DYNEXP) $(LDFLAGS) $(LIBS) \
@LIBWBCLIENT_STATIC@ $(LIBWBCLIENT_LIBS) \
$(KRB5LIBS) $(LDAP_LIBS) $(POPT_LIBS) $(LIBTALLOC_LIBS) $(LIBTDB_LIBS) $(ZLIB_LIBS)
bin/testparm: $(BINARY_PREREQS) $(TESTPARM_OBJ) @BUILD_POPT@ $(LIBTALLOC) $(LIBTDB)
@echo Linking $@
@$(CC) -o $@ $(TESTPARM_OBJ) $(LDFLAGS) $(DYNEXP) $(LIBS) \
$(LDAP_LIBS) $(POPT_LIBS) $(LIBTALLOC_LIBS) $(LIBTDB_LIBS)
bin/smbta-util: $(BINARY_PREREQS) $(SMBTA_UTIL_OBJ) @BUILD_POPT@ $(LIBTALLOC) $(LIBTDB)
@echo Linking $@
@$(CC) -o $@ $(SMBTA_UTIL_OBJ) $(LDFLAGS) $(DYNEXP) $(LIBS) \
$(LDAP_LIBS) $(POPT_LIBS) $(LIBTALLOC_LIBS) $(LIBTDB_LIBS)
bin/smbstatus: $(BINARY_PREREQS) $(STATUS_OBJ) $(LIBTALLOC) $(LIBTDB) $(LIBWBCLIENT) @BUILD_POPT@
@echo Linking $@
@$(CC) -o $@ $(STATUS_OBJ) $(LDFLAGS) $(LDAP_LIBS) @SMBD_FAM_LIBS@ \
$(KRB5LIBS) $(DYNEXP) $(PRINT_LIBS) $(AUTH_LIBS) \
$(ACL_LIBS) $(PASSDB_LIBS) $(LIBS) $(DNSSD_LIBS) $(AVAHI_LIBS) \
$(POPT_LIBS) @SMBD_LIBS@ $(LIBTALLOC_LIBS) $(LIBTDB_LIBS) \
$(LIBWBCLIENT_LIBS) $(ZLIB_LIBS)
bin/smbcontrol: $(BINARY_PREREQS) $(SMBCONTROL_OBJ) @BUILD_POPT@ $(LIBTALLOC) $(LIBTDB)
@echo Linking $@
@$(CC) -DUSING_SMBCONTROL -o $@ \
$(SMBCONTROL_OBJ) $(DYNEXP) $(LDFLAGS) \
$(LIBS) $(LDAP_LIBS) @LIBUNWIND_PTRACE@ $(POPT_LIBS) \
$(LIBTALLOC_LIBS) $(LIBTDB_LIBS)
bin/smbtree: $(BINARY_PREREQS) $(SMBTREE_OBJ) @BUILD_POPT@ $(LIBTALLOC) $(LIBTDB) $(LIBWBCLIENT)
@echo Linking $@
@$(CC) -o $@ $(SMBTREE_OBJ) $(LDFLAGS) $(DYNEXP) \
$(LIBS) $(POPT_LIBS) $(KRB5LIBS) $(LDAP_LIBS) $(NSCD_LIBS) \
$(LIBTALLOC_LIBS) $(LIBTDB_LIBS) $(LIBWBCLIENT_LIBS) $(ZLIB_LIBS)
bin/smbpasswd: $(BINARY_PREREQS) $(SMBPASSWD_OBJ) @BUILD_POPT@ $(LIBTALLOC) $(LIBTDB) $(LIBWBCLIENT)
@echo Linking $@
@$(CC) -o $@ $(SMBPASSWD_OBJ) $(LDFLAGS) $(PASSDB_LIBS) \
$(DYNEXP) $(LIBS) $(POPT_LIBS) $(KRB5LIBS) $(LDAP_LIBS) \
$(LIBTALLOC_LIBS) $(LIBTDB_LIBS) $(LIBWBCLIENT_LIBS) $(ZLIB_LIBS)
bin/pdbedit: $(BINARY_PREREQS) $(PDBEDIT_OBJ) @BUILD_POPT@ $(LIBTALLOC) $(LIBTDB) $(LIBWBCLIENT)
Large commit which restructures the local password storage API. Currently the only backend which works is smbpasswd (tdb, LDAP, and NIS+) are broken, but they were somewhat broken before. :) The following functions implement the storage manipulation interface /*The following definitions come from passdb/pdb_smbpasswd.c */ BOOL pdb_setsampwent (BOOL update); void pdb_endsampwent (void); SAM_ACCOUNT* pdb_getsampwent (void); SAM_ACCOUNT* pdb_getsampwnam (char *username); SAM_ACCOUNT* pdb_getsampwuid (uid_t uid); SAM_ACCOUNT* pdb_getsampwrid (uint32 rid); BOOL pdb_add_sam_account (SAM_ACCOUNT *sampass); BOOL pdb_update_sam_account (SAM_ACCOUNT *sampass, BOOL override); BOOL pdb_delete_sam_account (char* username); There is also a host of pdb_set..() and pdb_get..() functions for manipulating SAM_ACCOUNT struct members. Note that the struct passdb_ops {} has gone away. Also notice that struct smb_passwd (formally in smb.h) has been moved to passdb/pdb_smbpasswd.c and is not accessed outisde of static internal functions in this file. All local password searches should make use of the the SAM_ACCOUNT struct and the previously mentioned functions. I'll write some documentation for this later. The next step is to fix the TDB passdb backend, then work on spliting the backends out into share libraries, and finally get the LDAP backend going. What works and may not: o domain logons from Win9x works o domain logons from WinNT 4 works o user and group enumeration as implemented by Tim works o file and print access works o changing password from Win9x & NT ummm...i'll fix this tonight :) If I broke anything else, just yell and I'll fix it. I think it should be fairly quite. -- jerry (This used to be commit 0b92d0838ebdbe24f34f17e313ecbf61a0301389)
2000-11-14 02:03:34 +03:00
@echo Linking $@
@$(CC) -o $@ $(PDBEDIT_OBJ) $(LDFLAGS) $(DYNEXP) $(LIBS) \
$(POPT_LIBS) $(PASSDB_LIBS) $(LDAP_LIBS) $(LIBTALLOC_LIBS) \
$(LIBTDB_LIBS) $(LIBWBCLIENT_LIBS) $(ZLIB_LIBS)
bin/smbget: $(BINARY_PREREQS) $(SMBGET_OBJ) @BUILD_POPT@ $(LIBTALLOC) $(LIBTDB) $(LIBWBCLIENT)
@echo Linking $@
@$(CC) -o $@ $(SMBGET_OBJ) $(LDFLAGS) $(DYNEXP) $(LIBS) \
$(POPT_LIBS) $(KRB5LIBS) $(LDAP_LIBS) $(NSCD_LIBS) \
$(LIBTALLOC_LIBS) $(LIBTDB_LIBS) $(LIBWBCLIENT_LIBS) $(ZLIB_LIBS)
bin/nmblookup: $(BINARY_PREREQS) $(NMBLOOKUP_OBJ) @BUILD_POPT@ $(LIBTALLOC) $(LIBTDB)
@echo Linking $@
@$(CC) -o $@ $(NMBLOOKUP_OBJ) $(LDFLAGS) $(DYNEXP) $(LIBS) \
$(POPT_LIBS) $(LDAP_LIBS) $(LIBTALLOC_LIBS) $(LIBTDB_LIBS)
bin/smbtorture3: $(BINARY_PREREQS) $(SMBTORTURE_OBJ) @BUILD_POPT@ $(LIBTALLOC) $(LIBTDB) $(LIBWBCLIENT) $(IDMAP_UTIL_OBJ)
@echo Linking $@
@$(CC) -o $@ $(SMBTORTURE_OBJ) $(IDMAP_UTIL_OBJ) $(LDFLAGS) $(DYNEXP) \
$(LIBS) $(KRB5LIBS) $(LDAP_LIBS) $(POPT_LIBS) $(LIBTALLOC_LIBS) \
$(LIBTDB_LIBS) $(ZLIB_LIBS) $(LIBWBCLIENT_LIBS)
bin/talloctort: $(BINARY_PREREQS) $(TALLOCTORT_OBJ) @BUILD_POPT@ $(LIBTALLOC) $(LIBTDB)
@echo Linking $@
@$(CC) -o $@ $(TALLOCTORT_OBJ) $(LDFLAGS) \
$(DYNEXP) $(LIBS) $(LDAP_LIBS) $(POPT_LIBS) \
$(LIBTALLOC_LIBS) $(LIBTDB_LIBS)
bin/replacetort: $(REPLACETORT_OBJ) @BUILD_POPT@ $(LIBTALLOC)
@echo Linking $@
@$(CC) -o $@ $(REPLACETORT_OBJ) $(LDFLAGS) \
$(DYNEXP) $(LIBS) $(POPT_LIBS) $(LIBTALLOC_LIBS)
bin/smbconftort: $(SMBCONFTORT_OBJ) @BUILD_POPT@ $(LIBTALLOC) $(LIBTDB)
@echo Linking $@
@$(CC) -o $@ $(SMBCONFTORT_OBJ) $(LDFLAGS) \
$(DYNEXP) $(LIBS) $(LDAP_LIBS) $(POPT_LIBS) \
$(LIBTALLOC_LIBS) $(LIBTDB_LIBS)
bin/pthreadpooltest: $(PTHREADPOOLTEST_OBJ)
2011-04-23 18:49:04 +04:00
@echo Linking $@
@$(CC) -o $@ $(PTHREADPOOLTEST_OBJ) $(LDFLAGS) $(LIBS) $(PTHREAD_LDFLAGS)
2011-04-23 18:49:04 +04:00
bin/masktest: $(BINARY_PREREQS) $(MASKTEST_OBJ) @BUILD_POPT@ $(LIBTALLOC) $(LIBTDB) $(LIBWBCLIENT)
@echo Linking $@
@$(CC) -o $@ $(MASKTEST_OBJ) $(LDFLAGS) $(DYNEXP) \
$(LIBS) $(KRB5LIBS) $(LDAP_LIBS) $(POPT_LIBS) \
@LIBWBCLIENT_STATIC@ $(LIBWBCLIENT_LIBS) \
$(LIBTALLOC_LIBS) $(LIBTDB_LIBS) $(ZLIB_LIBS)
bin/msgtest: $(BINARY_PREREQS) $(MSGTEST_OBJ) @BUILD_POPT@ $(LIBTALLOC) $(LIBTDB)
@echo Linking $@
@$(CC) -o $@ $(MSGTEST_OBJ) $(LDFLAGS) $(DYNEXP) \
$(LIBS) $(KRB5LIBS) $(LDAP_LIBS) $(POPT_LIBS) \
$(LIBTALLOC_LIBS) $(LIBTDB_LIBS) $(ZLIB_LIBS)
bin/smbcacls: $(BINARY_PREREQS) $(SMBCACLS_OBJ) @BUILD_POPT@ $(LIBTALLOC) $(LIBTDB) $(LIBWBCLIENT)
@echo Linking $@
@$(CC) -o $@ $(SMBCACLS_OBJ) $(DYNEXP) $(LDFLAGS) \
$(LIBS) $(POPT_LIBS) $(KRB5LIBS) $(LDAP_LIBS) $(NSCD_LIBS) \
$(LIBTALLOC_LIBS) $(LIBTDB_LIBS) $(LIBWBCLIENT_LIBS) $(ZLIB_LIBS)
bin/smbcquotas: $(BINARY_PREREQS) $(SMBCQUOTAS_OBJ) @BUILD_POPT@ $(LIBTALLOC) $(LIBTDB) $(LIBWBCLIENT)
@echo Linking $@
@$(CC) -o $@ $(SMBCQUOTAS_OBJ) $(DYNEXP) $(LDFLAGS) \
$(LIBS) $(POPT_LIBS) $(KRB5LIBS) $(LDAP_LIBS) $(NSCD_LIBS) \
$(LIBTALLOC_LIBS) $(LIBTDB_LIBS) $(LIBWBCLIENT_LIBS) $(ZLIB_LIBS)
bin/eventlogadm: $(BINARY_PREREQS) $(EVTLOGADM_OBJ) $(LIBTALLOC) $(LIBTDB)
@echo Linking $@
@$(CC) -o $@ $(EVTLOGADM_OBJ) $(DYNEXP) $(LDFLAGS) \
$(LIBS) $(LDAP_LIBS) $(LIBTALLOC_LIBS) $(LIBTDB_LIBS)
bin/sharesec: $(BINARY_PREREQS) $(SHARESEC_OBJ) @BUILD_POPT@ $(LIBTALLOC) $(LIBTDB)
@echo Linking $@
@$(CC) -o $@ $(SHARESEC_OBJ) $(DYNEXP) $(LDFLAGS) \
$(LIBS) $(LDAP_LIBS) $(POPT_LIBS) $(LIBTALLOC_LIBS) $(LIBTDB_LIBS)
bin/locktest: $(BINARY_PREREQS) $(LOCKTEST_OBJ) @BUILD_POPT@ $(LIBTALLOC) $(LIBTDB) $(LIBWBCLIENT)
@echo Linking $@
@$(CC) -o $@ $(LOCKTEST_OBJ) $(LDFLAGS) $(DYNEXP) \
$(LIBS) $(KRB5LIBS) $(LDAP_LIBS) $(POPT_LIBS) \
@LIBWBCLIENT_STATIC@ $(LIBWBCLIENT_LIBS) \
$(LIBTALLOC_LIBS) $(LIBTDB_LIBS) $(ZLIB_LIBS)
bin/nsstest: $(BINARY_PREREQS) $(NSSTEST_OBJ) $(LIBTALLOC)
@echo Linking $@
@$(CC) -o $@ $(NSSTEST_OBJ) $(LDFLAGS) $(DYNEXP) $(LIBS) \
$(LIBTALLOC_LIBS)
bin/vfstest: $(BINARY_PREREQS) $(VFSTEST_OBJ) @BUILD_POPT@ $(LIBTALLOC) $(LIBTDB) $(LIBWBCLIENT)
@echo Linking $@
2009-03-20 16:55:05 +03:00
@$(CC) -o $@ $(VFSTEST_OBJ) $(LDFLAGS) $(TERMLDFLAGS) $(AVAHI_LIBS) \
$(TERMLIBS) $(DYNEXP) $(PRINT_LIBS) $(AUTH_LIBS) $(DNSSD_LIBS) \
$(ACL_LIBS) $(LIBS) $(POPT_LIBS) $(KRB5LIBS) $(LDAP_LIBS) \
@SMBD_LIBS@ $(NSCD_LIBS) $(LIBTALLOC_LIBS) $(LIBTDB_LIBS) \
$(LIBWBCLIENT_LIBS) $(ZLIB_LIBS)
bin/log2pcap: $(BINARY_PREREQS) $(LOG2PCAP_OBJ) @BUILD_POPT@ $(LIBTALLOC)
@echo Linking $@
@$(CC) -o $@ $(LOG2PCAP_OBJ) $(LDFLAGS) $(DYNEXP) \
$(POPT_LIBS) $(LIBS) $(LIBTALLOC_LIBS)
bin/locktest2: $(BINARY_PREREQS) $(LOCKTEST2_OBJ) @BUILD_POPT@ $(LIBTALLOC) $(LIBTDB) $(LIBWBCLIENT)
@echo Linking $@
@$(CC) -o $@ $(LOCKTEST2_OBJ) $(LDFLAGS) $(DYNEXP) \
@LIBWBCLIENT_STATIC@ $(LIBWBCLIENT_LIBS) \
$(LIBS) $(KRB5LIBS) $(LDAP_LIBS) $(POPT_LIBS) \
$(LIBTALLOC_LIBS) $(LIBTDB_LIBS) $(ZLIB_LIBS)
bin/debug2html: $(BINARY_PREREQS) $(DEBUG2HTML_OBJ) @BUILD_POPT@ $(LIBTALLOC)
@echo Linking $@
@$(CC) -o $@ $(DEBUG2HTML_OBJ) $(LDFLAGS) $(DYNEXP) \
$(LIBS) $(LIBTALLOC_LIBS)
bin/smbfilter: $(BINARY_PREREQS) $(SMBFILTER_OBJ) @BUILD_POPT@ $(LIBTALLOC) $(LIBTDB) $(LIBWBCLIENT)
@echo Linking $@
@$(CC) -o $@ $(SMBFILTER_OBJ) $(LDFLAGS) $(DYNEXP) $(LIBS) \
$(KRB5LIBS) $(LDAP_LIBS) $(POPT_LIBS) \
@LIBWBCLIENT_STATIC@ $(LIBWBCLIENT_LIBS) \
$(LIBTALLOC_LIBS) $(LIBTDB_LIBS) $(ZLIB_LIBS)
bin/versiontest: $(BINARY_PREREQS) lib/version_test.o $(VERSION_OBJ)
@echo Linking $@
@$(CC) $(FLAGS) -o $@ $(VERSION_OBJ) lib/version_test.o
#####################################################################
#
# libraries
#
#####################################################################
MKSYMS_SH = $(srcdir)/script/mksyms.sh
#-------------------------------------------------------------------
#
# libtalloc
#
#-------------------------------------------------------------------
LIBTALLOC_OBJ0 = @LIBTALLOC_OBJ0@
LIBTALLOC_OBJ = $(LIBTALLOC_OBJ0) $(LIBREPLACE_OBJ)
LIBTALLOC_STATIC_TARGET=@LIBTALLOC_STATIC_TARGET@
$(LIBTALLOC_STATIC_TARGET): $(BINARY_PREREQS) $(LIBTALLOC_OBJ0)
@echo Linking non-shared library $@
@-$(AR) -rc $@ $(LIBTALLOC_OBJ0)
libtalloc: $(LIBTALLOC)
cleanlibtalloc::
-rm -f \
$(LIBTALLOC_STATIC_TARGET)
libs:: libtalloc
cleanlibs:: cleanlibtalloc
showlibtalloc:
@echo ""
@echo "LIBTALLOC_STATIC = @LIBTALLOC_STATIC@"
@echo "LIBTALLOC_STATIC_TARGET = $(LIBTALLOC_STATIC_TARGET)"
@echo "LIBTALLOC = $(LIBTALLOC)"
showlibs:: showlibtalloc
#-------------------------------------------------------------------
#
# libtdb
#
#-------------------------------------------------------------------
LIBTDB_OBJ0 = @LIBTDB_OBJ0@
LIBTDB_OBJ = $(LIBTDB_OBJ0) $(LIBREPLACE_OBJ)
LIBTDB_STATIC_TARGET=@LIBTDB_STATIC_TARGET@
$(LIBTDB_STATIC_TARGET): $(BINARY_PREREQS) $(LIBTDB_OBJ0)
@echo Linking non-shared library $@
@-$(AR) -rc $@ $(LIBTDB_OBJ0)
libtdb: $(LIBTDB)
cleanlibtdb::
-rm -f \
$(LIBTDB_STATIC_TARGET)
libs:: libtdb
cleanlibs:: cleanlibtdb
showlibtdb:
@echo ""
@echo "LIBTDB_STATIC = @LIBTDB_STATIC@"
@echo "LIBTDB_STATIC_TARGET = $(LIBTDB_STATIC_TARGET)"
@echo "LIBTDB = $(LIBTDB)"
showlibs:: showlibtdb
#-------------------------------------------------------------------
#
# libwbclient
#
#-------------------------------------------------------------------
LIBWBCLIENT_OBJ0 = ../nsswitch/libwbclient/wbclient.o \
../nsswitch/libwbclient/wbc_util.o \
../nsswitch/libwbclient/wbc_pwd.o \
../nsswitch/libwbclient/wbc_idmap.o \
../nsswitch/libwbclient/wbc_sid.o \
../nsswitch/libwbclient/wbc_guid.o \
../nsswitch/libwbclient/wbc_pam.o
LIBWBCLIENT_OBJ = $(LIBWBCLIENT_OBJ0) \
$(WBCOMMON_OBJ) \
$(LIBREPLACE_OBJ) \
../lib/util/blocking.o \
$(SOCKET_WRAPPER_OBJ)
LIBWBCLIENT_SHARED_TARGET=@LIBWBCLIENT_SHARED_TARGET@
LIBWBCLIENT_SOVER=@LIBWBCLIENT_SOVER@
LIBWBCLIENT_FULLVER=@LIBWBCLIENT_FULLVER@
LIBWBCLIENT_SHARED_TARGET_SONAME=@LIBWBCLIENT_SHARED_TARGET_SOVER@
LIBWBCLIENT_STATIC_TARGET=@LIBWBCLIENT_STATIC_TARGET@
LIBWBCLIENT_SYMS=$(srcdir)/exports/libwbclient.@SYMSEXT@
LIBWBCLIENT_HEADERS=$(srcdir)/../nsswitch/libwbclient/wbclient.h
$(LIBWBCLIENT_SYMS): $(LIBWBCLIENT_HEADERS)
@$(MKSYMS_SH) $(AWK) $@ $(LIBWBCLIENT_HEADERS)
$(LIBWBCLIENT_SHARED_TARGET_SONAME): $(BINARY_PREREQS) $(LIBWBCLIENT_OBJ) $(LIBWBCLIENT_SYMS)
@echo Linking shared library $@
@$(SHLD_DSO) $(LIBWBCLIENT_OBJ) $(LIBREPLACE_LIBS) \
@SONAMEFLAG@`basename $@`
$(LIBWBCLIENT_SHARED_TARGET): $(LIBWBCLIENT_SHARED_TARGET_SONAME)
@rm -f $@
@ln -f -s `basename $(LIBWBCLIENT_SHARED_TARGET_SONAME)` $@
$(LIBWBCLIENT_STATIC_TARGET): $(BINARY_PREREQS) $(LIBWBCLIENT_OBJ0) $(WBCOMMON_OBJ)
@echo Linking non-shared library $@
@-$(AR) -rc $@ $(LIBWBCLIENT_OBJ0) $(WBCOMMON_OBJ)
libwbclient: $(LIBWBCLIENT)
cleanlibwbclient::
-rm -f \
$(LIBWBCLIENT_SYMS) \
$(LIBWBCLIENT_STATIC_TARGET) \
$(LIBWBCLIENT_SHARED_TARGET) \
$(LIBWBCLIENT_SHARED_TARGET_SONAME)
installlibwbclient:: installdirs libwbclient
@$(SHELL) $(srcdir)/script/installdirs.sh $(INSTALLPERMS_BIN) $(DESTDIR) $(LIBDIR)
-$(INSTALLLIBCMD_SH) $(LIBWBCLIENT_SHARED_TARGET_SONAME) $(DESTDIR)$(LIBDIR)
@rm -f $(DESTDIR)$(LIBDIR)/`basename $(LIBWBCLIENT_SHARED_TARGET)`
-if test -r $(LIBWBCLIENT_SHARED_TARGET_SONAME) ; then \
ln -f -s `basename $(LIBWBCLIENT_SHARED_TARGET_SONAME)` \
$(DESTDIR)$(LIBDIR)/`basename $(LIBWBCLIENT_SHARED_TARGET)` ; \
fi
-$(INSTALLLIBCMD_A) bin/libwbclient.a $(DESTDIR)$(LIBDIR)
@$(SHELL) $(srcdir)/script/installdirs.sh $(INSTALLPERMS_BIN) $(DESTDIR) ${prefix}/include
-$(INSTALLCMD) -m $(INSTALLPERMS_DATA) $(LIBWBCLIENT_HEADERS) $(DESTDIR)${prefix}/include
uninstalllibwbclient::
-rm -f $(DESTDIR)$(LIBDIR)/`basename $(LIBWBCLIENT_SHARED_TARGET)`
-$(UNINSTALLLIBCMD_SH) $(DESTDIR)$(LIBDIR)/`basename $(LIBWBCLIENT_SHARED_TARGET_SONAME)`
-$(UNINSTALLLIBCMD_A) $(DESTDIR)$(LIBDIR)/`basename $(LIBWBCLIENT_STATIC_TARGET)`
-rm -f $(DESTDIR)${prefix}/include/wbclient.h
libs:: libwbclient
installlibs:: @INSTALL_LIBWBCLIENT@
uninstalllibs:: uninstalllibwbclient
cleanlibs:: cleanlibwbclient
shlibs test_shlibs: @LIBWBCLIENT_SHARED@
showlibwbclient:
@echo ""
@echo "LIBWBCLIENT_SHARED = @LIBWBCLIENT_SHARED@"
@echo "LIBWBCLIENT_STATIC = @LIBWBCLIENT_STATIC@"
@echo "LIBWBCLIENT_LIBS = $(LIBWBCLIENT_LIBS)"
@echo ""
@echo "LIBWBCLIENT_SHARED_TARGET = $(LIBWBCLIENT_SHARED_TARGET)"
@echo "LIBWBCLIENT_SOVER = $(LIBWBCLIENT_SOVER)"
@echo "LIBWBCLIENT_FULLVER = $(LIBWBCLIENT_FULLVER)"
@echo "LIBWBCLIENT_SHARED TARGET_SONAME = $(LIBWBCLIENT_SHARED_TARGET_SONAME)"
@echo "LIBWBCLIENT_STATIC_TARGET = $(LIBWBCLIENT_STATIC_TARGET)"
@echo "LIBWBCLIENT = $(LIBWBCLIENT)"
showlibs:: showlibwbclient
#-------------------------------------------------------------------
#
# libnetapi
#
#-------------------------------------------------------------------
LIBNETAPI_OBJ0 = lib/netapi/netapi.o \
lib/netapi/cm.o \
autoconf/librpc/gen_ndr/ndr_libnetapi.o \
lib/netapi/libnetapi.o \
lib/netapi/joindomain.o \
lib/netapi/serverinfo.o \
lib/netapi/getdc.o \
lib/netapi/user.o \
lib/netapi/group.o \
lib/netapi/localgroup.o \
lib/netapi/samr.o \
lib/netapi/sid.o \
lib/netapi/share.o \
lib/netapi/file.o \
lib/netapi/shutdown.o \
lib/netapi/netlogon.o
LIBNETAPI_OBJ = $(LIBNETAPI_OBJ0) $(LIBNET_OBJ) \
$(LIBSMBCONF_OBJ) \
$(REG_SMBCONF_OBJ) \
$(PARAM_WITHOUT_REG_OBJ) $(LIB_NONSMBD_OBJ) \
$(LIBSMB_OBJ) $(KRBCLIENT_OBJ) \
$(LIBMSRPC_OBJ) $(LIBMSRPC_GEN_OBJ) \
$(PASSDB_OBJ) $(SMBLDAP_OBJ) $(GROUPDB_OBJ) \
$(DCUTIL_OBJ) $(LIBADS_OBJ) $(PRIVILEGES_BASIC_OBJ) \
auth/token_util.o \
$(LIBCLI_INITSHUTDOWN_OBJ) \
$(LIBCLI_WKSSVC_OBJ) \
$(LIBCLI_SRVSVC_OBJ) \
$(LIBCLI_LSA_OBJ) \
$(LIBCLI_SAMR_OBJ) \
$(RPC_CLIENT_SCHANNEL_OBJ) \
rpc_client/init_samr.o
LIBNETAPI_SHARED_TARGET=@LIBNETAPI_SHARED_TARGET@
LIBNETAPI_SOVER=@LIBNETAPI_SOVER@
LIBNETAPI_FULLVER=@LIBNETAPI_FULLVER@
LIBNETAPI_SHARED_TARGET_SONAME=@LIBNETAPI_SHARED_TARGET_SOVER@
LIBNETAPI_STATIC_TARGET=@LIBNETAPI_STATIC_TARGET@
LIBNETAPI_SYMS=$(srcdir)/exports/libnetapi.@SYMSEXT@
LIBNETAPI_HEADERS=$(srcdir)/lib/netapi/netapi.h
$(LIBNETAPI_SYMS): $(LIBNETAPI_HEADERS)
@$(MKSYMS_SH) $(AWK) $@ $(LIBNETAPI_HEADERS)
$(LIBNETAPI_SHARED_TARGET_SONAME): $(BINARY_PREREQS) $(LIBNETAPI_OBJ) $(LIBNETAPI_SYMS) $(LIBTALLOC) $(LIBTDB) $(LIBWBCLIENT)
@echo Linking shared library $@
@$(SHLD_DSO) $(LIBNETAPI_OBJ) \
$(LIBTALLOC_LIBS) $(LIBTDB_LIBS) $(LIBWBCLIENT_LIBS) $(LIBS) \
$(LDAP_LIBS) $(KRB5LIBS) $(NSCD_LIBS) $(ZLIB_LIBS) \
@SONAMEFLAG@`basename $@`
$(LIBNETAPI_SHARED_TARGET): $(LIBNETAPI_SHARED_TARGET_SONAME)
@rm -f $@
@ln -f -s `basename $(LIBNETAPI_SHARED_TARGET_SONAME)` $@
$(LIBNETAPI_STATIC_TARGET): $(BINARY_PREREQS) $(LIBNETAPI_OBJ0)
@echo Linking non-shared library $@
@-$(AR) -rc $@ $(LIBNETAPI_OBJ0)
libnetapi: $(LIBNETAPI)
cleanlibnetapi::
-rm -f \
$(LIBNETAPI_SYMS) \
$(LIBNETAPI_STATIC_TARGET) \
$(LIBNETAPI_SHARED_TARGET) \
$(LIBNETAPI_SHARED_TARGET_SONAME)
installlibnetapi:: installdirs libnetapi
@$(SHELL) $(srcdir)/script/installdirs.sh $(INSTALLPERMS_BIN) $(DESTDIR) $(LIBDIR)
-$(INSTALLLIBCMD_SH) $(LIBNETAPI_SHARED_TARGET_SONAME) $(DESTDIR)$(LIBDIR)
@rm -f $(DESTDIR)$(LIBDIR)/`basename $(LIBNETAPI_SHARED_TARGET)`
-if test -r $(LIBNETAPI_SHARED_TARGET_SONAME) ; then \
ln -f -s `basename $(LIBNETAPI_SHARED_TARGET_SONAME)` \
$(DESTDIR)$(LIBDIR)/`basename $(LIBNETAPI_SHARED_TARGET)` ; \
fi
-$(INSTALLLIBCMD_A) $(LIBNETAPI_STATIC_TARGET) $(DESTDIR)$(LIBDIR)
@$(SHELL) $(srcdir)/script/installdirs.sh $(INSTALLPERMS_BIN) $(DESTDIR) ${prefix}/include
-$(INSTALLCMD) -m $(INSTALLPERMS_DATA) $(srcdir)/lib/netapi/netapi.h $(DESTDIR)${prefix}/include
uninstalllibnetapi::
-rm -f $(DESTDIR)$(LIBDIR)/`basename $(LIBNETAPI_SHARED_TARGET)`
-$(UNINSTALLLIBCMD_SH) $(DESTDIR)$(LIBDIR)/`basename $(LIBNETAPI_SHARED_TARGET_SONAME)`
-$(UNINSTALLLIBCMD_A) $(DESTDIR)$(LIBDIR)/`basename $(LIBNETAPI_STATIC_TARGET)`
-rm -f $(DESTDIR)${prefix}/include/netapi.h
libs:: libnetapi
installlibs:: @INSTALL_LIBNETAPI@
uninstalllibs:: @UNINSTALL_LIBNETAPI@
cleanlibs:: cleanlibnetapi
shlibs test_shlibs: @LIBNETAPI_SHARED@
showlibnetapi:
@echo ""
@echo "LIBNETAPI_SHARED = @LIBNETAPI_SHARED@"
@echo "LIBNETAPI_STATIC = @LIBNETAPI_STATIC@"
@echo "LIBNETAPI_LIBS = $(LIBNETAPI_LIBS)"
@echo ""
@echo "LIBNETAPI_SHARED_TARGET = $(LIBNETAPI_SHARED_TARGET)"
@echo "LIBNETAPI_SOVER = $(LIBNETAPI_SOVER)"
@echo "LIBNETAPI_FULLVER = $(LIBNETAPI_FULLVER)"
@echo "LIBNETAPI_SHARED TARGET_SONAME = $(LIBNETAPI_SHARED_TARGET_SONAME)"
@echo "LIBNETAPI_STATIC_TARGET = $(LIBNETAPI_STATIC_TARGET)"
@echo "LIBNETAPI = $(LIBNETAPI)"
showlibs:: showlibnetapi
#-------------------------------------------------------------------
#
# libsmbclient
#
#-------------------------------------------------------------------
LIBSMBCLIENT_SHARED_TARGET=@LIBSMBCLIENT_SHARED_TARGET@
LIBSMBCLIENT_SOVER=@LIBSMBCLIENT_SOVER@
LIBSMBCLIENT_FULLVER=@LIBSMBCLIENT_FULLVER@
LIBSMBCLIENT_SHARED_TARGET_SONAME=@LIBSMBCLIENT_SHARED_TARGET_SOVER@
LIBSMBCLIENT_STATIC_TARGET=@LIBSMBCLIENT_STATIC_TARGET@
LIBSMBCLIENT=@LIBSMBCLIENT_STATIC@ @LIBSMBCLIENT_SHARED@
LIBSMBCLIENT_SYMS=$(srcdir)/exports/libsmbclient.@SYMSEXT@
LIBSMBCLIENT_HEADERS=$(srcdir)/include/libsmbclient.h
$(LIBSMBCLIENT_SYMS): $(LIBSMBCLIENT_HEADERS)
@$(MKSYMS_SH) $(AWK) $@ $(LIBSMBCLIENT_HEADERS)
$(LIBSMBCLIENT_SHARED_TARGET_SONAME): $(BINARY_PREREQS) $(LIBSMBCLIENT_OBJ) $(LIBSMBCLIENT_THREAD_OBJ) $(LIBSMBCLIENT_SYMS) $(LIBTALLOC) $(LIBTDB) $(LIBWBCLIENT)
@echo Linking shared library $@
@$(SHLD_DSO) $(LIBSMBCLIENT_OBJ) $(LIBSMBCLIENT_THREAD_OBJ) \
$(LIBTALLOC_LIBS) $(LIBTDB_LIBS) $(LIBWBCLIENT_LIBS) $(LIBS) \
$(KRB5LIBS) $(LDAP_LIBS) $(NSCD_LIBS) $(ZLIB_LIBS) $(PTHREAD_LDFLAGS) \
@SONAMEFLAG@`basename $@`
$(LIBSMBCLIENT_SHARED_TARGET): $(LIBSMBCLIENT_SHARED_TARGET_SONAME)
@rm -f $@
@ln -s `basename $(LIBSMBCLIENT_SHARED_TARGET_SONAME)` $@
$(LIBSMBCLIENT_STATIC_TARGET): $(BINARY_PREREQS) $(LIBSMBCLIENT_OBJ1)
@echo Linking non-shared library $@
@-$(AR) -rc $@ $(LIBSMBCLIENT_OBJ1)
libsmbclient: $(LIBSMBCLIENT)
cleanlibsmbclient::
-rm -f \
$(LIBSMBCLIENT_SHARED_TARGET) \
$(LIBSMBCLIENT_SHARED_TARGET_SONAME) \
$(LIBSMBCLIENT_STATIC_TARGET)
installlibsmbclient:: installdirs libsmbclient
@$(SHELL) $(srcdir)/script/installdirs.sh $(INSTALLPERMS_BIN) $(DESTDIR) $(LIBDIR)
-$(INSTALLLIBCMD_SH) $(LIBSMBCLIENT_SHARED_TARGET_SONAME) $(DESTDIR)$(LIBDIR)
@rm -f $(DESTDIR)$(LIBDIR)/`basename $(LIBSMBCLIENT_SHARED_TARGET)`
-if test -r $(LIBSMBCLIENT_SHARED_TARGET_SONAME) ; then \
ln -f -s `basename $(LIBSMBCLIENT_SHARED_TARGET_SONAME)` \
$(DESTDIR)$(LIBDIR)/`basename $(LIBSMBCLIENT_SHARED_TARGET)` ; \
fi
-$(INSTALLLIBCMD_A) $(LIBSMBCLIENT_STATIC_TARGET) $(DESTDIR)$(LIBDIR)
@$(SHELL) $(srcdir)/script/installdirs.sh $(INSTALLPERMS_BIN) $(DESTDIR) ${prefix}/include
-$(INSTALLCMD) -m $(INSTALLPERMS_DATA) $(LIBSMBCLIENT_HEADERS) $(DESTDIR)${prefix}/include
installclientlib:: installlibsmbclient
uninstalllibsmbclient::
-rm -f $(DESTDIR)$(LIBDIR)/`basename $(LIBSMBCLIENT_SHARED_TARGET)`
-$(UNINSTALLLIBCMD_SH) $(DESTDIR)$(LIBDIR)/`basename $(LIBSMBCLIENT_SHARED_TARGET_SONAME)`
-$(UNINSTALLLIBCMD_A) $(DESTDIR)$(LIBDIR)/`basename $(LIBSMBCLIENT_STATIC_TARGET)`
-rm -f $(DESTDIR)${prefix}/include/libsmbclient.h
uninstallclientlib:: uninstalllibsmbclient
libs:: libsmbclient
installlibs:: @INSTALL_LIBSMBCLIENT@
uninstalllibs:: @UNINSTALL_LIBSMBCLIENT@
cleanlibs:: cleanlibsmbclient
shlibs test_shlibs: @LIBSMBCLIENT_SHARED@
showlibsmbclient:
@echo ""
@echo "LIBSMBCLIENT_SHARED = @LIBSMBCLIENT_SHARED@"
@echo "LIBSMBCLIENT_STATIC = @LIBSMBCLIENT_STATIC@"
@echo "LIBSMBCLIENT_LIBS = $(LIBSMBCLIENT_LIBS)"
@echo ""
@echo "LIBSMBCLIENT_SHARED_TARGET = $(LIBSMBCLIENT_SHARED_TARGET)"
@echo "LIBSMBCLIENT_SOVER = $(LIBSMBCLIENT_SOVER)"
@echo "LIBSMBCLIENT_FULLVER = $(LIBSMBCLIENT_FULLVER)"
@echo "LIBSMBCLIENT_SHARED TARGET_SONAME = $(LIBSMBCLIENT_SHARED_TARGET_SONAME)"
@echo "LIBSMBCLIENT_STATIC_TARGET = $(LIBSMBCLIENT_STATIC_TARGET)"
@echo "LIBSMBCLIENT = $(LIBSMBCLIENT)"
showlibs:: showlibsmbclient
#-------------------------------------------------------------------
#
# libsmbsharemodes
#
#-------------------------------------------------------------------
LIBSMBSHAREMODES_OBJ0 = libsmb/smb_share_modes.o ../lib/ccan/hash/hash.o
LIBSMBSHAREMODES_OBJ = $(LIBSMBSHAREMODES_OBJ0)
LIBSMBSHAREMODES_SHARED_TARGET=@LIBSMBSHAREMODES_SHARED_TARGET@
LIBSMBSHAREMODES_SOVER=@LIBSMBSHAREMODES_SOVER@
LIBSMBSHAREMODES_FULLVER=@LIBSMBSHAREMODES_FULLVER@
LIBSMBSHAREMODES_SHARED_TARGET_SONAME=@LIBSMBSHAREMODES_SHARED_TARGET_SOVER@
LIBSMBSHAREMODES_STATIC_TARGET=@LIBSMBSHAREMODES_STATIC_TARGET@
LIBSMBSHAREMODES=@LIBSMBSHAREMODES_STATIC@ @LIBSMBSHAREMODES_SHARED@
LIBSMBSHAREMODES_SYMS=$(srcdir)/exports/libsmbsharemodes.@SYMSEXT@
LIBSMBSHAREMODES_HEADERS=$(srcdir)/include/smb_share_modes.h
$(LIBSMBSHAREMODES_SYMS): $(LIBSMBSHAREMODES_HEADERS)
@$(MKSYMS_SH) $(AWK) $@ $(LIBSMBSHAREMODES_HEADERS)
$(LIBSMBSHAREMODES_SHARED_TARGET_SONAME): $(BINARY_PREREQS) $(LIBSMBSHAREMODES_OBJ) $(LIBSMBSHAREMODES_SYMS) $(LIBTALLOC) $(LIBTDB)
@echo Linking shared library $@
@$(SHLD_DSO) $(LIBSMBSHAREMODES_OBJ) \
$(LIBS) $(LIBTALLOC_LIBS) $(LIBTDB_LIBS) \
@SONAMEFLAG@`basename $@`
$(LIBSMBSHAREMODES_SHARED_TARGET): $(LIBSMBSHAREMODES_SHARED_TARGET_SONAME)
@rm -f $@
@ln -f -s `basename $(LIBSMBSHAREMODES_SHARED_TARGET_SONAME)` $@
$(LIBSMBSHAREMODES_STATIC_TARGET): $(BINARY_PREREQS) $(LIBSMBSHAREMODES_OBJ0)
@echo Linking non-shared library $@
@-$(AR) -rc $@ $(LIBSMBSHAREMODES_OBJ0)
libsmbsharemodes: $(LIBSMBSHAREMODES)
cleanlibsmbsharemodes::
-rm -f \
$(LIBSMBSHAREMODES_SHARED_TARGET) \
$(LIBSMBSHAREMODES_SHARED_TARGET_SONAME) \
$(LIBSMBSHAREMODES_STATIC_TARGET)
installlibsmbsharemodes:: installdirs libsmbsharemodes
@$(SHELL) $(srcdir)/script/installdirs.sh $(INSTALLPERMS_BIN) $(DESTDIR) $(LIBDIR)
-$(INSTALLLIBCMD_SH) $(LIBSMBSHAREMODES_SHARED_TARGET_SONAME) $(DESTDIR)$(LIBDIR)
@rm -f $(DESTDIR)$(LIBDIR)/`basename $(LIBSMBSHAREMODES_SHARED_TARGET)`
-if test -r $(LIBSMBSHAREMODES_SHARED_TARGET_SONAME) ; then \
ln -f -s `basename $(LIBSMBSHAREMODES_SHARED_TARGET_SONAME)` \
$(DESTDIR)$(LIBDIR)/`basename $(LIBSMBSHAREMODES_SHARED_TARGET)` ; \
fi
-$(INSTALLLIBCMD_A) $(LIBSMBSHAREMODES_STATIC_TARGET) $(DESTDIR)$(LIBDIR)
@$(SHELL) $(srcdir)/script/installdirs.sh $(INSTALLPERMS_BIN) $(DESTDIR) ${prefix}/include
-$(INSTALLCMD) -m $(INSTALLPERMS_DATA) $(LIBSMBSHAREMODES_HEADERS) $(DESTDIR)${prefix}/include
uninstalllibsmbsharemodes::
-rm -f $(DESTDIR)$(LIBDIR)/`basename $(LIBSMBSHAREMODES_SHARED_TARGET)`
-$(UNINSTALLLIBCMD_SH) $(DESTDIR)$(LIBDIR)/`basename $(LIBSMBSHAREMODES_SHARED_TARGET_SONAME)`
-$(UNINSTALLLIBCMD_A) $(DESTDIR)$(LIBDIR)/`basename $(LIBSMBSHAREMODES_STATIC_TARGET)`
-rm -f $(DESTDIR)${prefix}/include/smb_share_modes.h
libs:: libsmbsharemodes
installlibs:: @INSTALL_LIBSMBSHAREMODES@
uninstalllibs:: @UNINSTALL_LIBSMBSHAREMODES@
cleanlibs:: cleanlibsmbsharemodes
shlibs test_shlibs: @LIBSMBSHAREMODES_SHARED@
showlibsmbsharemodes:
@echo ""
@echo "LIBSMBSHAREMODES_SHARED = @LIBSMBSHAREMODES_SHARED@"
@echo "LIBSMBSHAREMODES_STATIC = @LIBSMBSHAREMODES_STATIC@"
@echo "LIBSMBSHAREMODES_TARGET = @LIBSMBSHAREMODES_TARGET@"
@echo "LIBSMBSHAREMODES_LIBS = $(LIBSMBSHAREMODES_LIBS)"
@echo ""
@echo "LIBSMBSHAREMODES_SHARED_TARGET = $(LIBSMBSHAREMODES_SHARED_TARGET)"
@echo "LIBSMBSHAREMODES_SOVER = $(LIBSMBSHAREMODES_SOVER)"
@echo "LIBSMBSHAREMODES_FULLVER = $(LIBSMBSHAREMODES_FULLVER)"
@echo "LIBSMBSHAREMODES_SHARED TARGET_SONAME = $(LIBSMBSHAREMODES_SHARED_TARGET_SONAME)"
@echo "LIBSMBSHAREMODES_STATIC_TARGET = $(LIBSMBSHAREMODES_STATIC_TARGET)"
@echo "LIBSMBSHAREMODES = $(LIBSMBSHAREMODES)"
showlibs:: showlibsmbsharemodes
#####################################################################
#
# shared modules
#
#####################################################################
# Linker command to link our shared libraries:
SHLD_LIBRARY = $(SHLD) $(LDSHFLAGS) $(MODULE_EXPORTS) \
-o $@ @SONAMEFLAG@`basename $@`
# Linker command to link samba internal plugin modules:
SHLD_MODULE = $(SHLD) $(LDSHFLAGS_MODULES) $(MODULE_EXPORTS) \
-o $@ @SONAMEFLAG@`basename $@`
bin/librpc_lsarpc.@SHLIBEXT@: $(BINARY_PREREQS) $(RPC_LSARPC_OBJ)
@echo "Linking $@"
@$(SHLD_LIBRARY) $(RPC_LSARPC_OBJ)
bin/librpc_samr.@SHLIBEXT@: $(BINARY_PREREQS) $(RPC_SAMR_OBJ)
@echo "Linking $@"
@$(SHLD_LIBRARY) $(RPC_SAMR_OBJ)
bin/librpc_srvsvc.@SHLIBEXT@: $(BINARY_PREREQS) $(RPC_SRVSVC_OBJ)
@echo "Linking $@"
@$(SHLD_LIBRARY) $(RPC_SRVSVC_OBJ)
bin/librpc_svcctl.@SHLIBEXT@: $(BINARY_PREREQS) $(RPC_SVCCTL_OBJ)
@echo "Linking $@"
@$(SHLD_LIBRARY) $(RPC_SVCCTL_OBJ)
bin/librpc_ntsvcs.@SHLIBEXT@: $(BINARY_PREREQS) $(RPC_NTSVCS_OBJ)
@echo "Linking $@"
@$(SHLD_LIBRARY) $(RPC_NTSVCS_OBJ)
bin/librpc_wkssvc.@SHLIBEXT@: $(BINARY_PREREQS) $(RPC_WKSSVC_OBJ)
@echo "Linking $@"
@$(SHLD_LIBRARY) $(RPC_WKSSVC_OBJ)
bin/librpc_NETLOGON.@SHLIBEXT@: $(BINARY_PREREQS) $(RPC_NETLOGON_OBJ)
@echo "Linking $@"
@$(SHLD_LIBRARY) $(RPC_NETLOGON_OBJ)
bin/librpc_winreg.@SHLIBEXT@: $(BINARY_PREREQS) $(RPC_WINREG_OBJ)
@echo "Linking $@"
@$(SHLD_LIBRARY) $(RPC_WINREG_OBJ)
bin/librpc_initshutdown.@SHLIBEXT@: $(BINARY_PREREQS) $(RPC_INITSHUTDOWN_OBJ)
@echo "Linking $@"
@$(SHLD_LIBRARY) $(RPC_INITSHUTDOWN_OBJ)
bin/librpc_dssetup.@SHLIBEXT@: $(BINARY_PREREQS) $(RPC_DSSETUP_OBJ)
@echo "Linking $@"
@$(SHLD_LIBRARY) $(RPC_DSSETUP_OBJ)
bin/librpc_spoolss.@SHLIBEXT@: $(BINARY_PREREQS) $(RPC_SPOOLSS_OBJ)
@echo "Linking $@"
@$(SHLD_LIBRARY) $(RPC_SPOOLSS_OBJ)
bin/librpc_eventlog.@SHLIBEXT@: $(BINARY_PREREQS) $(RPC_EVENTLOG_OBJ)
@echo "Linking $@"
@$(SHLD_LIBRARY) $(RPC_EVENTLOG_OBJ)
bin/librpc_netdfs.@SHLIBEXT@: $(BINARY_PREREQS) $(RPC_NETDFS_OBJ)
@echo "Linking $@"
@$(SHLD_LIBRARY) $(RPC_NETDFS_OBJ)
bin/librpc_rpcecho.@SHLIBEXT@: $(BINARY_PREREQS) $(RPC_RPCECHO_OBJ)
@echo "Linking $@"
@$(SHLD_LIBRARY) $(RPC_RPCECHO_OBJ)
bin/winbindd: $(BINARY_PREREQS) $(WINBINDD_OBJ) @BUILD_POPT@ $(LIBTALLOC) $(LIBTDB) $(LIBWBCLIENT)
@echo "Linking $@"
@$(CC) -o $@ $(WINBINDD_OBJ) $(LDFLAGS) $(DYNEXP) $(LIBS) \
$(POPT_LIBS) $(KRB5LIBS) $(LDAP_LIBS) $(AUTH_LIBS) \
$(PASSDB_LIBS) $(LIBTALLOC_LIBS) $(LIBTDB_LIBS) $(LIBWBCLIENT_LIBS) \
$(ZLIB_LIBS)
bin/vlp: $(BINARY_PREREQS) $(VLP_OBJ) $(LIBTDB) $(LIBTALLOC)
@echo "Linking $@"
@$(CC) -o $@ $(VLP_OBJ) $(LDFLAGS) $(DYNEXP) \
$(TERMLDFLAGS) $(TERMLIBS) $(LIBS) $(POPT_LIBS) \
$(LIBTALLOC_LIBS) \
$(LIBTDB_LIBS)
@WINBIND_NSS@: $(BINARY_PREREQS) $(WINBIND_NSS_OBJ)
@echo "Linking $@"
@$(SHLD) $(WINBIND_NSS_LDSHFLAGS) -o $@ $(WINBIND_NSS_OBJ) \
$(LIBREPLACE_LIBS) $(PTHREAD_LDFLAGS) \
@SONAMEFLAG@`basename $@`@NSSSONAMEVERSIONSUFFIX@
@WINBIND_WINS_NSS@: $(BINARY_PREREQS) $(WINBIND_WINS_NSS_OBJ) $(LIBTALLOC) $(LIBTDB)
@echo "Linking $@"
@$(SHLD) $(LDSHFLAGS) -o $@ $(WINBIND_WINS_NSS_OBJ) \
$(LDAP_LIBS) $(KRB5LIBS) $(LIBS) $(LIBTALLOC_LIBS) $(LIBTDB_LIBS) $(ZLIB_LIBS) \
@SONAMEFLAG@`basename $@`@NSSSONAMEVERSIONSUFFIX@
bin/winbind_krb5_locator.@SHLIBEXT@: $(BINARY_PREREQS) $(WINBIND_KRB5_LOCATOR_OBJ) $(LIBWBCLIENT)
@echo "Linking $@"
@$(SHLD) $(LDSHFLAGS) -o $@ $(WINBIND_KRB5_LOCATOR_OBJ) $(LIBWBCLIENT_LIBS) $(KRB5LIBS) \
$(LIBREPLACE_LIBS) @SONAMEFLAG@`basename $@`
bin/pam_winbind.@SHLIBEXT@: $(BINARY_PREREQS) $(PAM_WINBIND_OBJ) $(LIBTALLOC) $(LIBWBCLIENT)
@echo "Linking shared library $@"
@$(SHLD) $(LDSHFLAGS) -o $@ $(PAM_WINBIND_OBJ) -lpam @INIPARSERLIBS@ \
$(LIBREPLACE_LIBS) $(LIBTALLOC_LIBS) $(LIBWBCLIENT_LIBS) @SONAMEFLAG@`basename $@`
##########
# Plugins:
##########
bin/builtin.@SHLIBEXT@: $(BINARY_PREREQS) $(AUTH_BUILTIN_OBJ)
@echo "Building plugin $@"
@$(SHLD_MODULE) $(AUTH_BUILTIN_OBJ)
bin/domain.@SHLIBEXT@: $(BINARY_PREREQS) $(AUTH_DOMAIN_OBJ)
@echo "Building plugin $@"
@$(SHLD_MODULE) $(AUTH_DOMAIN_OBJ)
bin/script.@SHLIBEXT@: $(BINARY_PREREQS) $(AUTH_SCRIPT_OBJ)
@echo "Building plugin $@"
@$(SHLD_MODULE) $(AUTH_SCRIPT_OBJ)
bin/winbind.@SHLIBEXT@: $(BINARY_PREREQS) $(AUTH_WINBIND_OBJ)
@echo "Building plugin $@"
@$(SHLD_MODULE) $(AUTH_WINBIND_OBJ)
bin/wbc.@SHLIBEXT@: $(BINARY_PREREQS) $(AUTH_WBC_OBJ)
@echo "Building plugin $@"
@$(SHLD_MODULE) $(AUTH_WBC_OBJ)
bin/unix.@SHLIBEXT@: $(BINARY_PREREQS) $(AUTH_UNIX_OBJ)
@echo "Building plugin $@"
@$(SHLD_MODULE) $(AUTH_UNIX_OBJ)
bin/sam.@SHLIBEXT@: $(BINARY_PREREQS) $(AUTH_SAM_OBJ)
@echo "Building plugin $@"
@$(SHLD_MODULE) $(AUTH_SAM_OBJ)
bin/ldapsam.@SHLIBEXT@: $(BINARY_PREREQS) passdb/pdb_ldap.o passdb/pdb_nds.o \
passdb/pdb_ipa.o passdb/pdb_ldap_util.o
@echo "Building plugin $@"
@$(SHLD_MODULE) passdb/pdb_ldap.o passdb/pdb_nds.o passdb/pdb_ipa.o \
passdb/pdb_ldap_util.o $(LDAP_LIBS)
bin/tdbsam.@SHLIBEXT@: $(BINARY_PREREQS) passdb/pdb_tdb.o
@echo "Building plugin $@"
@$(SHLD_MODULE) passdb/pdb_tdb.o
bin/wbc_sam.@SHLIBEXT@: $(BINARY_PREREQS) passdb/pdb_wbc_sam.o
@echo "Building plugin $@"
@$(SHLD_MODULE) passdb/pdb_wbc_sam.o
bin/smbpasswd.@SHLIBEXT@: $(BINARY_PREREQS) passdb/pdb_smbpasswd.o
@echo "Building plugin $@"
@$(SHLD_MODULE) passdb/pdb_smbpasswd.o
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/autorid.@SHLIBEXT@: $(BINARY_PREREQS) winbindd/idmap_autorid.o
@echo "Building plugin $@"
@$(SHLD_MODULE) winbindd/idmap_autorid.o
bin/ad.@SHLIBEXT@: $(BINARY_PREREQS) winbindd/idmap_ad.o
@echo "Building plugin $@"
@$(SHLD_MODULE) winbindd/idmap_ad.o
bin/hash.@SHLIBEXT@: $(BINARY_PREREQS) $(IDMAP_HASH_OBJ)
@echo "Building plugin $@"
@$(SHLD_MODULE) $(IDMAP_HASH_OBJ)
bin/tdb2.@SHLIBEXT@: $(BINARY_PREREQS) winbindd/idmap_tdb2.o $(IDMAP_RW_OBJ)
@echo "Building plugin $@"
@$(SHLD_MODULE) winbindd/idmap_tdb2.o $(IDMAP_RW_OBJ)
bin/ldap.@SHLIBEXT@: $(BINARY_PREREQS) winbindd/idmap_ldap.o $(IDMAP_RW_OBJ)
@echo "Building plugin $@"
@$(SHLD_MODULE) winbindd/idmap_ldap.o $(IDMAP_RW_OBJ)
# NOTE, there is no build rule for a dynamic default VFS module because
# this one MUST MUST MUST be built statically.
bin/audit.@SHLIBEXT@: $(BINARY_PREREQS) $(VFS_AUDIT_OBJ)
@echo "Building plugin $@"
@$(SHLD_MODULE) $(VFS_AUDIT_OBJ)
bin/extd_audit.@SHLIBEXT@: $(BINARY_PREREQS) $(VFS_EXTD_AUDIT_OBJ)
@echo "Building plugin $@"
@$(SHLD_MODULE) $(VFS_EXTD_AUDIT_OBJ)
bin/full_audit.@SHLIBEXT@: $(BINARY_PREREQS) $(VFS_FULL_AUDIT_OBJ)
@echo "Building plugin $@"
@$(SHLD_MODULE) $(VFS_FULL_AUDIT_OBJ)
bin/recycle.@SHLIBEXT@: $(BINARY_PREREQS) $(VFS_RECYCLE_OBJ)
@echo "Building plugin $@"
@$(SHLD_MODULE) $(VFS_RECYCLE_OBJ)
bin/netatalk.@SHLIBEXT@: $(BINARY_PREREQS) $(VFS_NETATALK_OBJ)
@echo "Building plugin $@"
@$(SHLD_MODULE) $(VFS_NETATALK_OBJ)
bin/fake_perms.@SHLIBEXT@: $(BINARY_PREREQS) $(VFS_FAKE_PERMS_OBJ)
@echo "Building plugin $@"
@$(SHLD_MODULE) $(VFS_FAKE_PERMS_OBJ)
bin/fake_acls.@SHLIBEXT@: $(BINARY_PREREQS) $(VFS_FAKE_ACLS_OBJ)
@echo "Building plugin $@"
@$(SHLD_MODULE) $(VFS_FAKE_ACLS_OBJ)
bin/default_quota.@SHLIBEXT@: $(BINARY_PREREQS) $(VFS_DEFAULT_QUOTA_OBJ)
@echo "Building plugin $@"
@$(SHLD_MODULE) $(VFS_DEFAULT_QUOTA_OBJ)
bin/readonly.@SHLIBEXT@: $(BINARY_PREREQS) $(VFS_READONLY_OBJ)
@echo "Building plugin $@"
@$(SHLD_MODULE) $(VFS_READONLY_OBJ)
bin/shadow_copy.@SHLIBEXT@: $(BINARY_PREREQS) $(VFS_SHADOW_COPY_OBJ)
@echo "Building plugin $@"
@$(SHLD_MODULE) $(VFS_SHADOW_COPY_OBJ)
bin/shadow_copy2.@SHLIBEXT@: $(BINARY_PREREQS) $(VFS_SHADOW_COPY2_OBJ)
@echo "Building plugin $@"
@$(SHLD_MODULE) $(VFS_SHADOW_COPY2_OBJ)
bin/syncops.@SHLIBEXT@: $(BINARY_PREREQS) $(VFS_SYNCOPS_OBJ)
@echo "Building plugin $@"
@$(SHLD_MODULE) $(VFS_SYNCOPS_OBJ)
bin/cap.@SHLIBEXT@: $(BINARY_PREREQS) $(VFS_CAP_OBJ)
@echo "Building plugin $@"
@$(SHLD_MODULE) $(VFS_CAP_OBJ)
bin/expand_msdfs.@SHLIBEXT@: $(BINARY_PREREQS) $(VFS_EXPAND_MSDFS_OBJ)
@echo "Building plugin $@"
@$(SHLD_MODULE) $(VFS_EXPAND_MSDFS_OBJ)
bin/afsacl.@SHLIBEXT@: $(BINARY_PREREQS) $(VFS_AFSACL_OBJ)
@echo "Building plugin $@"
@$(SHLD_MODULE) $(VFS_AFSACL_OBJ)
bin/xattr_tdb.@SHLIBEXT@: $(BINARY_PREREQS) $(VFS_XATTR_TDB_OBJ)
@echo "Building plugin $@"
@$(SHLD_MODULE) $(VFS_XATTR_TDB_OBJ)
bin/posixacl.@SHLIBEXT@: $(BINARY_PREREQS) $(VFS_POSIXACL_OBJ)
@echo "Building plugin $@"
@$(SHLD_MODULE) $(VFS_POSIXACL_OBJ)
bin/aixacl.@SHLIBEXT@: $(BINARY_PREREQS) $(VFS_AIXACL_OBJ)
@echo "Building plugin $@"
@$(SHLD_MODULE) $(VFS_AIXACL_OBJ)
bin/aixacl2.@SHLIBEXT@: $(BINARY_PREREQS) $(VFS_AIXACL2_OBJ)
@echo "Building plugin $@"
@$(SHLD_MODULE) $(VFS_AIXACL2_OBJ)
bin/solarisacl.@SHLIBEXT@: $(BINARY_PREREQS) $(VFS_SOLARISACL_OBJ)
@echo "Building plugin $@"
@$(SHLD_MODULE) $(VFS_SOLARISACL_OBJ)
bin/zfsacl.@SHLIBEXT@: $(BINARY_PREREQS) $(VFS_ZFSACL_OBJ)
@echo "Building plugin $@"
@$(SHLD_MODULE) $(VFS_ZFSACL_OBJ) @ZFSACL_LIBS@
bin/hpuxacl.@SHLIBEXT@: $(BINARY_PREREQS) $(VFS_HPUXACL_OBJ)
@echo "Building plugin $@"
@$(SHLD_MODULE) $(VFS_HPUXACL_OBJ)
bin/tru64acl.@SHLIBEXT@: $(BINARY_PREREQS) $(VFS_TRU64ACL_OBJ)
@echo "Building plugin $@"
@$(SHLD_MODULE) $(VFS_TRU64ACL_OBJ)
bin/catia.@SHLIBEXT@: $(BINARY_PREREQS) $(VFS_CATIA_OBJ)
@echo "Building plugin $@"
@$(SHLD_MODULE) $(VFS_CATIA_OBJ)
bin/streams_xattr.@SHLIBEXT@: $(BINARY_PREREQS) $(VFS_STREAMS_XATTR_OBJ)
@echo "Building plugin $@"
@$(SHLD_MODULE) $(VFS_STREAMS_XATTR_OBJ)
bin/streams_depot.@SHLIBEXT@: $(BINARY_PREREQS) $(VFS_STREAMS_DEPOT_OBJ)
@echo "Building plugin $@"
@$(SHLD_MODULE) $(VFS_STREAMS_DEPOT_OBJ)
bin/cacheprime.@SHLIBEXT@: $(BINARY_PREREQS) $(VFS_CACHEPRIME_OBJ)
@echo "Building plugin $@"
@$(SHLD_MODULE) $(VFS_CACHEPRIME_OBJ)
bin/prealloc.@SHLIBEXT@: $(BINARY_PREREQS) $(VFS_PREALLOC_OBJ)
@echo "Building plugin $@"
@$(SHLD_MODULE) $(VFS_PREALLOC_OBJ)
bin/commit.@SHLIBEXT@: $(BINARY_PREREQS) $(VFS_COMMIT_OBJ)
@echo "Building plugin $@"
@$(SHLD_MODULE) $(VFS_COMMIT_OBJ)
bin/gpfs.@SHLIBEXT@: $(BINARY_PREREQS) $(VFS_GPFS_OBJ)
@echo "Building plugin $@"
@$(SHLD_MODULE) $(VFS_GPFS_OBJ)
bin/notify_fam.@SHLIBEXT@: $(BINARY_PREREQS) $(VFS_NOTIFY_FAM_OBJ)
@echo "Building plugin $@"
@$(SHLD_MODULE) $(VFS_NOTIFY_FAM_OBJ) @SMB_FAM_LIBS@
bin/readahead.@SHLIBEXT@: $(BINARY_PREREQS) $(VFS_READAHEAD_OBJ)
@echo "Building plugin $@"
@$(SHLD_MODULE) $(VFS_READAHEAD_OBJ)
bin/tsmsm.@SHLIBEXT@: $(BINARY_PREREQS) $(VFS_TSMSM_OBJ)
@echo "Building plugin $@"
@$(SHLD_MODULE) $(VFS_TSMSM_OBJ)
bin/fileid.@SHLIBEXT@: $(BINARY_PREREQS) $(VFS_FILEID_OBJ)
@echo "Building plugin $@"
@$(SHLD_MODULE) $(VFS_FILEID_OBJ)
bin/aio_fork.@SHLIBEXT@: $(BINARY_PREREQS) $(VFS_AIO_FORK_OBJ)
@echo "Building plugin $@"
@$(SHLD_MODULE) $(VFS_AIO_FORK_OBJ)
bin/aio_pthread.@SHLIBEXT@: $(BINARY_PREREQS) $(VFS_AIO_PTHREAD_OBJ)
@echo "Building plugin $@"
@$(SHLD_MODULE) $(VFS_AIO_PTHREAD_OBJ)
bin/aio_posix.@SHLIBEXT@: $(BINARY_PREREQS) $(VFS_AIO_POSIX_OBJ)
@echo "Building plugin $@"
@$(SHLD_MODULE) $(VFS_AIO_POSIX_OBJ)
bin/aio_linux.@SHLIBEXT@: $(BINARY_PREREQS) $(VFS_AIO_LINUX_OBJ)
@echo "Building plugin $@"
@$(SHLD_MODULE) $(VFS_AIO_LINUX_OBJ)
bin/preopen.@SHLIBEXT@: $(BINARY_PREREQS) $(VFS_PREOPEN_OBJ)
@echo "Building plugin $@"
@$(SHLD_MODULE) $(VFS_PREOPEN_OBJ)
2008-09-17 04:01:00 +04:00
bin/acl_xattr.@SHLIBEXT@: $(BINARY_PREREQS) $(VFS_ACL_XATTR_OBJ)
@echo "Building plugin $@"
@$(SHLD_MODULE) $(VFS_ACL_XATTR_OBJ)
bin/smb_traffic_analyzer.@SHLIBEXT@: $(BINARY_PREREQS) $(VFS_SMB_TRAFFIC_ANALYZER_OBJ)
@echo "Building plugin $@"
@$(SHLD_MODULE) $(VFS_SMB_TRAFFIC_ANALYZER_OBJ)
bin/acl_tdb.@SHLIBEXT@: $(BINARY_PREREQS) $(VFS_ACL_TDB_OBJ)
@echo "Building plugin $@"
@$(SHLD_MODULE) $(VFS_ACL_TDB_OBJ)
bin/pc_test.@SHLIBEXT@: $(BINARY_PREREQS) $(PERFCOUNT_TEST_OBJ)
@echo "Building plugin $@"
@$(SHLD_MODULE) $(PERFCOUNT_TEST_OBJ)
bin/registry.@SHLIBEXT@: $(BINARY_PREREQS) libgpo/gpext/registry.o
@echo "Building plugin $@"
@$(SHLD_MODULE) libgpo/gpext/registry.o
bin/scripts.@SHLIBEXT@: $(BINARY_PREREQS) libgpo/gpext/scripts.o
@echo "Building plugin $@"
@$(SHLD_MODULE) libgpo/gpext/scripts.o
bin/security.@SHLIBEXT@: $(BINARY_PREREQS) libgpo/gpext/security.o
@echo "Building plugin $@"
@$(SHLD_MODULE) libgpo/gpext/security.o
2009-03-22 13:06:52 +03:00
bin/dirsort.@SHLIBEXT@: $(BINARY_PREREQS) $(VFS_DIRSORT_OBJ)
@echo "Building plugin $@"
@$(SHLD_MODULE) $(VFS_DIRSORT_OBJ)
2009-03-22 13:06:52 +03:00
bin/scannedonly.@SHLIBEXT@: $(BINARY_PREREQS) $(VFS_SCANNEDONLY_OBJ)
@echo "Building plugin $@"
@$(SHLD_MODULE) $(VFS_SCANNEDONLY_OBJ)
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)
bin/time_audit.@SHLIBEXT@: $(BINARY_PREREQS) $(VFS_TIME_AUDIT_OBJ)
@echo "Building plugin $@"
@$(SHLD_MODULE) $(VFS_TIME_AUDIT_OBJ)
bin/media_harmony.@SHLIBEXT@: $(BINARY_PREREQS) $(VFS_MEDIA_HARMONY_OBJ)
@echo "Building plugin $@"
@$(SHLD_MODULE) $(VFS_MEDIA_HARMONY_OBJ)
#########################################################
## IdMap NSS plugins
## None here right now
#########################################################
bin/wbinfo: $(BINARY_PREREQS) $(WBINFO_OBJ) @BUILD_POPT@ $(LIBTALLOC) $(LIBTDB) $(LIBWBCLIENT)
@echo Linking $@
@$(CC) -o $@ $(LDFLAGS) $(WBINFO_OBJ) $(DYNEXP) $(LIBS) \
$(LDAP_LIBS) $(POPT_LIBS) $(LIBTALLOC_LIBS) $(LIBTDB_LIBS) \
$(LIBWBCLIENT_LIBS)
bin/ntlm_auth: $(BINARY_PREREQS) $(NTLM_AUTH_OBJ) $(PARAM_OBJ) \
$(LIB_NONSMBD_OBJ) @BUILD_POPT@ $(LIBTALLOC) $(LIBTDB) $(LIBWBCLIENT)
@echo Linking $@
@$(CC) -o $@ $(LDFLAGS) $(DYNEXP) $(NTLM_AUTH_OBJ) \
$(PARAM_OBJ) $(LIB_NONSMBD_OBJ) $(LIBS) $(ZLIB_LIBS) \
$(POPT_LIBS) $(KRB5LIBS) $(LDAP_LIBS) $(NSCD_LIBS) \
$(LIBTALLOC_LIBS) $(LIBTDB_LIBS) $(LIBWBCLIENT_LIBS) @INIPARSERLIBS@
bin/pam_smbpass.@SHLIBEXT@: $(BINARY_PREREQS) $(PAM_SMBPASS_OBJ) $(LIBTALLOC) $(LIBWBCLIENT) $(LIBTDB)
@echo "Linking shared library $@"
@$(SHLD) $(LDSHFLAGS) -o $@ $(PAM_SMBPASS_OBJ) -lpam $(DYNEXP) \
$(LIBS) $(LDAP_LIBS) $(NSCD_LIBS) $(KRB5LIBS) $(ZLIB_LIBS) \
$(LIBTALLOC_LIBS) $(LIBTDB_LIBS) $(LIBWBCLIENT_LIBS)
bin/tdbbackup: $(BINARY_PREREQS) $(TDBBACKUP_OBJ) $(LIBTALLOC) $(LIBTDB)
@echo Linking $@
@$(CC) -o $@ $(LDFLAGS) $(TDBBACKUP_OBJ) $(DYNEXP) \
$(LIBS) $(LIBTALLOC_LIBS) $(LIBTDB_LIBS)
bin/tdbtool: $(BINARY_PREREQS) $(TDBTOOL_OBJ) $(LIBTALLOC) $(LIBTDB)
@echo Linking $@
@$(CC) -o $@ $(LDFLAGS) $(TDBTOOL_OBJ) $(DYNEXP) \
$(LIBS) $(LIBTALLOC_LIBS) $(LIBTDB_LIBS)
bin/tdbdump: $(BINARY_PREREQS) $(TDBDUMP_OBJ) $(LIBTDB)
@echo Linking $@
@$(CC) -o $@ $(LDFLAGS) $(TDBDUMP_OBJ) $(DYNEXP) $(LIBTDB_LIBS) $(LIBREPLACE_LIBS)
bin/tdbrestore: $(BINARY_PREREQS) $(TDBRESTORE_OBJ) $(LIBTDB)
@echo Linking $@
@$(CC) -o $@ $(LDFLAGS) $(TDBRESTORE_OBJ) $(DYNEXP) $(LIBTDB_LIBS) $(LIBREPLACE_LIBS)
bin/tdbtorture: $(BINARY_PREREQS) $(TDBTORTURE_OBJ) $(LIBTALLOC) $(LIBTDB)
@echo Linking $@
@$(CC) -o $@ $(LDFLAGS) $(TDBTORTURE_OBJ) $(DYNEXP) \
$(LIBS) $(LIBTALLOC_LIBS) $(LIBTDB_LIBS)
bin/timelimit: script/tests/timelimit.o
@echo Linking $@
@$(CC) -o $@ $(DYNEXP) script/tests/timelimit.o $(LDFLAGS)
bin/rpc_open_tcp: $(BINARY_PREREQS) $(RPC_OPEN_TCP_OBJ) $(LIBTALLOC) $(LIBTDB) $(LIBWBCLIENT)
@echo "Linking $@"
@$(CC) -o $@ $(RPC_OPEN_TCP_OBJ) $(LDFLAGS) $(DYNEXP) \
$(LIBS) $(LIBTALLOC_LIBS) $(LIBWBCLIENT_LIBS) \
$(LDAP_LIBS) $(KRB5LIBS) $(NSCD_LIBS)
bin/test_lp_load: $(BINARY_PREREQS) $(TEST_LP_LOAD_OBJ) @BUILD_POPT@ $(LIBTALLOC) $(LIBTDB) $(LIBWBCLIENT)
@echo "Linking $@"
@$(CC) -o $@ $(TEST_LP_LOAD_OBJ) \
$(LDFLAGS) $(DYNEXP) $(LIBS) \
$(LDAP_LIBS) $(LIBWBCLIENT_LIBS) \
$(POPT_LIBS) $(LIBTALLOC_LIBS) $(LIBTDB_LIBS)
bin/dbwrap_tool: $(DBWRAP_TOOL_OBJ) $(LIBTALLOC) $(LIBTDB)
@echo "Linking $@"
@$(CC) -o $@ $(DBWRAP_TOOL_OBJ)\
$(LDFLAGS) $(DYNEXP) $(LIBS) \
$(LDAP_LIBS) \
$(POPT_LIBS) \
$(LIBTALLOC_LIBS) $(LIBTDB_LIBS)
install-dbwrap_tool:: bin/dbwrap_tool
@$(SHELL) script/installbin.sh $(INSTALLPERMS_BIN) $(DESTDIR) $(prefix) $(BINDIR) $<
bin/dbwrap_torture: $(DBWRAP_TORTURE_OBJ) $(LIBTALLOC) $(LIBTDB) $(POPT_LIBS)
@echo "Linking $@"
@$(CC) -o $@ $(DBWRAP_TORTURE_OBJ)\
$(LDFLAGS) $(DYNEXP) $(LIBS) \
$(LDAP_LIBS) \
$(POPT_LIBS) \
$(LIBTALLOC_LIBS) $(LIBTDB_LIBS)
install-dbwrap_torture:: bin/dbwrap_torture
@$(SHELL) script/installbin.sh $(INSTALLPERMS_BIN) $(DESTDIR) $(prefix) $(BINDIR) $<
bin/split_tokens: $(BINARY_PREREQS) $(SPLIT_TOKENS_OBJ) @BUILD_POPT@ $(LIBTALLOC) $(LIBTDB) $(LIBWBCLIENT)
@echo "Linking $@"
@$(CC) -o $@ $(SPLIT_TOKENS_OBJ) \
$(LDFLAGS) $(DYNEXP) \
$(LIBS) $(POPT_LIBS) \
$(LDAP_LIBS) $(LIBWBCLIENT_LIBS) \
$(LIBTALLOC_LIBS) $(LIBTDB_LIBS)
install:: installservers installbin installman \
installscripts installdat installmodules @SWAT_INSTALL_TARGETS@ \
@INSTALL_PAM_MODULES@ installlibs installmo
install-everything:: install installmodules
# DESTDIR is used here to prevent packagers wasting their time
# duplicating the Makefile. Remove it and you will have the privelege
# of package each samba release for muliple versions of multiple
# distributions and operating systems, or at least supplying patches
# to all the packaging files required for this, prior to committing
# the removal of DESTDIR. Do not remove it even though you think it
# is not used
installdirs::
@$(SHELL) $(srcdir)/script/installdirs.sh $(INSTALLPERMS_BIN) \
$(DESTDIR) $(prefix) $(BINDIR) $(SBINDIR) $(LIBDIR) \
$(VARDIR) $(PRIVATE_DIR) $(PIDDIR) $(LOCKDIR) $(STATEDIR) \
$(NMBDSOCKETDIR) $(WINBINDD_SOCKET_DIR) $(WINBINDD_PRIVILEGED_SOCKET_DIR) \
$(CACHEDIR) $(MANDIR) $(CODEPAGEDIR) $(MODULESDIR) $(LOCALEDIR)
installservers:: all installdirs
@$(SHELL) script/installbin.sh $(INSTALLPERMS_BIN) $(DESTDIR) $(prefix) $(SBINDIR) $(SBIN_PROGS)
installbin:: all installdirs
@$(SHELL) script/installbin.sh $(INSTALLPERMS_BIN) $(DESTDIR) $(prefix) $(BINDIR) $(BIN_PROGS)
# Some symlinks are required for the 'probing' of modules.
# This mechanism should go at some point..
installmodules:: modules installdirs
@$(SHELL) $(srcdir)/script/installmodules.sh $(INSTALLPERMS_BIN) $(DESTDIR) $(prefix) $(VFSLIBDIR) $(VFS_MODULES)
@$(SHELL) $(srcdir)/script/installmodules.sh $(INSTALLPERMS_BIN) $(DESTDIR) $(prefix) $(PDBLIBDIR) $(PDB_MODULES)
@$(SHELL) $(srcdir)/script/installmodules.sh $(INSTALLPERMS_BIN) $(DESTDIR) $(prefix) $(IDMAPLIBDIR) $(IDMAP_MODULES)
@$(SHELL) $(srcdir)/script/installmodules.sh $(INSTALLPERMS_BIN) $(DESTDIR) $(prefix) $(NSSINFOLIBDIR) $(NSS_INFO_MODULES)
@$(SHELL) $(srcdir)/script/installmodules.sh $(INSTALLPERMS_BIN) $(DESTDIR) $(prefix) $(AUTHLIBDIR) $(AUTH_MODULES)
@$(SHELL) $(srcdir)/script/installmodules.sh $(INSTALLPERMS_BIN) $(DESTDIR) $(prefix) $(GPEXTLIBDIR) $(GPEXT_MODULES)
@$(SHELL) $(srcdir)/script/installmodules.sh $(INSTALLPERMS_BIN) $(DESTDIR) $(prefix) $(PERFCOUNTLIBDIR) $(PERFCOUNT_MODULES)
@$(SHELL) $(srcdir)/script/linkmodules.sh $(DESTDIR)$(PDBLIBDIR) ldapsam.@SHLIBEXT@ NDS_ldapsam.@SHLIBEXT@
@$(SHELL) $(srcdir)/script/linkmodules.sh $(DESTDIR)$(AUTHLIBDIR) rhosts.@SHLIBEXT@ hostsequiv.@SHLIBEXT@
@$(SHELL) $(srcdir)/script/linkmodules.sh $(DESTDIR)$(AUTHLIBDIR) sam.@SHLIBEXT@ sam_ignoredomain.@SHLIBEXT@
@$(SHELL) $(srcdir)/script/linkmodules.sh $(DESTDIR)$(AUTHLIBDIR) domain.@SHLIBEXT@ trustdomain.@SHLIBEXT@ ntdomain.@SHLIBEXT@
@$(SHELL) $(srcdir)/script/linkmodules.sh $(DESTDIR)$(AUTHLIBDIR) builtin.@SHLIBEXT@ guest.@SHLIBEXT@ fixed_challenge.@SHLIBEXT@ name_to_ntstatus.@SHLIBEXT@
@$(SHELL) $(srcdir)/script/linkmodules.sh $(DESTDIR)$(NSSINFOLIBDIR) ../idmap/ad.@SHLIBEXT@ rfc2307.@SHLIBEXT@ sfu.@SHLIBEXT@ sfu20.@SHLIBEXT@
@$(SHELL) $(srcdir)/script/linkmodules.sh $(DESTDIR)$(NSSINFOLIBDIR) ../idmap/hash.@SHLIBEXT@ hash.@SHLIBEXT@
installscripts:: installdirs
@$(SHELL) $(srcdir)/script/installscripts.sh $(INSTALLPERMS_BIN) $(DESTDIR)$(BINDIR) $(SCRIPTS)
installdat:: installdirs
@$(SHELL) $(srcdir)/script/installdat.sh $(DESTDIR) $(CODEPAGEDIR) $(srcdir)
installmsg:: installdirs
@$(SHELL) $(srcdir)/script/installmsg.sh $(DESTDIR) $(CODEPAGEDIR) $(srcdir)
installswat:: installdirs installmsg
@$(SHELL) $(srcdir)/script/installswat.sh $(DESTDIR) $(SWATDIR) $(srcdir)
installpammodules:: $(PAM_MODULES)
@$(SHELL) $(srcdir)/script/installdirs.sh $(INSTALLPERMS_BIN) $(DESTDIR) $(PAMMODULESDIR)
@for module in $(PAM_MODULES); do \
echo "Installing module $${module} as $(DESTDIR)/$(PAMMODULESDIR)/$${module}.@SHLIBEXT@ "; \
$(INSTALLCMD) -m $(INSTALLPERMS_BIN) bin/$${module}.@SHLIBEXT@ \
"$(DESTDIR)/$(PAMMODULESDIR)"; \
done
# revert to the previously installed version
revert::
@$(SHELL) $(srcdir)/script/revert.sh $(SBINDIR) $(SBIN_PROGS)
@$(SHELL) $(srcdir)/script/revert.sh $(BINDIR) $(BIN_PROGS) $(SCRIPTS)
installman:: installdirs
@$(SHELL) $(srcdir)/script/installman.sh $(DESTDIR)$(MANDIR) $(srcdir) C "@ROFF@"
installmo:: all installdirs
@$(SHELL) $(srcdir)/script/installmo.sh $(DESTDIR) $(LOCALEDIR) $(srcdir)
.PHONY: showlayout
showlayout::
@echo "Samba will be installed into:"
@echo " prefix: $(prefix)"
@echo " exec_prefix: $(exec_prefix)"
@echo " sysconfdir: $(sysconfdir)"
@echo " localstatedir: $(localstatedir)"
@echo " datarootdir: $(datarootdir)"
@echo " BINDIR: $(BINDIR)"
@echo " SBINDIR: $(SBINDIR)"
@echo " LIBDIR: $(LIBDIR)"
# @echo " LIBEXECDIR: $(LIBEXECDIR)"
@echo " MANDIR: $(MANDIR)"
@echo " DATADIR: $(DATADIR)"
@echo " LOCALEDIR: $(LOCALEDIR)"
# @echo " SCRIPTSBINDIR: $(SCRIPTSBINDIR)"
# @echo " PYTHONDIR: $(PYTHONDIR)"
# @echo " PYTHONARCHDIR: $(PYTHONARCHDIR)"
@echo " MODULESDIR: $(MODULESDIR)"
@echo " INCLUDEDIR: $(INCLUDEDIR)"
@echo " SETUPDIR: $(SETUPDIR)"
# @echo " PKGCONFIGDIR: $(PKGCONFIGDIR)"
@echo " SWATDIR: $(SWATDIR)"
@echo " CODEPAGEDIR: $(CODEPAGEDIR)"
@echo " PAMMODULESDIR: $(PAMMODULESDIR)"
@echo " CONFIGDIR: $(CONFIGDIR)"
@echo " PRIVATE_DIR: $(PRIVATE_DIR)"
@echo " LOCKDIR: $(LOCKDIR)"
@echo " PIDDIR: $(PIDDIR)"
@echo " STATEDIR: $(STATEDIR)"
@echo " CACHEDIR: $(CACHEDIR)"
@echo " LOGFILEBASE: $(LOGFILEBASE)"
@echo " SOCKET_DIR: $(SOCKET_DIR)"
@echo " PRIVILEGED_SOCKET_DIR: $(PRIVILEGED_SOCKET_DIR)"
@echo " WINBINDD_SOCKET_DIR: $(WINBINDD_SOCKET_DIR)"
@echo " WINBINDD_PRIVILEGED_SOCKET_DIR: $(WINBINDD_PRIVILEGED_SOCKET_DIR)"
@echo " NMBDSOCKETDIR: $(NMBDSOCKETDIR)"
# @echo " NTP_SIGND_SOCKET_DIR: $(NTP_SIGND_SOCKET_DIR)"
@echo " NCALRPCDIR: $(NCALRPCDIR)"
@echo " CONFIGFILE: $(CONFIGFILE)"
@echo " LMHOSTSFILE: $(LMHOSTSFILE)"
@echo " SMB_PASSWD_FILE: $(SMB_PASSWD_FILE)"
uninstall:: uninstallmo uninstallman uninstallservers uninstallbin uninstallscripts uninstalldat uninstallswat uninstallmodules uninstalllibs @UNINSTALL_PAM_MODULES@
uninstallmo::
@$(SHELL) $(srcdir)/script/uninstallmo.sh $(DESTDIR) $(LOCALEDIR) $(srcdir)
uninstallman::
@$(SHELL) $(srcdir)/script/uninstallman.sh $(DESTDIR)$(MANDIR) $(srcdir) C
uninstallservers::
@$(SHELL) script/uninstallbin.sh $(INSTALLPERMS_BIN) $(DESTDIR) $(prefix) $(SBINDIR) $(SBIN_PROGS)
uninstallbin::
@$(SHELL) script/uninstallbin.sh $(INSTALLPERMS_BIN) $(DESTDIR) $(prefix) $(BINDIR) $(BIN_PROGS)
uninstallmodules::
@$(SHELL) $(srcdir)/script/uninstallmodules.sh $(INSTALLPERMS_BIN) $(DESTDIR) $(prefix) $(VFSLIBDIR) $(VFS_MODULES)
@$(SHELL) $(srcdir)/script/uninstallmodules.sh $(INSTALLPERMS_BIN) $(DESTDIR) $(prefix) $(PDBLIBDIR) $(PDB_MODULES)
@$(SHELL) $(srcdir)/script/uninstallmodules.sh $(INSTALLPERMS_BIN) $(DESTDIR) $(prefix) $(IDMAPLIBDIR) $(IDMAP_MODULES)
@$(SHELL) $(srcdir)/script/uninstallmodules.sh $(INSTALLPERMS_BIN) $(DESTDIR) $(prefix) $(AUTHLIBDIR) $(AUTH_MODULES)
@$(SHELL) $(srcdir)/script/uninstallmodules.sh $(INSTALLPERMS_BIN) $(DESTDIR) $(prefix) $(GPEXTLIBDIR) $(GPEXT_MODULES)
@$(SHELL) $(srcdir)/script/uninstallmodules.sh $(INSTALLPERMS_BIN) $(DESTDIR) $(prefix) $(PERFCOUNTLIBDIR) $(PERFCOUNT_MODULES)
uninstallscripts::
@$(SHELL) $(srcdir)/script/uninstallscripts.sh $(INSTALLPERMS_BIN) $(DESTDIR)$(BINDIR) $(SCRIPTS)
uninstalldat::
@$(SHELL) $(srcdir)/script/uninstalldat.sh $(DESTDIR) $(LIBDIR) $(srcdir)
uninstallmsg::
@$(SHELL) $(srcdir)/script/uninstallmsg.sh $(DESTDIR) $(LIBDIR) $(srcdir)
uninstallswat:: uninstallmsg
@$(SHELL) $(srcdir)/script/uninstallswat.sh $(DESTDIR) $(SWATDIR) $(srcdir)
uninstallpammodules::
@for module in $(PAM_MODULES); do \
echo "Removing $(DESTDIR)/$(PAMMODULESDIR)/$${module}.@SHLIBEXT@ "; \
rm -f "$(DESTDIR)/$(PAMMODULESDIR)/$${module}.@SHLIBEXT@"; \
done
cleanlibs::
-rm -f ../lib/*/*.o ../lib/*/*/*.o \
../lib/*/*.ho \
../libcli/*.o ../libcli/*/*.o ../libcli/*/*/*.o \
../librpc/*/*.o \
../libgpo/*.o ../libgpo/*/*.o \
../libds/*.o ../libds/*/*.o ../dynconfig/*.o ../auth/*.o ../auth/*/*.o
clean:: cleanlibs
-rm -f include/build_env.h
-rm -f smbd/build_options.c
-rm -f autoconf/lib/param/param_local.h
-rm -f autoconf/lib/param/param_global.h
-rm -f autoconf/lib/param/param_proto.h
-rm -f autoconf/lib/param/s3_param.h
-rm -f autoconf/source3/param/param_global.h
-rm -f $(PRECOMPILED_HEADER)
-rm -f core */*~ *~ \
*/*.o */*/*.o */*/*/*.o */*/*/*/*.o \
../testsuite/*/*.o \
../nsswitch/*.o ../nsswitch/*/*.o ../nsswitch/*/*/*.o ../nsswitch/*.@SHLIBEXT@ \
../client/*.o \
*/*.@SHLIBEXT@ */*/*.@SHLIBEXT@ */*/*/*.@SHLIBEXT@ \
$(TOPFILES) $(BIN_PROGS) $(SBIN_PROGS) \
$(MODULES) $(TORTURE_PROGS) \
$(EVERYTHING_PROGS) \
bin/timelimit \
.headers.stamp */src/*.o
-rm -rf t_dir
include/build_env.h: script/build_env.sh
@echo Building include/build_env.h
@$(SHELL) $(srcdir)/script/build_env.sh $(srcdir) $(builddir) $(CC) \
> $(builddir)/include/build_env.h
proto::
2008-09-15 16:56:46 +04:00
etags::
rm -f TAGS
find $(srcdir)/.. -name "*.[ch]" | xargs -n 100 etags --append $(ETAGS_OPTIONS)
2008-09-15 16:56:46 +04:00
ctags::
ctags $(CTAGS_OPTIONS) `find $(srcdir)/.. -name "*.[ch]" | grep -v proto\.h`
realclean:: clean
-rm -f config.log bin/.dummy script/findsmb script/gen-8bit-gap.sh
-rm -f script/installbin.sh script/uninstallbin.sh
distclean:: realclean
-rm -f smbadduser
-rm -f include/autoconf/config.h Makefile
-rm -f config.status config.cache so_locations
-rm -rf .deps TAGS
realdistclean:: distclean
-rm -f include/autoconf/config.h.in
-rm -f include/autoconf/version.h
-rm -f autoconf/librpc/gen_ndr/*.[ch]
-rm -f configure
# when configure.in is updated, reconfigure
$(srcdir)/configure: $(srcdir)/configure.in
@echo "WARNING: you need to rerun ./autogen.sh"
config.status: $(srcdir)/configure
@echo "WARNING: you need to run ./configure"
Makefile: $(srcdir)/Makefile.in config.status
@echo "WARNING: you need to run ./config.status"
######################################################################
# Samba Testing Framework
# Check shared libs for unresolved symbols
test_shlibs:
@echo "Testing $? "
@$(LIB_PATH_VAR)=./bin && \
export $(LIB_PATH_VAR) && \
for module in $?; do \
./script/tests/dlopen.sh $(LIBDL) $${module} \
|| exit 1; \
done
# Check for NSS module problems.
test_nss_modules:: nss_modules
@echo "Testing $(NSS_MODULES) "
@$(LIB_PATH_VAR)=./bin && \
export $(LIB_PATH_VAR) && \
for module in $(NSS_MODULES); do \
./script/tests/dlopen.sh $(LIBDL) $${module} \
|| exit 1; \
done
# Check for PAM module problems. Specifically, check that every module we
# built can actually be loaded by a minimal PAM-aware application.
test_pam_modules:: pam_modules
@echo "Testing $(PAM_MODULES) "
@$(LIB_PATH_VAR)=./bin && \
export $(LIB_PATH_VAR) && \
for module in $(PAM_MODULES); do \
./script/tests/dlopen.sh -lpam $(LIBDL) bin/$${module}.@SHLIBEXT@ \
|| exit 1; \
done
##
## Targets for 'make test'
##
valgrindtest:: all torture timelimit bin/smbtorture
@echo Running Test suite with valgrind
@$(MAKE) test \
NMBD_VALGRIND="xterm -n nmbd -e valgrind -q --db-attach=yes --num-callers=30" \
WINBINDD_VALGRIND="xterm -n winbindd -e valgrind -q --db-attach=yes --num-callers=30" \
SMBD_VALGRIND="xterm -n smbd -e valgrind -q --db-attach=yes --num-callers=30" \
VALGRIND="valgrind -q --num-callers=30 --log-file=${selftest_prefix}/valgrind.log"
selftestdir = ../selftest
S3_LD_LIBPATH_OVERRIDE = $(LIB_PATH_VAR)="$(builddir)/bin:$$$(LIB_PATH_VAR)"
test:: all torture timelimit bin/smbtorture
@LIB_PATH_VAR=$(LIB_PATH_VAR) $(S3_LD_LIBPATH_OVERRIDE) \
NSS_WRAPPER_WINBIND_SO_PATH="$(srcdir)/../nsswitch/libnss_winbind.so" \
SELFTESTDIR="$(selftestdir)" SELFTESTPREFIX="$(selftest_prefix)" \
SOURCEDIR="$(srcdir)" \
VFSLIBDIR="$(builddir)/bin" \
RUN_FROM_BUILD_FARM="$(RUN_FROM_BUILD_FARM)" \
2010-10-01 15:30:01 +04:00
SUBUNIT_FORMATTER="$(SUBUNIT_FORMATTER)" \
PERL="$(PERL)" PYTHON="$(PYTHON)" PYTHONPATH="$(srcdir)/../bin/python" \
$(srcdir)/selftest/s3-selftest.sh
test-%:
$(MAKE) test TESTS=$*
buildfarm-test:
$(MAKE) test RUN_FROM_BUILD_FARM=yes
2010-10-01 15:30:01 +04:00
subunit-test:
$(MAKE) test SUBUNIT_FORMATTER=cat
SELFTEST_TESTENV = s3dc
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
test_wbpad:
@echo "Testing winbind request/response structure for 32/64bit padding"
@./script/tests/wb_pad.sh || exit 1;
##
## Examples:
##
libsmbclient_examples: libsmbclient
$(MAKE) -C ../examples/libsmbclient -f Makefile.internal
clean_libsmbclient_examples:
$(MAKE) -C ../examples/libsmbclient -f Makefile.internal clean
libnetapi_examples: libnetapi
$(MAKE) -C lib/netapi/examples
clean_libnetapi_examples:
$(MAKE) -C lib/netapi/examples clean
.PHONY: bin/smbtorture
bin/smbtorture: $(BINARY_PREREQS)
$(MAKE) -f Makefile-smbtorture bin/smbtorture
2011-06-30 15:54:52 +04:00
.PHONY: vfs_examples
vfs_examples:
( \
cd ../examples/VFS && \
./configure && \
$(MAKE) clean && \
$(MAKE) \
2011-06-30 15:54:52 +04:00
)