Imported Upstream version 2.5.37
[platform/upstream/flex.git] / Makefile.am
1 # This file is part of flex.
2
3 # Redistribution and use in source and binary forms, with or without
4 # modification, are permitted provided that the following conditions
5 # are met:
6
7 # 1. Redistributions of source code must retain the above copyright
8 #    notice, this list of conditions and the following disclaimer.
9 # 2. Redistributions in binary form must reproduce the above copyright
10 #    notice, this list of conditions and the following disclaimer in the
11 #    documentation and/or other materials provided with the distribution.
12
13 # Neither the name of the University nor the names of its contributors
14 # may be used to endorse or promote products derived from this software
15 # without specific prior written permission.
16
17 # THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
18 # IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
19 # WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
20 # PURPOSE.
21
22 # Notes on building:
23
24 # Possible values for DEFS:
25 #
26 # By default, flex generates 8-bit scanners when using table compression,
27 # and 7-bit scanners when using uncompressed tables (-f or -F options).
28 # For flex to always generate 8-bit scanners, add "-DDEFAULT_CSIZE=256"
29 # to DEFS.
30 #
31 # For Vax/VMS, add "-DVMS" to DEFS.
32 #
33 # For MS-DOS, add "-DMS_DOS" to DEFS.  See the directory MISC/MSDOS for
34 # additional info.
35
36 AM_YFLAGS = -d
37 ACLOCAL_AMFLAGS = -I m4
38 m4 = @M4@
39 indent = @INDENT@
40
41 bin_PROGRAMS = flex
42 lib_LIBRARIES = \
43         libfl.a \
44         libfl_pic.a
45
46 flex_SOURCES = \
47         ccl.c \
48         dfa.c \
49         ecs.c \
50         scanflags.c \
51         gen.c \
52         main.c \
53         misc.c \
54         nfa.c \
55         parse.y \
56         scan.l \
57         skel.c \
58         sym.c \
59         tblcmp.c \
60         yylex.c \
61         options.c \
62         scanopt.c \
63         buf.c \
64         tables.c \
65         tables_shared.c \
66         filter.c \
67         regex.c
68
69
70 LDADD = lib/libcompat.a
71
72 libfl_a_SOURCES = \
73         libmain.c \
74         libyywrap.c
75
76 libfl_pic_a_SOURCES = \
77         libmain.c \
78         libyywrap.c
79
80 libfl_pic_a_CFLAGS =  \
81         -fPIC         \
82         $(AM_CFLAGS)
83
84 noinst_HEADERS = \
85         flexdef.h \
86         flexint.h \
87         version.h \
88         options.h \
89         scanopt.h \
90         tables.h \
91         tables_shared.h
92
93 include_HEADERS = \
94         FlexLexer.h
95
96 dist_doc_DATA = \
97         AUTHORS \
98         COPYING \
99         NEWS \
100         ONEWS \
101         README \
102         README.cvs \
103         TODO
104
105 EXTRA_DIST = \
106         .indent.pro \
107         ABOUT-NLS \
108         INSTALL \
109         autogen.sh \
110         flex.skl \
111         mkskel.sh \
112         config.rpath \
113         gettext.h
114
115 BUILT_SOURCES = \
116         skel.c
117
118 SUBDIRS = \
119         lib \
120         . \
121         doc \
122         examples \
123         po \
124         tools \
125         tests
126
127 localedir = $(datadir)/locale
128 AM_CPPFLAGS = -DLOCALEDIR=\"$(localedir)\" -I$(top_srcdir)/intl
129 LIBS = @LIBINTL@ @LIBS@
130
131 skel.c: flex.skl mkskel.sh flexint.h tables_shared.h
132         sed 's/m4_/m4postproc_/g; s/m4preproc_/m4_/g' $(srcdir)/flex.skl | $(m4) -P -DFLEX_MAJOR_VERSION=`echo $(VERSION)|cut -f 1 -d .` -DFLEX_MINOR_VERSION=`echo $(VERSION)|cut -f 2 -d .` -DFLEX_SUBMINOR_VERSION=`echo $(VERSION)|cut -f 3 -d .` | sed 's/m4postproc_/m4_/g' | $(SHELL) $(srcdir)/mkskel.sh  >skel.c
133
134 # Explicitly describe dependencies.
135 # You can recreate this with `gcc -I. -MM *.c'
136 buf.o: buf.c flexdef.h flexint.h
137 ccl.o: ccl.c flexdef.h flexint.h
138 dfa.o: dfa.c flexdef.h flexint.h tables.h tables_shared.h
139 ecs.o: ecs.c flexdef.h flexint.h
140 scanflags.o: scanflags.c flexdef.h flexint.h
141 gen.o: gen.c flexdef.h flexint.h tables.h tables_shared.h
142 libmain.o: libmain.c
143 libyywrap.o: libyywrap.c
144 main.o: main.c flexdef.h flexint.h version.h options.h scanopt.h \
145  tables.h tables_shared.h
146 misc.o: misc.c flexdef.h flexint.h tables.h tables_shared.h
147 nfa.o: nfa.c flexdef.h flexint.h
148 options.o: options.c options.h scanopt.h flexdef.h flexint.h
149 parse.o: parse.c flexdef.h flexint.h tables.h tables_shared.h
150 scan.o: scan.c flexdef.h flexint.h parse.h
151 scanopt.o: scanopt.c flexdef.h flexint.h scanopt.h
152 skel.o: skel.c flexdef.h flexint.h
153 sym.o: sym.c flexdef.h flexint.h
154 tables.o: tables.c flexdef.h flexint.h tables.h tables_shared.h
155 tables_shared.o: tables_shared.c flexdef.h flexint.h tables.h \
156  tables_shared.h
157 tblcmp.o: tblcmp.c flexdef.h flexint.h
158 yylex.o: yylex.c flexdef.h flexint.h parse.h
159 filter.o: filter.c flexdef.h flexint.h
160
161 # Create the ChangeLog, but only if we're inside a git working directory
162
163 ChangeLog: $(srcdir)/tools/git2cl
164         if [ -d $(srcdir)/.git ] ; then \
165                 $(srcdir)/tools/git2cl > $@ \
166         ; fi
167
168 # Run GNU indent on sources. Don't run this unless all the sources compile cleanly.
169 #
170 # Whole idea:
171 #   1. Check for .indent.pro, otherwise indent will use unknown
172 #      settings, or worse, the GNU defaults.)
173 #   2. Check that this is GNU indent.
174 #   3. Make sure to process only the NON-generated .c and .h files.
175 #   4. Run indent twice per file. The first time is a test.
176 #      Otherwise, indent overwrites your file even if it fails!
177 indentfiles = \
178         buf.c \
179         ccl.c \
180         dfa.c \
181         ecs.c \
182         scanflags.c \
183         filter.c \
184         flexdef.h \
185         gen.c \
186         libmain.c \
187         libyywrap.c \
188         main.c \
189         misc.c \
190         nfa.c \
191         options.c \
192         options.h \
193         regex.c \
194         scanopt.c \
195         scanopt.h \
196         sym.c \
197         tables.c \
198         tables.h \
199         tables_shared.c \
200         tables_shared.h \
201         tblcmp.c
202
203 indent:
204         if [ -f .indent.pro ] ; then \
205         for f in $(indentfiles);\
206         do\
207                 echo indenting $$f ;\
208                 $(indent) < $$f >/dev/null && indent $$f || echo $$f FAILED to indent ;\
209         done \
210         fi
211
212 install-exec-hook:
213         cd $(DESTDIR)/$(bindir) && \
214                 $(LN_S) -f flex$(EXEEXT) flex++$(EXEEXT)
215
216 .PHONY: ChangeLog tags indent