+
+# 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.h
+
+
+# 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.h \
+ context.cpp context.h \
+ daemonize.cpp daemonize.h \
+ filter.cpp filter.h \
+ fs-handle.cpp fs-handle.h fs-handle-internal.h \
+ futex.cpp futex.h \
+ index-allocator.cpp index-allocator.h \
+ optional.h \
+ pipe.cpp pipe.h \
+ shm.cpp shm.h \
+ trace-chunk.cpp trace-chunk.h \
+ trace-chunk-registry.h \
+ uuid.cpp uuid.h \
+ waiter.cpp waiter.h
+
+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.h \
+ compat/dirent.h \
+ compat/endian.h \
+ compat/errno.h \
+ compat/fcntl.h \
+ compat/getenv.h \
+ compat/mman.h \
+ compat/netdb.h \
+ compat/path.h \
+ compat/paths.h \
+ compat/poll.cpp \
+ compat/poll.h \
+ compat/pthread.h \
+ compat/socket.h \
+ compat/string.h \
+ compat/tid.h \
+ compat/time.h
+
+
+# libconfig
+noinst_LTLIBRARIES += libconfig.la
+libconfig_la_SOURCES = \
+ config/config-internal.h \
+ config/config-session-abi.h \
+ config/session-config.cpp \
+ config/session-config.h
+
+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.h \
+ consumer/consumer-metadata-cache.cpp \
+ consumer/consumer-metadata-cache.h \
+ consumer/consumer-stream.cpp \
+ consumer/consumer-stream.h \
+ consumer/consumer-testpoint.h \
+ consumer/consumer-timer.cpp \
+ consumer/consumer-timer.h \
+ consumer/metadata-bucket.cpp \
+ consumer/metadata-bucket.h
+
+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.h \
+ fd-tracker/inode.cpp \
+ fd-tracker/inode.h \
+ fd-tracker/utils.cpp \
+ fd-tracker/utils.h \
+ fd-tracker/utils-poll.cpp
+
+
+# libfilter
+noinst_LTLIBRARIES += libfilter.la
+
+libfilter_la_SOURCES = \
+ filter/filter-ast.h \
+ filter/filter-ir.h \
+ filter/filter-lexer.lpp \
+ filter/filter-parser.ypp \
+ filter/filter-symbols.h \
+ 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.h
+
+BUILT_SOURCES += filter/filter-parser.hpp
+
+# Disable some warning flags for generated sources.
+FILTER_WARN_FLAGS = \
+ -Wno-null-dereference
+
+libfilter_la_CFLAGS = $(AM_CFLAGS) $(FILTER_WARN_FLAGS)
+libfilter_la_CXXFLAGS = -include filter-symbols.h $(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.h
+
+
+noinst_LTLIBRARIES += libhashtable-gpl.la
+libhashtable_gpl_la_SOURCES = \
+ hashtable/hashtable.cpp \
+ hashtable/hashtable.h \
+ hashtable/hashtable-symbols.h
+
+libhashtable_gpl_la_LIBADD = \
+ $(URCU_LIBS) \
+ $(URCU_CDS_LIBS)
+
+