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