aa33f87832862d291a379278f5998e295e1c3982
[gedcom-parse.git] / gedcom / Makefile.am
1 ## Process this file with automake to produce Makefile.in
2 # $Id$
3 # $Name$
4
5 SUBDIRS = calendar .
6
7 localedir = $(datadir)/locale
8 INCLUDES = -I $(srcdir)/../intl -I $(srcdir)/../include -I $(srcdir)/calendar \
9            -DPKGDATADIR=\"$(pkgdatadir)\" -DLOCALEDIR=\"$(localedir)\"
10 YFLAGS   = --debug --defines
11 LFLAGS   = -8
12 CFLAGS   = -g -O2 -W -Wall -pedantic
13
14 lib_LTLIBRARIES = libgedcom.la
15 libgedcom_la_SOURCES = lex.gedcom_1byte_.c \
16                        lex.gedcom_hilo_.c \
17                        lex.gedcom_lohi_.c \
18                        lex.gedcom_date_.c \
19                        gedcom.tab.c \
20                        gedcom_date.tab.c \
21                        message.c \
22                        multilex.c \
23                        encoding.c \
24                        interface.c \
25                        date.c \
26                        hash.c \
27                        xref.c \
28                        age.c \
29                        compat.c
30 libgedcom_la_LDFLAGS = -export-dynamic -version-info $(LIBVERSION) $(LIBICONV)
31 libgedcom_la_LIBADD  = calendar/libcalendar.la
32 BUILT_SOURCES = lex.gedcom_1byte_.c \
33                 lex.gedcom_hilo_.c \
34                 lex.gedcom_lohi_.c \
35                 lex.gedcom_date_.c \
36                 gedcom.tab.c \
37                 gedcom.tab.h \
38                 gedcom.tabgen.h \
39                 gedcom_date.tab.c \
40                 gedcom_date.tab.h \
41                 gedcom_date.tabgen.h
42 noinst_HEADERS = encoding.h \
43                  gedcom_internal.h \
44                  interface.h \
45                  multilex.h \
46                  date.h \
47                  hash.h \
48                  xref.h \
49                  age.h \
50                  compat.h
51 EXTRA_DIST = gedcom.y \
52              gedcom_date.y \
53              gedcom_1byte.lex \
54              gedcom_hilo.lex \
55              gedcom_lohi.lex \
56              gedcom_date.lex \
57              gedcom_lex_common.c
58
59 gedcom.tab.c gedcom.tab.h:      gedcom.y
60         $(YACC) $(YFLAGS) --name-prefix=gedcom_ $<
61
62 gedcom_date.tab.c gedcom_date.tab.h:    gedcom_date.y
63         $(YACC) $(YFLAGS) --name-prefix=gedcom_date_ $<
64
65 lex.gedcom_1byte_.c:    gedcom_1byte.lex
66         $(LEX) $(LFLAGS) -Pgedcom_1byte_ $<
67
68 lex.gedcom_hilo_.c:     gedcom_hilo.lex
69         $(LEX) $(LFLAGS) -Pgedcom_hilo_ $<
70
71 lex.gedcom_lohi_.c:     gedcom_lohi.lex
72         $(LEX) $(LFLAGS) -Pgedcom_lohi_ $<
73
74 lex.gedcom_date_.c:     gedcom_date.lex
75         $(LEX) $(LFLAGS) -Pgedcom_date_ $<
76
77 lex.gedcom_1byte_.c:    gedcom.tabgen.h gedcom_lex_common.c
78 lex.gedcom_hilo_.c:     gedcom.tabgen.h gedcom_lex_common.c
79 lex.gedcom_lohi_.c:     gedcom.tabgen.h gedcom_lex_common.c
80 lex.gedcom_date_.c:     gedcom_date.tabgen.h
81
82 # Lexer test programs
83
84 EXTRA_PROGRAMS = lexer_1byte lexer_hilo lexer_lohi
85 lexer_1byte_SOURCES =
86 lexer_1byte_LDADD = lex.gedcom_1byte_.test.o message.o encoding.o hash.o
87 lexer_hilo_SOURCES =
88 lexer_hilo_LDADD = lex.gedcom_hilo_.test.o message.o encoding.o hash.o
89 lexer_lohi_SOURCES =
90 lexer_lohi_LDADD = lex.gedcom_lohi_.test.o message.o encoding.o hash.o
91
92 lex.gedcom_1byte_.test.o:       lex.gedcom_1byte_.c
93         $(COMPILE) -DLEXER_TEST -c $(CPPFLAGS) $(CFLAGS) $< -o $@
94 lex.gedcom_hilo_.test.o:        lex.gedcom_hilo_.c
95         $(COMPILE) -DLEXER_TEST -c $(CPPFLAGS) $(CFLAGS) $< -o $@
96 lex.gedcom_lohi_.test.o:        lex.gedcom_lohi_.c
97         $(COMPILE) -DLEXER_TEST -c $(CPPFLAGS) $(CFLAGS) $< -o $@
98
99 clean-local:
100         rm -f $(EXTRA_PROGRAMS)
101
102 %.tabgen.h:     %.tab.h
103         if [ ! -r $(srcdir)/$@ ] ; \
104         then \
105           touch $(srcdir)/$@; \
106         fi
107         if ! diff -q $< $(srcdir)/$@ > /dev/null; \
108         then \
109           rm $(srcdir)/$@; \
110           cp $(srcdir)/$< $(srcdir)/$@; \
111         fi