include Makefile.inc
OBJDIR = ${BUILDDIR}/obj/compiler98
OBJDIRS = ${OBJDIR}/Derive ${OBJDIR}/Parse ${OBJDIR}/Type ${OBJDIR}/Util
TARGET = ${DST}/nhc98comp${EXE}
SRCS = \
AssocTree.hs \
Bind.hs \
Building.hs \
Case.hs \
CaseHelp.hs \
CaseLib.hs \
CaseOpt.hs \
Depend.hs \
Derive/Binary.hs \
Derive/Bounded.hs \
Derive/Derive.hs \
Derive/Enum.hs \
Derive/Eq.hs \
Derive/Eval.hs \
Derive/Ix.hs \
Derive/Lib.hs \
Derive/Ord.hs \
Derive/Read.hs \
Derive/Show.hs \
Derive/XML.hs \
EmitState.hs \
Error.hs \
Export.hs \
Extract.hs \
FFITrans.hs \
FSLib.hs \
FixSyntax.hs \
Fixity.hs \
Flags.hs \
Floats.hs \
ForeignCode.hs \
FreeVar.hs \
Gcode.hs \
GcodeFix.hs \
GcodeLow.hs \
GcodeLowC.hs \
GcodeMem.hs \
GcodeOpt1.hs \
GcodeOpt2.hs \
GcodeRel.hs \
GcodeSpec.hs \
IExtract.hs \
Id.hs \
IdKind.hs \
Import.hs \
ImportState.hs \
Info.hs \
IntState.hs \
Lift.hs \
Machine.hs \
MainNhc98.hs \
Memo.hs \
MkSyntax.hs \
NT.hs \
Need.hs \
NeedLib.hs \
Nice.hs \
NplusK.hs \
Overlap.hs \
Parse/Lex.hs \
Parse/LexLow.hs \
Parse/LexPre.hs \
Parse/LexStr.hs \
Parse/Lexical.hs \
Parse/Parse.hs \
Parse/Parse2.hs \
Parse/ParseCore.hs \
Parse/ParseI.hs \
Parse/ParseLex.hs \
Parse/ParseLib.hs \
Parse/Pragma.hs \
PosAtom.hs \
PosCode.hs \
PreImp.hs \
PreImport.hs \
PrettyLib.hs \
PrettySyntax.hs \
Prim.hs \
PrimCode.hs \
Reduce.hs \
Remove1_3.hs \
Rename.hs \
RenameLib.hs \
ReportImports.hs \
RmClasses.hs \
STGArity.hs \
STGBuild.hs \
STGGcode.hs \
STGState.hs \
Scc.hs \
SccModule.hs \
Setup.hs \
State.hs \
StateMonad.hs \
StrPos.hs \
Syntax.hs \
SyntaxPos.hs \
SyntaxUtil.hs \
SysDeps.hs \
TokenId.hs \
TokenInt.hs \
Tree234.hs \
Type/Ctx.hs \
Type/Data.hs \
Type/Env.hs \
Type/Lib.hs \
Type/Subst.hs \
Type/Type.hs \
Type/Unify.hs \
Type/Util.hs \
Unlit.hs \
Util/Extra.hs \
Util/MergeSort.hs \
Util/OsOnly.hs \
Util/Text.hs \
USED_IN_YHC = \
ByteCode/Analysis.hs \
ByteCode/ByteCode.hs \
ByteCode/Compile.hs \
ByteCode/CompileLib.hs \
ByteCode/Flatten.hs \
ByteCode/Graph.hs \
ByteCode/Metric.hs \
ByteCode/Peep.hs \
ByteCode/Relative.hs \
ByteCode/Show.hs \
ByteCode/Type.hs \
ByteCode/Wrap.hs \
ByteCode/Write.hs \
Compile.lhs \
Core/Convert.hs \
Core/CoreType.hs \
Core/Linker.hs \
Core/Pretty.hs \
Core/Reduce.hs \
Core/View.hs \
DotNet/Compile.hs \
DotNet/IL.hs \
DotNet/Show.hs \
Front.lhs \
MainYhc.hs \
Make.lhs \
Package.hs \
Phase.hs \
Util/Graph.lhs \
FROMC = ../libraries/filepath/System/FilePath/Posix.$C
GCSRCS = NhcFloats.gc
CFILES = $(patsubst %.hs, %.$C, ${SRCS})
GCCFILES = $(patsubst %.gc, %.$C, ${GCSRCS})
OBJS = $(patsubst %.hs, $(OBJDIR)/%.$O, ${SRCS})
GCOBJS = $(patsubst %.gc, $(OBJDIR)/%.$O, ${GCSRCS}) $(patsubst %.gc,$(OBJDIR)/%_.$O,${GCSRCS})
HC = nhc98 # can be overridden by caller with 'make HC=...'
ifeq "hbc" "$(findstring hbc, ${HC})"
HMAKEFLAGS := -H32M
endif
ifeq "nhc98" "$(findstring nhc98, ${HC})"
HMAKEFLAGS := -H16M -K2M +CTS -H16M -CTS -package base -package filepath
endif
ifeq "ghc" "$(findstring ghc, ${HC})"
IMPROVE = #-O
EXTRALINK = $(OBJDIR)/ghc_floats.o
HMAKEFLAGS := $(shell $(LOCAL)fixghc $(GHCSYM) -package base -package filepath ) $(IMPROVE) $(EXTRALINK)
$(TARGET): $(EXTRALINK)
endif
HMAKEFLAGS += $(shell echo $(BUILDOPTS))
all: ${TARGET}
objdir: ${OBJDIR} ${OBJDIRS}
cfiles: #$(OBJDIR)/$(BASECOMP)
$(HMAKE) -HC=$(LOCAL)nhc98 -K2M -C $(HMAKEFLAGS) MainNhc98.hs
fromC: $(OBJDIR) ${OBJDIRS}
$(LOCAL)/nhc98 -o $(TARGET) -d $(OBJDIR) *.$C */*.$C $(FROMC) -package base
# cd $(OBJDIR); $(LOCAL)nhc98 -H8M -o $(TARGET) $(HMAKEFLAGS) *.$O */*.$O
$(STRIP) $(TARGET)
relink:
cd $(OBJDIR); $(LOCAL)nhc98 -H8M -o $(TARGET) $(HMAKEFLAGS) *.$O */*.$O
$(STRIP) $(TARGET)
clean: cleanO cleanHi
cleanO:
rm -rf $(OBJDIR)
cleanHi:
rm -f *.hi */*.hi
cleanC:
rm -f *.hc *.p.c *.z.c ghc_floats.c */*.hc */*.p.c */*.z.c
realclean: clean cleanC
rm -f $(TARGET)
#ifeq "ghc" "$(findstring ghc, ${HC})"
#$(TARGET): ${OBJDIR} $(OBJDIR)/$(BASECOMP) $(SRCS)
# $(HC) --make -cpp $(HMAKEFLAGS) -odir $(OBJDIR) MainNew
# mv a.out $(TARGET)
# $(STRIP) $(TARGET)
#else
$(TARGET): ${OBJDIR} ${OBJDIRS} $(OBJDIR)/$(BASECOMP) $(SRCS)
$(HMAKE) -hc=$(HC) $(HMAKEFLAGS) -d $(OBJDIR) MainNhc98
mv $(OBJDIR)/MainNhc98$(EXE) $(TARGET)
$(STRIP) $(TARGET)
#endif
${OBJDIR} ${OBJDIRS}:
mkdir -p $@
$(OBJDIR)/$(BASECOMP):
rm -f $(OBJDIR)/nhc98 $(OBJDIR)/hbc $(OBJDIR)/ghc*
#$(MAKE) cleanC
touch "$(OBJDIR)/$(BASECOMP)"
$(OBJDIR)/ghc_floats.o: ghc_floats.c
$(HC) -c -o $@ $<
ghc_floats.c: ghc_floats.c.inst
cp ghc_floats.c.inst ghc_floats.c
.SUFFIXES: .hs .o .c .gc
#${CFILES}: %.$C : %.hs
# $(HC) -C $(HFLAGS) -package base -package filepath $<
${GCCFILES}: %.$C : %.gc
$(HC) -C $(HFLAGS) $<
|