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