From: simonmar Date: Tue, 13 Feb 2001 14:18:49 +0000 (+0000) Subject: [project @ 2001-02-13 14:18:49 by simonmar] X-Git-Tag: Approximately_9120_patches~2651 X-Git-Url: http://git.megacz.com/?a=commitdiff_plain;h=6b2a8b5de70f9ecf676037e5b0617172be308e6d;p=ghc-hetmet.git [project @ 2001-02-13 14:18:49 by simonmar] Don't build HS*.o for ways other than the normal way. --- diff --git a/mk/target.mk b/mk/target.mk index 56d1193..aae3cfd 100644 --- a/mk/target.mk +++ b/mk/target.mk @@ -32,6 +32,46 @@ # # +################################################################## +# FPtools standard targets +# +# depend: +# +# The depend target has to cope with a set of files that may have +# different ways of computing their dependencies, i.e., a Haskell +# module's dependencies are computed differently from C files. +# +.PHONY: depend + +# Compiler produced files that are targets of the source's imports. +MKDEPENDHS_OBJ_SUFFICES=o + +DEPEND_SRCS = $(MKDEPENDHS_SRCS) $(MKDEPENDC_SRCS) + +ifneq "$(DEPEND_SRCS)" "" +depend :: .depend + +# Build .depend, then recursively invoke $(MAKE) to carry on. Because the +# build system includes .depend (from boilerplate.mk), GNU make records .depend +# as a Makefile and automatically tries to rebuild it if it is out-of-date. +# this will happen before any other targets are processed. +.depend : $(DEPEND_SRCS) + @echo "------------------------------------------------------------------------" + @echo "===fptools== Rebuilding dependencies..." + @echo "PWD = $(shell pwd)" + @echo "------------------------------------------------------------------------" + @$(RM) .depend + @touch .depend +ifneq "$(MKDEPENDC_SRCS)" "" + $(MKDEPENDC) -f .depend $(MKDEPENDC_OPTS) $(foreach way,$(WAYS),-s $(way)) -- $(CC_OPTS) -- $(MKDEPENDC_SRCS) +endif +ifneq "$(MKDEPENDHS_SRCS)" "" + $(MKDEPENDHS) -M -optdep-f -optdep.depend $(foreach way,$(WAYS),-optdep-s -optdep$(way)) $(foreach obj,$(MKDEPENDHS_OBJ_SUFFICES),-osuf $(obj)) $(MKDEPENDHS_OPTS) $(HC_OPTS) $(MKDEPENDHS_SRCS) +endif + +else # no dependencies required +depend :: +endif ################################################################## # @@ -118,48 +158,6 @@ $(SUBDIRS) :: endif ################################################################## -# FPtools standard targets -# -# depend: -# -# The depend target has to cope with a set of files that may have -# different ways of computing their dependencies, i.e., a Haskell -# module's dependencies are computed differently from C files. -# -# Note that we don't compute dependencies automatically, i.e., have the -# .depend file be a target that is dependent on the Haskell+C sources, -# and then have the `depend' target depend on `.depend'. The reason for -# this is that when GNU make is processing the `include .depend' statement -# it records .depend as being a Makefile. Before doing any other processing, -# `make' will try to check to see if the Makefiles are up-to-date. And, -# surprisingly enough, .depend has a rule for it, so if any of the source -# files change, it will be invoked, *regardless* of what target you're making. -# -# So, for now, the dependencies has to be re-computed manually via `make depend' -# whenever a module changes its set of imports. Doing what was outlined above -# is only a small optimisation anyway, it would avoid the recomputation of -# dependencies if the .depend file was newer than any of the source modules. -# -.PHONY: depend - -# Compiler produced files that are targets of the source's imports. -MKDEPENDHS_OBJ_SUFFICES=o - -depend :: $(MKDEPENDHS_SRCS) $(MKDEPENDC_SRCS) - @$(RM) .depend - @touch .depend -ifneq "$(DOC_SRCS)" "" - $(MKDEPENDLIT) -o .depend $(MKDEPENDLIT_OPTS) $(filter %.lit,$(DOC_SRCS)) -endif -ifneq "$(MKDEPENDC_SRCS)" "" - $(MKDEPENDC) -f .depend $(MKDEPENDC_OPTS) $(foreach way,$(WAYS),-s $(way)) -- $(CC_OPTS) -- $(MKDEPENDC_SRCS) -endif -ifneq "$(MKDEPENDHS_SRCS)" "" - $(MKDEPENDHS) -M -optdep-f -optdep.depend $(foreach way,$(WAYS),-optdep-s -optdep$(way)) $(foreach obj,$(MKDEPENDHS_OBJ_SUFFICES),-osuf $(obj)) $(MKDEPENDHS_OPTS) $(HC_OPTS) $(MKDEPENDHS_SRCS) -endif - - -################################################################## # boot # # The boot target, at a minimum generates dependency information @@ -417,6 +415,7 @@ endif # ifneq "$(GHCI_LIBRARY)" "" +ifeq "$(way)" "" ifeq "$(GhcWithInterpreter)" "YES" all :: $(GHCI_LIBRARY) @@ -432,6 +431,7 @@ INSTALL_LIBS += $(GHCI_LIBRARY) CLEAN_FILES += $(GHCI_LIBRARY) endif endif +endif #---------------------------------------- # Building Win32 DLLs