mirror of
https://github.com/samba-team/samba.git
synced 2024-12-25 23:21:54 +03:00
c311d24ce3
Samba (ab)uses the returns from getpwnam() a lot - in particular it keeps
them around for a long time - often past the next call...
This adds a getpwnam_alloc and a getpwuid_alloc to the collection.
These function as expected, returning a malloced structure that can be
free()ed with passwd_free(&passwd).
This patch also cuts down on the number of calls to getpwnam - mostly by
taking advantage of the fact that the passdb interface is already
case-insensiteve.
With this patch most of the recursive cases have been removed (that I know
of) and the problems are reduced further by not using the sys_ interface
in the new code. This means that pointers to the cache won't be affected.
(This is a tempoary HACK, I intend to kill the password cache entirly).
The only change I'm a little worried about is the change to
rpc_server/srv_samr_nt.c for private groups. In this case we are getting
groups from the new group mapping DB. Do we still need to check for private
groups? I've toned down the check to a case sensitve match with the new code,
but we might be able to kill it entirly.
I've also added a make_modifyable_passwd() function, that copies a passwd
struct into the form that the old sys_getpw* code provided. As far as I can
tell this is only actually used in the pass_check.c crazies, where I moved
the final 'special case' for shadow passwords (out of _Get_Pwnam()).
The matching case for getpwent() is dealt with already, in lib/util_getent.c
Also included in here is a small change to register the [homes] share at vuid
creation rather than just in one varient of the session setup. (This picks
up the SPNEGO cases). The home directory is now stored on the vuid, and I
am hoping this might provide a saner way to do %H substitions.
TODO: Kill off remaining Get_Pwnam_Modify calls (they are not needed), change
the remaining sys_getpwnam() callers to use getpwnam_alloc() and move
Get_Pwnam to return an allocated struct.
Andrew Bartlett
(This used to be commit 1d86c7f942
)
888 lines
31 KiB
Makefile
888 lines
31 KiB
Makefile
##########################################################################
|
|
# Makefile.in for Samba - rewritten for autoconf support
|
|
# Copyright Andrew Tridgell 1992-1998
|
|
# Copyright (C) 2001 by Martin Pool <mbp@samba.org>
|
|
###########################################################################
|
|
|
|
prefix=@prefix@
|
|
exec_prefix=@exec_prefix@
|
|
mandir=@mandir@
|
|
|
|
LIBS=@LIBS@
|
|
CC=@CC@
|
|
SHLD=@SHLD@
|
|
CFLAGS=@CFLAGS@
|
|
CPPFLAGS=@CPPFLAGS@
|
|
LDFLAGS=@LDFLAGS@
|
|
LDSHFLAGS=@LDSHFLAGS@ @LDFLAGS@ @CFLAGS@
|
|
AWK=@AWK@
|
|
|
|
TERMLDFLAGS=@TERMLDFLAGS@
|
|
TERMLIBS=@TERMLIBS@
|
|
|
|
LINK=$(CC) $(FLAGS) $(LDFLAGS)
|
|
|
|
INSTALLCMD=@INSTALL@
|
|
|
|
VPATH=@srcdir@
|
|
srcdir=@srcdir@
|
|
builddir=@builddir@
|
|
SHELL=/bin/sh
|
|
|
|
# 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
|
|
|
|
# See the autoconf manual "Installation Directory Variables" for a
|
|
# discussion of thesubtle use of these variables.
|
|
|
|
BASEDIR= @prefix@
|
|
BINDIR = @bindir@
|
|
# sbindir is mapped to bindir when compiling SAMBA in 2.0.x compatibility mode.
|
|
SBINDIR = @sbindir@
|
|
LIBDIR = @libdir@
|
|
VARDIR = @localstatedir@
|
|
MANDIR = @mandir@
|
|
|
|
# The permissions to give the executables
|
|
INSTALLPERMS = 0755
|
|
|
|
# set these to where to find various files
|
|
# These can be overridden by command line switches (see smbd(8))
|
|
# or in smb.conf (see smb.conf(5))
|
|
LOGFILEBASE = $(VARDIR)
|
|
CONFIGFILE = $(LIBDIR)/smb.conf
|
|
LMHOSTSFILE = $(LIBDIR)/lmhosts
|
|
DRIVERFILE = $(LIBDIR)/printers.def
|
|
# This is where smbpasswd et al go
|
|
PRIVATEDIR = @privatedir@
|
|
|
|
SMB_PASSWD_FILE = $(PRIVATEDIR)/smbpasswd
|
|
PRIVATE_DIR = $(PRIVATEDIR)
|
|
|
|
# This is where SWAT images and help files go
|
|
SWATDIR = @swatdir@
|
|
|
|
# the directory where lock files go
|
|
LOCKDIR = @lockdir@
|
|
|
|
# man pages language(s)
|
|
man_langs = "@manlangs@"
|
|
|
|
FLAGS1 = $(CFLAGS) @FLAGS1@ -Iinclude -I$(srcdir)/include -I$(srcdir)/ubiqx -I$(srcdir)/smbwrapper -I. $(CPPFLAGS) -I$(srcdir)
|
|
FLAGS2 =
|
|
FLAGS3 =
|
|
FLAGS4 =
|
|
FLAGS5 = $(FLAGS1) $(FLAGS2) $(FLAGS3) $(FLAGS4)
|
|
FLAGS = $(ISA) $(FLAGS5)
|
|
FLAGS32 = $(ISA32) $(FLAGS5)
|
|
|
|
PASSWD_FLAGS = -DSMB_PASSWD_FILE=\"$(SMB_PASSWD_FILE)\" -DPRIVATE_DIR=\"$(PRIVATE_DIR)\"
|
|
PATH_FLAGS1 = -DCONFIGFILE=\"$(CONFIGFILE)\" -DSBINDIR=\"$(SBINDIR)\"
|
|
PATH_FLAGS2 = $(PATH_FLAGS1) -DBINDIR=\"$(BINDIR)\" -DDRIVERFILE=\"$(DRIVERFILE)\"
|
|
PATH_FLAGS3 = $(PATH_FLAGS2) -DLMHOSTSFILE=\"$(LMHOSTSFILE)\"
|
|
PATH_FLAGS4 = $(PATH_FLAGS3) -DSWATDIR=\"$(SWATDIR)\" -DLOCKDIR=\"$(LOCKDIR)\"
|
|
PATH_FLAGS5 = $(PATH_FLAGS4) -DLIBDIR=\"$(LIBDIR)\" -DLOGFILEBASE=\"$(LOGFILEBASE)\"
|
|
PATH_FLAGS = $(PATH_FLAGS5) $(PASSWD_FLAGS)
|
|
|
|
WINBIND_PROGS = @WINBIND_TARGETS@
|
|
WINBIND_SPROGS = @WINBIND_STARGETS@
|
|
WINBIND_PAM_PROGS = @WINBIND_PAM_TARGETS@
|
|
WINBIND_LPROGS = @WINBIND_LTARGETS@
|
|
|
|
SPROGS = bin/smbd bin/nmbd bin/swat @WINBIND_STARGETS@
|
|
PROGS1 = bin/smbclient bin/net bin/smbspool bin/testparm bin/testprns bin/smbstatus bin/smbcontrol bin/smbtree @RUNPROG@ @WINBIND_TARGETS@
|
|
PROGS2 = bin/smbpasswd bin/rpcclient bin/smbcacls @WRAP@ @WRAP32@ @PAM_MOD@
|
|
MPROGS = @MPROGS@
|
|
LPROGS = $(WINBIND_PAM_PROGS) $(WINBIND_LPROGS)
|
|
|
|
PROGS = $(PROGS1) $(PROGS2) $(MPROGS) bin/nmblookup bin/pdbedit bin/smbgroupedit
|
|
TORTURE_PROGS = bin/smbtorture bin/msgtest bin/masktest bin/locktest bin/locktest2
|
|
SHLIBS = libsmbclient
|
|
|
|
SCRIPTS = $(srcdir)/script/smbtar $(srcdir)/script/addtosmbpass $(srcdir)/script/convert_smbpasswd
|
|
|
|
QUOTAOBJS=@QUOTAOBJS@
|
|
|
|
######################################################################
|
|
# object file lists
|
|
######################################################################
|
|
|
|
TDB_OBJ = tdb/tdb.o tdb/spinlock.o tdb/tdbutil.o
|
|
|
|
LIB_OBJ = lib/charcnv.o lib/debug.o lib/fault.o \
|
|
lib/getsmbpass.o lib/interface.o lib/md4.o \
|
|
lib/interfaces.o lib/pidfile.o lib/replace.o \
|
|
lib/signal.o lib/system.o lib/time.o \
|
|
lib/ufc.o lib/genrand.o lib/username.o \
|
|
lib/util_getent.o lib/util_pw.o lib/access.o lib/smbrun.o \
|
|
lib/bitmap.o lib/crc32.o lib/snprintf.o lib/dprintf.o \
|
|
lib/xfile.o lib/wins_srv.o \
|
|
lib/util_str.o lib/util_sid.o \
|
|
lib/util_unistr.o lib/util_file.o \
|
|
lib/util.o lib/util_sock.o lib/util_sec.o smbd/ssl.o \
|
|
lib/talloc.o lib/hash.o lib/substitute.o lib/fsusage.o \
|
|
lib/ms_fnmatch.o lib/select.o lib/error.o lib/messages.o \
|
|
lib/tallocmsg.o lib/dmallocmsg.o \
|
|
lib/md5.o lib/hmacmd5.o lib/iconv.o lib/smbpasswd.o \
|
|
nsswitch/wb_client.o nsswitch/wb_common.o \
|
|
intl/lang_tdb.o lib/account_pol.o $(TDB_OBJ)
|
|
|
|
READLINE_OBJ = lib/readline.o
|
|
|
|
UBIQX_OBJ = ubiqx/ubi_BinTree.o ubiqx/ubi_Cache.o ubiqx/ubi_SplayTree.o \
|
|
ubiqx/ubi_dLinkList.o ubiqx/ubi_sLinkList.o ubiqx/debugparse.o
|
|
|
|
PARAM_OBJ = param/loadparm.o param/params.o dynconfig.o
|
|
|
|
LIBADS_OBJ = libads/ldap.o libads/sasl.o libads/krb5_setpw.o libads/kerberos.o \
|
|
libads/ads_struct.o libads/ads_status.o passdb/secrets.o \
|
|
libads/util.o
|
|
|
|
LIBSMB_OBJ = libsmb/clientgen.o libsmb/cliconnect.o libsmb/clifile.o \
|
|
libsmb/clikrb5.o libsmb/clispnego.o libsmb/asn1.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/namequery.o libsmb/nmblib.o libsmb/clistr.o \
|
|
libsmb/nterr.o libsmb/smbdes.o libsmb/smbencrypt.o \
|
|
libsmb/smberr.o libsmb/credentials.o libsmb/pwd_cache.o \
|
|
libsmb/clioplock.o libsmb/errormap.o libsmb/clirap2.o \
|
|
libsmb/passchange.o libsmb/unexpected.o $(RPC_PARSE_OBJ1) \
|
|
$(LIBADS_OBJ)
|
|
|
|
LIBMSRPC_OBJ = libsmb/cli_lsarpc.o libsmb/cli_samr.o libsmb/cli_spoolss.o \
|
|
libsmb/cli_netlogon.o libsmb/cli_srvsvc.o libsmb/cli_dfs.o \
|
|
libsmb/cli_reg.o libsmb/trust_passwd.o\
|
|
rpc_client/cli_pipe.o libsmb/cli_pipe_util.o
|
|
|
|
LIBMSRPC_PICOBJ = $(LIBMSRPC_OBJ:.o=.po)
|
|
|
|
RPC_SERVER_OBJ = rpc_server/srv_lsa.o rpc_server/srv_lsa_nt.o \
|
|
rpc_server/srv_lsa_hnd.o rpc_server/srv_netlog.o rpc_server/srv_netlog_nt.o \
|
|
rpc_server/srv_pipe_hnd.o rpc_server/srv_reg.o rpc_server/srv_reg_nt.o \
|
|
rpc_server/srv_samr.o rpc_server/srv_samr_nt.o rpc_server/srv_srvsvc.o rpc_server/srv_srvsvc_nt.o \
|
|
rpc_server/srv_util.o rpc_server/srv_wkssvc.o rpc_server/srv_wkssvc_nt.o \
|
|
rpc_server/srv_pipe.o rpc_server/srv_dfs.o rpc_server/srv_dfs_nt.o \
|
|
rpc_server/srv_spoolss.o rpc_server/srv_spoolss_nt.o
|
|
|
|
# this includes only the low level parse code, not stuff
|
|
# that requires knowledge of security contexts
|
|
RPC_PARSE_OBJ1 = rpc_parse/parse_prs.o rpc_parse/parse_sec.o \
|
|
rpc_parse/parse_misc.o
|
|
|
|
RPC_PARSE_OBJ = rpc_parse/parse_lsa.o rpc_parse/parse_net.o \
|
|
rpc_parse/parse_reg.o rpc_parse/parse_rpc.o \
|
|
rpc_parse/parse_samr.o rpc_parse/parse_srv.o \
|
|
rpc_parse/parse_wks.o \
|
|
rpc_parse/parse_spoolss.o rpc_parse/parse_dfs.o
|
|
|
|
|
|
RPC_CLIENT_OBJ = rpc_client/cli_netlogon.o rpc_client/cli_pipe.o \
|
|
rpc_client/cli_login.o \
|
|
rpc_client/cli_spoolss_notify.o
|
|
|
|
LOCKING_OBJ = locking/locking.o locking/brlock.o locking/posix.o
|
|
|
|
PASSDB_OBJ = passdb/passdb.o passdb/pdb_get_set.o \
|
|
passdb/machine_sid.o passdb/pdb_smbpasswd.o \
|
|
passdb/pdb_tdb.o passdb/pdb_ldap.o \
|
|
passdb/pdb_nisplus.o
|
|
|
|
GROUPDB_OBJ = groupdb/mapping.o
|
|
|
|
# passdb/smbpass.o passdb/ldap.o passdb/nispass.o
|
|
|
|
PROFILE_OBJ = profile/profile.o
|
|
|
|
OPLOCK_OBJ = smbd/oplock.o smbd/oplock_irix.o smbd/oplock_linux.o
|
|
|
|
NOTIFY_OBJ = smbd/notify.o smbd/notify_hash.o smbd/notify_kernel.o
|
|
|
|
PLAINTEXT_AUTH_OBJ = auth/pampass.o auth/pass_check.o
|
|
|
|
UNIGRP_OBJ = libsmb/netlogon_unigrp.o
|
|
|
|
AUTH_OBJ = auth/auth.o auth/auth_sam.o auth/auth_server.o auth/auth_domain.o \
|
|
auth/auth_rhosts.o auth/auth_unix.o auth/auth_util.o auth/auth_winbind.o \
|
|
auth/auth_builtin.o auth/auth_compat.o $(PLAINTEXT_AUTH_OBJ) $(UNIGRP_OBJ)
|
|
|
|
|
|
SMBD_OBJ1 = smbd/server.o smbd/files.o smbd/chgpasswd.o smbd/connection.o \
|
|
smbd/utmp.o smbd/session.o \
|
|
smbd/dfree.o smbd/dir.o smbd/password.o smbd/conn.o smbd/fileio.o \
|
|
smbd/ipc.o smbd/lanman.o smbd/mangle.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/vfs.o smbd/vfs-wrap.o smbd/statcache.o \
|
|
smbd/posix_acls.o lib/sysacls.o \
|
|
smbd/process.o smbd/service.o smbd/error.o \
|
|
printing/printfsp.o lib/util_seaccess.o smbd/srvstr.o \
|
|
smbd/build_options.o \
|
|
smbd/change_trust_pw.o \
|
|
rpc_client/cli_spoolss_notify.o
|
|
|
|
|
|
PRINTING_OBJ = printing/pcap.o printing/print_svid.o \
|
|
printing/print_cups.o printing/print_generic.o \
|
|
printing/lpq_parse.o printing/load.o
|
|
|
|
PRINTBACKEND_OBJ = printing/printing.o printing/nt_printing.o
|
|
|
|
MSDFS_OBJ = msdfs/msdfs.o
|
|
|
|
SMBD_OBJ = $(SMBD_OBJ1) $(MSDFS_OBJ) $(PARAM_OBJ) $(LIBSMB_OBJ) $(UBIQX_OBJ) \
|
|
$(RPC_SERVER_OBJ) $(RPC_PARSE_OBJ) \
|
|
$(LOCKING_OBJ) $(PASSDB_OBJ) $(PRINTING_OBJ) $(PROFILE_OBJ) \
|
|
$(LIB_OBJ) $(PRINTBACKEND_OBJ) $(QUOTAOBJS) $(OPLOCK_OBJ) \
|
|
$(NOTIFY_OBJ) $(GROUPDB_OBJ) $(AUTH_OBJ) $(LIBMSRPC_OBJ)
|
|
|
|
|
|
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 \
|
|
nmbd/nmbd_workgroupdb.o nmbd/nmbd_synclists.o
|
|
|
|
NMBD_OBJ = $(NMBD_OBJ1) $(PARAM_OBJ) $(LIBSMB_OBJ) $(UBIQX_OBJ) \
|
|
$(PROFILE_OBJ) $(LIB_OBJ)
|
|
|
|
SWAT_OBJ = web/cgi.o web/diagnose.o web/startstop.o web/statuspage.o \
|
|
web/swat.o web/neg_lang.o $(PRINTING_OBJ) $(LIBSMB_OBJ) $(LOCKING_OBJ) \
|
|
$(PARAM_OBJ) $(PASSDB_OBJ) \
|
|
$(UBIQX_OBJ) $(LIB_OBJ) $(GROUPDB_OBJ) $(PLAINTEXT_AUTH_OBJ) \
|
|
smbwrapper/shared.o
|
|
|
|
SMBSH_OBJ = smbwrapper/smbsh.o smbwrapper/shared.o \
|
|
$(PARAM_OBJ) $(UBIQX_OBJ) $(LIB_OBJ)
|
|
|
|
MAKE_PRINTERDEF_OBJ = utils/make_printerdef.o $(PARAM_OBJ) \
|
|
$(UBIQX_OBJ) $(LIB_OBJ)
|
|
|
|
STATUS_OBJ = utils/status.o $(LOCKING_OBJ) $(PARAM_OBJ) \
|
|
$(UBIQX_OBJ) $(PROFILE_OBJ) $(LIB_OBJ)
|
|
|
|
SMBCONTROL_OBJ = utils/smbcontrol.o $(LOCKING_OBJ) $(PARAM_OBJ) \
|
|
$(UBIQX_OBJ) $(PROFILE_OBJ) $(LIB_OBJ)
|
|
|
|
SMBTREE_OBJ = utils/smbtree.o $(LOCKING_OBJ) $(PARAM_OBJ) \
|
|
$(UBIQX_OBJ) $(PROFILE_OBJ) $(LIB_OBJ) $(LIBSMB_OBJ)
|
|
|
|
TESTPARM_OBJ = utils/testparm.o \
|
|
$(PARAM_OBJ) $(UBIQX_OBJ) $(LIB_OBJ)
|
|
|
|
TESTPRNS_OBJ = utils/testprns.o $(PARAM_OBJ) $(PRINTING_OBJ) $(UBIQX_OBJ) \
|
|
$(LIB_OBJ)
|
|
|
|
SMBPASSWD_OBJ = utils/smbpasswd.o $(PARAM_OBJ) \
|
|
$(LIBSMB_OBJ) $(PASSDB_OBJ) $(GROUPDB_OBJ)\
|
|
$(UBIQX_OBJ) $(LIB_OBJ)
|
|
|
|
PDBEDIT_OBJ = utils/pdbedit.o $(PARAM_OBJ) $(LIBSMB_OBJ) $(PASSDB_OBJ) \
|
|
$(UBIQX_OBJ) $(LIB_OBJ) $(GROUPDB_OBJ)
|
|
|
|
SMBGROUPEDIT_OBJ = utils/smbgroupedit.o $(GROUPDB_OBJ) $(PARAM_OBJ) \
|
|
$(LIBSMB_OBJ) $(PASSDB_OBJ) $(UBIQX_OBJ) $(LIB_OBJ)
|
|
|
|
RPCCLIENT_OBJ1 = rpcclient/rpcclient.o rpcclient/cmd_lsarpc.o \
|
|
rpcclient/cmd_samr.o rpcclient/cmd_spoolss.o \
|
|
rpcclient/cmd_netlogon.o rpcclient/cmd_srvsvc.o \
|
|
rpcclient/cmd_dfs.o rpcclient/cmd_reg.o \
|
|
rpc_client/cli_login.o rpc_client/cli_netlogon.o \
|
|
rpcclient/display_sec.o
|
|
|
|
RPCCLIENT_OBJ = $(RPCCLIENT_OBJ1) \
|
|
$(PARAM_OBJ) $(LIBSMB_OBJ) $(UBIQX_OBJ) $(LIB_OBJ) \
|
|
$(RPC_PARSE_OBJ) $(PASSDB_OBJ) $(LIBMSRPC_OBJ) \
|
|
$(READLINE_OBJ) $(GROUPDB_OBJ)
|
|
|
|
SAMSYNC_OBJ1 = rpcclient/samsync.o rpcclient/display_sec.o
|
|
|
|
SAMSYNC_OBJ = $(SAMSYNC_OBJ1) \
|
|
$(PARAM_OBJ) $(LIBSMB_OBJ) $(UBIQX_OBJ) $(LIB_OBJ) \
|
|
$(RPC_PARSE_OBJ) $(PASSDB_OBJ) $(LIBMSRPC_OBJ) \
|
|
$(GROUPDB_OBJ)
|
|
|
|
PAM_WINBIND_OBJ = nsswitch/pam_winbind.po nsswitch/wb_common.po lib/snprintf.o
|
|
|
|
SMBW_OBJ = smbwrapper/smbw.o \
|
|
smbwrapper/smbw_dir.o smbwrapper/smbw_stat.o \
|
|
smbwrapper/realcalls.o smbwrapper/shared.o \
|
|
smbwrapper/smbw_cache.o \
|
|
$(LIBSMB_OBJ) $(PARAM_OBJ) \
|
|
$(UBIQX_OBJ) $(LIB_OBJ)
|
|
|
|
SMBWRAPPER_OBJ = $(SMBW_OBJ) smbwrapper/wrapped.o
|
|
|
|
LIBSMBCLIENT_OBJ = libsmb/libsmbclient.o $(LIB_OBJ) $(LIBSMB_OBJ) $(PARAM_OBJ) $(UBIQX_OBJ)
|
|
|
|
CLIENT_OBJ = client/client.o client/clitar.o \
|
|
$(PARAM_OBJ) $(LIBSMB_OBJ) $(UBIQX_OBJ) $(LIB_OBJ) \
|
|
$(READLINE_OBJ)
|
|
|
|
NET_OBJ = utils/net.o utils/net_ads.o \
|
|
utils/net_rap.o utils/net_rpc.o \
|
|
utils/net_rpc_join.o utils/net_time.o utils/net_lookup.o \
|
|
$(LIBSMB_OBJ) $(LIBMSRPC_OBJ) $(RPC_PARSE_OBJ) $(PASSDB_OBJ) \
|
|
$(GROUPDB_OBJ) $(PARAM_OBJ) $(UBIQX_OBJ) $(LIB_OBJ)
|
|
|
|
|
|
CUPS_OBJ = client/smbspool.o $(PARAM_OBJ) $(LIBSMB_OBJ) $(UBIQX_OBJ) $(LIB_OBJ)
|
|
|
|
MOUNT_OBJ = client/smbmount.o \
|
|
$(PARAM_OBJ) $(LIBSMB_OBJ) $(UBIQX_OBJ) $(LIB_OBJ)
|
|
|
|
MNT_OBJ = client/smbmnt.o \
|
|
$(PARAM_OBJ) $(LIBSMB_OBJ) $(UBIQX_OBJ) $(LIB_OBJ)
|
|
|
|
UMOUNT_OBJ = client/smbumount.o \
|
|
$(PARAM_OBJ) $(LIBSMB_OBJ) $(UBIQX_OBJ) $(LIB_OBJ)
|
|
|
|
NMBLOOKUP_OBJ = utils/nmblookup.o $(PARAM_OBJ) $(UBIQX_OBJ) \
|
|
$(LIBSMB_OBJ) $(LIB_OBJ)
|
|
|
|
SMBTORTURE_OBJ = torture/torture.o torture/nbio.o torture/scanner.o torture/utable.o \
|
|
torture/denytest.o \
|
|
$(LIBSMB_OBJ) $(PARAM_OBJ) $(UBIQX_OBJ) $(LIB_OBJ)
|
|
|
|
MASKTEST_OBJ = torture/masktest.o $(LIBSMB_OBJ) $(PARAM_OBJ) \
|
|
$(UBIQX_OBJ) $(LIB_OBJ)
|
|
|
|
MSGTEST_OBJ = torture/msgtest.o $(LIBSMB_OBJ) $(PARAM_OBJ) \
|
|
$(UBIQX_OBJ) $(LIB_OBJ)
|
|
|
|
LOCKTEST_OBJ = torture/locktest.o $(LOCKING_OBJ) $(LIBSMB_OBJ) $(PARAM_OBJ) \
|
|
$(UBIQX_OBJ) $(LIB_OBJ)
|
|
|
|
NSSTEST_OBJ = torture/nsstest.o $(LIBSMB_OBJ) $(PARAM_OBJ) \
|
|
$(UBIQX_OBJ) $(LIB_OBJ)
|
|
|
|
LOCKTEST2_OBJ = torture/locktest2.o $(LOCKING_OBJ) $(LIBSMB_OBJ) $(PARAM_OBJ) \
|
|
$(UBIQX_OBJ) $(LIB_OBJ)
|
|
|
|
SMBCACLS_OBJ = utils/smbcacls.o $(LOCKING_OBJ) $(LIBSMB_OBJ) $(PARAM_OBJ) \
|
|
$(UBIQX_OBJ) $(LIB_OBJ) $(RPC_PARSE_OBJ) $(PASSDB_OBJ) \
|
|
$(LIBMSRPC_OBJ) $(GROUPDB_OBJ)
|
|
|
|
TALLOCTORT_OBJ = lib/talloctort.o $(LIB_OBJ) $(PARAM_OBJ) $(UBIQX_OBJ)
|
|
|
|
RPCTORTURE_OBJ = torture/rpctorture.o \
|
|
rpcclient/display.o \
|
|
rpcclient/cmd_lsarpc.o \
|
|
rpcclient/cmd_wkssvc.o \
|
|
rpcclient/cmd_samr.o \
|
|
rpcclient/cmd_srvsvc.o \
|
|
rpcclient/cmd_netlogon.o \
|
|
$(PARAM_OBJ) $(LIBSMB_OBJ) $(UBIQX_OBJ) $(LIB_OBJ) \
|
|
$(RPC_CLIENT_OBJ) $(RPC_PARSE_OBJ) $(PASSDB_OBJ)
|
|
|
|
DEBUG2HTML_OBJ = utils/debug2html.o ubiqx/debugparse.o
|
|
|
|
SMBFILTER_OBJ = utils/smbfilter.o $(LIBSMB_OBJ) $(PARAM_OBJ) \
|
|
$(UBIQX_OBJ) $(LIB_OBJ)
|
|
|
|
PROTO_OBJ = $(SMBD_OBJ) $(NMBD_OBJ) $(SWAT_OBJ) $(CLIENT_OBJ) \
|
|
$(SMBWRAPPER_OBJ) $(SMBTORTURE_OBJ) $(RPCCLIENT_OBJ1) \
|
|
$(LIBMSRPC_OBJ) $(RPC_CLIENT_OBJ) $(AUTH_OBJ) $(NET_OBJ)
|
|
|
|
NSS_OBJ_0 = nsswitch/wins.o $(PARAM_OBJ) $(UBIQX_OBJ) $(LIBSMB_OBJ) $(LIB_OBJ) $(NSSWINS_OBJ)
|
|
NSS_OBJ = $(NSS_OBJ_0:.o=.po)
|
|
|
|
PICOBJS = $(SMBWRAPPER_OBJ:.o=.po)
|
|
PICOBJS32 = $(SMBWRAPPER_OBJ:.o=.po32)
|
|
LIBSMBCLIENT_PICOBJS = $(LIBSMBCLIENT_OBJ:.o=.po)
|
|
|
|
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 \
|
|
lib/debug.o lib/util_sid.o lib/messages.o lib/util_str.o \
|
|
lib/wins_srv.o lib/substitute.o lib/select.o lib/util.o \
|
|
nsswitch/wb_client.o nsswitch/wb_common.o \
|
|
lib/system.o lib/util_file.o \
|
|
lib/genrand.o lib/username.o lib/util_getent.o lib/charcnv.o lib/time.o \
|
|
lib/md4.o lib/util_unistr.o lib/signal.o lib/talloc.o \
|
|
lib/ms_fnmatch.o lib/util_sock.o lib/smbrun.o \
|
|
lib/util_sec.o lib/snprintf.o \
|
|
ubiqx/ubi_sLinkList.o libsmb/smbencrypt.o libsmb/smbdes.o \
|
|
$(PARAM_OBJ) $(TDB_OBJ) $(PASSDB_OBJ)
|
|
|
|
PAM_SMBPASS_PICOOBJ = $(PAM_SMBPASS_OBJ_0:.o=.po)
|
|
|
|
WINBINDD_OBJ1 = \
|
|
nsswitch/winbindd.o \
|
|
nsswitch/winbindd_user.o \
|
|
nsswitch/winbindd_group.o \
|
|
nsswitch/winbindd_idmap.o \
|
|
nsswitch/winbindd_util.o \
|
|
nsswitch/winbindd_cache.o \
|
|
nsswitch/winbindd_pam.o \
|
|
nsswitch/winbindd_sid.o \
|
|
nsswitch/winbindd_misc.o \
|
|
nsswitch/winbindd_cm.o \
|
|
nsswitch/winbindd_rpc.o \
|
|
nsswitch/winbindd_ads.o
|
|
|
|
WINBINDD_OBJ = \
|
|
$(WINBINDD_OBJ1) $(NOPROTO_OBJ) $(PASSDB_OBJ) \
|
|
$(LIBNMB_OBJ) $(PARAM_OBJ) $(UBIQX_OBJ) $(LIB_OBJ) \
|
|
$(LIBSMB_OBJ) $(LIBMSRPC_OBJ) $(RPC_PARSE_OBJ) \
|
|
$(GROUPDB_OBJ) $(PROFILE_OBJ) $(UNIGRP_OBJ)
|
|
|
|
WBINFO_OBJ = nsswitch/wbinfo.o libsmb/smbencrypt.o libsmb/smbdes.o \
|
|
passdb/secrets.o
|
|
|
|
WINBIND_NSS_OBJ = nsswitch/winbind_nss.o nsswitch/wb_common.o
|
|
|
|
WINBIND_NSS_PICOBJS = $(WINBIND_NSS_OBJ:.o=.po)
|
|
|
|
POPT_OBJS=popt/findme.o popt/popt.o popt/poptconfig.o \
|
|
popt/popthelp.o popt/poptparse.o
|
|
|
|
######################################################################
|
|
# now the rules...
|
|
######################################################################
|
|
all : SHOWFLAGS include/proto.h include/build_env.h $(SPROGS) $(PROGS) $(WINBIND_PROGS) $(WINBIND_SPROGS) $(LPROGS) $(SHLIBS)
|
|
|
|
pam_smbpass : SHOWFLAGS bin/pam_smbpass.@SHLIBEXT@
|
|
|
|
smbwrapper : SHOWFLAGS bin/smbsh bin/smbwrapper.@SHLIBEXT@ @WRAP32@
|
|
|
|
torture : SHOWFLAGS $(TORTURE_PROGS)
|
|
|
|
smbtorture : SHOWFLAGS bin/smbtorture
|
|
|
|
masktest : SHOWFLAGS bin/masktest
|
|
|
|
msgtest : SHOWFLAGS bin/msgtest
|
|
|
|
locktest : SHOWFLAGS bin/locktest
|
|
|
|
smbcacls : SHOWFLAGS bin/smbcacls
|
|
|
|
locktest2 : SHOWFLAGS bin/locktest2
|
|
|
|
rpctorture : SHOWFLAGS bin/rpctorture
|
|
|
|
debug2html : SHOWFLAGS bin/debug2html
|
|
|
|
smbfilter : SHOWFLAGS bin/smbfilter
|
|
|
|
talloctort : SHOWFLAGS bin/talloctort
|
|
|
|
nsswitch : SHOWFLAGS $(WINBIND_PROGS) $(WINBIND_SPROGS) $(LPROGS)
|
|
|
|
.SUFFIXES:
|
|
.SUFFIXES: .c .o .po .po32 .lo
|
|
|
|
SHOWFLAGS:
|
|
@echo "Using FLAGS = $(FLAGS)"
|
|
@echo " FLAGS32 = $(FLAGS32)"
|
|
@echo " LIBS = $(LIBS)"
|
|
@echo " LDSHFLAGS = $(LDSHFLAGS)"
|
|
@echo " LDFLAGS = $(LDFLAGS)"
|
|
|
|
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
|
|
|
|
.c.o:
|
|
@if (: >> $@ || : > $@) >/dev/null 2>&1; then rm -f $@; else \
|
|
dir=`echo $@ | sed 's,/[^/]*$$,,;s,^$$,.,'` $(MAKEDIR); fi
|
|
@echo Compiling $*.c
|
|
@$(CC) -I. -I$(srcdir) $(FLAGS) -c $< \
|
|
-o $@
|
|
@BROKEN_CC@ -mv `echo $@ | sed 's%^.*/%%g'` $@
|
|
|
|
# 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.o: dynconfig.c Makefile
|
|
@echo Compiling $*.c
|
|
@$(CC) $(FLAGS) $(PATH_FLAGS) -c $< -o $@
|
|
|
|
dynconfig.po: dynconfig.c Makefile
|
|
@if (: >> $@ || : > $@) >/dev/null 2>&1; then rm -f $@; else \
|
|
dir=`echo $@ | sed 's,/[^/]*$$,,;s,^$$,.,'` $(MAKEDIR); fi
|
|
@echo Compiling $*.c with @PICFLAG@
|
|
@$(CC) -I. -I$(srcdir) $(FLAGS) $(PATH_FLAGS) @PICFLAG@ -c $< -o $*.@PICSUFFIX@
|
|
@BROKEN_CC@ -mv `echo $@ | sed -e 's%^.*/%%g' -e 's%\.po$$%.o%'` $@
|
|
@POBAD_CC@ @mv $*.po.o $@
|
|
|
|
.c.po:
|
|
@if (: >> $@ || : > $@) >/dev/null 2>&1; then rm -f $@; else \
|
|
dir=`echo $@ | sed 's,/[^/]*$$,,;s,^$$,.,'` $(MAKEDIR); fi
|
|
@echo Compiling $*.c with @PICFLAG@
|
|
@$(CC) -I. -I$(srcdir) $(FLAGS) @PICFLAG@ -c $< -o $*.@PICSUFFIX@
|
|
@BROKEN_CC@ -mv `echo $@ | sed -e 's%^.*/%%g' -e 's%\.po$$%.o%'` $@
|
|
@POBAD_CC@ @mv $*.po.o $@
|
|
|
|
# this is for IRIX
|
|
.c.po32:
|
|
@if (: >> $@ || : > $@) >/dev/null 2>&1; then rm -f $@; else \
|
|
dir=`echo $@ | sed 's,/[^/]*$$,,;s,^$$,.,'` $(MAKEDIR); fi
|
|
@echo Compiling $*.c with @PICFLAG@ and -32
|
|
@$(CC) -32 -I. -I$(srcdir) $(FLAGS32) $(PATH_FLAGS) @PICFLAG@ -c $< \
|
|
-o $*.po32.o
|
|
@BROKEN_CC@ -mv `echo $@ | sed -e 's%^.*/%%g' -e 's%\.po32$$%.o%'` $@.o
|
|
@mv $*.po32.o $@
|
|
|
|
bin/.dummy:
|
|
@if (: >> $@ || : > $@) >/dev/null 2>&1; then :; else \
|
|
dir=bin $(MAKEDIR); fi
|
|
@: >> $@ || : > $@ # what a fancy emoticon!
|
|
|
|
bin/smbd: $(SMBD_OBJ) bin/.dummy
|
|
@echo Linking $@
|
|
@$(CC) $(FLAGS) -o $@ $(SMBD_OBJ) $(LDFLAGS) $(LIBS)
|
|
|
|
bin/nmbd: $(NMBD_OBJ) bin/.dummy
|
|
@echo Linking $@
|
|
@$(CC) $(FLAGS) -o $@ $(NMBD_OBJ) $(LDFLAGS) $(LIBS)
|
|
|
|
bin/swat: $(SWAT_OBJ) bin/.dummy
|
|
@echo Linking $@
|
|
@$(CC) $(FLAGS) -o $@ $(SWAT_OBJ) $(LDFLAGS) $(LIBS)
|
|
|
|
bin/rpcclient: $(RPCCLIENT_OBJ) bin/.dummy
|
|
@echo Linking $@
|
|
@$(CC) $(FLAGS) -o $@ $(RPCCLIENT_OBJ) $(LDFLAGS) $(TERMLDFLAGS) $(TERMLIBS) $(LIBS)
|
|
|
|
bin/samsync: $(SAMSYNC_OBJ) bin/.dummy
|
|
@echo Linking $@
|
|
@$(CC) $(FLAGS) -o $@ $(SAMSYNC_OBJ) $(LDFLAGS) $(LIBS)
|
|
|
|
bin/smbclient: $(CLIENT_OBJ) bin/.dummy
|
|
@echo Linking $@
|
|
@$(CC) $(FLAGS) -o $@ $(CLIENT_OBJ) $(LDFLAGS) $(TERMLDFLAGS) $(TERMLIBS) $(LIBS)
|
|
|
|
bin/net: $(NET_OBJ) bin/.dummy @BUILD_POPT@
|
|
@echo Linking $@
|
|
@$(CC) $(FLAGS) -o $@ $(NET_OBJ) $(LDFLAGS) $(LIBS) @BUILD_POPT@
|
|
|
|
bin/smbspool: $(CUPS_OBJ) bin/.dummy
|
|
@echo Linking $@
|
|
@$(CC) $(FLAGS) -o $@ $(CUPS_OBJ) $(LDFLAGS) $(LIBS)
|
|
|
|
bin/smbmount: $(MOUNT_OBJ) bin/.dummy
|
|
@echo Linking $@
|
|
@$(CC) $(FLAGS) -o $@ $(MOUNT_OBJ) $(LDFLAGS) $(LIBS)
|
|
|
|
bin/smbmnt: $(MNT_OBJ) bin/.dummy
|
|
@echo Linking $@
|
|
@$(CC) $(FLAGS) -o $@ $(MNT_OBJ) $(LDFLAGS) $(LIBS)
|
|
|
|
bin/smbumount: $(UMOUNT_OBJ) bin/.dummy
|
|
@echo Linking $@
|
|
@$(CC) $(FLAGS) -o $@ $(UMOUNT_OBJ) $(LDFLAGS) $(LIBS)
|
|
|
|
bin/testparm: $(TESTPARM_OBJ) bin/.dummy
|
|
@echo Linking $@
|
|
@$(CC) $(FLAGS) -o $@ $(TESTPARM_OBJ) $(LDFLAGS) $(LIBS)
|
|
|
|
bin/testprns: $(TESTPRNS_OBJ) bin/.dummy
|
|
@echo Linking $@
|
|
@$(CC) $(FLAGS) -o $@ $(TESTPRNS_OBJ) $(LDFLAGS) $(LIBS)
|
|
|
|
bin/smbstatus: $(STATUS_OBJ) bin/.dummy
|
|
@echo Linking $@
|
|
@$(CC) $(FLAGS) -o $@ $(STATUS_OBJ) $(LDFLAGS) $(LIBS)
|
|
|
|
bin/smbcontrol: $(SMBCONTROL_OBJ) bin/.dummy
|
|
@echo Linking $@
|
|
@$(CC) $(FLAGS) -o $@ $(SMBCONTROL_OBJ) $(LDFLAGS) $(LIBS)
|
|
|
|
bin/smbtree: $(SMBTREE_OBJ) bin/.dummy
|
|
@echo Linking $@
|
|
@$(CC) $(FLAGS) -o $@ $(SMBTREE_OBJ) $(LDFLAGS) $(LIBS)
|
|
|
|
bin/smbpasswd: $(SMBPASSWD_OBJ) bin/.dummy
|
|
@echo Linking $@
|
|
@$(CC) $(FLAGS) -o $@ $(SMBPASSWD_OBJ) $(LDFLAGS) $(LIBS)
|
|
|
|
bin/pdbedit: $(PDBEDIT_OBJ) bin/.dummy
|
|
@echo Linking $@
|
|
@$(CC) $(FLAGS) -o $@ $(PDBEDIT_OBJ) $(LDFLAGS) $(LIBS)
|
|
|
|
bin/smbgroupedit: $(SMBGROUPEDIT_OBJ) bin/.dummy
|
|
@echo Linking $@
|
|
@$(CC) $(FLAGS) -o $@ $(SMBGROUPEDIT_OBJ) $(LDFLAGS) $(LIBS)
|
|
|
|
bin/nmblookup: $(NMBLOOKUP_OBJ) bin/.dummy
|
|
@echo Linking $@
|
|
@$(CC) $(FLAGS) -o $@ $(NMBLOOKUP_OBJ) $(LDFLAGS) $(LIBS)
|
|
|
|
bin/make_printerdef: $(MAKE_PRINTERDEF_OBJ) bin/.dummy
|
|
@echo Linking $@
|
|
@$(CC) $(FLAGS) -o $@ $(MAKE_PRINTERDEF_OBJ) $(LDFLAGS) $(LIBS)
|
|
|
|
bin/smbtorture: $(SMBTORTURE_OBJ) bin/.dummy
|
|
@echo Linking $@
|
|
@$(CC) $(FLAGS) -o $@ $(SMBTORTURE_OBJ) $(LDFLAGS) $(LIBS)
|
|
|
|
bin/talloctort: $(TALLOCTORT_OBJ) bin/.dummy
|
|
@echo Linking $@
|
|
@$(CC) $(FLAGS) -o $@ $(TALLOCTORT_OBJ) $(LDFLAGS) $(LIBS)
|
|
|
|
bin/masktest: $(MASKTEST_OBJ) bin/.dummy
|
|
@echo Linking $@
|
|
@$(CC) $(FLAGS) -o $@ $(MASKTEST_OBJ) $(LDFLAGS) $(LIBS)
|
|
|
|
bin/msgtest: $(MSGTEST_OBJ) bin/.dummy
|
|
@echo Linking $@
|
|
@$(CC) $(FLAGS) -o $@ $(MSGTEST_OBJ) $(LDFLAGS) $(LIBS)
|
|
|
|
bin/smbcacls: $(SMBCACLS_OBJ) bin/.dummy
|
|
@echo Linking $@
|
|
@$(CC) $(FLAGS) -o $@ $(SMBCACLS_OBJ) $(LDFLAGS) $(LIBS)
|
|
|
|
bin/locktest: $(LOCKTEST_OBJ) bin/.dummy
|
|
@echo Linking $@
|
|
@$(CC) $(FLAGS) -o $@ $(LOCKTEST_OBJ) $(LDFLAGS) $(LIBS)
|
|
|
|
bin/nsstest: $(NSSTEST_OBJ) bin/.dummy
|
|
@echo Linking $@
|
|
@$(CC) $(FLAGS) -o $@ $(NSSTEST_OBJ) $(LDFLAGS) $(LIBS)
|
|
|
|
bin/locktest2: $(LOCKTEST2_OBJ) bin/.dummy
|
|
@echo Linking $@
|
|
@$(CC) $(FLAGS) -o $@ $(LOCKTEST2_OBJ) $(LDFLAGS) $(LIBS)
|
|
|
|
bin/rpctorture: $(RPCTORTURE_OBJ) bin/.dummy
|
|
@echo Linking $@
|
|
@$(CC) $(FLAGS) -o $@ $(RPCTORTURE_OBJ) $(LDFLAGS) $(LIBS)
|
|
|
|
bin/debug2html: $(DEBUG2HTML_OBJ) bin/.dummy
|
|
@echo Linking $@
|
|
@$(CC) $(FLAGS) -o $@ $(DEBUG2HTML_OBJ) $(LDFLAGS) $(LIBS)
|
|
|
|
bin/smbfilter: $(SMBFILTER_OBJ) bin/.dummy
|
|
@echo Linking $@
|
|
@$(CC) $(FLAGS) -o $@ $(SMBFILTER_OBJ) $(LDFLAGS) $(LIBS)
|
|
|
|
|
|
bin/smbw_sample: $(SMBW_OBJ) utils/smbw_sample.o bin/.dummy
|
|
@echo Linking $@
|
|
@$(CC) $(FLAGS) -o $@ $(SMBW_OBJ) utils/smbw_sample.o $(LDFLAGS) $(LIBS)
|
|
|
|
bin/smbwrapper.@SHLIBEXT@: $(PICOBJS)
|
|
@echo Linking shared library $@
|
|
@$(SHLD) $(LDSHFLAGS) -o $@ $(PICOBJS) $(LIBS)
|
|
|
|
bin/smbwrapper.32.@SHLIBEXT@: $(PICOBJS32)
|
|
@echo Linking shared library $@
|
|
@$(SHLD) -32 $(LDSHFLAGS) -o $@ $(PICOBJS32) $(LIBS)
|
|
|
|
bin/libsmbclient.@SHLIBEXT@: $(LIBSMBCLIENT_PICOBJS)
|
|
echo Linking libsmbclient shared library $@
|
|
$(SHLD) $(LDSHFLAGS) -o $@ $(LIBSMBCLIENT_PICOBJS) $(LIBS)
|
|
|
|
bin/libsmbclient.a: $(LIBSMBCLIENT_PICOBJS)
|
|
@echo Linking libsmbclient non-shared library $@
|
|
-$(AR) -rc $@ $(LIBSMBCLIENT_PICOBJS)
|
|
|
|
libsmbclient: bin/libsmbclient.a @LIBSMBCLIENT_SHARED@
|
|
|
|
bin/smbsh: $(SMBSH_OBJ) bin/.dummy
|
|
@echo Linking $@
|
|
@$(SHLD) $(FLAGS) -o $@ $(SMBSH_OBJ) $(LDFLAGS) $(LIBS)
|
|
|
|
nsswitch/libnss_wins.so: $(NSS_OBJ)
|
|
@echo "Linking $@"
|
|
@$(SHLD) $(LDSHFLAGS) -o $@ $(NSS_OBJ) -lc
|
|
|
|
bin/winbindd: $(WINBINDD_OBJ) bin/.dummy
|
|
@echo Linking $@
|
|
@$(LINK) -o $@ $(WINBINDD_OBJ) $(LIBS)
|
|
|
|
nsswitch/libnss_winbind.so: $(WINBIND_NSS_PICOBJS)
|
|
@echo "Linking $@"
|
|
@$(SHLD) $(LDSHFLAGS) -o $@ $(WINBIND_NSS_PICOBJS)
|
|
|
|
nsswitch/pam_winbind.so: $(PAM_WINBIND_OBJ) bin/.dummy
|
|
@echo Linking $@
|
|
@$(SHLD) $(LDSHFLAGS) -o $@ $(PAM_WINBIND_OBJ)
|
|
|
|
bin/wbinfo: $(WBINFO_OBJ) $(PARAM_OBJ) $(LIB_OBJ) $(NOPROTO_OBJ) \
|
|
$(UBIQX_OBJ) @BUILD_POPT@ bin/.dummy
|
|
@echo Linking $@
|
|
@$(LINK) -o $@ $(WBINFO_OBJ) $(PARAM_OBJ) $(LIB_OBJ) $(NOPROTO_OBJ) \
|
|
$(UBIQX_OBJ) $(LIBS) @BUILD_POPT@
|
|
|
|
bin/pam_smbpass.@SHLIBEXT@: $(PAM_SMBPASS_PICOOBJ)
|
|
@echo "Linking shared library $@"
|
|
$(SHLD) $(LDSHFLAGS) -symbolic -o $@ $(PAM_SMBPASS_PICOOBJ) -lpam $(LIBS) -lc
|
|
|
|
bin/libmsrpc.a: $(LIBMSRPC_PICOBJ)
|
|
-$(AR) -rc $@ $(LIBMSRPC_PICOBJ)
|
|
|
|
bin/spamsync: rpcclient/samsync.o bin/libmsrpc.a
|
|
@$(LINK) -o $@ rpcclient/samsync.o bin/libmsrpc.a \
|
|
$(UBIQX_OBJ) $(LIBS)
|
|
|
|
install: installbin installman installscripts installswat
|
|
|
|
installdirs:
|
|
-$(SHELL) $(srcdir)/install-sh -d -m $(INSTALLPERMS) \
|
|
$(BASEDIR) $(SBINDIR) $(BINDIR) $(LIBDIR) $(VARDIR)
|
|
|
|
installservers: all installdirs
|
|
@$(SHELL) $(srcdir)/script/installbin.sh $(INSTALLPERMS) $(BASEDIR) $(SBINDIR) $(LIBDIR) $(VARDIR) $(SPROGS)
|
|
|
|
installbin: all installdirs
|
|
@$(SHELL) $(srcdir)/script/installbin.sh $(INSTALLPERMS) $(BASEDIR) $(SBINDIR) $(LIBDIR) $(VARDIR) $(SPROGS)
|
|
@$(SHELL) $(srcdir)/script/installbin.sh $(INSTALLPERMS) $(BASEDIR) $(BINDIR) $(LIBDIR) $(VARDIR) $(PROGS)
|
|
|
|
installscripts: installdirs
|
|
@$(SHELL) $(srcdir)/script/installscripts.sh $(INSTALLPERMS) $(BINDIR) $(SCRIPTS)
|
|
|
|
installswat: installdirs
|
|
@$(SHELL) $(srcdir)/script/installswat.sh $(SWATDIR) $(srcdir)
|
|
|
|
installclientlib:
|
|
-$(INSTALLCMD) bin/libsmbclient.so $(LIBDIR)
|
|
-$(INSTALLCMD) -d ${prefix}/include
|
|
-$(INSTALLCMD) include/libsmbclient.h ${prefix}/include
|
|
|
|
# revert to the previously installed version
|
|
revert:
|
|
@$(SHELL) $(srcdir)/script/revert.sh $(SBINDIR) $(SPROGS)
|
|
@$(SHELL) $(srcdir)/script/revert.sh $(BINDIR) $(PROGS) $(SCRIPTS)
|
|
|
|
installman:
|
|
@$(SHELL) $(srcdir)/script/installman.sh $(MANDIR) $(srcdir) $(man_langs) "@ROFF@"
|
|
|
|
.PHONY: showlayout
|
|
|
|
showlayout:
|
|
@echo "Samba will be installed into:"
|
|
@echo " basedir: $(BASEDIR)"
|
|
@echo " bindir: $(BINDIR)"
|
|
@echo " sbindir: $(SBINDIR)"
|
|
@echo " libdir: $(LIBDIR)"
|
|
@echo " vardir: $(VARDIR)"
|
|
@echo " mandir: $(MANDIR)"
|
|
|
|
|
|
uninstall: uninstallman uninstallbin uninstallscripts
|
|
|
|
uninstallman:
|
|
@$(SHELL) $(srcdir)/script/uninstallman.sh $(MANDIR) $(srcdir) $(man_langs)
|
|
|
|
uninstallbin:
|
|
@$(SHELL) $(srcdir)/script/uninstallbin.sh $(INSTALLPERMS) $(BASEDIR) $(SBINDIR) $(LIBDIR) $(VARDIR) $(SPROGS)
|
|
@$(SHELL) $(srcdir)/script/uninstallbin.sh $(INSTALLPERMS) $(BASEDIR) $(BINDIR) $(LIBDIR) $(VARDIR) $(PROGS)
|
|
|
|
uninstallscripts:
|
|
@$(SHELL) $(srcdir)/script/uninstallscripts.sh $(INSTALLPERMS) $(BINDIR) $(SCRIPTS)
|
|
|
|
clean: delheaders
|
|
-rm -f core */*~ *~ */*.o */*.po */*.po32 */*.@SHLIBEXT@ $(PROGS) $(SPROGS) .headers.stamp
|
|
|
|
winbindd_proto:
|
|
@cd $(srcdir) && $(SHELL) script/mkproto.sh $(AWK) \
|
|
-h _WINBINDD_PROTO_H_ nsswitch/winbindd_proto.h \
|
|
$(WINBINDD_OBJ1)
|
|
|
|
delheaders:
|
|
@/bin/rm -f $(srcdir)/include/proto.h $(srcdir)/include/build_env.h
|
|
@/bin/rm -f include/proto.h include/build_env.h
|
|
|
|
# we want our generated headers to be rebuilt if they don't exist, but not rebuilt every time
|
|
.headers.stamp:
|
|
@[ -f $@ ] || touch $@
|
|
|
|
$(PROTO_OBJ) : .headers.stamp
|
|
|
|
include/proto.h:
|
|
@echo rebuilding include/proto.h
|
|
@cd $(srcdir) && $(AWK) -f script/mkproto.awk `echo $(PROTO_OBJ) | tr ' ' '\n' | sed -e 's/\.o/\.c/g' | sort -u | egrep -v 'ubiqx/|wrapped'` > $(builddir)/include/proto.h
|
|
|
|
include/build_env.h:
|
|
@echo rebuilding include/build_env.h
|
|
@cd $(srcdir) && $(SHELL) script/build_env.sh $(srcdir) $(builddir) $(CC) > $(builddir)/include/build_env.h
|
|
|
|
headers: delheaders include/proto.h include/build_env.h .headers.stamp
|
|
|
|
proto: headers winbindd_proto
|
|
|
|
etags:
|
|
etags `find $(srcdir) -name "*.[ch]" | grep -v /CVS/`
|
|
|
|
ctags:
|
|
ctags `find $(srcdir) -name "*.[ch]" | grep -v /CVS/`
|
|
|
|
realclean: clean
|
|
-rm -f config.log $(PROGS) $(SPROGS) bin/.dummy
|
|
-rmdir bin
|
|
|
|
distclean: realclean
|
|
-rm -f include/config.h Makefile
|
|
-rm -f config.status config.cache so_locations
|
|
-rm -rf .deps
|
|
|
|
# this target is really just for my use. It only works on a limited
|
|
# range of machines and is used to produce a list of potentially
|
|
# dead (ie. unused) functions in the code. (tridge)
|
|
finddead:
|
|
nm */*.o |grep 'U ' | awk '{print $$2}' | sort -u > nmused.txt
|
|
nm */*.o |grep 'T ' | awk '{print $$3}' | sort -u > nmfns.txt
|
|
comm -13 nmused.txt nmfns.txt
|
|
|
|
|
|
# when configure.in is updated, reconfigure
|
|
$(srcdir)/configure: $(srcdir)/configure.in
|
|
@echo "WARNING: you need to rerun autoconf"
|
|
|
|
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"
|
|
|
|
test_prefix=/tmp/test-samba
|
|
# Run regression suite using the external "satyr" framework
|
|
check:
|
|
@echo "** Sorry, samba self-test without installation does not work "
|
|
@echo "** yet. Please try specifying a scratch directory to"
|
|
@echo "** ./configure --prefix DIR"
|
|
@echo "** then run \"make install installcheck\""
|
|
exit 1
|
|
|
|
# -rm -rf $(test_prefix)/lib
|
|
# mkdir $(test_prefix)/lib -p ./testdir
|
|
# PATH=$(builddir)/bin:$(PATH) \
|
|
# SATYR_SUITEDIR=../testsuite/build_farm/ prefix=$(test_prefix) \
|
|
# testdir=./testdir $(SHELL) satyr
|
|
|
|
# Run regression suite on the installed version.
|
|
|
|
# `installcheck'
|
|
# Perform installation tests (if any). The user must build and
|
|
# install the program before running the tests. You should not
|
|
# assume that `$(bindir)' is in the search path.
|
|
|
|
dangerous-installcheck:
|
|
mkdir -p $(BASEDIR)/lib
|
|
mkdir -p $(BASEDIR)/var
|
|
PATH=$(BINDIR):$(SBINDIR):$(PATH) \
|
|
SATYR_DISCOURAGE=1 \
|
|
SATYR_SUITEDIR=../testsuite/satyr/ prefix=$(BASEDIR) \
|
|
LIBSMB_PROG=$(SBINDIR)/smbd \
|
|
testdir=./testdir $(SHELL) satyr
|
|
|