ifeq "$(ArSupportsInput)" ""
define BUILD_LIB
$(RM) $@ $@.tmp
-(echo $(STUBOBJS); $(FIND) $(patsubst %.$(way_)o,%,$(LIBOBJS)) -name '*.$(way_)o') | xargs ar q $@.tmp
+(echo $(STUBOBJS); $(FIND) $(patsubst %.$(way_)o,%_split,$(HS_OBJS)) -name '*.$(way_)o') | xargs ar q $@.tmp
$(RANLIB) $@.tmp
$(MV) $@.tmp $@
endef
define BUILD_LIB
$(RM) $@ $@.tmp
echo $(STUBOBJS) > $@.list
-$(FIND) $(patsubst %.$(way_)o,%,$(LIBOBJS)) -name '*.$(way_)o' >> $@.list
+$(FIND) $(patsubst %.$(way_)o,%_split,$(HS_OBJS)) -name '*.$(way_)o' >> $@.list
$(AR) $(AR_OPTS) $@.tmp $(ArSupportsInput) $@.list
$(RM) $@.list
$(RANLIB) $@.tmp
# Extra stuff for compiling Haskell files with $(SplitObjs):
HC_SPLIT_PRE = \
- $(RM) $@; if [ ! -d $(basename $@) ]; then mkdir $(basename $@); else \
- $(FIND) $(basename $@) -name '*.$(way_)o' | xargs $(RM) __rm_food; fi
+ $(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 $@)/*.$(way_)o
+HC_SPLIT_POST = $(LD) -r $(LD_X) -o $@ $(basename $@)_split/*.$(way_)o
else
HC_SPLIT_POST = touch $@
endif # GhcWithInterpreter == YES
#
extraclean ::
- $(FIND) $(patsubst %.$(way_)o,%,$(HS_OBJS)) -name '*.$(way_)o' -print | xargs $(RM) __rm_food
- -rmdir $(patsubst %.$(way_)o,%,$(HS_OBJS)) > /dev/null 2>&1
+ $(FIND) $(patsubst %.$(way_)o,%_split,$(HS_OBJS)) -name '*.$(way_)o' -print | xargs $(RM) __rm_food
+ -rmdir $(patsubst %.$(way_)o,%_split,$(HS_OBJS)) > /dev/null 2>&1
endif # $(way) == u
endif # $(SplitObjs)
ifeq "$(StripLibraries)" "YES"
ifeq "$(SplitObjs)" "YES"
SRC_HC_POST_OPTS += \
- for i in $(basename $@)/*; do \
+ for i in $(basename $@)_split/*; do \
$(LD) -r $(LD_X) -o $$i.tmp $$i; \
$(MV) $$i.tmp $$i; \
done
endif # SplitObjs
endif # StripLibraries
-$(LIBRARY) : $(STUBOBJS) $(LIBOBJS)
+# Note: $(STUBOBJS) isn't depended on here, but included when building the lib.
+# (i.e., the assumption is that $(STUBOBJS) are created as a side-effect
+# of building $(LIBOBJS)).
+$(LIBRARY) : $(LIBOBJS)
$(BUILD_LIB)
endif # LIBRARY = ""
# within the various install targets instead.
#install:: install-dirs
-# Install libraries automatically
-# ToDo: this is a bit magical, maybe do this for packages only? --SDM
-ifneq "$(LIBRARY)" ""
-INSTALL_LIBS += $(LIBRARY)
-ifeq "$(DLLized)" "YES"
-INSTALL_PROGS += $(DLL_NAME)
-INSTALL_LIBS += $(patsubst %.a,%_imp.a, $(LIBRARY))
-endif
-INSTALL_DATAS += $(HS_IFACES)
-endif
-
ifneq "$(INSTALL_PROGS)" ""
#
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`; \
+ done
+endif
+
ifneq "$(INSTALL_INCLUDES)" ""
install:: $(INSTALL_INCLUDES)
@$(INSTALL_DIR) $(includedir)
# 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.