include $(TOP)/mk/package.mk
+###################################################################
+# Suffix rules for Haskell, C and literate
+
+include $(TOP)/mk/suffix.mk
+
##################################################################
# FPtools standard targets
#
$(HS_PROG) :: $(HS_OBJS)
$(CC) -o $@ $(HC_BOOT_CC_OPTS) $(HC_BOOT_LD_OPTS) $(HS_OBJS) $(HC_BOOT_LIBS)
endif
-
-# for building a Haskell program, we add FptoolsHcOpts
-SRC_HC_OPTS += $(FptoolsHcOpts)
endif
#----------------------------------------
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) $@
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
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;
@$(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)
# 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
@echo "------------------------------------------------------------------------"
endif
-endif
+#endif
#
# Selectively building subdirectories.