[project @ 2005-03-08 04:45:29 by wolfgang]
[ghc-hetmet.git] / ghc / rts / Makefile
index 718e00f..934c429 100644 (file)
@@ -57,6 +57,13 @@ else
 EXCLUDED_SRCS += Main.c
 endif
 
+# This file ends up being empty unless we're building for a powerpc
+# system, and it is reported that Solaris ld chokes on it when building
+# HSrts.o.
+ifeq "$(findstring $(TargetArch_CPP), powerpc powerpc64)" ""
+EXCLUDED_SRCS += AdjustorAsm.S
+endif
+
 EXCLUDED_SRCS += parallel/SysMan.c
 
 # The build system doesn't give us these
@@ -146,6 +153,9 @@ SUBDIRS += dotnet
 LIBOBJS += dotnet/Invoke.o
 endif
 
+# Suppress uninitialized variable warnings for GC.c
+GC_CC_OPTS     += -Wno-uninitialized
+
 #-----------------------------------------------------------------------------
 # Include the Front panel code?
 
@@ -184,7 +194,7 @@ AUTO_APPLY_CMM = AutoApply$(_way).cmm
 ifneq "$(BootingFromHc)" "YES"
 $(AUTO_APPLY_CMM): $(GHC_GENAPPLY)
        @$(RM) $@
-       $(GHC_GENAPPLY) $(if $(filter u,$(way)), -u) >$@
+       $(GHC_GENAPPLY) $(if $(filter $(way), u debug_u), -u) >$@
 endif
 
 EXTRA_CMM_SRCS += $(AUTO_APPLY_CMM)
@@ -223,13 +233,18 @@ endif
 # and not worth re-implementing in our Makefile framework.
 
 ifneq "$(HaveLibGmp)" "YES"
-ifneq "$(HaveFrameworkHaskellSupport)" "YES"
+ifneq "$(HaveFrameworkGMP)" "YES"
 boot ::
-       cd gmp && CC=$(WhatGccIsCalled) ./configure --enable-shared=no \
-               --host=`echo $(HOSTPLATFORM) | sed 's/i[567]86/i486/g'`
+       if [ -f gmp/config.status ]; then \
+          cd gmp && CC=$(WhatGccIsCalled) ./config.status; \
+        else \
+          cd gmp && CC=$(WhatGccIsCalled) ./configure --enable-shared=no \
+                       --host=`echo $(HOSTPLATFORM) | sed 's/i[567]86/i486/g'`; \
+       fi
 
 # Slight cheatage here to pass host as target, but x-compilation isn't supported by ghc.
 
+ifeq "$(way)" ""
 all :: gmp/libgmp.a
 
 ifeq "$(DLLized)" "YES"
@@ -239,6 +254,7 @@ $(DLL_PEN)/gmp.dll:
        $(MAKE) -C gmp gmp.dll
        $(MV) gmp/gmp.dll $(DLL_PEN)
 endif
+endif
 
 install :: gmp/libgmp.a
 
@@ -285,6 +301,7 @@ endif
 
 # ToDo: should we really include Rts.h here?  Required for GNU_ATTRIBUTE().
 SRC_HC_OPTS += \
+  -I. \
   -\#include Prelude.h \
   -\#include Rts.h \
   -\#include RtsFlags.h \
@@ -293,6 +310,7 @@ SRC_HC_OPTS += \
   -\#include Schedule.h \
   -\#include Printer.h \
   -\#include Sanity.h \
+  -\#include STM.h \
   -\#include Storage.h \
   -\#include SchedAPI.h \
   -\#include Timer.h \
@@ -312,6 +330,7 @@ SRC_HC_OPTS += -fvia-C
 # We *want* type-checking of hand-written cmm.
 SRC_HC_OPTS += -dcmm-lint 
 
+ifneq "$(BootingFromHc)" "YES"
 # .cmm files depend on all the .h files, to a first approximation.
 %.$(way_)o : %.cmm $(H_FILES)
        $(HC_PRE_OPTS)
@@ -319,14 +338,11 @@ SRC_HC_OPTS += -dcmm-lint
        $(HC_POST_OPTS)
 
 %.$(way_)hc : %.cmm $(H_FILES)
-       $(HC_PRE_OPTS)
        $(HC) $(HC_OPTS) -C $< -o $@
-       $(HC_POST_OPTS)
 
 %.$(way_)s : %.cmm $(H_FILES)
-       $(HC_PRE_OPTS)
        $(HC) $(HC_OPTS) -S $< -o $@
-       $(HC_POST_OPTS)
+endif
 
 #-----------------------------------------------------------------------------
 #