]> git.sur5r.net Git - kconfig-frontends/blob - Makefile.am
Makefile: comment tricky yconf condition
[kconfig-frontends] / Makefile.am
1 ACLOCAL_AMFLAGS = -I scripts/.autostuff/m4
2 MAKEFLAGS = $(SILENT_MAKEFLAGS_$(V))
3 SILENT_MAKEFLAGS_ = $(SILENT_MAKEFLAGS_$(AM_DEFAULT_VERBOSITY))
4 SILENT_MAKEFLAGS_0 = --no-print-directory -s
5 SILENT_MAKEFLAGS_1 =
6
7 EXTRA_DIST = .version
8
9 bin_PROGRAMS =
10 bin_SCRIPTS =
11 dist_bin_SCRIPTS =
12
13 lib_LTLIBRARIES =
14 noinst_LIBRARIES =
15
16 CLEANFILES =
17 DISTCLEANFILES =
18 BUILT_SOURCES =
19
20 #===============================================================================
21 # Docs
22 dist_doc_DATA = \
23         docs/kconfig-language.txt \
24         docs/kconfig.txt
25
26 #===============================================================================
27 # Libraries
28
29 SUFFIXES = .gperf
30
31 lib_LTLIBRARIES += libs/parser/libkconfig-parser.la
32 libs_parser_libkconfig_parser_la_SOURCES = libs/parser/yconf.y
33 dist_EXTRA_libs_parser_libkconfig_parser_la_SOURCES = \
34         libs/parser/hconf.gperf \
35         libs/parser/lconf.l \
36         libs/parser/confdata.c \
37         libs/parser/menu.c \
38         libs/parser/symbol.c \
39         libs/parser/util.c \
40         libs/parser/expr.c \
41         libs/parser/expr.h \
42         libs/parser/lkc.h \
43         libs/parser/lkc_proto.h
44 libs_parser_libkconfig_parser_la_CPPFLAGS = \
45         -DROOTMENU="\"$(root_menu)\"" \
46         -DCONFIG_=\"$(config_prefix)\" \
47         -DGPERF_LEN_TYPE="$(GPERF_LEN_TYPE)" \
48         $(intl_CPPFLAGS) \
49         -I$(top_srcdir)/libs/parser \
50         -I$(top_builddir)/libs/parser
51 libs_parser_libkconfig_parser_la_CFLAGS = \
52         $(AM_CFLAGS) \
53         $(kf_CFLAGS)
54 libs_parser_libkconfig_parser_la_LDFLAGS = \
55         -release $(KCONFIGPARSER_LIB_VERSION) \
56         -no-undefined
57 libs_parser_libkconfig_parser_la_LIBADD = $(intl_LIBS)
58
59 libs_parser_kconfig_includedir = $(includedir)/kconfig
60 libs_parser_kconfig_include_HEADERS = \
61         libs/parser/list.h \
62         libs/parser/lkc.h \
63         libs/parser/expr.h \
64         libs/parser/lkc_proto.h
65
66 AM_V_GPERF = $(AM_V_GPERF_$(V))
67 AM_V_GPERF_ = $(AM_V_GPERF_$(AM_DEFAULT_VERBOSITY))
68 AM_V_GPERF_0 = @echo "  GPERF   " $@;
69 AM_V_GPERF_1 =
70
71 .gperf.c:
72         $(AM_V_GPERF)$(GPERF) -t --output-file $@ -a -C -E -g -k 1,3,$$ -p -t $<
73
74 # The following rule may produce a warning with some versions of automake:
75 #   Makefile.am:85: user target `.l.c' defined here...
76 #   /usr/share/automake-1.11/am/lex.am: ... overrides Automake target
77 #   `.l.c' defined here
78 #
79 # This is expected, and can't be avoided (for now).
80 # That's because, when working with lex+yacc sources, the default is to
81 # build each files searately, and then link them together into the final
82 # output. But the Linux kernel's parser simply #include-s the lexer,
83 # so we can't put lconf.l into the _SOURCES (it's in EXTRA_SOURCES),
84 # and thus automake does not catch the need to call lex.
85 # Secondly, when flex is told to change the symbols' prefix (kconfig
86 # uses zconf in lieue of the original yy), then the output file is
87 # also renamed, but automake does not now that, and make would fail
88 # because it would think no file was generated.
89 .l.c:
90         $(AM_V_LEX)$(LEXCOMPILE) -o$@ $<
91
92 # yconf.c not listed, because it is the real _SOURCES, but others are
93 # in _EXTRA_SOURCES (above), so must be listed:
94 BUILT_SOURCES += \
95         libs/parser/hconf.c \
96         libs/parser/lconf.c
97 # Still, .c files generated from .y files are not cleaned by default,
98 # so yconf.c must be explicitly listed:
99 CLEANFILES += \
100         libs/parser/hconf.c \
101         libs/parser/lconf.c \
102         libs/parser/yconf.c
103 EXTRA_DIST += \
104         libs/parser/hconf.c \
105         libs/parser/hconf.gperf.patch \
106         libs/parser/yconf.y.patch
107
108 # libs/parser/kconfig-parser.pc generated by AC_CONFIG_FILES in configure.ac
109 pkgconfigdir = $(libdir)/pkg-config
110 pkgconfig_DATA = libs/parser/kconfig-parser.pc
111 DISTCLEANFILES += libs/parser/kconfig-parser.pc
112 EXTRA_DIST += libs/parser/kconfig-parser.pc.in
113
114 #--------------------------
115 # lxdialog lib (for mconf)
116 if COND_lxdialog
117
118 noinst_LIBRARIES += libs/lxdialog/libkconfig-lxdialog.a
119
120 libs_lxdialog_libkconfig_lxdialog_a_SOURCES = \
121         libs/lxdialog/checklist.c \
122         libs/lxdialog/dialog.h \
123         libs/lxdialog/inputbox.c \
124         libs/lxdialog/menubox.c \
125         libs/lxdialog/textbox.c \
126         libs/lxdialog/util.c \
127         libs/lxdialog/yesno.c
128 libs_lxdialog_libkconfig_lxdialog_a_CPPFLAGS = \
129         $(AM_CPPFLAGS) \
130         $(ncurses_mconf_CPPFLAGS) \
131         $(intl_CPPFLAGS)
132 libs_lxdialog_liblxdialog_a_CFLAGS = \
133         $(AM_CFLAGS) \
134         $(kf_CFLAGS)
135
136 endif # COND_lxdialog
137
138 #--------------------------
139 # kconfig meta frontend
140 if COND_images
141
142 noinst_LIBRARIES += libs/images/libkconfig-images.a
143
144 libs_images_libkconfig_images_a_SOURCES = libs/images/images.c_orig
145 nodist_libs_images_libkconfig_images_a_SOURCES = libs/images/images.c
146
147 libs/images/images.c: libs/images/images.c_orig
148         $(AM_V_GEN)$(SED) -e 's/^static //' $< >$@
149
150 libs/images/images.h: libs/images/images.c_orig
151         $(AM_V_GEN)$(SED) -e '/^static \(const char \*xpm_\(.\{1,\}\)\[\]\) = {/!d; s//extern \1;/' \
152                 $< >$@
153
154 BUILT_SOURCES += \
155         libs/images/images.c \
156         libs/images/images.h
157 CLEANFILES += \
158         libs/images/images.c \
159         libs/images/images.h
160
161 endif # COND_images
162
163 #===============================================================================
164 # Frontends
165
166 #--------------------------
167 # kconfig meta frontend
168 if COND_kconfig
169
170 bin_SCRIPTS += frontends/kconfig
171
172 frontends/kconfig: frontends/kconfig.in
173         $(AM_V_GEN)$(SED) -e 's/@KCFG_LIST@/$(kcfg_list)/g' \
174                 $< >$@
175         @chmod +x $@
176
177 EXTRA_DIST += frontends/kconfig.in
178
179 endif # COND_kconfig
180
181 #--------------------------
182 # conf frontend
183 if COND_conf
184
185 bin_PROGRAMS += frontends/conf/kconfig-conf
186
187 frontends_conf_kconfig_conf_SOURCES = frontends/conf/conf.c
188 frontends_conf_kconfig_conf_CPPFLAGS = \
189         $(AM_CPPFLAGS) \
190         $(intl_CPPFLAGS) \
191         -I$(top_srcdir)/libs/parser
192 frontends_conf_kconfig_conf_CFLAGS = \
193         $(AM_CFLAGS) \
194         $(kf_CFLAGS)
195 frontends_conf_kconfig_conf_LDADD = \
196         $(top_builddir)/libs/parser/libkconfig-parser.la \
197         $(intl_LIBS) \
198         $(conf_EXTRA_LIBS)
199
200 endif # COND_conf
201
202 #--------------------------
203 # mconf frontend
204 if COND_mconf
205
206 bin_PROGRAMS += frontends/mconf/kconfig-mconf
207
208 frontends_mconf_kconfig_mconf_SOURCES = frontends/mconf/mconf.c
209 frontends_mconf_kconfig_mconf_CPPFLAGS = \
210         $(AM_CPPFLAGS) \
211         $(ncurses_mconf_CPPFLAGS) \
212         $(intl_CPPFLAGS) \
213         -I$(top_srcdir)/libs \
214         -I$(top_srcdir)/libs/parser
215 frontends_mconf_kconfig_mconf_CFLAGS = \
216         $(AM_CFLAGS) \
217         $(kf_CFLAGS)
218 frontends_mconf_kconfig_mconf_LDADD = \
219         $(top_builddir)/libs/parser/libkconfig-parser.la \
220         $(top_builddir)/libs/lxdialog/libkconfig-lxdialog.a \
221         $(intl_LIBS) $(ncurses_LIBS) $(mconf_EXTRA_LIBS)
222
223 endif # COND_mconf
224
225 #--------------------------
226 # nconf frontend
227 if COND_nconf
228
229 bin_PROGRAMS += frontends/nconf/kconfig-nconf
230
231 frontends_nconf_kconfig_nconf_SOURCES = \
232         frontends/nconf/nconf.c \
233         frontends/nconf/nconf.gui.c \
234         frontends/nconf/nconf.h
235 frontends_nconf_kconfig_nconf_CPPFLAGS = \
236         $(AM_CPPFLAGS) \
237         $(intl_CPPFLAGS) \
238         $(ncurses_nconf_CPPFLAGS) \
239         -I$(top_srcdir)/libs/parser
240 frontends_nconf_kconfig_nconf_CFLAGS = \
241         $(AM_CFLAGS) \
242         $(kf_CFLAGS)
243 frontends_nconf_kconfig_nconf_LDADD = \
244         $(top_builddir)/libs/parser/libkconfig-parser.la \
245         $(intl_LIBS) $(ncurses_panel_menu_LIBS) $(ncurses_LIBS) \
246         $(nconf_EXTRA_LIBS)
247
248 endif # COND_nconf
249
250 #--------------------------
251 # gconf frontend
252 if COND_gconf
253
254 bin_PROGRAMS += frontends/gconf/kconfig-gconf
255
256 frontends_gconf_kconfig_gconf_SOURCES = \
257         frontends/gconf/gconf.c \
258         frontends/gconf/gconf.glade
259 frontends_gconf_kconfig_gconf_CPPFLAGS = \
260         $(AM_CPPFLAGS) \
261         $(intl_CPPFLAGS) \
262         -I$(top_srcdir)/libs/parser \
263         -I$(top_builddir)/libs/images \
264         -DGUI_PATH='"$(pkgdatadir)/gconf.glade"'
265 frontends_gconf_kconfig_gconf_CFLAGS = \
266         $(AM_CFLAGS) \
267         $(kf_CFLAGS) \
268         $(gtk_CFLAGS)
269 frontends_gconf_kconfig_gconf_LDADD = \
270         $(top_builddir)/libs/parser/libkconfig-parser.la \
271         $(top_builddir)/libs/images/libkconfig-images.a \
272         $(intl_LIBS) \
273         $(gtk_LIBS) \
274         $(gconf_EXTRA_LIBS)
275 frontends_gconf_kconfig_gconfdir = $(pkgdatadir)
276 frontends_gconf_kconfig_gconf_DATA = frontends/gconf/gconf.glade
277
278 EXTRA_DIST += frontends/gconf/gconf.c.patch
279
280 endif # COND_gconf
281
282 #--------------------------
283 # gconf frontend
284 if COND_qconf
285
286 bin_PROGRAMS += frontends/qconf/kconfig-qconf
287
288 frontends_qconf_kconfig_qconf_SOURCES = \
289         frontends/qconf/qconf.cc \
290         frontends/qconf/qconf.h
291 BUILT_SOURCES += frontends/qconf/qconf.moc
292 frontends_qconf_kconfig_qconf_CPPFLAGS = \
293         $(AM_CPPFLAGS) \
294         $(intl_CPPFLAGS) \
295         -I$(top_srcdir)/libs/parser \
296         -I$(top_builddir)/libs/images \
297         -I$(top_builddir)/frontends/qconf
298 frontends_qconf_kconfig_qconf_CXXFLAGS = \
299         $(AM_CXXFLAGS) \
300         $(kf_CFLAGS) \
301         $(Qt5_CFLAGS) \
302         -fPIC
303 frontends_qconf_kconfig_qconf_LDADD = \
304         $(top_builddir)/libs/parser/libkconfig-parser.la \
305         $(top_builddir)/libs/images/libkconfig-images.a \
306         $(intl_LIBS) $(Qt5_LIBS) $(qconf_EXTRA_LIBS)
307
308 AM_V_MOC = $(AM_V_MOC_$(V))
309 AM_V_MOC_ = $(AM_V_MOC_$(AM_DEFAULT_VERBOSITY))
310 AM_V_MOC_0 = @echo "  MOC     " $@;
311 AM_V_MOC_1 =
312
313 .h.moc:
314         $(AM_V_MOC)$(MOC) -i $< -o $@
315
316 CLEANFILES += frontends/qconf/qconf.moc
317 EXTRA_DIST += frontends/qconf/qconf.cc.patch
318
319 endif # COND_qconf
320
321 #===============================================================================
322 # Utilities
323 if COND_utils
324
325 bin_SCRIPTS += utils/kconfig-tweak
326 dist_bin_SCRIPTS += utils/kconfig-diff utils/kconfig-merge
327
328 if COND_utils_gettext
329 MAYBE_utils_gettext = utils/kconfig-gettext
330 endif
331 bin_PROGRAMS += $(MAYBE_utils_gettext)
332
333 utils_kconfig_gettext_SOURCES = utils/gettext.c
334 utils_kconfig_gettext_CPPFLAGS = \
335         $(AM_CPPFLAGS) \
336         -I$(top_srcdir)/libs/parser
337 utils_kconfig_gettext_CFLAGS = \
338         $(AM_CFLAGS) \
339         $(kf_CFLAGS)
340 utils_kconfig_gettext_LDADD = \
341         $(top_builddir)/libs/parser/libkconfig-parser.la \
342         $(intl_LIBS)
343
344 CLEANFILES += utils/kconfig-tweak
345 EXTRA_DIST += \
346         utils/kconfig-tweak.in \
347         utils/kconfig-tweak.in.patch
348
349 utils/kconfig-tweak: utils/kconfig-tweak.in
350         $(AM_V_GEN)$(SED) -e "s/@CONFIG_@/$(config_prefix)/g" \
351                 $< >$@
352         @chmod +x $@
353
354 endif # COND_utils
355
356 #===============================================================================
357 # Misc. scripts
358 EXTRA_DIST += \
359         scripts/ksync.sh \
360         scripts/ksync.list \
361         scripts/version.sh