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