diff options
Diffstat (limited to 'lib/common/Makefile.am')
-rw-r--r-- | lib/common/Makefile.am | 124 |
1 files changed, 124 insertions, 0 deletions
diff --git a/lib/common/Makefile.am b/lib/common/Makefile.am new file mode 100644 index 0000000..ef729d4 --- /dev/null +++ b/lib/common/Makefile.am @@ -0,0 +1,124 @@ +# +# Copyright 2004-2023 the Pacemaker project contributors +# +# The version control history for this file may have further details. +# +# This source code is licensed under the GNU General Public License version 2 +# or later (GPLv2+) WITHOUT ANY WARRANTY. +# +include $(top_srcdir)/mk/common.mk + +AM_CPPFLAGS += -I$(top_builddir)/lib/gnu -I$(top_srcdir)/lib/gnu + +## libraries +lib_LTLIBRARIES = libcrmcommon.la +check_LTLIBRARIES = libcrmcommon_test.la + +# Disable -Wcast-qual if used, because we do some hacky casting, +# and because libxml2 has some signatures that should be const but aren't +# for backward compatibility reasons. + +# s390 needs -fPIC +# s390-suse-linux/bin/ld: .libs/ipc.o: relocation R_390_PC32DBL against `__stack_chk_fail@@GLIBC_2.4' can not be used when making a shared object; recompile with -fPIC + +CFLAGS = $(CFLAGS_COPY:-Wcast-qual=) -fPIC + +# Without "." here, check-recursive will run through the subdirectories first +# and then run "make check" here. This will fail, because there's things in +# the subdirectories that need check_LTLIBRARIES built first. Adding "." here +# changes the order so the subdirectories are processed afterwards. +SUBDIRS = . tests + +noinst_HEADERS = crmcommon_private.h mock_private.h + +libcrmcommon_la_LDFLAGS = -version-info 45:0:11 + +libcrmcommon_la_CFLAGS = $(CFLAGS_HARDENED_LIB) +libcrmcommon_la_LDFLAGS += $(LDFLAGS_HARDENED_LIB) + +libcrmcommon_la_LIBADD = @LIBADD_DL@ $(top_builddir)/lib/gnu/libgnu.la + +# If configured with --with-profiling or --with-coverage, BUILD_PROFILING will +# be set and -fno-builtin will be added to the CFLAGS. However, libcrmcommon +# uses the fabs() function which is normally supplied by gcc as one of its +# builtins. Therefore we need to explicitly link against libm here or the +# tests won't link. +if BUILD_PROFILING +libcrmcommon_la_LIBADD += -lm +endif + +# Use += rather than backlashed continuation lines for parsing by bumplibs +libcrmcommon_la_SOURCES = +libcrmcommon_la_SOURCES += acl.c +libcrmcommon_la_SOURCES += agents.c +libcrmcommon_la_SOURCES += alerts.c +libcrmcommon_la_SOURCES += attrs.c +libcrmcommon_la_SOURCES += cib.c +if BUILD_CIBSECRETS +libcrmcommon_la_SOURCES += cib_secrets.c +endif +libcrmcommon_la_SOURCES += cmdline.c +libcrmcommon_la_SOURCES += digest.c +libcrmcommon_la_SOURCES += health.c +libcrmcommon_la_SOURCES += io.c +libcrmcommon_la_SOURCES += ipc_attrd.c +libcrmcommon_la_SOURCES += ipc_client.c +libcrmcommon_la_SOURCES += ipc_common.c +libcrmcommon_la_SOURCES += ipc_controld.c +libcrmcommon_la_SOURCES += ipc_pacemakerd.c +libcrmcommon_la_SOURCES += ipc_schedulerd.c +libcrmcommon_la_SOURCES += ipc_server.c +libcrmcommon_la_SOURCES += iso8601.c +libcrmcommon_la_SOURCES += lists.c +libcrmcommon_la_SOURCES += logging.c +libcrmcommon_la_SOURCES += mainloop.c +libcrmcommon_la_SOURCES += messages.c +libcrmcommon_la_SOURCES += nodes.c +libcrmcommon_la_SOURCES += nvpair.c +libcrmcommon_la_SOURCES += operations.c +libcrmcommon_la_SOURCES += options.c +libcrmcommon_la_SOURCES += output.c +libcrmcommon_la_SOURCES += output_html.c +libcrmcommon_la_SOURCES += output_log.c +libcrmcommon_la_SOURCES += output_none.c +libcrmcommon_la_SOURCES += output_text.c +libcrmcommon_la_SOURCES += output_xml.c +libcrmcommon_la_SOURCES += patchset.c +libcrmcommon_la_SOURCES += patchset_display.c +libcrmcommon_la_SOURCES += pid.c +libcrmcommon_la_SOURCES += procfs.c +libcrmcommon_la_SOURCES += remote.c +libcrmcommon_la_SOURCES += results.c +libcrmcommon_la_SOURCES += schemas.c +libcrmcommon_la_SOURCES += scores.c +libcrmcommon_la_SOURCES += strings.c +libcrmcommon_la_SOURCES += utils.c +libcrmcommon_la_SOURCES += watchdog.c +libcrmcommon_la_SOURCES += xml.c +libcrmcommon_la_SOURCES += xml_display.c +libcrmcommon_la_SOURCES += xpath.c + +# +# libcrmcommon_test is used only with unit tests, so we can mock system calls. +# See mock.c for details. +# + +include $(top_srcdir)/mk/tap.mk + +libcrmcommon_test_la_SOURCES = $(libcrmcommon_la_SOURCES) +libcrmcommon_test_la_SOURCES += mock.c +libcrmcommon_test_la_LDFLAGS = $(libcrmcommon_la_LDFLAGS) -rpath $(libdir) $(LDFLAGS_WRAP) +# If GCC emits a builtin function in place of something we've mocked up, that will +# get used instead of the mocked version which leads to unexpected test results. So +# disable all builtins. Older versions of GCC (at least, on RHEL7) will still emit +# replacement code for strdup (and possibly other functions) unless -fno-inline is +# also added. +libcrmcommon_test_la_CFLAGS = $(libcrmcommon_la_CFLAGS) -DPCMK__UNIT_TESTING -fno-builtin -fno-inline +# If -fno-builtin is used, -lm also needs to be added. See the comment at +# BUILD_PROFILING above. +libcrmcommon_test_la_LIBADD = $(libcrmcommon_la_LIBADD) -lcmocka -lm + +nodist_libcrmcommon_test_la_SOURCES = $(nodist_libcrmcommon_la_SOURCES) + +clean-generic: + rm -f *.log *.debug *.xml *~ |