include Makefile.inc


OBJDIR = ${BUILDDIR}/obj/hattrans
TARGET = ${DST}/hat-trans${EXE}

SRCS = \
	TraceDerive.hs TraceTrans.hs AuxLabelAST.hs AuxFixity.hs AuxFile.hs \
	AuxTypes.hs TraceId.hs Flags.hs PrettyTraceId.hs HatTrans.hs
COMPILERSRCS = \
	AssocTree.hs Error.hs Extra.hs HbcOnly.hs Id.hs IdKind.hs \
	Info.hs IntState.hs \
	Lex.hs LexLow.hs LexPre.hs LexStr.hs Lexical.hs \
	MergeSort.hs MkSyntax.hs NT.hs Nice.hs OsOnly.hs \
	Parse.hs Parse2.hs ParseCore.hs ParseLex.hs ParseLib.hs \
	PrettyLib.hs PrettySyntax.hs Reduce.hs \
	Syntax.hs SyntaxPos.hs SyntaxUtil.hs SysDeps.hs \
	TokenId.hs Tree234.hs Unlit.hs
COMPSRCS = $(patsubst %, ../compiler98/%, ${COMPILERSRCS})
OBJS = $(patsubst %.hs, $(OBJDIR)/%.$O, ${SRCS})


HC = nhc98	# can be overridden by caller with 'make HC=...'

ifeq "nhc98" "$(findstring nhc98, ${HC})"
HMAKEFLAGS := -H16M -K2M +CTS -H16M -CTS
endif
ifeq "ghc" "$(findstring ghc, ${HC})"
IMPROVE     = #-O
  ifeq "606" "${GHCSYM}"
HMAKEFLAGS := -package base $(IMPROVE)
  else
HMAKEFLAGS := $(shell $(LOCAL)fixghc $(GHCSYM) -package lang -package base) $(IMPROVE)
  endif
endif

HMAKEFLAGS += $(shell echo $(BUILDOPTS))


all: ${TARGET}
hat-trans: ${TARGET}
objdir: ${OBJDIR}
clean:
	rm -f $(OBJDIR)/*.$O *.$O *.hi *.hc
realclean: clean
	rm -f *.hc *.c $(TARGET)

$(TARGET): ${OBJDIR} $(OBJDIR)/$(HC) $(SRCS) $(COMPSRCS)
	hmake -hc=$(HC) $(HMAKEFLAGS) -d $(OBJDIR) -I. -I../compiler98 HatTrans
	mv $(OBJDIR)/HatTrans$(EXE) $(TARGET)
	$(STRIP) $(TARGET)
${OBJDIR}:
	mkdir -p ${OBJDIR}
$(OBJDIR)/$(HC):
	rm -f $(OBJDIR)/nhc98 $(OBJDIR)/hbc $(OBJDIR)/ghc*
	$(MAKE) clean
	touch "$(OBJDIR)/$(HC)"
 
.SUFFIXES: .hs .o .c



syntax highlighted by Code2HTML, v. 0.9.1