51113795fbc822eba65f98e7f0d15e4d4a87cac2
[gedcom-parse.git] / gedcom / Makefile
1 # $Id$
2 # $Name$
3
4 LIBTOOL=libtool
5 YACC=bison
6 LEX=flex
7
8 LIBPATH=/usr/local/lib
9 DMALLOC_CFLAGS=
10 DMALLOC_LOADLIBES=
11 CFLAGS=-g -W -Wall -pedantic $(DMALLOC_CFLAGS)
12 CPPFLAGS=-I ../include
13 YFLAGS=--debug --defines
14 LFLAGS=-8
15 LOADLIBES=$(DMALLOC_LOADLIBES)
16
17 all:    libgedcom.so
18
19 libgedcom.so:   lex.gedcom_1byte_.lo lex.gedcom_hilo_.lo lex.gedcom_lohi_.lo \
20                 gedcom.tab.lo message.lo multilex.lo encoding.lo interface.lo
21         $(LIBTOOL) $(CC) $(LDFLAGS) $^ $(LOADLIBES) $(LDLIBS) -o libgedcom.la -rpath $(LIBPATH)
22         rm -f libgedcom.so
23         ln -s .libs/libgedcom.so.0.0.0 libgedcom.so
24
25 %.lo:   %.c
26         $(LIBTOOL) $(CC) -c $(CPPFLAGS) $(CFLAGS) $^
27
28 lex.gedcom_1byte_.c:    gedcom_1byte.lex gedcom.tab.h gedcom_internal.h \
29                         multilex.h ../include/gedcom.h \
30                         gedcom_lex_common.c encoding.h
31         $(LEX) $(LFLAGS) -Pgedcom_1byte_ gedcom_1byte.lex
32
33 lex.gedcom_hilo_.c:     gedcom_hilo.lex gedcom.tab.h gedcom_internal.h \
34                         multilex.h ../include/gedcom.h \
35                         gedcom_lex_common.c encoding.h
36         $(LEX) $(LFLAGS) -Pgedcom_hilo_ gedcom_hilo.lex
37
38 lex.gedcom_lohi_.c:     gedcom_lohi.lex gedcom.tab.h gedcom_internal.h \
39                         multilex.h ../include/gedcom.h \
40                         gedcom_lex_common.c encoding.h
41         $(LEX) $(LFLAGS) -Pgedcom_lohi_ gedcom_lohi.lex
42
43 gedcom.tab.c gedcom.tab.h:      gedcom.y gedcom_internal.h ../include/gedcom.h
44         $(YACC) $(YFLAGS) --name-prefix=gedcom_ gedcom.y
45 .PHONY: clean
46 clean:
47         rm -f lexer_* *.o *.lo *.la .libs/* lex.gedcom_* \
48         gedcom.tab.* gedcom.output libgedcom.so
49         rm -rf .libs
50
51 # Lexer test programs
52
53 lexer_1byte:    lex.gedcom_1byte_.test.o message.o encoding.o
54         $(CC) $(LDFLAGS) $^ $(LOADLIBES) $(LDLIBS) -o $@
55
56 lex.gedcom_1byte_.test.o:       lex.gedcom_1byte_.c
57         $(CC) -DLEXER_TEST -c $(CPPFLAGS) $(CFLAGS) $^ -o $@
58
59 test_1byte:     lexer_1byte
60         cat t/allged.ged | ./lexer_1byte
61
62 lexer_hilo:     lex.gedcom_hilo_.test.o message.o encoding.o
63         $(CC) $(LDFLAGS) $^ $(LOADLIBES) $(LDLIBS) -o $@
64
65 lex.gedcom_hilo_.test.o:        lex.gedcom_hilo_.c
66         $(CC) -DLEXER_TEST -c $(CPPFLAGS) $(CFLAGS) $^ -o $@
67
68 test_hilo:      lexer_hilo
69         cat t/uhlcl.ged | ./lexer_hilo
70
71 lexer_lohi:     lex.gedcom_lohi_.test.o message.o encoding.o
72         $(CC) $(LDFLAGS) $^ $(LOADLIBES) $(LDLIBS) -o $@
73
74 lex.gedcom_lohi_.test.o:        lex.gedcom_lohi_.c
75         $(CC) -DLEXER_TEST -c $(CPPFLAGS) $(CFLAGS) $^ -o $@
76
77 test_lohi:      lexer_lohi
78         cat t/ulhcl.ged | ./lexer_lohi
79