include Makefile.inc
ifeq "ghc" "$(findstring ghc, ${HC})"
ifeq "606" "${GHCSYM}"
HMAKEFLAGS = -I. -I$(INCDIR) -fglasgow-exts -package base -package readline \
-DUSE_READLINE=1 $(BUILDOPTS) -prof -auto-all
else
HMAKEFLAGS = -I. -I$(INCDIR) -fglasgow-exts -package lang -package util \
-DUSE_READLINE=1 $(BUILDOPTS) -prof -auto-all
endif
else
HMAKEFLAGS = -I. -I$(INCDIR) -package base +CTS -H8M -CTS -K10M $(BUILDOPTS)
endif
ifeq "glib" "$(GLIB)"
GLIB_CFLAGS = $(shell glib-config --cflags)
GLIB_LINK = $(shell glib-config --libs)
else
GLIB_CFLAGS =
GLIB_LINK =
endif
OBJDIR = ${BUILDDIR}/${OBJ}/hattools
DEST = $(LIBDIR)/$(MACHINE)
COMMONLIBS = pathutils.c artutils.c finitemap.c
OBSERVLIBS = hat-names.c observeutils.c
DETECTLIBS = parentset.c detectutils.c
NOTERMLIBS = nontermutils.c
#MALCLIBS = pathutils.c artutils.c hat-names.c observeutils.c parentset.c newdetect.c
THORLIBS = detect.c hashtable.c
COMMONOBJS = $(patsubst %.c,$(OBJDIR)/%.o,$(COMMONLIBS))
OBSERVOBJS = $(patsubst %.c,$(OBJDIR)/%.o,$(OBSERVLIBS))
DETECTOBJS = $(patsubst %.c,$(OBJDIR)/%.o,$(DETECTLIBS))
NOTERMOBJS = $(patsubst %.c,$(OBJDIR)/%.o,$(NOTERMLIBS))
ALLCOBJS = $(COMMONOBJS) $(OBSERVOBJS) $(DETECTOBJS) $(NOTERMOBJS)
#MALCOBJS = $(patsubst %.c,$(OBJDIR)/%.o,$(MALCLIBS))
THOROBJS = $(patsubst %.c,$(OBJDIR)/%.o,$(THORLIBS))
PROGNAMES = hat-check hat-stack hat-view hat-trail hat-observe hat-detect \
hat-anim hat-explore hat-cover black-hat hat-nonterm pretty-hat \
hat-delta
PROGS = $(patsubst %, $(DEST)/%, $(PROGNAMES))
all: $(OBJDIR) $(PROGS)
objdir: $(OBJDIR)
clean:
rm -f $(ALLCOBJS)
hmake -realclean -hc=$(HC) -d$(OBJDIR) \
HatObserve HatTrail HatDetect HatStackText HatExplore HatCoverText \
SrcRefViewer HatAnim BlackHat HatNonTerm PrettyHat
realclean: clean
rm -f $(PROGS)
$(OBJDIR):
mkdir -p $(OBJDIR)
VERSIONING = -DVERSION="\"$(HATVERSION)\"" -DFILEVERSION="\"$(HATFILEVERSION)\""
# libraries and tools
$(ALLCOBJS) : $(OBJDIR)/%.o : %.c
$(CC) $(OPT) -I$(INCDIR) $(VERSIONING) -c $< -o $@ $(GLIB_CFLAGS)
$(OBJDIR)/artutils.o: artutils.h pathutils.h
$(OBJDIR)/observeutils.o: artutils.h observeutils.h finitemap.h checkglib.h
$(OBJDIR)/finitemap.o: finitemap.h checkglib.h
$(OBJDIR)/hat-names.o: artutils.h finitemap.h checkglib.h
$(OBJDIR)/parentset.o: parentset.h
$(OBJDIR)/detectutils.o: artutils.h parentset.h
$(DEST)/hat-stack-c: hat-stack.c artutils.h $(COMMONOBJS)
$(CC) $(OPT) -I$(INCDIR) hat-stack.c $(COMMONOBJS) -o $(DEST)/hat-stack\
$(GLIB_LINK)
$(DEST)/hat-trail: HatTrail.hs LowLevel.hs SExp.hs PrettyLibHighlight.hs \
HighlightStyle.hs Run.hs FFIExtensions.hs Ident.hs \
CommonUI.hs SrcRef.hs $(COMMONOBJS)
hmake -hc=$(HC) $(HMAKEFLAGS) HatTrail $(COMMONOBJS) \
-d$(OBJDIR) $(shell echo $(LIBCOMPAT)) $(GLIB_LINK)
mv $(OBJDIR)/HatTrail$(EXE) $(DEST)/hat-trail$(EXE)
$(DEST)/hat-stack: HatStackText.hs HatStack.hs LowLevel.hs SExp.hs PrettyLibHighlight.hs \
HighlightStyle.hs FFIExtensions.hs Ident.hs SrcRef.hs \
$(COMMONOBJS)
hmake -hc=$(HC) $(HMAKEFLAGS) HatStackText $(COMMONOBJS) \
-d$(OBJDIR) $(shell echo $(LIBCOMPAT)) $(GLIB_LINK)
mv $(OBJDIR)/HatStackText$(EXE) $(DEST)/hat-stack$(EXE)
$(DEST)/hat-cover: HatCover.hs HatCoverText.hs LowLevel.hs FFIExtensions.hs SrcRef.hs \
HighlightStyle.hs $(COMMONOBJS)
hmake -hc=$(HC) $(HMAKEFLAGS) HatCoverText $(COMMONOBJS) \
-d$(OBJDIR) $(shell echo $(LIBCOMPAT)) $(GLIB_LINK)
mv $(OBJDIR)/HatCoverText$(EXE) $(DEST)/hat-cover$(EXE)
$(DEST)/hat-view: SrcRefViewer.hs HighlightStyle.hs Run.hs
hmake -hc=$(HC) $(HMAKEFLAGS) SrcRefViewer \
-d$(OBJDIR) $(shell echo $(LIBCOMPAT))
mv $(OBJDIR)/SrcRefViewer$(EXE) $(DEST)/hat-view$(EXE)
$(DEST)/hat-observe: HatObserve.hs Observe.hs LowLevel.hs SExp.hs Ident.hs \
PrettyLibHighlight.hs HighlightStyle.hs Run.hs \
FFIExtensions.hs Pattern.hs ParseLib.hs Idents.hs \
CmdLine.hs CommonUI.hs SrcRef.hs \
$(COMMONOBJS) $(OBSERVOBJS)
hmake -hc=$(HC) $(HMAKEFLAGS) HatObserve \
$(COMMONOBJS) $(OBSERVOBJS) -d$(OBJDIR) \
$(shell echo $(LIBCOMPAT)) $(GLIB_CFLAGS) $(GLIB_LINK)
mv $(OBJDIR)/HatObserve$(EXE) $(DEST)/hat-observe$(EXE)
$(DEST)/hat-detect: HatDetect.hs Detect.hs LowLevel.hs SExp.hs Ident.hs \
PrettyLibHighlight.hs HighlightStyle.hs Run.hs \
FFIExtensions.hs CmdLine.hs CommonUI.hs SrcRef.hs \
NodeExp.hs EDT.hs \
$(COMMONOBJS) $(DETECTOBJS)
hmake -hc=$(HC) $(HMAKEFLAGS) HatDetect \
$(COMMONOBJS) $(DETECTOBJS) -d$(OBJDIR) \
$(shell echo $(LIBCOMPAT)) $(GLIB_LINK)
mv $(OBJDIR)/HatDetect$(EXE) $(DEST)/hat-detect$(EXE)
# Olaf's experimental tool
$(DEST)/hat-explore: HatExplore.hs HighlightStyle.hs Run.hs LowLevel.hs\
HighlightStyle.hs FFIExtensions.hs Ident.hs SrcRef.hs \
$(COMMONOBJS) $(DETECTOBJS)
hmake -hc=$(HC) $(HMAKEFLAGS) HatExplore \
$(COMMONOBJS) $(DETECTOBJS) -d$(OBJDIR) \
$(shell echo $(LIBCOMPAT)) $(GLIB_LINK)
mv $(OBJDIR)/HatExplore$(EXE) $(DEST)/hat-explore$(EXE)
# Colin's tools
$(DEST)/hat-check: hat-check.c
$(CC) hat-check.c -o $(DEST)/hat-check -I$(INCDIR) $(VERSIONING) \
$(shell echo $(LIBCOMPAT))
# Thorsten's libraries and tools
$(THOROBJS) : $(OBJDIR)/%.o : %.c
$(CC) -c -o $@ $<
$(OBJDIR)/hashtable.o: hashtable.h
#$(OBJDIR)/detect.o : detect.h FunTable.h hatinterface.h Expressions.h nodelist.h hashtable.h
# Tom Davie's tools
$(DEST)/hat-anim: HatAnim.hs NodeExp.hs $(COMMONOBJS)
hmake -hc=$(HC) $(HMAKEFLAGS) HatAnim \
$(COMMONOBJS) $(DETECTOBJS) -d$(OBJDIR)
$(shell echo $(LIBCOMPAT))
mv $(OBJDIR)/HatAnim$(EXE) $(DEST)/hat-anim$(EXE)
$(DEST)/pretty-hat: PrettyHat.hs Pretty.hs NodeExp.hs EDT.hs $(COMMONOBJS)
hmake -hc=$(HC) $(HMAKEFLAGS) PrettyHat \
$(COMMONOBJS) $(DETECTOBJS) -d$(OBJDIR) \
$(shell echo $(LIBCOMPAT))
mv $(OBJDIR)/PrettyHat$(EXE) $(DEST)/pretty-hat$(EXE)
$(DEST)/hat-delta: HatDelta.hs Detect.hs LowLevel.hs SExp.hs Ident.hs \
PrettyLibHighlight.hs HighlightStyle.hs Run.hs \
FFIExtensions.hs CmdLine.hs CommonUI.hs SrcRef.hs \
NodeExp.hs EDT.hs Slice.hs \
$(COMMONOBJS) $(DETECTOBJS)
hmake -hc=$(HC) $(HMAKEFLAGS) HatDelta \
$(COMMONOBJS) $(DETECTOBJS) -d$(OBJDIR) \
$(shell echo $(LIBCOMPAT)) $(GLIB_LINK)
mv $(OBJDIR)/HatDelta$(EXE) $(DEST)/hat-delta$(EXE)
# Mike Dodds tools
$(DEST)/black-hat: BlackHat.hs LowLevel.hs SExp.hs PrettyLibHighlight.hs \
HighlightStyle.hs Run.hs FFIExtensions.hs NonTermLib.hs \
$(COMMONOBJS) $(NOTERMOBJS)
hmake -hc=$(HC) $(HMAKEFLAGS) BlackHat $(COMMONOBJS) $(NOTERMOBJS) \
-d$(OBJDIR) $(shell echo $(LIBCOMPAT)) $(GLIB_LINK)
mv $(OBJDIR)/BlackHat$(EXE) $(DEST)/black-hat$(EXE)
$(DEST)/hat-nonterm: HatNonTerm.hs LowLevel.hs SExp.hs PrettyLibHighlight.hs \
HighlightStyle.hs Run.hs FFIExtensions.hs NonTermLib.hs \
$(COMMONOBJS) $(NOTERMOBJS)
hmake -hc=$(HC) $(HMAKEFLAGS) HatNonTerm $(COMMONOBJS) $(NOTERMOBJS) \
-d$(OBJDIR) $(shell echo $(LIBCOMPAT)) $(GLIB_LINK)
mv $(OBJDIR)/HatNonTerm$(EXE) $(DEST)/hat-nonterm$(EXE)
syntax highlighted by Code2HTML, v. 0.9.1