summaryrefslogtreecommitdiff
path: root/misc/tools/kconfig-frontends/libs/parser/Makefile.am
diff options
context:
space:
mode:
Diffstat (limited to 'misc/tools/kconfig-frontends/libs/parser/Makefile.am')
-rw-r--r--misc/tools/kconfig-frontends/libs/parser/Makefile.am46
1 files changed, 46 insertions, 0 deletions
diff --git a/misc/tools/kconfig-frontends/libs/parser/Makefile.am b/misc/tools/kconfig-frontends/libs/parser/Makefile.am
new file mode 100644
index 000000000..ad6e5aa8b
--- /dev/null
+++ b/misc/tools/kconfig-frontends/libs/parser/Makefile.am
@@ -0,0 +1,46 @@
+SUFFIXES = .gperf
+
+lib_LTLIBRARIES = libkconfig-parser.la
+libkconfig_parser_la_SOURCES = yconf.y
+dist_EXTRA_libkconfig_parser_la_SOURCES = \
+ hconf.gperf lconf.l \
+ confdata.c menu.c symbol.c util.c \
+ expr.c expr.h lkc.h lkc_proto.h
+libkconfig_parser_la_CPPFLAGS = -DROOTMENU="\"$(root_menu)\"" \
+ -DCONFIG_=\"$(config_prefix)\" \
+ $(intl_CPPFLAGS)
+libkconfig_parser_la_CFLAGS = $(AM_CFLAGS) $(kf_CFLAGS)
+libkconfig_parser_la_LDFLAGS = -release $(KCONFIGPARSER_LIB_VERSION) -no-undefined
+libkconfig_parser_la_LIBADD = $(intl_LIBS)
+
+kconfig_includedir = $(includedir)/kconfig
+kconfig_include_HEADERS = lkc.h expr.h lkc_proto.h
+
+BUILT_SOURCES = hconf.c lconf.c
+CLEANFILES = hconf.c lconf.c yconf.c
+EXTRA_DIST = yconf.y.patch
+
+AM_V_GPERF = $(AM_V_GPERF_$(V))
+AM_V_GPERF_ = $(AM_V_GPERF_$(AM_DEFAULT_VERBOSITY))
+AM_V_GPERF_0 = @echo " GPERF " $@;
+
+.gperf.c:
+ $(AM_V_GPERF)$(GPERF) -t --output-file $@ -a -C -E -g -k 1,3,$$ -p -t $<
+
+# The following rule produces a warning:
+# libs/parser/Makefile.am:41: user target `.l.c' defined here...
+# /usr/share/automake-1.11/am/lex.am: ... overrides Automake target
+# `.l.c' defined here
+#
+# This is expected, and can't be avoided (for now).
+# That's because, when working with lex+yacc sources, the default is to
+# build each files searately, and then link them together into the final
+# output. But the Linux kernel's parser simply #include-s the lexer,
+# so we can't put lconf.l into the _SOURCES (it's in EXTRA_SOURCES),
+# and thus automake does not catch the need to call lex.
+# Secondly, when flex is told to change the symbols' prefix (kconfig
+# uses zconf in lieue of the original yy), then the output file is
+# also renamed, but automake does not now that, and make would fail
+# because it would think no file was generated.
+.l.c:
+ $(AM_V_LEX)$(LEXCOMPILE) -o$@ $<