X-Git-Url: https://git.dlugolecki.net.pl/?a=blobdiff_plain;f=Makefile;h=63be764fef6506171d55b17b880983c762bf226b;hb=b4557a98f5842835e9e65370fd062b6d65af0b14;hp=737ba42c068430686d1eb522196773136b0d8875;hpb=be41e74e82065afc92849a2ce5a1c51f69ded908;p=gedcom-parse.git diff --git a/Makefile b/Makefile index 737ba42..63be764 100644 --- a/Makefile +++ b/Makefile @@ -1,14 +1,65 @@ # $Id$ # $Name$ -gedcom_parse: standalone.o lex.gedcom_.o gedcom.tab.o - cc standalone.o lex.gedcom_.o gedcom.tab.o -o gedcom_parse +YACC=bison +LEX=flex -lex.gedcom_.c: gedcom.lex gedcom.tab.h gedcom.h - flex -8 -Pgedcom_ gedcom.lex +CFLAGS=-g -W -Wall -pedantic +YFLAGS=--debug --defines +LFLAGS=-8 + +all: ansel_module gedcom_parse + +gedcom_parse: standalone.o lex.gedcom_1byte_.o lex.gedcom_hilo_.o \ + lex.gedcom_lohi_.o gedcom.tab.o message.o multilex.o \ + encoding.o + $(CC) $(LDFLAGS) $^ $(LOADLIBES) $(LDLIBS) -o $@ + +ansel_module: + cd ansel && $(MAKE) + +lex.gedcom_1byte_.c: gedcom_1byte.lex gedcom.tab.h gedcom.h multilex.h + $(LEX) $(LFLAGS) -Pgedcom_1byte_ gedcom_1byte.lex + +lex.gedcom_hilo_.c: gedcom_hilo.lex gedcom.tab.h gedcom.h multilex.h + $(LEX) $(LFLAGS) -Pgedcom_hilo_ gedcom_hilo.lex + +lex.gedcom_lohi_.c: gedcom_lohi.lex gedcom.tab.h gedcom.h multilex.h + $(LEX) $(LFLAGS) -Pgedcom_lohi_ gedcom_lohi.lex gedcom.tab.c gedcom.tab.h: gedcom.y gedcom.h - bison --debug --defines --name-prefix=gedcom_ gedcom.y + $(YACC) $(YFLAGS) --name-prefix=gedcom_ gedcom.y clean: - rm -f core gedcom_parse *.o lex.gedcom_.c gedcom.tab.* gedcom.output + rm -f core gedcom_parse test_* *.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 + $(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 + $(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 + $(CC) $(LDFLAGS) $^ $(LOADLIBES) $(LDLIBS) -o $@ + +lex.gedcom_lohi_.test.o: lex.gedcom_lohi_.c + $(CC) -DLEXER_TEST -c $(CPPFLAGS) $(CFLAGS) $^ -o $@ + +# Test of parser + +test: all + @export GCONV_PATH=./ansel; \ + for file in t/*.ged; do \ + echo "=== testing $$file"; \ + ./gedcom_parse $$file; \ + done