[project @ 2002-02-22 22:20:25 by panne]
[ghc-hetmet.git] / mk / package.mk
index c7ed72f..2391322 100644 (file)
@@ -1,5 +1,5 @@
 # -----------------------------------------------------------------------------
-# $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)" ""
 
@@ -13,7 +13,7 @@ $(PACKAGE).conf.inplace   : $(PACKAGE).conf.in
                | 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
@@ -60,16 +60,33 @@ all :: $(LIBRARY)
 
 # -----------------------------------------------------------------------------
 # 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
 
@@ -78,6 +95,9 @@ SRC_MKDEPENDC_OPTS += $(patsubst %,-I%,$(ALL_DIRS)) -I$(GHC_INCLUDE_DIR)
 
 endif # $(PACKAGE) /= ""
 
+# install library (could be implicitly specified or explicitly, like libHS*_cbits.a)
+INSTALL_LIBS  += $(LIBRARY)
+
 #--------------------------------------------------------------
 # Building dynamically-linkable libraries for GHCi
 #
@@ -108,7 +128,7 @@ ifneq "$(DONT_WANT_STD_GHCI_LIB_RULE)" "YES"
 # 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