hammer/src/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