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