# -----------------------------------------------------------------------------
-# $Id: Makefile,v 1.174 2001/07/10 14:25:24 rrt Exp $
+# $Id: Makefile,v 1.180 2001/08/02 05:15:33 qrczak Exp $
TOP = ..
include $(TOP)/mk/boilerplate.mk
# Big Fudge to get around inherent problem that Makefile setup
# has got with 'mkdependC'.
#
-SRC_MKDEPENDC_OPTS += -D__GLASGOW_HASKELL__=$(ProjectVersionInt) -I$(GHC_INCLUDES)
+SRC_MKDEPENDC_OPTS += -D__GLASGOW_HASKELL__=$(ProjectVersionInt) -I$(GHC_INCLUDE_DIR)
# -----------------------------------------------------------------------------
# Haskell compilations
ifneq "$(mingw32_TARGET_OS)" "1"
SRC_HC_OPTS += -package concurrent -package posix -package text -package util
else
-SRC_HC_OPTS += -package concurrent -package win32 -package text -package util
+SRC_HC_OPTS += -package concurrent -package text -package util
endif
SRC_CC_OPTS += -Iparser -I. -I$(TOP)/includes -O
SRC_HC_OPTS += -recomp $(GhcHcOpts)
-SRC_HC_OPTS += -H16m
+# TODO: change back to 16M when the strictness analyser is working again.
+SRC_HC_OPTS += -H80M
+# TODO: remove when the strictness analyser is working again.
+rename/ParseIface_HC_OPTS += -H120M
+parser/Parser_HC_OPTS += -H100M
# Special flags for particular modules
# The standard suffix rule for compiling a Haskell file
# Generate supporting stuff for prelude/PrimOp.lhs
# from prelude/primops.txt
+# Run prelude/primops.txt through the preprocessor, to weed out
+# primitives that don't (need to) exist on 64-bit architectures.
+prelude/primops.i: prelude/primops.txt
+ $(CPP) -I$(GHC_INCLUDE_DIR) -x c $< 2>/dev/null | $(SED) -e '/^#/d' > $@
+
GENPOC=$(TOP)/utils/genprimopcode/genprimopcode
PRIMOP_BITS=primop-data-decl.hs-incl \
depend :: $(PRIMOP_BITS)
endif
-primop-data-decl.hs-incl: prelude/primops.txt
+primop-data-decl.hs-incl: prelude/primops.i
$(GENPOC) --data-decl < $< > $@
-primop-tag.hs-incl: prelude/primops.txt
+primop-tag.hs-incl: prelude/primops.i
$(GENPOC) --primop-tag < $< > $@
-primop-list.hs-incl: prelude/primops.txt
+primop-list.hs-incl: prelude/primops.i
$(GENPOC) --primop-list < $< > $@
-primop-has-side-effects.hs-incl: prelude/primops.txt
+primop-has-side-effects.hs-incl: prelude/primops.i
$(GENPOC) --has-side-effects < $< > $@
-primop-out-of-line.hs-incl: prelude/primops.txt
+primop-out-of-line.hs-incl: prelude/primops.i
$(GENPOC) --out-of-line < $< > $@
-primop-commutable.hs-incl: prelude/primops.txt
+primop-commutable.hs-incl: prelude/primops.i
$(GENPOC) --commutable < $< > $@
-primop-needs-wrapper.hs-incl: prelude/primops.txt
+primop-needs-wrapper.hs-incl: prelude/primops.i
$(GENPOC) --needs-wrapper < $< > $@
-primop-can-fail.hs-incl: prelude/primops.txt
+primop-can-fail.hs-incl: prelude/primops.i
$(GENPOC) --can-fail < $< > $@
-primop-strictness.hs-incl: prelude/primops.txt
+primop-strictness.hs-incl: prelude/primops.i
$(GENPOC) --strictness < $< > $@
-primop-usage.hs-incl: prelude/primops.txt
+primop-usage.hs-incl: prelude/primops.i
$(GENPOC) --usage < $< > $@
-primop-primop-info.hs-incl: prelude/primops.txt
+primop-primop-info.hs-incl: prelude/primops.i
$(GENPOC) --primop-primop-info < $< > $@
chmod 755 $@
ifeq "$(TARGETPLATFORM)" "i386-unknown-mingw32"
@$(RM) $@.bat
- echo "@"$(subst /,\\,$(FPTOOLS_TOP_ABS)/ghc/compiler/$(HS_PROG)) "-B$(FPTOOLS_TOP_ABS) %*" >$@.bat
+ echo "@"$(subst /,\\,$(FPTOOLS_TOP_ABS)/ghc/compiler/$(HS_PROG)) "-B$(FPTOOLS_TOP_ABS) %1 %2 %3 %4 %5 %6 %7 %8 %9" >$@.bat
chmod 755 $@.bat
endif