Fix SPARC build, missing #include
[ghc-hetmet.git] / mk / package.mk
index 581935a..079e4f6 100644 (file)
@@ -84,7 +84,9 @@ install::
               -x c $(PACKAGE_CPP_OPTS) package.conf.in \
            | grep -v '^#pragma GCC' \
            | sed -e 's/""//g' -e 's/:[   ]*,/: /g' \
-           | $(bindir)/ghc-pkg update - --force
+           | $(GHC_PKG_INSTALL_PROG) --global-conf $(DESTDIR)$(datadir)/package.conf update - --force
+
+GHC_PKG_INSTALL_PROG = $(FPTOOLS_TOP_ABS)/utils/ghc-pkg/dist-install/build/ghc-pkg/ghc-pkg
 
 # we could be more accurate here and add a dependency on
 # driver/package.conf, but that doesn't work too well because of
@@ -120,6 +122,7 @@ SRC_HSC2HS_OPTS += -I.
 
 ifneq "$(NO_SET_HC)" "YES"
 HC = $(GHC_INPLACE)
+BOOTSTRAPPING_PACKAGE_CONF_HC_OPTS =
 endif
 IGNORE_PACKAGE_FLAG = -package-name  $(PACKAGE)-$(VERSION)
 
@@ -129,22 +132,29 @@ SRC_HC_OPTS       += $(GhcLibHcOpts)
 SRC_HC_OPTS     += $(patsubst %, -package %, $(PACKAGE_DEPS))
 endif
 
-#      -fgenerics switches on generation of support code for 
+#      -XGenerics switches on generation of support code for 
 #              derivable type classes.  This is now off by default,
 #              but we switch it on for the libraries so that we generate
 #              the code in case someone importing wants it.
 ifeq "$(NON_HS_PACKAGE)" ""
-SRC_HC_OPTS    += -fgenerics
+SRC_HC_OPTS    += -XGenerics
 endif
 
+ifndef DONT_WANT_STD_LIBRARY
 ifndef LIBRARY
+ifeq "$(_way:%_dyn=YES)" "YES"
+LIBRARY        = libHS$(PACKAGE)$(_way:%_dyn=%)-ghc$(ProjectVersion)$(soext)
+else
 LIBRARY        = libHS$(PACKAGE)$(_way).a
 endif
+endif
+endif
 
 ifeq "$(WAYS)" ""
 WAYS = $(GhcLibWays)
 endif
 
+ifdef LIBRARY
 all :: $(LIBRARY)
 
 # POSSIBLE alternative version using --make:
@@ -169,6 +179,7 @@ ifeq "$(DLLized)" "YES"
 INSTALL_PROGS += $(DLL_NAME)
 INSTALL_LIBS += $(patsubst %.a,%_imp.a, $(LIBRARY))
 endif
+endif
 
 # The interface files are put inside the $(libdir), since they
 # might (potentially) be platform specific..
@@ -246,69 +257,6 @@ $(GHCI_LIBRARY) : $(LIBOBJS)
 endif # DONT_WANT_STD_GHCI_LIB_RULE
 endif # GhcWithInterpreter
 endif # way
