+# ------------------------------------------------------------------------------
+if ENABLE_COMPAT_LIBS
+
+EXTRA_DIST += \
+ src/compat-libs/linkwarning.h
+
+define generate-fake-lib
+ $(AM_V_at)$(MKDIR_P) $(dir $@)
+ $(AM_V_GEN)sed -r -n 's/^ +(sd_.*);/void new_\1(void);\n__asm__(".symver new_\1,\1@LIBSYSTEMD_209");\nstatic void (*resolve_\1(void)) (void) {\n\treturn new_\1;\n}\nvoid \1(void) __attribute__((ifunc("resolve_\1")));\nobsolete_lib(\1,$(notdir $(basename $<)));\n/p' <$< >$@
+endef
+
+libsystemd_journal_la_SOURCES = \
+ libsystemd-journal.c \
+ src/compat-libs/libsystemd-journal.sym
+
+libsystemd_journal_la_CFLAGS = \
+ $(AM_CFLAGS) \
+ -fvisibility=default \
+ -imacros $(top_srcdir)/src/compat-libs/linkwarning.h \
+ -fno-lto
+
+libsystemd_journal_la_LDFLAGS = \
+ $(AM_LDFLAGS) \
+ -version-info $(LIBSYSTEMD_JOURNAL_CURRENT):$(LIBSYSTEMD_JOURNAL_REVISION):$(LIBSYSTEMD_JOURNAL_AGE) \
+ -Wl,--version-script=$(top_srcdir)/src/compat-libs/libsystemd-journal.sym
+
+libsystemd_journal_la_LIBADD = \
+ libsystemd.la
+
+libsystemd_login_la_SOURCES = \
+ libsystemd-login.c \
+ src/compat-libs/libsystemd-login.sym
+
+libsystemd_login_la_CFLAGS = \
+ $(AM_CFLAGS) \
+ -fvisibility=default \
+ -imacros $(top_srcdir)/src/compat-libs/linkwarning.h \
+ -fno-lto
+
+libsystemd_login_la_LDFLAGS = \
+ $(AM_LDFLAGS) \
+ -version-info $(LIBSYSTEMD_LOGIN_CURRENT):$(LIBSYSTEMD_LOGIN_REVISION):$(LIBSYSTEMD_LOGIN_AGE) \
+ -Wl,--version-script=$(top_srcdir)/src/compat-libs/libsystemd-login.sym
+
+libsystemd_login_la_LIBADD = \
+ libsystemd.la
+
+libsystemd_id128_la_SOURCES = \
+ libsystemd-id128.c \
+ src/compat-libs/libsystemd-id128.sym
+
+libsystemd_id128_la_CFLAGS = \
+ $(libsystemd_login_la_CFLAGS)
+
+libsystemd_id128_la_LDFLAGS = \
+ $(AM_LDFLAGS) \
+ -version-info $(LIBSYSTEMD_ID128_CURRENT):$(LIBSYSTEMD_ID128_REVISION):$(LIBSYSTEMD_ID128_AGE) \
+ -Wl,--version-script=$(top_srcdir)/src/compat-libs/libsystemd-id128.sym
+
+libsystemd_id128_la_LIBADD = \
+ libsystemd.la
+
+libsystemd_daemon_la_SOURCES = \
+ libsystemd-daemon.c \
+ src/compat-libs/libsystemd-daemon.sym
+
+libsystemd_daemon_la_CFLAGS = \
+ $(libsystemd_login_la_CFLAGS)
+
+libsystemd_daemon_la_LDFLAGS = \
+ $(AM_LDFLAGS) \
+ -version-info $(LIBSYSTEMD_DAEMON_CURRENT):$(LIBSYSTEMD_DAEMON_REVISION):$(LIBSYSTEMD_DAEMON_AGE) \
+ -Wl,--version-script=$(top_srcdir)/src/compat-libs/libsystemd-daemon.sym
+
+libsystemd_daemon_la_LIBADD = \
+ libsystemd.la
+
+BUILT_SOURCES += \
+ libsystemd-journal.c \
+ libsystemd-login.c \
+ libsystemd-id128.c \
+ libsystemd-daemon.c
+
+libsystemd-%.c: src/compat-libs/libsystemd-%.sym
+ $(generate-fake-lib)
+
+lib_LTLIBRARIES += \
+ libsystemd-journal.la \
+ libsystemd-login.la \
+ libsystemd-id128.la \
+ libsystemd-daemon.la
+
+pkgconfiglib_DATA += \
+ src/compat-libs/libsystemd-journal.pc \
+ src/compat-libs/libsystemd-login.pc \
+ src/compat-libs/libsystemd-id128.pc \
+ src/compat-libs/libsystemd-daemon.pc
+
+# move lib from $(libdir) to $(rootlibdir) and update devel link, if needed
+compat-lib-install-hook:
+ libname=libsystemd-login.so && $(move-to-rootlibdir)
+ libname=libsystemd-id128.so && $(move-to-rootlibdir)
+ libname=libsystemd-daemon.so && $(move-to-rootlibdir)
+
+compat-lib-uninstall-hook:
+ rm -f $(DESTDIR)$(rootlibdir)/libsystemd-login.so*
+ rm -f $(DESTDIR)$(rootlibdir)/libsystemd-id128.so*
+ rm -f $(DESTDIR)$(rootlibdir)/libsystemd-daemon.so*
+
+INSTALL_EXEC_HOOKS += compat-lib-install-hook
+UNINSTALL_EXEC_HOOKS += compat-lib-uninstall-hook
+
+endif
+
+EXTRA_DIST += \
+ src/compat-libs/libsystemd-journal.pc.in \
+ src/compat-libs/libsystemd-login.pc.in \
+ src/compat-libs/libsystemd-id128.pc.in \
+ src/compat-libs/libsystemd-daemon.pc.in
+