YACC=bison
LEX=flex
-CFLAGS=-g -W -Wall -pedantic
+DMALLOC_CFLAGS=
+DMALLOC_LOADLIBES=
+CFLAGS=-g -W -Wall -pedantic $(DMALLOC_CFLAGS)
YFLAGS=--debug --defines
LFLAGS=-8
+LOADLIBES=$(DMALLOC_LOADLIBES)
all: ansel_module gedcom_parse
gedcom.tab.c gedcom.tab.h: gedcom.y gedcom.h
$(YACC) $(YFLAGS) --name-prefix=gedcom_ gedcom.y
+.PHONY: clean
clean:
- rm -f core gedcom_parse test_* *.o lex.gedcom_* \
+ rm -f core gedcom_parse lexer_* *.o lex.gedcom_* \
gedcom.tab.* gedcom.output
cd ansel && $(MAKE) clean
# Lexer test programs
-test_1byte: lex.gedcom_1byte_.test.o message.o encoding.o
+lexer_1byte: lex.gedcom_1byte_.test.o message.o encoding.o
$(CC) $(LDFLAGS) $^ $(LOADLIBES) $(LDLIBS) -o $@
lex.gedcom_1byte_.test.o: lex.gedcom_1byte_.c
$(CC) -DLEXER_TEST -c $(CPPFLAGS) $(CFLAGS) $^ -o $@
-test_hilo: lex.gedcom_hilo_.test.o message.o encoding.o
+test_1byte: lexer_1byte
+ cat t/allged.ged | ./lexer_1byte
+
+lexer_hilo: lex.gedcom_hilo_.test.o message.o encoding.o
$(CC) $(LDFLAGS) $^ $(LOADLIBES) $(LDLIBS) -o $@
lex.gedcom_hilo_.test.o: lex.gedcom_hilo_.c
$(CC) -DLEXER_TEST -c $(CPPFLAGS) $(CFLAGS) $^ -o $@
-test_lohi: lex.gedcom_lohi_.test.o message.o encoding.o
+test_hilo: lexer_hilo
+ cat t/uhlcl.ged | ./lexer_hilo
+
+lexer_lohi: lex.gedcom_lohi_.test.o message.o encoding.o
$(CC) $(LDFLAGS) $^ $(LOADLIBES) $(LDLIBS) -o $@
lex.gedcom_lohi_.test.o: lex.gedcom_lohi_.c
$(CC) -DLEXER_TEST -c $(CPPFLAGS) $(CFLAGS) $^ -o $@
+test_lohi: lexer_lohi
+ cat t/ulhcl.ged | ./lexer_lohi
+
# Test of parser
test: all
@export GCONV_PATH=./ansel; \
for file in t/*.ged; do \
echo "=== testing $$file"; \
- ./gedcom_parse $$file; \
+ ./gedcom_parse -2 $$file; \
done
+
+testmem: DMALLOC_CFLAGS=-DMALLOC
+testmem: DMALLOC_LOADLIBES=-ldmalloc
+testmem: clean test