include $(TOP)/mk/package.mk
+###################################################################
+# Suffix rules for Haskell, C and literate
+
+include $(TOP)/mk/suffix.mk
+
##################################################################
# FPtools standard targets
#
# Compiler produced files that are targets of the source's imports.
MKDEPENDHS_OBJ_SUFFICES=o
-depend :: $(MKDEPENDHS_SRCS) $(MKDEPENDC_SRCS)
+ifneq "$(STAMP_PKG_CONF)" ""
+PKGCONF_DEP = $(STAMP_PKG_CONF)
+else
+PKGCONF_DEP =
+endif
+
+depend :: $(MKDEPENDHS_SRCS) $(MKDEPENDC_SRCS) $(STAMP_PKG_CONF)
@$(RM) .depend
@touch .depend
ifneq "$(DOC_SRCS)" ""
# `TAGS'
# Update a tags table for this program.
#
-# `dvi' `ps' `pdf' `html' `pdf'
+# `dvi' `ps' `pdf' `html' `rtf'
# Generate DVI/PS/PDF files for LaTeX/DocBook docs. Not everything is
# supported everywhere, but the intention is to standardise on DocBook
# producing all formats.
$(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); $(FIND) $(patsubst %.$(way_)o,%_split,$(HS_OBJS)) -name '*.$(way_)o') | xargs ar q $@.tmp
-$(RANLIB) $@.tmp
-$(MV) $@.tmp $@
+(echo $(STUBOBJS) $(EXTRA_OBJS); $(FIND) $(patsubst %.$(way_)o,%_split,$(HS_OBJS)) -name '*.$(way_)o') | xargs ar q $@
+$(RANLIB) $@
endef
else
define BUILD_LIB
$(RM) $@ $@.tmp
-echo $(STUBOBJS) > $@.list
+echo $(STUBOBJS) > $@.list
+echo $(EXTRA_OBJS) >> $@.list
$(FIND) $(patsubst %.$(way_)o,%_split,$(HS_OBJS)) -name '*.$(way_)o' >> $@.list
-$(AR) $(AR_OPTS) $@.tmp $(ArSupportsInput) $@.list
+$(AR) $(AR_OPTS) $@ $(ArSupportsInput) $@.list
$(RM) $@.list
-$(RANLIB) $@.tmp
-$(MV) $@.tmp $@
+$(RANLIB) $@
endef
endif
$(RM) $@; if [ ! -d $(basename $@)_split ]; then mkdir $(basename $@)_split; else \
$(FIND) $(basename $@)_split -name '*.$(way_)o' | xargs $(RM) __rm_food; fi
ifeq "$(GhcWithInterpreter)" "YES"
-HC_SPLIT_POST = $(LD) -r $(LD_X) -o $@ $(basename $@)_split/*.$(way_)o
+HC_SPLIT_POST = (cd $(dir $@) && $(LD) -r $(LD_X) -o $(notdir $@) $(basename $(notdir $@))_split/*.$(way_)o)
else
HC_SPLIT_POST = touch $@
endif # GhcWithInterpreter == YES
# INSTALL_LIB_SCRIPTS platform-dependent scripts in $(libdir)
# INSTALL_LIBEXECS platform-dependent execs in $(libdir)
# INSTALL_DATAS platform-independent files in $(datadir)
+# INSTALL_IFACES platform-dependent interface files in $(ifacedir)
#
# If the installation directory variable is undefined, the install rule simply
# emits a suitable error message.
done
endif
-ifneq "$(INSTALL_DATAS_WITH_DIRS)" ""
-install:: $(INSTALL_DATAS_WITH_DIRS)
- @$(INSTALL_DIR) $(datadir)
- for i in $(INSTALL_DATAS_WITH_DIRS); do \
- $(INSTALL_DATA) $(INSTALL_OPTS) $$i $(datadir)/`dirname $$i`; \
+ifneq "$(INSTALL_IFACES)" ""
+install:: $(INSTALL_IFACES)
+ @$(INSTALL_DIR) $(ifacedir)
+ for i in $(INSTALL_IFACES); do \
+ $(INSTALL_DATA) $(INSTALL_OPTS) $$i $(ifacedir); \
+ done
+endif
+
+ifneq "$(INSTALL_IFACES_WITH_DIRS)" ""
+install:: $(INSTALL_IFACES_WITH_DIRS)
+ @$(INSTALL_DIR) $(ifacedir)
+ for i in $(INSTALL_IFACES_WITH_DIRS); do \
+ $(INSTALL_DATA) $(INSTALL_OPTS) $$i $(ifacedir)/`dirname $$i`; \
done
endif
ifneq "$(SGMLDocWays)" ""
install-docs:: $(foreach i,$(SGMLDocWays),$(INSTALL_SGML_DOC).$i)
@$(INSTALL_DIR) $(datadir)
- for i in $(SGMLDocWays); do \
+ @for i in $(SGMLDocWays); do \
if [ $$i = "html" ]; then \
- $(CP) -r $(INSTALL_SGML_DOC) $(datadir); \
+ $(INSTALL_DIR) $(datadir)/html; \
+ echo $(CP) -r $(INSTALL_SGML_DOC) $(datadir)/html; \
+ $(CP) -r $(INSTALL_SGML_DOC) $(datadir)/html; \
else \
+ echo $(INSTALL_DATA) $(INSTALL_OPTS) $(INSTALL_SGML_DOC).$$i $(datadir); \
$(INSTALL_DATA) $(INSTALL_OPTS) $(INSTALL_SGML_DOC).$$i $(datadir); \
fi \
done
# the --no-print-directory flag which is passed to recursive
# invocations of make.
#
+ifeq "$(way)" ""
ifneq "$(SUBDIRS)" ""
# we override the 'boot', 'all' and 'install' targets in the top
@echo "------------------------------------------------------------------------"
endif
+endif
#
# Selectively building subdirectories.