1
0
mirror of https://github.com/samba-team/samba.git synced 2024-12-28 07:21:54 +03:00
samba-mirror/source4/Makefile
Andrew Tridgell fd43e0ee09 added a uid_wrapper library
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
2009-08-05 10:51:00 +10:00

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`