91 lines
1.2 KiB
Makefile
91 lines
1.2 KiB
Makefile
|
|
PARSERS := \
|
|
unimplemented \
|
|
bits \
|
|
token \
|
|
whitespace \
|
|
ignoreseq \
|
|
ch \
|
|
action \
|
|
charset \
|
|
int_range \
|
|
sequence \
|
|
choice \
|
|
nothing \
|
|
end \
|
|
butnot \
|
|
difference \
|
|
many \
|
|
xor \
|
|
optional \
|
|
ignore \
|
|
epsilon \
|
|
and \
|
|
not \
|
|
attr_bool \
|
|
indirect
|
|
|
|
BACKENDS := \
|
|
packrat \
|
|
regex \
|
|
llk \
|
|
lalr \
|
|
glr
|
|
|
|
HAMMER_PARTS := \
|
|
bitreader.o \
|
|
hammer.o \
|
|
bitwriter.o \
|
|
pprint.o \
|
|
allocator.o \
|
|
desugar.o \
|
|
datastructures.o \
|
|
system_allocator.o \
|
|
benchmark.o \
|
|
cfgrammar.o \
|
|
glue.o \
|
|
backends/lr.o \
|
|
backends/lr0.o \
|
|
$(PARSERS:%=parsers/%.o) \
|
|
$(BACKENDS:%=backends/%.o)
|
|
|
|
TESTS := t_benchmark.o \
|
|
t_bitreader.o \
|
|
t_bitwriter.o \
|
|
t_parser.o \
|
|
t_grammar.o \
|
|
t_misc.o \
|
|
test_suite.o
|
|
|
|
OUTPUTS := libhammer.a \
|
|
test_suite.o \
|
|
test_suite \
|
|
$(HAMMER_PARTS) \
|
|
$(TESTS)
|
|
|
|
TOPLEVEL := ../
|
|
|
|
include ../common.mk
|
|
|
|
$(TESTS): CFLAGS += $(TEST_CFLAGS)
|
|
$(TESTS): LDFLAGS += $(TEST_LDFLAGS)
|
|
|
|
CFLAGS += -fPIC
|
|
|
|
all: libhammer.a
|
|
|
|
libhammer.a: $(HAMMER_PARTS)
|
|
|
|
bitreader.o: test_suite.h
|
|
hammer.o: hammer.h
|
|
glue.o: hammer.h glue.h
|
|
|
|
all: libhammer.a
|
|
|
|
test: test_suite
|
|
./test_suite -v
|
|
|
|
test_suite: $(TESTS) libhammer.a
|
|
$(call hush, "Linking $@") $(CC) -o $@ $^ $(LDFLAGS) $(TEST_LDFLAGS)
|
|
|
|
backends/regex.o: backends/regex_debug.c
|