X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=mk%2Ftarget.mk;h=f48ebbd826d33c0ce301260eca74e6b71c5931a2;hb=e940363a7b70bc3373ebebeff5fe5075b5b141ec;hp=be37c9346eb9cc22c57df25b6ebd5954ce0b601d;hpb=ef31e4e41a76c88d534b0dc19391df22dfaa4511;p=ghc-hetmet.git diff --git a/mk/target.mk b/mk/target.mk index be37c93..f48ebbd 100644 --- a/mk/target.mk +++ b/mk/target.mk @@ -16,6 +16,7 @@ # 2. GNU standard targets # all* # install* uninstall installcheck installdirs +# install-docs* # clean* distclean* mostlyclean* maintainer-clean* # tags* # dvi ps (no info) FPTOOLS adds: pdf rtf html @@ -73,20 +74,32 @@ # the --no-print-directory flag which is passed to recursive # invocations of make. # -# NOTE: Truly weird use of exit below to stop the for loop dead in -# its tracks should any of the sub-makes fail. By my reckoning, -# "cmd || exit $?" should be equivalent to "cmd" - ifneq "$(SUBDIRS)" "" -# we override the boot & all targets in the top level Makefile -ifneq "$(NO_ALL_TARGETS)" "YES" +# we override the 'boot', 'all' and 'install' targets in the top +# level Makefile. Some of the sub-projects also set 'boot' to empty. + +ifeq "$(NO_ALL_TARGET)" "YES" +ALL_TARGET = +else ALL_TARGET = all +endif + +ifeq "$(NO_BOOT_TARGET)" "YES" +BOOT_TARGET = +else BOOT_TARGET = boot +endif + +ifeq "$(NO_INSTALL_TARGET)" "YES" +INSTALL_TARGET = +INSTALL_DOCS_TARGET = +else INSTALL_TARGET = install +INSTALL_DOCS_TARGET = install-docs endif -$(ALL_TARGET) docs runtests $(BOOT_TARGET) TAGS clean distclean mostlyclean maintainer-clean $(INSTALL_TARGET) html ps dvi txt:: +$(ALL_TARGET) docs runtests $(BOOT_TARGET) TAGS clean distclean mostlyclean maintainer-clean $(INSTALL_TARGET) $(INSTALL_DOCS_TARGET) html ps dvi txt:: @echo "------------------------------------------------------------------------" @echo "===fptools== Recursively making \`$@' in $(SUBDIRS) ..." @echo "PWD = $(shell pwd)" @@ -165,8 +178,12 @@ endif # The boot target, at a minimum generates dependency information .PHONY: boot -boot :: depend +ifeq "$(NO_BOOT_TARGET)" "YES" +boot :: +else +boot :: depend +endif ################################################################## # GNU Standard targets @@ -297,7 +314,7 @@ ifneq "$(BootingFromHc)" "YES" $(HS_PROG) :: $(HS_OBJS) $(HC) -o $@ $(HC_OPTS) $(LD_OPTS) $(HS_OBJS) else -# see bootstrp.mk +# see bootstrap.mk $(HS_PROG) :: $(HS_OBJS) $(CC) -o $@ $(HC_BOOT_CC_OPTS) $(HC_BOOT_LD_OPTS) $(HS_OBJS) $(HC_BOOT_LIBS) endif @@ -816,7 +833,7 @@ endif # LINK # friends can be overridden from their original settings in mk/config.mk.in # || mk/build.mk # -.PHONY: install installdirs install-strip install-dirs uninstall install-docs show-install +.PHONY: install install-docs installdirs install-strip install-dirs uninstall install-docs show-install show-install : @echo "bindir = $(bindir)" @@ -860,13 +877,7 @@ ifneq "$(INSTALL_PROGS)" "" # entry in the INSTALL_PROGS list. If there's no suffix, use # $(exeext). # -# This is bit of a pain to express since GNU make doesn't have -# something like $(if ...), but possible using $(subst ...) -# [Aside: I added support for $(if ...) to my local copy of GNU -# make at one stage, perhaps I should propagate the patch to -# the GNU make maintainers...] -# -INSTALL_PROGS := $(foreach p, $(INSTALL_PROGS), $(addsuffix $(subst _,,$(subst __,$(exeext),_$(suffix $(p))_)), $(basename $(p)))) +INSTALL_PROGS := $(foreach p, $(INSTALL_PROGS), $(addsuffix $(if $(suffix $(p)),,$(exeext)), $(basename $(p)))) install:: $(INSTALL_PROGS) @$(INSTALL_DIR) $(bindir) @@ -950,6 +961,23 @@ install:: $(INSTALL_INCLUDES) done endif +ifneq "$(INSTALL_DOCS) $(INSTALL_SGML_DOCS)" "" +install-docs:: $(INSTALL_DOCS) $(foreach i,$(INSTALL_SGML_DOCS),$(foreach j,$(SGMLDocWays),$i.$j)) + @$(INSTALL_DIR) $(datadir) + for i in $(INSTALL_DOCS); do \ + $(INSTALL_DATA) $(INSTALL_OPTS) $$i $(datadir); \ + done + for i in $(INSTALL_SGML_DOCS); do \ + for j in $(SGMLDocWays); do \ + if [ $$j = "html" ]; then \ + $(CP) -r $$i $(datadir); \ + else \ + $(INSTALL_DATA) $(INSTALL_OPTS) $$i.$$j $(datadir); \ + fi \ + done \ + done +endif + # # Use with care.. # @@ -1041,6 +1069,8 @@ show: ifneq "$(SGML_DOC)" "" +all :: $(SGMLDocWays) + # multi-file SGML document: main document name is specified in $(SGML_DOC), # sub-documents (.sgml files) listed in $(SGML_SRCS).