X-Git-Url: http://git.samba.org/?a=blobdiff_plain;f=source4%2FMakefile;h=b41b38cf37e9a981e75bc2b5b7167f091b8d9254;hb=7dcecbd0773b2c342712aa207c941d31f1da7b4a;hp=c42f0ba9fff60c44ab6b1ce8bc76f71dd9407d3a;hpb=8edd73759de2faf139d22fc1eec04192375449ae;p=mat%2Fsamba.git diff --git a/source4/Makefile b/source4/Makefile index c42f0ba9ff..b41b38cf37 100644 --- a/source4/Makefile +++ b/source4/Makefile @@ -1,309 +1,65 @@ -#!gmake -# The Samba 4 Makefile. -# This file is *NOT* autogenerated. -# -.DEFAULT_GOAL := all +# simple makefile wrapper to run waf -default: all +WAF=WAF_MAKE=1 ../buildtools/bin/waf -include mkconfig.mk +all: + $(WAF) build -pidldir := $(srcdir)/../pidl +install: + $(WAF) install -basedir = $(prefix) -torturedir = ../lib/torture -swatdir = $(datadir)/swat -setupdir = $(datadir)/setup -ncalrpcdir = $(localstatedir)/ncalrpc -shliboutputdir = $(builddir)/bin/shared +uninstall: + $(WAF) uninstall -BNLD = $(LD) -BNLD_FLAGS = $(LDFLAGS) $(SYS_LDFLAGS) +test: + $(WAF) test $(TEST_OPTIONS) -HOSTCC_FLAGS = -D_SAMBA_HOSTCC_ $(CFLAGS) -HOSTLD_FLAGS = $(LDFLAGS) $(SYS_LDFLAGS) +subunit-test: + $(WAF) test --filtered-subunit $(TEST_OPTIONS) -$(srcdir)/version.h: $(srcdir)/VERSION - @$(SHELL) script/mkversion.sh VERSION $(srcdir)/version.h $(srcdir)/ +testenv: + $(WAF) test --testenv $(TEST_OPTIONS) -ifneq ($(automatic_dependencies),yes) -ALL_PREDEP = basics -.NOTPARALLEL: -endif +quicktest: + $(WAF) test --quick $(TEST_OPTIONS) -regen_version:: - @$(SHELL) script/mkversion.sh VERSION $(srcdir)/version.h $(srcdir)/ +dist: + $(WAF) dist -clean_pch:: - @echo "Removing precompiled headers" - @-rm -f include/includes.h.gch +distcheck: + $(WAF) distcheck -pch:: clean_pch include/includes.h.gch +clean: + $(WAF) clean -.DEFAULT_GOAL := all +distclean: + $(WAF) distclean -ifneq ($(automatic_dependencies),yes) -ALL_PREDEP = basics -.NOTPARALLEL: -endif +reconfigure: configure + $(WAF) reconfigure -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 -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 -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 +show_waf_options: + $(WAF) --help -include data.mk +# some compatibility make targets +everything: all -$(foreach SCRIPT,$(wildcard scripting/bin/*),$(eval $(call binary_install_template,$(SCRIPT)))) +testsuite: all -$(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) $@ +check: test -pythonmods:: $(PYTHON_PYS) $(PYTHON_SO) +torture: all -DEP_FILES = $(patsubst %.ho,%.hd,$(patsubst %.o,%.d,$(ALL_OBJS))) \ - include/includes.d +# this should do an install as well, once install is finished +installcheck: test -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 +etags: + $(WAF) etags -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 +ctags: + $(WAF) ctags -clean:: - @find ../lib ../libcli ../librpc ../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) - -# '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` +# this allows for things like "make bin/smbtorture" +bin/%:: FORCE + $(WAF) --targets=`basename $@` +FORCE: