mirror of
https://github.com/samba-team/samba.git
synced 2024-12-28 07:21:54 +03:00
fd43e0ee09
This library intercepts seteuid and related calls, and simulates them in a manner similar to the nss_wrapper and socket_wrapper libraries. This allows us to enable the vfs_unixuid NTVFS module in the build farm, which means we are more likely to catch errors in the token manipulation. The simulation is not complete, but it is enough for Samba4 for now. The major areas of incompleteness are: - no emulation of setreuid, setresuid or saved uids. These would be needed for use in Samba3 - no emulation of ruid changing. That would also be needed for Samba3 - no attempt to emulate file ownership changing, so code that (for example) tests whether st.st_uid matches geteuid() needs special handling
319 lines
8.6 KiB
Makefile
319 lines
8.6 KiB
Makefile
#!gmake
|
|
# The Samba 4 Makefile.
|
|
# This file is *NOT* autogenerated.
|
|
#
|
|
.DEFAULT_GOAL := all
|
|
|
|
default: all
|
|
|
|
include mkconfig.mk
|
|
|
|
pidldir := $(srcdir)/../pidl
|
|
|
|
basedir = $(prefix)
|
|
torturedir = ../lib/torture
|
|
swatdir = $(datadir)/swat
|
|
setupdir = $(datadir)/setup
|
|
ncalrpcdir = $(localstatedir)/ncalrpc
|
|
shliboutputdir = $(builddir)/bin/shared
|
|
|
|
BNLD = $(LD)
|
|
BNLD_FLAGS = $(LDFLAGS) $(SYS_LDFLAGS)
|
|
|
|
HOSTCC_FLAGS = -D_SAMBA_HOSTCC_ $(CFLAGS)
|
|
HOSTLD_FLAGS = $(LDFLAGS) $(SYS_LDFLAGS)
|
|
|
|
$(srcdir)/version.h: $(srcdir)/VERSION
|
|
@$(SHELL) script/mkversion.sh VERSION $(srcdir)/version.h $(srcdir)/
|
|
|
|
ifneq ($(automatic_dependencies),yes)
|
|
ALL_PREDEP = basics
|
|
.NOTPARALLEL:
|
|
endif
|
|
|
|
regen_version::
|
|
@$(SHELL) script/mkversion.sh VERSION $(srcdir)/version.h $(srcdir)/
|
|
|
|
clean_pch::
|
|
@echo "Removing precompiled headers"
|
|
@-rm -f include/includes.h.gch
|
|
|
|
pch:: clean_pch include/includes.h.gch
|
|
|
|
.DEFAULT_GOAL := all
|
|
|
|
ifneq ($(automatic_dependencies),yes)
|
|
ALL_PREDEP = basics
|
|
.NOTPARALLEL:
|
|
endif
|
|
|
|
include $(srcdir)/build/make/rules.mk
|
|
include $(srcdir)/build/make/python.mk
|
|
zlibsrcdir := ../lib/zlib
|
|
dynconfigsrcdir := dynconfig
|
|
heimdalsrcdir := heimdal
|
|
dsdbsrcdir := dsdb
|
|
smbdsrcdir := smbd
|
|
clustersrcdir := cluster
|
|
libnetsrcdir := libnet
|
|
authsrcdir := auth
|
|
nsswitchsrcdir := ../nsswitch
|
|
libwbclientsrcdir := ../nsswitch/libwbclient
|
|
libsrcdir := lib
|
|
libsocketsrcdir := lib/socket
|
|
libcharsetsrcdir := ../lib/util/charset
|
|
ldb_sambasrcdir := lib/ldb-samba
|
|
tdbsrcdir := ../lib/tdb
|
|
ldbsrcdir := lib/ldb
|
|
libtlssrcdir := lib/tls
|
|
libregistrysrcdir := lib/registry
|
|
smbreadlinesrcdir := lib/smbreadline
|
|
libmessagingsrcdir := lib/messaging
|
|
libteventsrcdir := ../lib/tevent
|
|
libeventssrcdir := lib/events
|
|
libcmdlinesrcdir := lib/cmdline
|
|
poptsrcdir := ../lib/popt
|
|
socketwrappersrcdir := ../lib/socket_wrapper
|
|
nsswrappersrcdir := ../lib/nss_wrapper
|
|
uidwrappersrcdir := ../lib/uid_wrapper
|
|
appwebsrcdir := lib/appweb
|
|
libstreamsrcdir := lib/stream
|
|
libutilsrcdir := ../lib/util
|
|
libtdrsrcdir := ../lib/tdr
|
|
libcryptosrcdir := ../lib/crypto
|
|
libtorturesrcdir := ../lib/torture
|
|
smb_serversrcdir := smb_server
|
|
libcompressionsrcdir := ../lib/compression
|
|
libgencachesrcdir := lib
|
|
paramsrcdir := param
|
|
rpc_serversrcdir := rpc_server
|
|
ldap_serversrcdir := ldap_server
|
|
web_serversrcdir := web_server
|
|
winbindsrcdir := winbind
|
|
nbt_serversrcdir := nbt_server
|
|
wrepl_serversrcdir := wrepl_server
|
|
cldap_serversrcdir := cldap_server
|
|
utilssrcdir := utils
|
|
clientsrcdir := client
|
|
torturesrcdir := torture
|
|
ntvfssrcdir := ntvfs
|
|
ntptrsrcdir := ntptr
|
|
librpcsrcdir := librpc
|
|
libclisrcdir := libcli
|
|
libclicommonsrcdir := ../libcli
|
|
libclinbtsrcdir := ../libcli/nbt
|
|
pyscriptsrcdir := $(srcdir)/scripting/python
|
|
kdcsrcdir := kdc
|
|
ntp_signdsrcdir := ntp_signd
|
|
wmisrcdir := lib/wmi
|
|
tallocsrcdir := ../lib/talloc
|
|
comsrcdir := $(srcdir)/lib/com
|
|
libgpodir := libgpo
|
|
|
|
include data.mk
|
|
|
|
INSTALL_SCRIPTS = $(addprefix scripting/bin/, \
|
|
autoidl \
|
|
samba3dump \
|
|
rpcclient \
|
|
smbstatus)
|
|
|
|
$(foreach SCRIPT,$(INSTALL_SCRIPTS),$(eval $(call binary_install_template,$(SCRIPT))))
|
|
|
|
$(DESTDIR)$(bindir)/%: scripting/bin/% installdirs
|
|
@mkdir -p $(@D)
|
|
@echo Installing $(@F) as $@
|
|
@if test -f $@; then echo -n ""; rm -f $@.old; mv $@ $@.old; fi
|
|
@cp $< $@
|
|
@chmod $(INSTALLPERMS) $@
|
|
|
|
pythonmods:: $(PYTHON_PYS) $(PYTHON_SO)
|
|
|
|
DEP_FILES = $(patsubst %.ho,%.hd,$(patsubst %.o,%.d,$(ALL_OBJS))) \
|
|
include/includes.d
|
|
|
|
ifeq ($(automatic_dependencies),yes)
|
|
ifneq ($(MAKECMDGOALS),clean)
|
|
ifneq ($(MAKECMDGOALS),distclean)
|
|
ifneq ($(MAKECMDGOALS),realdistclean)
|
|
ifneq ($(SKIP_DEP_FILES),yes)
|
|
-include $(DEP_FILES)
|
|
endif
|
|
endif
|
|
endif
|
|
endif
|
|
|
|
ifneq ($(SKIP_DEP_FILES),yes)
|
|
clean::
|
|
@echo Removing dependency files
|
|
@find . -name '*.d' -o -name '*.hd' | xargs rm -f
|
|
endif
|
|
else
|
|
include $(srcdir)/static_deps.mk
|
|
endif
|
|
|
|
clean::
|
|
@find ../lib ../libcli ../librpc ../libgpo ../nsswitch -name '*.o' -o -name '*.ho' | xargs rm -f
|
|
|
|
PUBLIC_HEADERS += ./version.h
|
|
|
|
libraries:: $(STATIC_LIBS) $(SHARED_LIBS)
|
|
modules:: $(PLUGINS)
|
|
headers:: $(PUBLIC_HEADERS)
|
|
manpages:: $(MANPAGES)
|
|
all:: showflags $(ALL_PREDEP) binaries modules pythonmods libraries headers
|
|
everything:: all
|
|
|
|
LD_LIBPATH_OVERRIDE = $(LIB_PATH_VAR)=$(shliboutputdir):$$$(LIB_PATH_VAR)
|
|
|
|
# 'make testsuite' creates all binaries which are
|
|
# needed by samba3's 'make test' and the build-farm
|
|
# scripts use that it as fallback in case
|
|
# 'make everything' fails
|
|
testsuite:: bin/smbclient bin/cifsdd bin/smbtorture bin/nmblookup
|
|
|
|
showlayout::
|
|
@echo 'Samba will be installed into:'
|
|
@echo ' basedir: $(basedir)'
|
|
@echo ' bindir: $(bindir)'
|
|
@echo ' sbindir: $(sbindir)'
|
|
@echo ' libdir: $(libdir)'
|
|
@echo ' modulesdir: $(modulesdir)'
|
|
@echo ' includedir: $(includedir)'
|
|
@echo ' vardir: $(localstatedir)'
|
|
@echo ' privatedir: $(privatedir)'
|
|
@echo ' piddir: $(piddir)'
|
|
@echo ' lockdir: $(lockdir)'
|
|
@echo ' logfilebase: $(logfilebase)'
|
|
@echo ' setupdir: $(setupdir)'
|
|
@echo ' swatdir: $(swatdir)'
|
|
@echo ' mandir: $(mandir)'
|
|
@echo ' torturedir: $(torturedir)'
|
|
@echo ' datadir: $(datadir)'
|
|
@echo ' winbindd_socket_dir: $(winbindd_socket_dir)'
|
|
@echo ' ntp_signd_socket_dir: $(ntp_signd_socket_dir)'
|
|
|
|
showflags::
|
|
@echo ' srcdir = $(srcdir)'
|
|
@echo ' builddir = $(builddir)'
|
|
|
|
# The permissions to give the executables
|
|
INSTALLPERMS = 0755
|
|
|
|
install:: showlayout everything installbin installsbin installdat installmisc \
|
|
installlib installheader installpc installplugins
|
|
|
|
# DESTDIR is used here to prevent packagers wasting their time
|
|
# duplicating the Makefile. Remove it and you will have the privilege
|
|
# of packaging each samba release for multiple 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 \
|
|
$(DESTDIR)$(basedir) \
|
|
$(DESTDIR)$(bindir) \
|
|
$(DESTDIR)$(sbindir) \
|
|
$(DESTDIR)$(torturedir) \
|
|
$(DESTDIR)$(libdir) \
|
|
$(DESTDIR)$(modulesdir) \
|
|
$(DESTDIR)$(mandir) \
|
|
$(DESTDIR)$(localstatedir) \
|
|
$(DESTDIR)$(localstatedir)/lib \
|
|
$(DESTDIR)$(localstatedir)/run \
|
|
$(DESTDIR)$(privatedir) \
|
|
$(DESTDIR)$(datadir) \
|
|
$(DESTDIR)$(piddir) \
|
|
$(DESTDIR)$(lockdir) \
|
|
$(DESTDIR)$(logfilebase) \
|
|
$(DESTDIR)$(privatedir)/tls \
|
|
$(DESTDIR)$(includedir) \
|
|
$(DESTDIR)$(pkgconfigdir) \
|
|
$(DESTDIR)$(sysconfdir)
|
|
|
|
installbin:: installdirs
|
|
|
|
installplugins::
|
|
|
|
installlib:: $(SHARED_LIBS) $(STATIC_LIBS) installdirs
|
|
@$(SHELL) $(srcdir)/script/installlib.sh $(DESTDIR)$(libdir) "$(SHLIBEXT)" $(SHARED_LIBS)
|
|
#@$(SHELL) $(srcdir)/script/installlib.sh $(DESTDIR)$(libdir) "$(STLIBEXT)" $(STATIC_LIBS)
|
|
|
|
installheader:: headers installdirs
|
|
@srcdir=$(srcdir) builddir=$(builddir) $(PERL) $(srcdir)/script/installheader.pl $(DESTDIR)$(includedir) $(PUBLIC_HEADERS)
|
|
|
|
installdat:: installdirs
|
|
@$(SHELL) $(srcdir)/script/installdat.sh $(DESTDIR)$(datadir) $(srcdir)
|
|
|
|
installman:: manpages installdirs
|
|
@$(SHELL) $(srcdir)/script/installman.sh $(DESTDIR)$(mandir) $(MANPAGES)
|
|
|
|
installmisc:: installdirs
|
|
@$(SHELL) $(srcdir)/script/installmisc.sh $(srcdir) $(DESTDIR)$(setupdir)
|
|
|
|
installpc:: installdirs
|
|
@$(SHELL) $(srcdir)/script/installpc.sh $(builddir) $(DESTDIR)$(pkgconfigdir) $(PC_FILES)
|
|
|
|
uninstall:: uninstallbin uninstallsbin uninstalldat uninstallmisc uninstalllib uninstallheader \
|
|
uninstallman uninstallpc uninstallplugins
|
|
|
|
uninstallmisc::
|
|
@echo "Removing MISC files"
|
|
@rm -rf $(DESTDIR)$(setupdir)/*
|
|
|
|
$(DESTDIR)$(bindir)/%: bin/% installdirs
|
|
@mkdir -p $(@D)
|
|
@echo Installing $(@F) as $@
|
|
@if test -f $@; then echo -n ""; rm -f $@.old; mv $@ $@.old; fi
|
|
@cp $< $@
|
|
@chmod $(INSTALLPERMS) $@
|
|
|
|
$(DESTDIR)$(sbindir)/%: bin/% installdirs
|
|
@mkdir -p $(@D)
|
|
@echo Installing $(@F) as $@
|
|
@if test -f $@; then echo -n ""; rm -f $@.old; mv $@ $@.old; fi
|
|
@cp $< $@
|
|
@chmod $(INSTALLPERMS) $@
|
|
|
|
uninstalldat::
|
|
@echo "Removing DAT files"
|
|
@rm -fr $(DESTDIR)$(datadir)/*
|
|
|
|
uninstallbin::
|
|
|
|
uninstalllib::
|
|
@echo "Removing libraries"
|
|
@$(SHELL) $(srcdir)/script/uninstalllib.sh $(DESTDIR)$(libdir) $(SHARED_LIBS)
|
|
|
|
uninstallheader::
|
|
@echo "Removing headers"
|
|
@rm -fr $(DESTDIR)$(includedir)/*
|
|
|
|
uninstallman::
|
|
@echo "Removing manpages"
|
|
@$(SHELL) $(srcdir)/script/uninstallman.sh $(DESTDIR)$(mandir) $(MANPAGES)
|
|
|
|
uninstallplugins::
|
|
|
|
uninstallpc::
|
|
@echo "Removing package configurations"
|
|
@cd $(DESTDIR)$(pkgconfigdir); rm -f $(notdir $(PC_FILES))
|
|
|
|
config.status:
|
|
@echo "config.status does not exist. Please run ./configure."
|
|
@/bin/false
|
|
|
|
data.mk: config.status $(MK_FILES)
|
|
./config.status
|
|
|
|
testcov-html::
|
|
|
|
include $(pidldir)/config.mk
|
|
selftestdir := $(srcdir)/../selftest
|
|
include $(srcdir)/selftest/config.mk
|
|
|
|
showflags::
|
|
@echo ' pwd = '`/bin/pwd`
|