# -----------------------------------------------------------------------------
-# $Id: Makefile,v 1.34 1998/02/25 19:48:54 sof Exp $
+# $Id: Makefile,v 1.38 1998/04/16 10:04:12 sof Exp $
TOP = ..
include $(TOP)/mk/boilerplate.mk
# NB: it's no good to include *.hs in the top-line wildcard, because the .hs files
# in parser/ may not have been created at that point.
-
HCS = $(patsubst %.lhs, %.hc, $(patsubst %.hs, %.hc, $(HS_SRCS)))
-#
-# When booting using a ghc-2.xx compiler, the loop breakers are actually written in
-# Haskell, source stubs just re-exporting info from the various .hi-boot files.
-# (Reason: we don't want to fiddle with the imports in the sources). We give them
-# the suffix .hs, since they're special and don't fall under the umbrella of $(HS_SRCS)
-MKDEPENDHS_SRCS = $(HS_SRCS)
-
HS_OBJS = \
$(patsubst %.hc, %.o, $(HCS)) \
parser/hsclink.o parser/hschooks.o libhsp.a
-DESTDIR = $(INSTALL_LIBRARY_DIR_GHC)
+DESTDIR = $(INSTALL_LIBRARY_DIR_GHC)
SRCS_UGN = $(wildcard parser/*.ugn)
SRCS_UGNC = $(patsubst %.ugn, %.c, $(SRCS_UGN))
# -----------------------------------------------------------------------------
# Haskell compilations
-# Compiler to use for building hsc
#
+# Compiler to use for building hsc, use the build tree
+# driver when booting.
+#
+ifneq "$(GhcWithHscBuiltViaC)" "YES"
HC=$(WithGhcHc)
+else
+HC=$(GHC_DRIVER_DIR)/ghc
+endif
# magic from GNU make manual to convert a list of values
# into a colon-separated list
-I. -IcodeGen -InativeGen -Iparser \
-i$(subst $(space),:,$(DIRS))
-# -syslib ghc just needed for use of PackedString.hPutPS
-
SRC_CC_OPTS += -Iparser -I. -I$(TOP)/includes -O
SRC_HC_OPTS += -recomp $(GhcHcOpts)
# The standard suffix rule for compiling a Haskell file
# adds these flags to the command line
-absCSyn/AbsCSyn_HC_OPTS = -fno-omit-reexported-instances
absCSyn/CStrings_HC_OPTS = -monly-3-regs
# Was 6m with 2.10
absCSyn/PprAbsC_HC_OPTS = -H10m
basicTypes/IdInfo_HC_OPTS = -K2m
-coreSyn/AnnCoreSyn_HC_OPTS = -fno-omit-reexported-instances
hsSyn/HsExpr_HC_OPTS = -K2m
-hsSyn/HsSyn_HC_OPTS = -fno-omit-reexported-instances
main/Main_HC_OPTS = -fvia-C -DPROJECTVERSION=$(GhcProjectVersion)
main/MkIface_HC_OPTS = -DPROJECTVERSION=$(GhcProjectVersionInt)
main/CmdLineOpts_HC_OPTS = -fvia-C
reader/ReadPrefix_HC_OPTS = -fvia-C '-\#include"hspincl.h"' -H10m
rename/ParseIface_HC_OPTS += -Onot -H30m -fno-warn-incomplete-patterns
+rename/ParseIface_HAPPY_OPTS += -g
ifeq "$(TARGETPLATFORM)" "hppa1.1-hp-hpux9"
rename/RnMonad_HC_OPTS = -fvia-C -O2 -O2-for-C
rename/RnExpr_HC_OPTS = -H10m
rename/RnNames_HC_OPTS = -H12m
rename/RnMonad_HC_OPTS = -fvia-C
-# Urk! Really big heap for ParseUnfolding
-#rename/ParseUnfolding_HC_OPTS = -H45m
specialise/Specialise_HC_OPTS = -Onot -H12m
-stgSyn/StgSyn_HC_OPTS = -fno-omit-reexported-instances
typecheck/TcGenDeriv_HC_OPTS = -H10m
# Was 10m for 2.10
utils/SST_HC_OPTS = -fvia-C
utils/PrimPacked_HC_OPTS = -fvia-C -monly-3-regs
utils/FastString_HC_OPTS = -fvia-C -monly-3-regs
-utils/StringBuffer_HC_OPTS = -fvia-C
+utils/StringBuffer_HC_OPTS = -fvia-C -fno-prune-tydecls
utils/Digraph_HC_OPTS = -fglasgow-exts -fvia-C
utils/Outputable_HC_OPTS = -monly-3-regs
# ----------------------------------------------------------------------------
-# Parsers
+# Parsers/lexers
# Main parser uses Yacc/Bison
SRC_YACC_OPTS += -d -v
+# Suppress the generation of a default rule
+SRC_FLEX_OPTS += -s
#
# Want to keep the intermediate (included in src distribs).
#
depend :: $(LOOPS) $(SRCS_UGNHS) rename/ParseIface.hs
-
-ifeq "$(GhcWithHscBuiltViaC)" "YES"
-SRC_MKDEPENDHS_OPTS += -optdep-o -optdephc
-
-# When booting from .hc, (hackily) remove the suffix rule for
-# .l?hs -> .o, so that the .hc -> .o is used instead.
-%.$(way_)o : %.lhs
-%.$(way_)o : %.hs
-else
- SRCS_MKDEPENDHS = $(SRCS_HC) # should add $(LOOPS) ?
-endif
-
-
#-----------------------------------------------------------------------------
# clean