# -----------------------------------------------------------------------------
-# $Id: package.mk,v 1.4 2002/02/13 15:48:03 simonmar Exp $
+# $Id: package.mk,v 1.9 2002/02/22 22:20:25 panne Exp $
ifneq "$(PACKAGE)" ""
| sed 's/^#.*$$//g' >$@
$(PACKAGE).conf.installed : $(PACKAGE).conf.in
- $(CPP) $(RAWCPP_FLAGS) -I$(GHC_INCLUDE_DIR) -DINSTALLED -x c $(PACKAGE_CPP_OPTS) $< \
+ $(CPP) $(RAWCPP_FLAGS) -I$(GHC_INCLUDE_DIR) -DINSTALLING -x c $(PACKAGE_CPP_OPTS) $< \
| sed 's/^#.*$$//g' >$@
boot all :: $(PACKAGE).conf.inplace $(PACKAGE).conf.installed
# -----------------------------------------------------------------------------
# Installation; need to install .hi files as well as libraries
-#
+
+ifeq "$(DLLized)" "YES"
+INSTALL_PROGS += $(DLL_NAME)
+INSTALL_LIBS += $(patsubst %.a,%_imp.a, $(LIBRARY))
+endif
+
# The interface files are put inside the $(libdir), since they
# might (potentially) be platform specific..
#
# override is used here because for binary distributions, datadir is
# set on the command line. sigh.
-#
-
override datadir:=$(libdir)/imports/$(PACKAGE)
+# If the lib consists of a hierachy of modules, we must retain the directory
+# structure when we install the interfaces.
+ifeq "$(HIERARCHICAL_LIB)" "YES"
+INSTALL_DATAS_WITH_DIRS += $(HS_IFACES)
+ifneq "$(ALL_DIRS)" ""
+install ::
+ @for i in $(ALL_DIRS); do \
+ $(INSTALL_DIR) $(datadir)/$$i; \
+ done
+endif
+else
+INSTALL_DATAS += $(HS_IFACES)
+endif
+
# -----------------------------------------------------------------------------
# Dependencies
endif # $(PACKAGE) /= ""
+# install library (could be implicitly specified or explicitly, like libHS*_cbits.a)
+INSTALL_LIBS += $(LIBRARY)
+
#--------------------------------------------------------------
# Building dynamically-linkable libraries for GHCi
#
# when we can use a "fixed" ld.
#
$(GHCI_LIBRARY) : $(LIBOBJS)
- $(LD) -r $(LD_X) -o $@ $(LIBOBJS)
+ $(LD) -r $(LD_X) -o $@ $(STUBOBJS) $(LIBOBJS)
endif # DONT_WANT_STD_GHCI_LIB_RULE
endif # GhcWithInterpreter