Libraries Makefile Hack for ndp
[ghc-hetmet.git] / libraries / Makefile
index 20333b1..20a039c 100644 (file)
@@ -163,12 +163,15 @@ boot: $(BOOTSTRAP_STAMPS) ifBuildable/ifBuildable \
 
 # We ought to be depending on %/Setup.*hs, but make makes that difficult.
 
+# -fffi is only needed for GHC 6.4 at the time of writing
+CABAL_GHC_FLAGS = -Wall -cpp -fffi
+
 $(foreach SUBDIR,$(SUBDIRS),$(SUBDIR)/setup/Setup): \
 %/setup/Setup: $(BOOTSTRAP_STAMPS)
        -$(RM) -rf $*/setup
        mkdir $*/setup
        $(CP) $*/Setup.*hs $*/setup
-       cd $*/setup && $(GHC) -Wall -cpp --make Setup.*hs -o Setup \
+       cd $*/setup && $(GHC) $(CABAL_GHC_FLAGS) --make Setup.*hs -o Setup \
                              $(BOOTSTRAP_INC_2_UP)
 
 installPackage/installPackage: installPackage.hs $(BOOTSTRAP_STAMPS)
@@ -176,11 +179,11 @@ installPackage/installPackage: installPackage.hs $(BOOTSTRAP_STAMPS)
        mkdir installPackage
        $(CP) installPackage.hs installPackage/
 ifeq "$(stage)" "2"
-       cd installPackage && ../$(HC) -Wall -cpp \
+       cd installPackage && ../$(HC) $(CABAL_GHC_FLAGS) \
                                    --make installPackage -o installPackage \
                                    $(BOOTSTRAP_INC_1_UP) $(DEPLOYMENT_OPTS)
 else
-       cd installPackage && $(GHC) -Wall -cpp \
+       cd installPackage && $(GHC) $(CABAL_GHC_FLAGS) \
                                    --make installPackage -o installPackage \
                                    $(BOOTSTRAP_INC_1_UP)
 endif
@@ -247,22 +250,22 @@ FLAGGED_CONFIGURE_ARGS = $(subst $(space)',\
                                  $(space)$(CONFIGURE_ARGS))
 
 ifeq "$(Windows)" "YES"
-NONEXISTANT=c:/NONEXISTANT
+NONEXISTENT=c:/NONEXISTENT
 else
-NONEXISTANT=/NONEXISTANT
+NONEXISTENT=/NONEXISTENT
 endif
 
 ALL_CONFIGURE_FLAGS = \
                   $(CONFIGURE_OPTS) \
-                  --prefix=$(NONEXISTANT) \
-                  --bindir=$(NONEXISTANT) \
-                  --libdir=$(NONEXISTANT) \
+                  --prefix=$(NONEXISTENT) \
+                  --bindir=$(NONEXISTENT) \
+                  --libdir=$(NONEXISTENT) \
                   --libsubdir='$$pkgid' \
-                  --libexecdir=$(NONEXISTANT) \
-                  --datadir=$(NONEXISTANT) \
-                  --docdir=$(NONEXISTANT) \
-                          --haddockdir=$(NONEXISTANT) \
-                  --htmldir=$(NONEXISTANT) \
+                  --libexecdir=$(NONEXISTENT) \
+                  --datadir=$(NONEXISTENT) \
+                  --docdir=$(NONEXISTENT) \
+                          --haddockdir=$(NONEXISTENT) \
+                  --htmldir=$(NONEXISTENT) \
                   --with-compiler=../../compiler/stage1/ghc-inplace \
                   --with-hc-pkg=../../utils/ghc-pkg/ghc-pkg-inplace \
                   --with-hsc2hs=../../utils/hsc2hs/hsc2hs-inplace \
@@ -288,7 +291,9 @@ stamp/configure.library.build$(CONFIGURE_STAMP_EXTRAS).%: %/setup/Setup
 # needs to be done.  However, we're careful not to overwrite GNUmakefile
 # if it hasn't changed, so that dependency-generation isn't forced
 # every time.
-$(foreach SUBDIR,$(SUBDIRS),make.library.$(SUBDIR)):\
+# I doubt that the makefile way will work with ndp, so filter it out and use
+# a rule below to call build.library.ndp instead
+$(foreach SUBDIR,$(filter-out ndp,$(SUBDIRS)),make.library.$(SUBDIR)):\
 make.library.%: stamp/configure.library.build$(CONFIGURE_STAMP_EXTRAS).% \
                 %/setup/Setup ifBuildable/ifBuildable installPackage/installPackage
        if ifBuildable/ifBuildable $*; then \
@@ -301,6 +306,9 @@ make.library.%: stamp/configure.library.build$(CONFIGURE_STAMP_EXTRAS).% \
          ../installPackage/installPackage register --inplace; \
        fi
 
+# Hack for ndp, as described above
+make.library.ndp: build.library.ndp
+
 # Build the library using 'setup build' (not the default)
 $(foreach SUBDIR,$(SUBDIRS),build.library.$(SUBDIR)):\
 build.library.%: stamp/configure.library.build$(CONFIGURE_STAMP_EXTRAS).% \
@@ -308,6 +316,7 @@ build.library.%: stamp/configure.library.build$(CONFIGURE_STAMP_EXTRAS).% \
        if ifBuildable/ifBuildable $*; then \
          cd $* && \
          setup/Setup build $(addprefix --ghc-option=,$(GhcLibHcOpts)); \
+         ../installPackage/installPackage register --inplace; \
        fi
 
 .PHONY: doc html