X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=mk%2Ftarget.mk;h=ab4a8995c7e7f12842e26754c70aec77e0e181eb;hb=13aca089b924f6ac3cd598e17b471ab38a1e3e78;hp=338c8cff94d751972a47596a1f47d33439b626a7;hpb=95ed34fa57157f96ede505b57c5b0b98f22cac16;p=ghc-hetmet.git diff --git a/mk/target.mk b/mk/target.mk index 338c8cf..ab4a899 100644 --- a/mk/target.mk +++ b/mk/target.mk @@ -234,12 +234,12 @@ ifneq "$(HS_PROG)" "" all :: $(HS_PROG) ifneq "$(BootingFromHc)" "YES" -$(HS_PROG) :: $(HS_OBJS) - $(HC) -o $@ $(HC_OPTS) $(LD_OPTS) $(HS_OBJS) +$(HS_PROG) :: $(OBJS) + $(HC) -o $@ $(HC_OPTS) $(LD_OPTS) $(OBJS) else # see bootstrap.mk -$(HS_PROG) :: $(HS_OBJS) - $(CC) -o $@ $(HC_BOOT_CC_OPTS) $(HC_BOOT_LD_OPTS) $(HS_OBJS) $(HC_BOOT_LIBS) +$(HS_PROG) :: $(OBJS) + $(CC) -o $@ $(HC_BOOT_CC_OPTS) $(HC_BOOT_LD_OPTS) $(OBJS) $(HC_BOOT_LIBS) endif endif @@ -324,7 +324,7 @@ HC_SPLIT_PRE = \ $(RM) $@; if [ ! -d $(basename $@)_split ]; then mkdir $(basename $@)_split; else \ $(FIND) $(basename $@)_split -name '*.$(way_)o' -print | xargs $(RM) __rm_food; fi ifeq "$(GhcWithInterpreter)" "YES" -HC_SPLIT_POST = (cd $(dir $@) && $(LD) -r $(LD_X) -o $(notdir $@) $(basename $(notdir $@))_split/*.$(way_)o) +HC_SPLIT_POST = (cd $(basename $@)_split && $(LD) -r $(LD_X) -o ../$(notdir $@) *.$(way_)o) else HC_SPLIT_POST = touch $@ endif # GhcWithInterpreter == YES @@ -681,6 +681,17 @@ install-dirs :: # within the various install targets instead. #install:: install-dirs +# +# Setting user/group ownership for the installed entities +# +ifneq "$(INSTALL_OWNER)" "" +SRC_INSTALL_OPTS += -o $(INSTALL_OWNER) +endif +ifneq "$(INSTALL_GROUP)" "" +SRC_INSTALL_OPTS += -g $(INSTALL_GROUP) +endif + + ifneq "$(INSTALL_PROGS)" "" # @@ -795,12 +806,43 @@ install:: $(INSTALL_INCLUDES) endif ifneq "$(INSTALL_DOCS)" "" +ifneq "$(SGMLDocWays)" "" install-docs:: $(INSTALL_DOCS) @$(INSTALL_DIR) $(datadir) for i in $(INSTALL_DOCS); do \ $(INSTALL_DATA) $(INSTALL_OPTS) $$i $(datadir); \ done endif +ifneq "$(XMLDocWays)" "" +install-docs:: $(INSTALL_DOCS) + @$(INSTALL_DIR) $(datadir) + for i in $(INSTALL_DOCS); do \ + $(INSTALL_DATA) $(INSTALL_OPTS) $$i $(datadir); \ + done +endif +endif + +# TODO: The following could be an entry for an Obfuscated Makefile Contest... +ifneq "$(INSTALL_XML_DOC)" "" +ifneq "$(XMLDocWays)" "" +install-docs:: $(foreach i,$(XMLDocWays),$(INSTALL_XML_DOC)$(patsubst %.html-no-chunks,%.html,$(patsubst %.htmlhelp,%.chm,$(patsubst %.html,%-html/index.html,.$(i))))) + @$(INSTALL_DIR) $(datadir) + @for i in $(XMLDocWays); do \ + if [ $$i = "html" ]; then \ + $(INSTALL_DIR) $(datadir)/html; \ + echo "( cd $(INSTALL_XML_DOC)-html && $(CP) * $(datadir)/html )" ; \ + ( cd $(INSTALL_XML_DOC)-html && $(CP) * $(datadir)/html ) ; \ + else \ + echo $(INSTALL_DATA) $(INSTALL_OPTS) $(INSTALL_XML_DOC)`echo .$$i | sed s/\.htmlhelp/.chm/ | sed s/\.html-no-chunks/.html/` $(datadir); \ + $(INSTALL_DATA) $(INSTALL_OPTS) $(INSTALL_XML_DOC)`echo .$$i | sed s/\.htmlhelp/.chm/ | sed s/\.html-no-chunks/.html/` $(datadir); \ + fi; \ + if [ $$i = "html-no-chunks" ]; then \ + echo $(CP) $(FPTOOLS_CSS_ABS) $(datadir); \ + $(CP) $(FPTOOLS_CSS_ABS) $(datadir); \ + fi \ + done +endif +endif ifneq "$(INSTALL_SGML_DOC)" "" ifneq "$(SGMLDocWays)" "" @@ -946,6 +988,52 @@ extraclean :: $(RM) -rf $(SGML_DOC) endif +################################################################################ +# +# DocBook XML Documentation +# +################################################################################ + +.PHONY: html html-no-chunks htmlhelp fo dvi ps pdf + +ifneq "$(XML_DOC)" "" + +all :: $(XMLDocWays) + +# multi-file XML document: main document name is specified in $(XML_DOC), +# sub-documents (.xml files) listed in $(XML_SRCS). + +ifeq "$(XML_SRCS)" "" +XML_SRCS = $(wildcard *.xml) +endif + +XML_HTML = $(addsuffix -html/index.html,$(basename $(XML_DOC))) +XML_HTML_NO_CHUNKS = $(addsuffix .html,$(XML_DOC)) +XML_HTMLHELP = $(addsuffix -htmlhelp/index.html,$(basename $(XML_DOC))) +XML_FO = $(addsuffix .fo,$(XML_DOC)) +XML_DVI = $(addsuffix .dvi,$(XML_DOC)) +XML_PS = $(addsuffix .ps,$(XML_DOC)) +XML_PDF = $(addsuffix .pdf,$(XML_DOC)) + +$(XML_HTML) $(XML_NO_CHUNKS_HTML) $(XML_FO) $(XML_DVI) $(XML_PS) $(XML_PDF) :: $(XML_SRCS) + +html :: $(XML_HTML) +html-no-chunks :: $(XML_HTML_NO_CHUNKS) +htmlhelp :: $(XML_HTMLHELP) +fo :: $(XML_FO) +dvi :: $(XML_DVI) +ps :: $(XML_PS) +pdf :: $(XML_PDF) + +CLEAN_FILES += $(XML_HTML_NO_CHUNKS) $(XML_FO) $(XML_DVI) $(XML_PS) $(XML_PDF) + +extraclean :: + $(RM) -rf $(XML_DOC).out $(FPTOOLS_CSS) $(basename $(XML_DOC))-html $(basename $(XML_DOC))-htmlhelp + +validate :: + $(XMLLINT) --valid --noout $(XMLLINT_OPTS) $(XML_DOC).xml +endif + ############################################################################## # # Targets: clean