Better interface for setup of encoding.
[gedcom-parse.git] / Makefile
1 # $Id$
2 # $Name$
3
4 YACC=bison
5 LEX=flex
6
7 CFLAGS=-g -W -Wall -pedantic
8 YFLAGS=--debug --defines
9 LFLAGS=-8
10
11 gedcom_parse:   standalone.o lex.gedcom_1byte_.o lex.gedcom_hilo_.o \
12                 lex.gedcom_lohi_.o gedcom.tab.o message.o multilex.o \
13                 encoding.o
14         $(CC) $(LDFLAGS) $^ $(LOADLIBES) $(LDLIBS) -o $@
15
16 libgedcom.so:
17
18 lex.gedcom_1byte_.c:    gedcom_1byte.lex gedcom.tab.h gedcom.h multilex.h
19         $(LEX) $(LFLAGS) -Pgedcom_1byte_ gedcom_1byte.lex
20
21 lex.gedcom_hilo_.c:     gedcom_hilo.lex gedcom.tab.h gedcom.h multilex.h
22         $(LEX) $(LFLAGS) -Pgedcom_hilo_ gedcom_hilo.lex
23
24 lex.gedcom_lohi_.c:     gedcom_lohi.lex gedcom.tab.h gedcom.h multilex.h
25         $(LEX) $(LFLAGS) -Pgedcom_lohi_ gedcom_lohi.lex
26
27 gedcom.tab.c gedcom.tab.h:      gedcom.y gedcom.h
28         $(YACC) $(YFLAGS) --name-prefix=gedcom_ gedcom.y
29
30 clean:
31         rm -f core gedcom_parse test_* *.o lex.gedcom_* \
32         gedcom.tab.* gedcom.output
33
34 # Lexer test programs
35
36 test_1byte:     lex.gedcom_1byte_.test.o message.o encoding.o
37         $(CC) $(LDFLAGS) $^ $(LOADLIBES) $(LDLIBS) -o $@
38
39 lex.gedcom_1byte_.test.o:       lex.gedcom_1byte_.c
40         $(CC) -DLEXER_TEST -c $(CPPFLAGS) $(CFLAGS) $^ -o $@
41
42 test_hilo:      lex.gedcom_hilo_.test.o message.o encoding.o
43         $(CC) $(LDFLAGS) $^ $(LOADLIBES) $(LDLIBS) -o $@
44
45 lex.gedcom_hilo_.test.o:        lex.gedcom_hilo_.c
46         $(CC) -DLEXER_TEST -c $(CPPFLAGS) $(CFLAGS) $^ -o $@
47
48 test_lohi:      lex.gedcom_lohi_.test.o message.o encoding.o
49         $(CC) $(LDFLAGS) $^ $(LOADLIBES) $(LDLIBS) -o $@
50
51 lex.gedcom_lohi_.test.o:        lex.gedcom_lohi_.c
52         $(CC) -DLEXER_TEST -c $(CPPFLAGS) $(CFLAGS) $^ -o $@
53
54 # Test of parser
55
56 test:   gedcom_parse
57         @for file in t/*.ged; do \
58           echo "=== testing $$file"; \
59           ./gedcom_parse $$file; \
60         done