]> git.sur5r.net Git - kconfig-frontends/blob - Makefile.am
434db5d3f956f2969f61567ceebedad57352d6d8
[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 .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:
95 BUILT_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:
100 MAINTAINERCLEANFILES += \
101         libs/parser/hconf.c \
102         libs/parser/lconf.c \
103         libs/parser/yconf.c
104 EXTRA_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
110 pkgconfigdir = $(libdir)/pkgconfig
111 pkgconfig_DATA = libs/parser/kconfig-parser.pc
112 DISTCLEANFILES += libs/parser/kconfig-parser.pc
113 EXTRA_DIST += libs/parser/kconfig-parser.pc.in
114
115 #--------------------------
116 # lxdialog lib (for mconf)
117 if COND_lxdialog
118
119 noinst_LIBRARIES += libs/lxdialog/libkconfig-lxdialog.a
120
121 libs_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
129 libs_lxdialog_libkconfig_lxdialog_a_CPPFLAGS = \
130         $(AM_CPPFLAGS) \
131         $(ncurses_mconf_CPPFLAGS) \
132         $(intl_CPPFLAGS)
133 libs_lxdialog_liblxdialog_a_CFLAGS = \
134         $(AM_CFLAGS) \
135         $(kf_CFLAGS)
136
137 endif # COND_lxdialog
138
139 #--------------------------
140 # kconfig meta frontend
141 if COND_images
142
143 noinst_LIBRARIES += libs/images/libkconfig-images.a
144
145 libs_images_libkconfig_images_a_SOURCES = libs/images/images.c_orig
146 nodist_libs_images_libkconfig_images_a_SOURCES = libs/images/images.c
147
148 libs/images/images.c: libs/images/images.c_orig
149         $(AM_V_GEN)$(SED) -e 's/^static //' $< >$@
150
151 libs/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
155 BUILT_SOURCES += \
156         libs/images/images.c \
157         libs/images/images.h
158 CLEANFILES += \
159         libs/images/images.c \
160         libs/images/images.h
161
162 endif # COND_images
163
164 #===============================================================================
165 # Frontends
166
167 #--------------------------
168 # kconfig meta frontend
169 if COND_kconfig
170
171 bin_SCRIPTS += frontends/kconfig
172
173 frontends/kconfig: frontends/kconfig.in
174         $(MKDIR_P) $(@D)
175         $(AM_V_GEN)$(SED) -e 's/@KCFG_LIST@/$(kcfg_list)/g' \
176                 $< >$@
177         @chmod +x $@
178
179 EXTRA_DIST += frontends/kconfig.in
180
181 endif # COND_kconfig
182
183 #--------------------------
184 # conf frontend
185 if COND_conf
186
187 bin_PROGRAMS += frontends/conf/kconfig-conf
188
189 frontends_conf_kconfig_conf_SOURCES = frontends/conf/conf.c
190 frontends_conf_kconfig_conf_CPPFLAGS = \
191         $(AM_CPPFLAGS) \
192         $(intl_CPPFLAGS) \
193         -I$(top_srcdir)/libs/parser
194 frontends_conf_kconfig_conf_CFLAGS = \
195         $(AM_CFLAGS) \
196         $(kf_CFLAGS)
197 frontends_conf_kconfig_conf_LDADD = \
198         $(top_builddir)/libs/parser/libkconfig-parser.la \
199         $(intl_LIBS) \
200         $(conf_EXTRA_LIBS)
201
202 endif # COND_conf
203
204 #--------------------------
205 # mconf frontend
206 if COND_mconf
207
208 bin_PROGRAMS += frontends/mconf/kconfig-mconf
209
210 frontends_mconf_kconfig_mconf_SOURCES = frontends/mconf/mconf.c
211 frontends_mconf_kconfig_mconf_CPPFLAGS = \
212         $(AM_CPPFLAGS) \
213         $(ncurses_mconf_CPPFLAGS) \
214         $(intl_CPPFLAGS) \
215         -I$(top_srcdir)/libs \
216         -I$(top_srcdir)/libs/parser
217 frontends_mconf_kconfig_mconf_CFLAGS = \
218         $(AM_CFLAGS) \
219         $(kf_CFLAGS)
220 frontends_mconf_kconfig_mconf_LDADD = \
221         $(top_builddir)/libs/parser/libkconfig-parser.la \
222         $(top_builddir)/libs/lxdialog/libkconfig-lxdialog.a \
223         $(intl_LIBS) $(ncurses_LIBS) $(mconf_EXTRA_LIBS)
224
225 endif # COND_mconf
226
227 #--------------------------
228 # nconf frontend
229 if COND_nconf
230
231 bin_PROGRAMS += frontends/nconf/kconfig-nconf
232
233 frontends_nconf_kconfig_nconf_SOURCES = \
234         frontends/nconf/nconf.c \
235         frontends/nconf/nconf.gui.c \
236         frontends/nconf/nconf.h
237 frontends_nconf_kconfig_nconf_CPPFLAGS = \
238         $(AM_CPPFLAGS) \
239         $(intl_CPPFLAGS) \
240         $(ncurses_nconf_CPPFLAGS) \
241         -I$(top_srcdir)/libs/parser
242 frontends_nconf_kconfig_nconf_CFLAGS = \
243         $(AM_CFLAGS) \
244         $(kf_CFLAGS)
245 frontends_nconf_kconfig_nconf_LDADD = \
246         $(top_builddir)/libs/parser/libkconfig-parser.la \
247         $(intl_LIBS) $(ncurses_panel_menu_LIBS) $(ncurses_LIBS) \
248         $(nconf_EXTRA_LIBS)
249
250 endif # COND_nconf
251
252 #--------------------------
253 # gconf frontend
254 if COND_gconf
255
256 bin_PROGRAMS += frontends/gconf/kconfig-gconf
257
258 frontends_gconf_kconfig_gconf_SOURCES = \
259         frontends/gconf/gconf.c \
260         frontends/gconf/gconf.glade
261 frontends_gconf_kconfig_gconf_CPPFLAGS = \
262         $(AM_CPPFLAGS) \
263         $(intl_CPPFLAGS) \
264         -I$(top_srcdir)/libs/parser \
265         -I$(top_builddir)/libs/images \
266         -DGUI_PATH='"$(pkgdatadir)/gconf.glade"'
267 frontends_gconf_kconfig_gconf_CFLAGS = \
268         $(AM_CFLAGS) \
269         $(kf_CFLAGS) \
270         $(gtk_CFLAGS)
271 frontends_gconf_kconfig_gconf_LDADD = \
272         $(top_builddir)/libs/parser/libkconfig-parser.la \
273         $(top_builddir)/libs/images/libkconfig-images.a \
274         $(intl_LIBS) \
275         $(gtk_LIBS) \
276         $(gconf_EXTRA_LIBS)
277 frontends_gconf_kconfig_gconfdir = $(pkgdatadir)
278 frontends_gconf_kconfig_gconf_DATA = frontends/gconf/gconf.glade
279
280 EXTRA_DIST += frontends/gconf/gconf.c.patch
281
282 endif # COND_gconf
283
284 #--------------------------
285 # gconf frontend
286 if COND_qconf
287
288 bin_PROGRAMS += frontends/qconf/kconfig-qconf
289
290 frontends_qconf_kconfig_qconf_SOURCES = \
291         frontends/qconf/qconf.cc \
292         frontends/qconf/qconf.h
293 BUILT_SOURCES += frontends/qconf/qconf.moc
294 frontends_qconf_kconfig_qconf_CPPFLAGS = \
295         $(AM_CPPFLAGS) \
296         $(intl_CPPFLAGS) \
297         -I$(top_srcdir)/libs/parser \
298         -I$(top_builddir)/libs/images \
299         -I$(top_builddir)/frontends/qconf
300 frontends_qconf_kconfig_qconf_CXXFLAGS = \
301         $(AM_CXXFLAGS) \
302         $(kf_CFLAGS) \
303         $(Qt5_CFLAGS) \
304         -fPIC -std=c++11
305 frontends_qconf_kconfig_qconf_LDADD = \
306         $(top_builddir)/libs/parser/libkconfig-parser.la \
307         $(top_builddir)/libs/images/libkconfig-images.a \
308         $(intl_LIBS) $(Qt5_LIBS) $(qconf_EXTRA_LIBS)
309
310 AM_V_MOC = $(AM_V_MOC_$(V))
311 AM_V_MOC_ = $(AM_V_MOC_$(AM_DEFAULT_VERBOSITY))
312 AM_V_MOC_0 = @echo "  MOC     " $@;
313 AM_V_MOC_1 =
314
315 .h.moc:
316         $(AM_V_MOC)$(MOC) -i $< -o $@
317
318 CLEANFILES += frontends/qconf/qconf.moc
319 EXTRA_DIST += frontends/qconf/qconf.cc.patch
320
321 endif # COND_qconf
322
323 #===============================================================================
324 # Utilities
325 if COND_utils
326
327 bin_SCRIPTS += utils/kconfig-tweak
328 dist_bin_SCRIPTS += utils/kconfig-diff utils/kconfig-merge
329
330 if COND_utils_gettext
331 MAYBE_utils_gettext = utils/kconfig-gettext
332 endif
333 bin_PROGRAMS += $(MAYBE_utils_gettext)
334
335 utils_kconfig_gettext_SOURCES = utils/gettext.c
336 utils_kconfig_gettext_CPPFLAGS = \
337         $(AM_CPPFLAGS) \
338         -I$(top_srcdir)/libs/parser
339 utils_kconfig_gettext_CFLAGS = \
340         $(AM_CFLAGS) \
341         $(kf_CFLAGS)
342 utils_kconfig_gettext_LDADD = \
343         $(top_builddir)/libs/parser/libkconfig-parser.la \
344         $(intl_LIBS)
345
346 CLEANFILES += utils/kconfig-tweak
347 EXTRA_DIST += \
348         utils/kconfig-tweak.in \
349         utils/kconfig-tweak.in.patch
350
351 utils/kconfig-tweak: utils/kconfig-tweak.in
352         $(MKDIR_P) $(@D)
353         $(AM_V_GEN)$(SED) -e "s/@CONFIG_@/$(config_prefix)/g" \
354                 $< >$@
355         @chmod +x $@
356
357 endif # COND_utils
358
359 #===============================================================================
360 # Misc. scripts
361 EXTRA_DIST += \
362         scripts/ksync.sh \
363         scripts/ksync.list \
364         scripts/version.sh