+endif # BUILD_LIB_CONSUMER
+
+
+# libfd-tracker
+noinst_LTLIBRARIES += libfd-tracker.la
+libfd_tracker_la_SOURCES = \
+ fd-tracker/fd-tracker.cpp \
+ fd-tracker/fd-tracker.hpp \
+ fd-tracker/inode.cpp \
+ fd-tracker/inode.hpp \
+ fd-tracker/utils.cpp \
+ fd-tracker/utils.hpp \
+ fd-tracker/utils-poll.cpp
+
+
+# libfilter
+noinst_LTLIBRARIES += libfilter.la
+
+libfilter_la_SOURCES = \
+ filter/filter-ast.hpp \
+ filter/filter-ir.hpp \
+ filter/filter-lexer.lpp \
+ filter/filter-parser.ypp \
+ filter/filter-symbols.hpp \
+ filter/filter-visitor-generate-bytecode.cpp \
+ filter/filter-visitor-generate-ir.cpp \
+ filter/filter-visitor-ir-check-binary-op-nesting.cpp \
+ filter/filter-visitor-ir-normalize-glob-patterns.cpp \
+ filter/filter-visitor-ir-validate-globbing.cpp \
+ filter/filter-visitor-ir-validate-string.cpp \
+ filter/filter-visitor-xml.cpp \
+ filter/memstream.hpp
+
+BUILT_SOURCES += filter/filter-parser.hpp
+
+# Disable some warning flags for generated sources.
+FILTER_WARN_FLAGS = \
+ -Wno-null-dereference \
+ -Wno-redundant-decls \
+ -Wno-unused-parameter
+
+libfilter_la_CFLAGS = $(AM_CFLAGS) $(FILTER_WARN_FLAGS)
+libfilter_la_CXXFLAGS = -include filter-symbols.hpp $(AM_CXXFLAGS) $(FILTER_WARN_FLAGS)
+libfilter_la_CPPFLAGS = -I$(srcdir)/filter -I$(builddir)/filter $(AM_CPPFLAGS)
+libfilter_la_LIBADD = libstring-utils.la
+
+AM_YFLAGS = -t -d -v -Wno-yacc
+
+# start with empty files to clean
+CLEANFILES =
+
+if HAVE_BISON
+# we have bison: we can clean the generated parser files
+CLEANFILES += \
+ filter/filter-parser.cpp \
+ filter/filter-parser.hpp \
+ filter/filter-parser.output
+else # HAVE_BISON
+# create target used to stop the build if we want to build the parser,
+# but we don't have the necessary tool to do so
+filter/filter-parser.cpp filter/filter-parser.hpp: filter/filter-parser.ypp
+ @echo "Error: Cannot build target because bison is missing."
+ @echo "Make sure bison is installed and run the configure script again."
+ @false
+
+BUILT_SOURCES += filter/filter-parser.cpp filter/filter-parser.hpp
+endif # HAVE_BISON
+
+if HAVE_FLEX
+# we have flex: we can clean the generated lexer files
+CLEANFILES += filter/filter-lexer.cpp
+else # HAVE_FLEX
+# create target used to stop the build if we want to build the lexer,
+# but we don't have the necessary tool to do so
+filter/filter-lexer.cpp: filter/filter-lexer.lpp
+ @echo "Error: Cannot build target because flex is missing."
+ @echo "Make sure flex is installed and run the configure script again."
+ @false
+
+BUILT_SOURCES += filter/filter-lexer.cpp
+endif # HAVE_FLEX
+
+
+noinst_LTLIBRARIES += libhashtable-lgpl.la
+libhashtable_lgpl_la_SOURCES = \
+ hashtable/seed.cpp \
+ hashtable/utils.cpp \
+ hashtable/utils.hpp
+
+
+noinst_LTLIBRARIES += libhashtable-gpl.la
+libhashtable_gpl_la_SOURCES = \
+ hashtable/hashtable.cpp \
+ hashtable/hashtable.hpp \
+ hashtable/hashtable-symbols.hpp
+
+libhashtable_gpl_la_LIBADD = \
+ $(URCU_LIBS) \
+ $(URCU_CDS_LIBS)
+