[project @ 2003-11-15 19:37:13 by panne]
[ghc-hetmet.git] / mk / target.mk
index 79f0bd9..338c8cf 100644 (file)
@@ -54,7 +54,7 @@ include $(TOP)/mk/suffix.mk
 #
 # depend:
 #
-#  The Depend target has to cope with a set of files that may have
+#  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.
 #
@@ -77,25 +77,21 @@ include $(TOP)/mk/suffix.mk
 # Compiler produced files that are targets of the source's imports.
 MKDEPENDHS_OBJ_SUFFICES=o
 
-ifneq "$(STAMP_PKG_CONF)" ""
+ifneq "$(BootingFromHc)" "YES"
 PKGCONF_DEP = $(STAMP_PKG_CONF)
-else
-PKGCONF_DEP =
 endif
 
-depend :: .depend
-
-.depend: $(MKDEPENDHS_SRCS) $(MKDEPENDC_SRCS) $(STAMP_PKG_CONF)
-       @$(RM) $@
-       @touch $@
+depend :: $(MKDEPENDHS_SRCS) $(MKDEPENDC_SRCS) $(PKGCONF_DEP)
+       @$(RM) .depend
+       @touch .depend
 ifneq "$(DOC_SRCS)" ""
-       $(MKDEPENDLIT) -o $@ $(MKDEPENDLIT_OPTS) $(filter %.lit,$(DOC_SRCS))
+       $(MKDEPENDLIT) -o .depend $(MKDEPENDLIT_OPTS) $(filter %.lit,$(DOC_SRCS))
 endif
 ifneq "$(MKDEPENDC_SRCS)" ""
-       $(MKDEPENDC) -f $@ $(MKDEPENDC_OPTS) $(foreach way,$(WAYS),-s $(way)) -- $(CC_OPTS) -- $(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$@ $(foreach way,$(WAYS),-optdep-s -optdep$(way)) $(foreach obj,$(MKDEPENDHS_OBJ_SUFFICES),-osuf $(obj)) $(MKDEPENDHS_OPTS) $(filter-out -split-objs, $(HC_OPTS)) $(MKDEPENDHS_SRCS)
+       $(MKDEPENDHS) -M -optdep-f -optdep.depend $(foreach way,$(WAYS),-optdep-s -optdep$(way)) $(foreach obj,$(MKDEPENDHS_OBJ_SUFFICES),-osuf $(obj)) $(MKDEPENDHS_OPTS) $(filter-out -split-objs, $(HC_OPTS)) $(MKDEPENDHS_SRCS)
 endif
 
 
@@ -306,15 +302,16 @@ SRC_HC_OPTS += -split-objs
 ifeq "$(ArSupportsInput)" ""
 define BUILD_LIB
 $(RM) $@ $@.tmp
-(echo $(STUBOBJS) $(EXTRA_OBJS); $(FIND) $(patsubst %.$(way_)o,%_split,$(HS_OBJS)) -name '*.$(way_)o') | xargs ar q $@
+(echo $(STUBOBJS) $(C_OBJS) $(GC_C_OBJS); $(FIND) $(patsubst %.$(way_)o,%_split,$(HS_OBJS)) -name '*.$(way_)o' -print) | xargs $(AR) $@
 $(RANLIB) $@
 endef
 else
 define BUILD_LIB
 $(RM) $@ $@.tmp
-echo $(STUBOBJS)    > $@.list
-echo $(EXTRA_OBJS) >> $@.list
-$(FIND) $(patsubst %.$(way_)o,%_split,$(HS_OBJS)) -name '*.$(way_)o' >> $@.list
+echo $(STUBOBJS) > $@.list
+echo $(C_OBJS) >> $@.list
+echo $(GC_C_OBJS) >> $@.list
+$(FIND) $(patsubst %.$(way_)o,%_split,$(HS_OBJS)) -name '*.$(way_)o' -print >> $@.list
 $(AR) $(AR_OPTS) $@ $(ArSupportsInput) $@.list
 $(RM) $@.list
 $(RANLIB) $@
@@ -325,7 +322,7 @@ endif
 
 HC_SPLIT_PRE = \
     $(RM) $@; if [ ! -d $(basename $@)_split ]; then mkdir $(basename $@)_split; else \
-    $(FIND) $(basename $@)_split -name '*.$(way_)o' | xargs $(RM) __rm_food; fi
+    $(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)
 else
@@ -625,11 +622,11 @@ $(LINK) : $(LINK_TARGET)
 install ::
        @$(INSTALL_DIR) $(bindir)
        @if ( $(PERL) -e '$$fn="$(bindir)/$(LINK)"; exit ((! -f $$fn || -l $$fn) ? 0 : 1);' ); then \
-          echo "Creating a symbol link from $(LINK_TARGET) to $(LINK) in $(bindir)"; \
+          echo "Creating a symbolic link from $(LINK_TARGET) to $(LINK) in $(bindir)"; \
           $(RM) $(bindir)/$(LINK); \
           $(LN_S) $(LINK_TARGET) $(bindir)/$(LINK); \
         else \
-          echo "Creating a symbol link from $(LINK_TARGET) to $(LINK) in $(bindir) failed: \`$(bindir)/$(LINK)' already exists"; \
+          echo "Creating a symbolic link from $(LINK_TARGET) to $(LINK) in $(bindir) failed: \`$(bindir)/$(LINK)' already exists"; \
           echo "Perhaps remove \`$(bindir)/$(LINK)' manually?"; \
           exit 1; \
         fi;
@@ -887,7 +884,7 @@ tags TAGS:: $(TAGS_HS_SRCS) $(TAGS_C_SRCS)
        @$(RM) TAGS
        @touch TAGS
 ifneq "$(TAGS_HS_SRCS)" ""
-       $(HSTAGS) $(HSTAGS_OPTS) -- $(TAGS_HS_SRCS)
+       $(HSTAGS) $(HSTAGS_OPTS) $(TAGS_HS_SRCS)
 endif
 ifneq "$(TAGS_C_SRCS)" ""
        etags -a $(TAGS_C_SRCS)
@@ -1121,7 +1118,7 @@ endif
 # the --no-print-directory flag which is passed to recursive
 # invocations of make.
 #
-ifeq "$(way)" ""
+#ifeq "$(way)" ""
 ifneq "$(SUBDIRS)" ""
 
 # we override the 'boot', 'all' and 'install' targets in the top
@@ -1168,7 +1165,7 @@ $(ALL_TARGET) docs runtests $(BOOT_TARGET) TAGS clean distclean mostlyclean main
        @echo "------------------------------------------------------------------------"
 
 endif
-endif
+#endif
 
 #
 # Selectively building subdirectories.