+libcommon_lgpl_la_LIBADD = \
+ libbytecode.la \
+ libcompat.la \
+ libconfig.la \
+ libfilter.la \
+ libhashtable-lgpl.la \
+ $(top_builddir)/src/vendor/msgpack/libmsgpack.la
+
+
+# The libpath static archive contains GPLv2 compatible code. It is
+# meant to be used by GPL executables.
+noinst_LTLIBRARIES += libpath.la
+libpath_la_SOURCES = \
+ path.cpp path.hpp
+
+
+# The libcommon-gpl static archive contains GPLv2 compatible code. It is
+# meant to be used by GPL executables.
+noinst_LTLIBRARIES += libcommon-gpl.la
+libcommon_gpl_la_SOURCES = \
+ common.hpp \
+ context.cpp context.hpp \
+ daemonize.cpp daemonize.hpp \
+ filter.cpp filter.hpp \
+ fs-handle.cpp fs-handle.hpp fs-handle-internal.hpp \
+ futex.cpp futex.hpp \
+ index-allocator.cpp index-allocator.hpp \
+ optional.hpp \
+ pipe.cpp pipe.hpp \
+ shm.cpp shm.hpp \
+ trace-chunk.cpp trace-chunk.hpp \
+ trace-chunk-registry.hpp \
+ uuid.cpp uuid.hpp \
+ waiter.cpp waiter.hpp
+
+libcommon_gpl_la_LIBADD = \
+ libcommon-lgpl.la \
+ libpath.la \
+ libini-config.la \
+ libhashtable-gpl.la \
+ libfd-tracker.la
+
+
+# libcompat
+noinst_LTLIBRARIES += libcompat.la
+libcompat_la_SOURCES = \
+ compat/compat-fcntl.cpp \
+ compat/directory-handle.cpp \
+ compat/directory-handle.hpp \
+ compat/dirent.hpp \
+ compat/endian.hpp \
+ compat/errno.hpp \
+ compat/fcntl.hpp \
+ compat/getenv.hpp \
+ compat/mman.hpp \
+ compat/netdb.hpp \
+ compat/path.hpp \
+ compat/paths.hpp \
+ compat/poll.cpp \
+ compat/poll.hpp \
+ compat/pthread.hpp \
+ compat/socket.hpp \
+ compat/string.hpp \
+ compat/tid.hpp \
+ compat/time.hpp
+
+
+# libconfig
+noinst_LTLIBRARIES += libconfig.la
+libconfig_la_SOURCES = \
+ config/config-internal.hpp \
+ config/config-session-abi.hpp \
+ config/session-config.cpp \
+ config/session-config.hpp
+
+libconfig_la_CPPFLAGS = $(libxml2_CFLAGS) $(AM_CPPFLAGS)
+libconfig_la_LIBADD = ${libxml2_LIBS}
+
+
+if BUILD_LIB_CONSUMER
+noinst_LTLIBRARIES += libconsumer.la
+
+libconsumer_la_SOURCES = \
+ consumer/consumer.cpp \
+ consumer/consumer.hpp \
+ consumer/consumer-metadata-cache.cpp \
+ consumer/consumer-metadata-cache.hpp \
+ consumer/consumer-stream.cpp \
+ consumer/consumer-stream.hpp \
+ consumer/consumer-testpoint.hpp \
+ consumer/consumer-timer.cpp \
+ consumer/consumer-timer.hpp \
+ consumer/metadata-bucket.cpp \
+ consumer/metadata-bucket.hpp
+
+libconsumer_la_LIBADD = \
+ libkernel-consumer.la \
+ librelayd.la \
+ libsessiond-comm.la
+
+if HAVE_LIBLTTNG_UST_CTL
+libconsumer_la_LIBADD += \
+ libust-consumer.la
+endif
+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)
+
+