diff --git a/source4/Makefile b/source4/Makefile index 813f0ce..a4f0350 100644 --- a/source4/Makefile +++ b/source4/Makefile @@ -10,11 +10,11 @@ include mkconfig.mk pidldir := $(srcdir)/../pidl -BASEDIR = $(prefix) -TORTUREDIR = $(libdir)/torture -SWATDIR = $(datadir)/swat -SETUPDIR = $(datadir)/setup -NCALRPCDIR = $(localstatedir)/ncalrpc +basedir = $(prefix) +torturedir = $(libdir)/torture +swatdir = $(datadir)/swat +setupdir = $(datadir)/setup +ncalrpcdir = $(localstatedir)/ncalrpc BNLD = $(LD) BNLD_FLAGS = $(LDFLAGS) $(SYS_LDFLAGS) @@ -48,64 +48,64 @@ 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 -libsrcdir := lib -libsocketsrcdir := lib/socket -libcharsetsrcdir := lib/charset -ldb_sambasrcdir := lib/ldb-samba -tdbsrcdir := ../lib/tdb -ldbsrcdir := lib/ldb -libtlssrcdir := lib/tls -libregistrysrcdir := lib/registry -smbreadlinesrcdir := lib/smbreadline -libmessagingsrcdir := lib/messaging -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 -libdbwrapsrcdir := lib/dbwrap -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 -libclinbtsrcdir := ../libcli +zlibsrcdir := $(srcdir)/lib/zlib +dynconfigsrcdir := $(srcdir)/dynconfig +heimdalsrcdir := $(srcdir)/heimdal +dsdbsrcdir := $(srcdir)/dsdb +smbdsrcdir := $(srcdir)/smbd +clustersrcdir := $(srcdir)/cluster +libnetsrcdir := $(srcdir)/libnet +authsrcdir := $(srcdir)/auth +nsswitchsrcdir := $(srcdir)/nsswitch +libsrcdir := $(srcdir)/lib +libsocketsrcdir := $(srcdir)/lib/socket +libcharsetsrcdir := $(srcdir)/lib/charset +ldb_sambasrcdir := $(srcdir)/lib/ldb-samba +tdbsrcdir := $(srcdir)/../lib/tdb +ldbsrcdir := $(srcdir)/lib/ldb +libtlssrcdir := $(srcdir)/lib/tls +libregistrysrcdir := $(srcdir)/lib/registry +smbreadlinesrcdir := $(srcdir)/lib/smbreadline +libmessagingsrcdir := $(srcdir)/lib/messaging +libeventssrcdir := $(srcdir)/lib/events +libcmdlinesrcdir := $(srcdir)/lib/cmdline +poptsrcdir := $(srcdir)/../lib/popt +socketwrappersrcdir := $(srcdir)/../lib/socket_wrapper +nsswrappersrcdir := $(srcdir)/../lib/nss_wrapper +appwebsrcdir := $(srcdir)/lib/appweb +libstreamsrcdir := $(srcdir)/lib/stream +libutilsrcdir := $(srcdir)/lib/util +libtdrsrcdir := $(srcdir)/lib/tdr +libdbwrapsrcdir := $(srcdir)/lib/dbwrap +libcryptosrcdir := $(srcdir)/../lib/crypto +libtorturesrcdir := $(srcdir)/lib/torture +smb_serversrcdir := $(srcdir)/smb_server +libcompressionsrcdir := $(srcdir)/../lib/compression +libgencachesrcdir := $(srcdir)/lib +paramsrcdir := $(srcdir)/param +rpc_serversrcdir := $(srcdir)/rpc_server +ldap_serversrcdir := $(srcdir)/ldap_server +web_serversrcdir := $(srcdir)/web_server +winbindsrcdir := $(srcdir)/winbind +nbt_serversrcdir := $(srcdir)/nbt_server +wrepl_serversrcdir := $(srcdir)/wrepl_server +cldap_serversrcdir := $(srcdir)/cldap_server +utilssrcdir := $(srcdir)/utils +clientsrcdir := $(srcdir)/client +torturesrcdir := $(srcdir)/torture +ntvfssrcdir := $(srcdir)/ntvfs +ntptrsrcdir := $(srcdir)/ntptr +librpcsrcdir := $(srcdir)/librpc +libclisrcdir := $(srcdir)/libcli +libclinbtsrcdir := $(srcdir)/../libcli pyscriptsrcdir := $(srcdir)/scripting/python -kdcsrcdir := kdc -ntp_signdsrcdir := ntp_signd -wmisrcdir := lib/wmi -tallocsrcdir := ../lib/talloc +kdcsrcdir := $(srcdir)/kdc +ntp_signdsrcdir := $(srcdir)/ntp_signd +wmisrcdir := $(srcdir)/lib/wmi +tallocsrcdir := $(srcdir)/../lib/talloc comsrcdir := $(srcdir)/lib/com -include data.mk +include $(srcdir)/data.mk pythonmods:: $(PYTHON_PYS) $(PYTHON_SO) @@ -133,8 +133,7 @@ include $(srcdir)/static_deps.mk endif clean:: - @find ../lib ../libcli -name '*.o' -o -name '*.hd' | xargs rm -f - + @find ../lib ../libcli -name '*.o' -o -name '*.hd' | xargs rm -f DEFAULT_HEADERS = $(srcdir)/lib/util/dlinklist.h \ $(srcdir)/version.h @@ -155,7 +154,7 @@ testsuite:: bin/smbclient bin/cifsdd bin/smbtorture bin/nmblookup showlayout:: @echo 'Samba will be installed into:' - @echo ' basedir: $(BASEDIR)' + @echo ' basedir: $(basedir)' @echo ' bindir: $(bindir)' @echo ' sbindir: $(sbindir)' @echo ' libdir: $(libdir)' @@ -166,10 +165,10 @@ showlayout:: @echo ' piddir: $(piddir)' @echo ' lockdir: $(lockdir)' @echo ' logfilebase: $(logfilebase)' - @echo ' setupdir: $(SETUPDIR)' - @echo ' swatdir: $(SWATDIR)' + @echo ' setupdir: $(setupdir)' + @echo ' swatdir: $(swatdir)' @echo ' mandir: $(mandir)' - @echo ' torturedir: $(TORTUREDIR)' + @echo ' torturedir: $(torturedir)' @echo ' datadir: $(datadir)' @echo ' winbindd_socket_dir: $(winbindd_socket_dir)' @echo ' ntp_signd_socket_dir: $(ntp_signd_socket_dir)' @@ -181,8 +180,9 @@ showflags:: # The permissions to give the executables INSTALLPERMS = 0755 -install:: showlayout everything installbin installsbin installdat installswat installmisc \ - installlib installheader installpc installplugins +# Installation +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 @@ -194,10 +194,10 @@ install:: showlayout everything installbin installsbin installdat installswat in installdirs:: @$(SHELL) $(srcdir)/script/installdirs.sh \ - $(DESTDIR)$(BASEDIR) \ + $(DESTDIR)$(basedir) \ $(DESTDIR)$(bindir) \ $(DESTDIR)$(sbindir) \ - $(DESTDIR)$(TORTUREDIR) \ + $(DESTDIR)$(torturedir) \ $(DESTDIR)$(libdir) \ $(DESTDIR)$(modulesdir) \ $(DESTDIR)$(mandir) \ @@ -214,66 +214,78 @@ installdirs:: $(DESTDIR)$(PKGCONFIGDIR) \ $(DESTDIR)$(sysconfdir) -installbin:: installdirs +# Installation for binary files (per file) +$(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) $@ + +# Installs DAT files +installdat:: installdirs + @$(SHELL) $(srcdir)/script/installdat.sh $(DESTDIR)$(datadir) $(srcdir) -installplugins:: +# Installs MISC files +installmisc:: installdirs + @$(SHELL) $(srcdir)/script/installmisc.sh $(srcdir) $(DESTDIR)$(setupdir) $(DESTDIR)$(bindir) +# Installs libraries 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) +# Installs headers installheader:: headers installdirs @srcdir=$(srcdir) builddir=$(builddir) $(PERL) $(srcdir)/script/installheader.pl $(DESTDIR)$(includedir) $(PUBLIC_HEADERS) $(DEFAULT_HEADERS) -installdat:: installdirs - @$(SHELL) $(srcdir)/script/installdat.sh $(DESTDIR)$(datadir) $(srcdir) - -installswat:: installdirs -#SWAT has been disabled until further notice -# @$(SHELL) $(srcdir)/script/installswat.sh $(DESTDIR)$(SWATDIR) $(srcdir) - +# Installs manpages installman:: manpages installdirs @$(SHELL) $(srcdir)/script/installman.sh $(DESTDIR)$(mandir) $(MANPAGES) -installmisc:: installdirs - @$(SHELL) $(srcdir)/script/installmisc.sh $(srcdir) $(DESTDIR)$(SETUPDIR) $(DESTDIR)$(bindir) - +# Installs package configurations installpc:: installdirs @$(SHELL) $(srcdir)/script/installpc.sh $(builddir) $(DESTDIR)$(PKGCONFIGDIR) $(PC_FILES) -uninstall:: uninstallbin uninstallman uninstallmisc uninstalllib uninstallheader \ - uninstallplugins - -uninstallmisc:: - #FIXME - -$(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) $@ +# Uninstallation +uninstall:: uninstallbin uninstallsbin uninstalldat uninstallmisc uninstalllib \ + uninstallheader uninstallman uninstallpc uninstallplugins -$(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) $@ +# Uninstalls DAT files +uninstalldat:: + @echo "Removing DAT files" + @rm -fr $(DESTDIR)$(datadir)/* -uninstallbin:: +# Uninstalls MISC files +uninstallmisc:: + @echo "Removing MISC files" + @cd $(DESTDIR)$(bindir); rm -f $(notdir $(miscbinfiles)) +# Uninstalls libraries uninstalllib:: + @echo "Removing libraries" @$(SHELL) $(srcdir)/script/uninstalllib.sh $(DESTDIR)$(libdir) $(SHARED_LIBS) - #@$(SHELL) $(srcdir)/script/uninstalllib.sh $(DESTDIR)$(libdir) $(STATIC_LIBS) +# Uninstalls headers uninstallheader:: - @$(SHELL) $(srcdir)/script/uninstallheader.sh $(DESTDIR)$(includedir) $(PUBLIC_HEADERS) + @echo "Removing headers" + @rm -fr $(DESTDIR)$(includedir)/* +# Uninstalls manpages uninstallman:: + @echo "Removing manpages" @$(SHELL) $(srcdir)/script/uninstallman.sh $(DESTDIR)$(mandir) $(MANPAGES) -uninstallplugins:: +# Uninstalls package configurations +uninstallpc:: + @echo "Removing package configurations" + @cd $(DESTDIR)$(PKGCONFIGDIR); rm -f $(notdir $(PC_FILES)) config.status: @echo "config.status does not exist. Please run ./configure." @@ -289,4 +301,4 @@ selftestdir := $(srcdir)/selftest include $(selftestdir)/config.mk showflags:: - @echo ' pwd = '`/bin/pwd` + @echo ' pwd = '`/bin/pwd` diff --git a/source4/build/make/templates.mk b/source4/build/make/templates.mk index f7eab6c..7b50328 100644 --- a/source4/build/make/templates.mk +++ b/source4/build/make/templates.mk @@ -11,7 +11,7 @@ # Arguments: target object file, source object files define partial_link_template $(1): $(2) ; - @echo Partially linking $$@ + @echo "Partially linking $$@" @mkdir -p $$(@D) $$(PARTLINK) -o $$@ $$^ endef @@ -20,7 +20,7 @@ endef # Arguments: target file, depends, flags define binary_link_template $(1): $(2) ; - @echo Linking $$@ + @echo "Linking $$@" @$$(BNLD) $$(BNLD_FLAGS) $$(INTERN_LDFLAGS) -o $$@ $$(INSTALL_LINK_FLAGS) $(3) clean:: @@ -34,7 +34,7 @@ endef # Arguments: target file, depends, flags define host_binary_link_template $(1): $(2) ; - @echo Linking $$@ + @echo "Linking $$@" @$$(HOSTLD) $$(HOSTLD_FLAGS) -L$${builddir}/bin/static -o $$@ $$(INSTALL_LINK_FLAGS) $(3) clean:: @@ -64,7 +64,7 @@ endef define shared_module_template $(1): $(2) ; - @echo Linking $$@ + @echo "Linking $$@" @mkdir -p $$(@D) @$$(MDLD) $$(LDFLAGS) $$(MDLD_FLAGS) $$(INTERN_LDFLAGS) -o $$@ $$(INSTALL_LINK_FLAGS) $(3) @@ -74,7 +74,7 @@ endef # Arguments: Target, dependencies, link flags, soname define shared_library_template $(1): $(2) - @echo Linking $$@ + @echo "Linking $$@" @mkdir -p $$(@D) @$$(SHLD) $$(LDFLAGS) $$(SHLD_FLAGS) $$(INTERN_LDFLAGS) -o $$@ $$(INSTALL_LINK_FLAGS) \ $(3) \ @@ -93,7 +93,7 @@ $(5): $(1) endif endef -# Shared alias +# Shared module alias # Arguments: Target, subsystem name, alias name define shared_module_alias_template bin/modules/$(2)/$(3).$$(SHLIBEXT): $(1) @@ -102,20 +102,22 @@ bin/modules/$(2)/$(3).$$(SHLIBEXT): $(1) PLUGINS += bin/modules/$(2)/$(3).$$(SHLIBEXT) uninstallplugins:: - @-rm $$(DESTDIR)$$(modulesdir)/$(2)/$(3).$$(SHLIBEXT) + @rm -f $$(DESTDIR)$$(modulesdir)/$(2)/$(3).$$(SHLIBEXT) installplugins:: @ln -fs $(notdir $(1)) $$(DESTDIR)$$(modulesdir)/$(2)/$(3).$$(SHLIBEXT) endef +# Installs a shared module +# Arguments: path and filename define shared_module_install_template installplugins:: bin/modules/$(1)/$(2) - @echo Installing $(2) as $$(DESTDIR)$$(modulesdir)/$(1)/$(2) + @echo "Installing $(2) as $$(DESTDIR)$$(modulesdir)/$(1)/$(2)" @mkdir -p $$(DESTDIR)$$(modulesdir)/$(1)/ @cp bin/modules/$(1)/$(2) $$(DESTDIR)$$(modulesdir)/$(1)/$(2) uninstallplugins:: - @echo Uninstalling $$(DESTDIR)$$(modulesdir)/$(1)/$(2) - @-rm $$(DESTDIR)$$(modulesdir)/$(1)/$(2) + @echo "Uninstalling $$(DESTDIR)$$(modulesdir)/$(1)/$(2)" + @rm -f $$(DESTDIR)$$(modulesdir)/$(1)/$(2) endef @@ -130,6 +132,7 @@ installbin:: $$(DESTDIR)$$(bindir)/$(notdir $(1)) installdirs uninstallbin:: @echo "Removing $(notdir $(1))" @rm -f $$(DESTDIR)$$(bindir)/$(notdir $(1)) + @rm -f $$(DESTDIR)$$(bindir)/$(notdir $(1)).old endef define sbinary_install_template @@ -138,4 +141,5 @@ installsbin:: $$(DESTDIR)$$(sbindir)/$(notdir $(1)) installdirs uninstallsbin:: @echo "Removing $(notdir $(1))" @rm -f $$(DESTDIR)$$(sbindir)/$(notdir $(1)) + @rm -f $$(DESTDIR)$$(sbindir)/$(notdir $(1)).old endef diff --git a/source4/script/installlib.sh b/source4/script/installlib.sh index 962c956..cc9ff0b 100755 --- a/source4/script/installlib.sh +++ b/source4/script/installlib.sh @@ -15,7 +15,9 @@ for p in $*; do mv $LIBDIR/$p2 $LIBDIR/$p2.old fi cp $p $LIBDIR/ - ln -sf $p2 $LIBDIR/$lnname + if [ $p2 != $lnname ]; then + ln -sf $p2 $LIBDIR/$lnname + fi done cat << EOF