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