-
-ifeq "$(GhcBuildDylibs)" "YES"
-
-    # Build dynamic libraries.
-    # Currently, this is a hack. Anyone, PLEASE clean it up.
-
-    # For now, we pretend that there are two operating systems in the world;
-    # Darwin, and Everything Else. Furthermore, we pretend that Everything Else
-    # behaves like Linux.
-    
-ifeq "$(darwin_TARGET_OS)" "1"
-    # Darwin: Shared libraries end in .dylib
-DYLD_LIBRARY = $(patsubst %.a,%_dyn.dylib,$(LIBRARY))
-
-    # About the options used for Darwin:
-    # -dynamiclib
-    #   Apple's way of saying -shared
-    # -undefined dynamic_lookup:
-    #   Without these options, we'd have to specify the correct dependencies
-    #   for each of the dylibs. Note that we could (and should) do without this
-    #  for all libraries except the RTS; all we need to do is to pass the
-    #  correct HSfoo_dyn.dylib files to the link command.
-    #  This feature requires Mac OS X 10.3 or later; there is a similar feature,
-    #  -flat_namespace -undefined suppress, which works on earlier versions,
-    #  but it has other disadvantages.
-    # -single_module
-    #  Build the dynamic library as a single "module", i.e. no dynamic binding
-    #  nonsense when referring to symbols from within the library. The NCG
-    #  assumes that this option is specified (on i386, at least).
-    # -Wl,-macosx_version_min -Wl,10.3
-    #  Tell the linker its safe to assume that the library will run on 10.3 or
-    #  later, so that it will not complain about the use of the option
-    #  -undefined dynamic_lookup above.
-    # -install_name
-    #   Causes the dynamic linker to ignore the DYLD_LIBRARY_PATH when loading
-    #   this lib and instead look for it at its absolute path.
-    #   When installing the .dylibs (see target.mk), we'll change that path to
-    #   point to the place they are installed. Therefore, we won't have to set
-    #  up DYLD_LIBRARY_PATH specifically for ghc.
-
-$(DYLD_LIBRARY) : $(LIBOBJS) $(STUBOBJS)
-       $(CC) -dynamiclib -o $@ $(STUBOBJS) $(LIBOBJS) \
-               -undefined dynamic_lookup -single_module \
-                -Wl,-macosx_version_min -Wl,10.3 \
-               -install_name `pwd`/$@
-
-else
-DYLD_LIBRARY = $(patsubst %.a,%_dyn.so,$(LIBRARY))
-
-$(DYLD_LIBRARY) : $(LIBOBJS) $(STUBOBJS)
-       $(CC) -shared -o $@ $(STUBOBJS) $(LIBOBJS)
-endif
-
-ifneq "$(NO_INSTALL_LIBRARY)" "YES"
-INSTALL_LIBS += $(DYLD_LIBRARY)
-endif
-
-CLEAN_FILES += $(DYLD_LIBRARY)
-
-all :: $(DYLD_LIBRARY)
-
-endif # $(GhcBuildDylibs) == "YES"
-
 endif # $(LIBRARY) /= ""
 
 # -----------------------------------------------------------------------------
@@ -326,31 +274,18 @@ ifneq "$(HS_PPS)" ""
 
 CLEAN_FILES += $(HS_PPS) $(addsuffix .tmp, $(HS_SRCS))
 
-ifeq "$(HADDOCK)" ""
-html ::
-       @echo Haddock must be installed in order to build HTML library documentation.
-       @echo Please install Haddock and re-configure.
-       @exit 1
-endif
-
 html :: $(HTML_DOC)
 
 extraclean :: 
        $(RM) -rf $(HTML_DIR)
 
-ifneq "$(findstring $(PACKAGE), $(CorePackages))" ""
-HaddockSourceURL = $(CorePackageSourceURL)
-else
-HaddockSourceURL = $(ExtraPackageSourceURL)
-endif
-
 $(HTML_DOC) : $(HS_PPS)
        @$(INSTALL_DIR) $(HTML_DIR)
        $(HADDOCK) $(HADDOCK_OPTS) -h -o $(HTML_DIR) $(HS_PPS) \
                --package=$(PACKAGE) \
                --dump-interface=$(PACKAGE).haddock \
                --use-index=../doc-index.html --use-contents=../index.html \
-               --source-module=$(HaddockSourceURL) \
+               --source-module=$(PackageSourceURL) \
                $(foreach pkg, $(PACKAGE_DEPS), \
                   --read-interface=../$(pkg),../$(pkg)/$(pkg).haddock)
 
@@ -362,7 +297,7 @@ CLEAN_FILES += $(PACKAGE).haddock
 %.raw-hs : %.hs
        $(HC) $(HC_OPTS) -D__HADDOCK__ -E $< -o $@
 
-HTML_INSTALL_DIR = $(datadir)/html/libraries/$(PACKAGE)
+HTML_INSTALL_DIR = $(DESTDIR)$(htmldir)/libraries/html/$(PACKAGE)
 
 install-docs :: $(HTML_DOC)
        @$(INSTALL_DIR) $(HTML_INSTALL_DIR)