mirror of
https://git.proxmox.com/git/mirror_corosync
synced 2025-08-14 06:28:16 +00:00
build: use libtool for linking
Signed-off-by: Fabio M. Di Nitto <fdinitto@redhat.com> Reviewed-by: Jan Friesse <jfriesse@redhat.com>
This commit is contained in:
parent
02611b3112
commit
76d18f964d
@ -42,9 +42,12 @@ EXTRA_DIST = autogen.sh $(SPEC).in \
|
||||
|
||||
AUTOMAKE_OPTIONS = foreign
|
||||
|
||||
ACLOCAL_AMFLAGS = -I m4
|
||||
|
||||
MAINTAINERCLEANFILES = Makefile.in aclocal.m4 configure depcomp \
|
||||
config.guess config.sub missing install-sh \
|
||||
autoheader automake autoconf test_lense.sh
|
||||
autoheader automake autoconf test_lense.sh \
|
||||
autoscan.log configure.scan ltmain.sh
|
||||
|
||||
dist_doc_DATA = LICENSE INSTALL README.recovery SECURITY TODO AUTHORS
|
||||
|
||||
@ -188,3 +191,6 @@ gen-ChangeLog:
|
||||
_version:
|
||||
cd $(srcdir) && rm -rf autom4te.cache .version && autoreconf -i
|
||||
$(MAKE) $(AM_MAKEFLAGS) Makefile
|
||||
|
||||
maintainer-clean-local:
|
||||
rm -rf m4
|
||||
|
@ -1,5 +1,5 @@
|
||||
#!/bin/sh
|
||||
# Run this to generate all the initial makefiles, etc.
|
||||
|
||||
mkdir -p m4
|
||||
echo Building configuration system...
|
||||
autoreconf -i && echo Now run ./configure and make
|
||||
|
@ -29,70 +29,14 @@
|
||||
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
|
||||
# THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
# Functions
|
||||
uc=$(shell echo $1 | tr a-z A-Z)
|
||||
get_soname=$(if $($(call uc,$1)_SONAME),$($(call uc,$1)_SONAME),$(SONAME))
|
||||
get_major=$(firstword $(subst ., ,$(call get_soname,$1)))
|
||||
get_sharedlibs=$(foreach lib,$(SHARED_LIBS_SO:lib%.so=%),lib$(lib).so.$(call get_soname,$(lib)))
|
||||
get_sharedlibs_two=$(foreach lib,$(SHARED_LIBS_SO:lib%.so=%),lib$(lib).so.$(call get_major,$(lib)))
|
||||
get_linker_add=$(if $($(call uc,$1)_LINKER_ADD),$($(call uc,$1)_LINKER_ADD))
|
||||
MAINTAINERCLEANFILES = Makefile.in
|
||||
|
||||
MAINTAINERCLEANFILES = Makefile.in
|
||||
AM_CFLAGS = -fPIC \
|
||||
-I$(top_builddir)/include \
|
||||
-I$(top_srcdir)/include
|
||||
|
||||
AM_CFLAGS = -fPIC
|
||||
lib_LTLIBRARIES = libcorosync_common.la
|
||||
|
||||
INCLUDES = -I$(top_builddir)/include -I$(top_srcdir)/include
|
||||
libcorosync_common_la_SOURCES = error_conversion.c
|
||||
|
||||
lib_LIBRARIES = libcorosync_common.a
|
||||
SHARED_LIBS_SO = $(lib_LIBRARIES:%.a=%.so)
|
||||
|
||||
libcorosync_common_a_SOURCES = error_conversion.c
|
||||
|
||||
SOMAJOR=4
|
||||
SOMINOR=0
|
||||
SOMICRO=0
|
||||
SONAME=${SOMAJOR}.${SOMINOR}.${SOMICRO}
|
||||
|
||||
if BUILD_DARWIN
|
||||
|
||||
lib%.so: lib%.a $(LIBQB_LIBS)
|
||||
$(CC) $(DARWIN_OPTS) $(call get_linker_add,$*) -Wl,-whole-archive $^ -Wl,-no-whole-archive -o $@
|
||||
ln -sf lib$*.so.$(call get_soname,$*) lib$*.so
|
||||
ln -sf lib$*.so.$(call get_soname,$*) lib$*.so.$(call get_major,$*)
|
||||
|
||||
else
|
||||
|
||||
if BUILD_SOLARIS
|
||||
|
||||
lib%.so.$(SONAME): lib%.a
|
||||
$(LD) $(SOLARIS_OPTS) $(call get_linker_add,$*) -G -whole-archive $^ -no-whole-archive -o $@
|
||||
ln -sf lib$*.so.$(call get_soname,$*) lib$*.so
|
||||
ln -sf lib$*.so.$(call get_soname,$*) lib$*.so.$(call get_major,$*)
|
||||
|
||||
else
|
||||
|
||||
lib%.so: lib%.a
|
||||
$(CC) -shared -o $@.$(call get_soname,$*) \
|
||||
-Wl,-soname=lib$*.so.$(call get_major,$*) \
|
||||
-Wl,-whole-archive $^ -Wl,-no-whole-archive $(LDFLAGS) $(LIBQB_LIBS) $(AM_LDFLAGS) $(call get_linker_add,$*)
|
||||
ln -sf lib$*.so.$(call get_soname,$*) lib$*.so
|
||||
ln -sf lib$*.so.$(call get_soname,$*) lib$*.so.$(call get_major,$*)
|
||||
|
||||
endif
|
||||
|
||||
endif
|
||||
|
||||
all-local: $(get_explicit_sharedlibs) $(SHARED_LIBS_SO)
|
||||
@echo Built shared libs
|
||||
|
||||
install-exec-local:
|
||||
$(INSTALL) -d $(DESTDIR)/$(libdir)
|
||||
$(INSTALL) -m 755 $(get_sharedlibs) $(DESTDIR)/$(libdir)
|
||||
$(CP) -a $(SHARED_LIBS_SO) $(get_sharedlibs_two) $(DESTDIR)/$(libdir)
|
||||
|
||||
uninstall-local:
|
||||
cd $(DESTDIR)/$(libdir)/ && \
|
||||
rm -f $(get_sharedlibs) $(SHARED_LIBS_SO) $(get_sharedlibs_two)
|
||||
|
||||
clean-local:
|
||||
rm -f *.o *.a *.so* *.da *.bb *.bbg
|
||||
libcorosync_common_la_LDFLAGS = -version-number 4:0:0
|
||||
|
18
configure.ac
18
configure.ac
@ -9,10 +9,15 @@ AC_INIT([corosync],
|
||||
[discuss@lists.corosync.org])
|
||||
|
||||
AM_INIT_AUTOMAKE([-Wno-portability])
|
||||
|
||||
LT_PREREQ([2.2.6])
|
||||
LT_INIT
|
||||
|
||||
AM_SILENT_RULES([yes])
|
||||
|
||||
AC_CONFIG_SRCDIR([lib/cpg.c])
|
||||
AC_CONFIG_HEADER([include/corosync/config.h])
|
||||
AC_CONFIG_MACRO_DIR([m4])
|
||||
|
||||
AC_CANONICAL_HOST
|
||||
|
||||
@ -57,11 +62,13 @@ fi
|
||||
sinclude(coroysync-default.m4)
|
||||
|
||||
AC_PROG_CC
|
||||
AC_PROG_CXX
|
||||
AC_PROG_INSTALL
|
||||
AC_PROG_LN_S
|
||||
AC_PROG_MAKE_SET
|
||||
AC_PROG_RANLIB
|
||||
AC_PROG_SED
|
||||
AC_PROG_LIBTOOL
|
||||
|
||||
AC_CHECK_PROGS([GROFF], [groff])
|
||||
AC_CHECK_PROGS([PKGCONFIG], [pkg-config])
|
||||
@ -318,14 +325,12 @@ AM_CONDITIONAL(BUILD_QDEVICES, test x$enable_qdevices = xyes)
|
||||
|
||||
# OS detection
|
||||
# THIS SECTION MUST DIE!
|
||||
CP=cp
|
||||
OS_LDL="-ldl"
|
||||
have_linux="no"
|
||||
case "$host_os" in
|
||||
*linux*)
|
||||
AC_DEFINE_UNQUOTED([COROSYNC_LINUX], [1],
|
||||
[Compiling for Linux platform])
|
||||
OS_CFLAGS=""
|
||||
OS_CPPFLAGS="-D_GNU_SOURCE"
|
||||
OS_LDFLAGS=""
|
||||
OS_DYFLAGS="-rdynamic"
|
||||
@ -335,8 +340,6 @@ case "$host_os" in
|
||||
darwin*)
|
||||
AC_DEFINE_UNQUOTED([COROSYNC_DARWIN], [1],
|
||||
[Compiling for Darwin platform])
|
||||
CP=rsync
|
||||
OS_CFLAGS=""
|
||||
OS_CPPFLAGS=""
|
||||
OS_LDFLAGS=""
|
||||
OS_DYFLAGS=""
|
||||
@ -355,7 +358,6 @@ case "$host_os" in
|
||||
[Compiling for BSD platform])
|
||||
AC_DEFINE_UNQUOTED([MAP_ANONYMOUS], [MAP_ANON],
|
||||
[Shared memory define for Darwin platform])
|
||||
OS_CFLAGS=""
|
||||
OS_CPPFLAGS="-I/usr/local/include"
|
||||
OS_LDFLAGS="-L/usr/local/lib"
|
||||
OS_DYFLAGS="-export-dynamic"
|
||||
@ -377,8 +379,6 @@ case "$host_os" in
|
||||
[Prevent being scheduled RR])
|
||||
AC_DEFINE_UNQUOTED([_SEM_SEMUN_UNDEFINED], [1],
|
||||
[The semun structure is undefined])
|
||||
CP=rsync
|
||||
OS_CFLAGS=""
|
||||
OS_CPPFLAGS="-D_REENTRANT"
|
||||
OS_LDFLAGS=""
|
||||
OS_DYFLAGS="-Wl,-z,lazyload"
|
||||
@ -390,7 +390,6 @@ case "$host_os" in
|
||||
;;
|
||||
esac
|
||||
|
||||
AC_SUBST(CP)
|
||||
# *FLAGS handling goes here
|
||||
|
||||
ENV_CFLAGS="$CFLAGS"
|
||||
@ -596,7 +595,7 @@ if test "x${enable_user_flags}" = xyes; then
|
||||
fi
|
||||
|
||||
# final build of *FLAGS
|
||||
CFLAGS="$ENV_CFLAGS $OPT_CFLAGS $GDB_FLAGS $OS_CFLAGS \
|
||||
CFLAGS="$ENV_CFLAGS $OPT_CFLAGS $GDB_FLAGS \
|
||||
$COVERAGE_CFLAGS $EXTRA_WARNINGS $WERROR_CFLAGS $NSS_CFLAGS"
|
||||
CPPFLAGS="$ENV_CPPFLAGS $ANSI_CPPFLAGS $OS_CPPFLAGS"
|
||||
LDFLAGS="$ENV_LDFLAGS $COVERAGE_LDFLAGS $OS_LDFLAGS"
|
||||
@ -666,7 +665,6 @@ AC_MSG_RESULT([ Extra compiler warnings = ${EXTRA_WARNING}])
|
||||
AC_MSG_RESULT([ Env. defined CFLAG = ${ENV_CFLAGS}])
|
||||
AC_MSG_RESULT([ Env. defined CPPFLAGS = ${ENV_CPPFLAGS}])
|
||||
AC_MSG_RESULT([ Env. defined LDFLAGS = ${ENV_LDFLAGS}])
|
||||
AC_MSG_RESULT([ OS defined CFLAGS = ${OS_CFLAGS}])
|
||||
AC_MSG_RESULT([ OS defined CPPFLAGS = ${OS_CPPFLAGS}])
|
||||
AC_MSG_RESULT([ OS defined LDFLAGS = ${OS_LDFLAGS}])
|
||||
AC_MSG_RESULT([ OS defined LDL = ${OS_LDL}])
|
||||
|
@ -29,40 +29,53 @@
|
||||
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
|
||||
# THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
MAINTAINERCLEANFILES = Makefile.in
|
||||
INCLUDES = -I$(top_builddir)/include -I$(top_srcdir)/include \
|
||||
-I$(top_builddir)/include/corosync
|
||||
MAINTAINERCLEANFILES = Makefile.in
|
||||
|
||||
SOURCES =
|
||||
TEST_AGENTS = cpg_test_agent sam_test_agent votequorum_test_agent
|
||||
TEST_AGENTS = cpg_test_agent \
|
||||
sam_test_agent \
|
||||
votequorum_test_agent
|
||||
|
||||
SHELL_TESTS = mem_leak_test.sh \
|
||||
net_breaker.sh \
|
||||
cmap-dispatch-deadlock.sh \
|
||||
shm_leak_audit.sh
|
||||
|
||||
noinst_HEADERS = common_test_agent.h
|
||||
|
||||
if INSTALL_TESTAGENTS
|
||||
agentdir = $(datadir)/$(PACKAGE)/tests
|
||||
bin_PROGRAMS = $(TEST_AGENTS)
|
||||
dist_agent_SCRIPTS = mem_leak_test.sh net_breaker.sh cmap-dispatch-deadlock.sh shm_leak_audit.sh
|
||||
AM_CFLAGS = -fPIC
|
||||
agentdir = $(datadir)/$(PACKAGE)/tests
|
||||
bin_PROGRAMS = $(TEST_AGENTS)
|
||||
dist_agent_SCRIPTS = $(SHELL_TESTS)
|
||||
else
|
||||
noinst_PROGRAMS = $(TEST_AGENTS)
|
||||
noinst_SCRIPTS = mem_leak_test.sh net_breaker.sh cmap-dispatch-deadlock.sh shm_leak_audit.sh
|
||||
noinst_PROGRAMS = $(TEST_AGENTS)
|
||||
noinst_SCRIPTS = $(SHELL_TESTS)
|
||||
endif
|
||||
|
||||
noinst_HEADERS = common_test_agent.h
|
||||
AM_CPPFLAGS = -I$(top_builddir)/include \
|
||||
-I$(top_srcdir)/include \
|
||||
-I$(top_builddir)/include/corosync
|
||||
|
||||
cpg_test_agent_SOURCES = cpg_test_agent.c common_test_agent.c
|
||||
cpg_test_agent_CFLAGS = $(nss_CFLAGS)
|
||||
cpg_test_agent_LDADD = -lcpg -lcfg -lcorosync_common $(LIBQB_LIBS) $(nss_LIBS)
|
||||
cpg_test_agent_LDFLAGS = -L../../lib -L. -L../../common_lib
|
||||
AM_CFLAGS = -fPIC
|
||||
|
||||
sam_test_agent_SOURCES = sam_test_agent.c common_test_agent.c
|
||||
sam_test_agent_LDADD = -lsam -lquorum -lcmap -lcorosync_common $(LIBQB_LIBS)
|
||||
sam_test_agent_LDFLAGS = -L../../lib -L../../common_lib
|
||||
cpg_test_agent_SOURCES = cpg_test_agent.c common_test_agent.c
|
||||
cpg_test_agent_CFLAGS = $(nss_CFLAGS)
|
||||
cpg_test_agent_LDADD = $(LIBQB_LIBS) $(nss_LIBS) \
|
||||
$(top_builddir)/lib/libcfg.la \
|
||||
$(top_builddir)/lib/libcpg.la \
|
||||
$(top_builddir)/common_lib/libcorosync_common.la
|
||||
|
||||
votequorum_test_agent_SOURCES = votequorum_test_agent.c common_test_agent.c
|
||||
votequorum_test_agent_LDADD = -lvotequorum -lquorum -lcorosync_common $(LIBQB_LIBS)
|
||||
votequorum_test_agent_LDFLAGS = -L../../lib -L../../common_lib
|
||||
sam_test_agent_SOURCES = sam_test_agent.c common_test_agent.c
|
||||
sam_test_agent_LDADD = $(LIBQB_LIBS) \
|
||||
$(top_builddir)/lib/libsam.la \
|
||||
$(top_builddir)/lib/libcmap.la \
|
||||
$(top_builddir)/lib/libquorum.la \
|
||||
$(top_builddir)/common_lib/libcorosync_common.la
|
||||
|
||||
clean-local:
|
||||
rm -f *.o *.a *.so* *.da *.bb *.bbg
|
||||
votequorum_test_agent_SOURCES = votequorum_test_agent.c common_test_agent.c
|
||||
votequorum_test_agent_LDADD = $(LIBQB_LIBS) \
|
||||
$(top_builddir)/lib/libquorum.la \
|
||||
$(top_builddir)/lib/libvotequorum.la \
|
||||
$(top_builddir)/common_lib/libcorosync_common.la
|
||||
|
||||
lint:
|
||||
-splint $(LINT_FLAGS) $(CFLAGS) *.c
|
||||
|
@ -31,83 +31,45 @@
|
||||
|
||||
MAINTAINERCLEANFILES = Makefile.in
|
||||
|
||||
AM_CFLAGS = -fPIC -DLOGCONFIG_USE_ICMAP=1
|
||||
AM_CFLAGS = -fPIC
|
||||
|
||||
INCLUDES = -I$(top_builddir)/include -I$(top_srcdir)/include $(nss_CFLAGS) $(rdmacm_CFLAGS) $(ibverbs_CFLAGS)
|
||||
AM_CPPFLAGS = -DLOGCONFIG_USE_ICMAP=1 \
|
||||
-I$(top_builddir)/include \
|
||||
-I$(top_srcdir)/include \
|
||||
$(nss_CFLAGS) $(rdmacm_CFLAGS) $(ibverbs_CFLAGS)
|
||||
|
||||
noinst_HEADERS = apidef.h cs_queue.h logconfig.h main.h \
|
||||
quorum.h service.h timer.h totemconfig.h \
|
||||
totemmrp.h totemnet.h totemudp.h totemiba.h \
|
||||
totemrrp.h totemudpu.h totemsrp.h util.h vsf.h \
|
||||
schedwrk.h sync.h fsm.h votequorum.h vsf_ykd.h \
|
||||
totemcrypto.h
|
||||
|
||||
TOTEM_SRC = totemip.c totemnet.c totemudp.c \
|
||||
totemudpu.c totemrrp.c totemsrp.c totemmrp.c \
|
||||
totempg.c cs_queue.h totemcrypto.c
|
||||
totempg.c totemcrypto.c
|
||||
|
||||
if BUILD_RDMA
|
||||
TOTEM_SRC += totemiba.c
|
||||
endif
|
||||
|
||||
lib_LIBRARIES = libtotem_pg.a
|
||||
sbin_PROGRAMS = corosync
|
||||
lib_LTLIBRARIES = libtotem_pg.la
|
||||
libtotem_pg_la_SOURCES = $(TOTEM_SRC)
|
||||
libtotem_pg_la_LDFLAGS = -version-number $(subst .,:,$(SONAME))
|
||||
libtotem_pg_la_LIBADD = -lpthread $(nss_LIBS) $(rdmacm_LIBS) $(ibverbs_LIBS)
|
||||
|
||||
libtotem_pg_a_SOURCES = $(TOTEM_SRC)
|
||||
sbin_PROGRAMS = corosync
|
||||
|
||||
corosync_SOURCES = vsf_ykd.c coroparse.c vsf_quorum.c sync.c \
|
||||
logsys.c cfg.c cmap.c cpg.c mon.c pload.c \
|
||||
votequorum.c wd.c util.c schedwrk.c main.c \
|
||||
apidef.c quorum.c icmap.c timer.c \
|
||||
ipc_glue.c service.c logconfig.c totemconfig.c
|
||||
corosync_LDADD = -ltotem_pg -lcorosync_common $(LIBQB_LIBS) $(statgrab_LIBS)
|
||||
corosync_DEPENDENCIES = libtotem_pg.so.$(SONAME) ../common_lib/libcorosync_common.so
|
||||
corosync_LDFLAGS = $(OS_DYFLAGS) -L./ -L../common_lib
|
||||
|
||||
TOTEM_OBJS = $(TOTEM_SRC:%.c=%.o)
|
||||
|
||||
SHARED_LIBS = $(lib_LIBRARIES:%.a=%.so.$(SONAME))
|
||||
SHARED_LIBS_SO = $(SHARED_LIBS:%.so.$(SONAME)=%.so)
|
||||
SHARED_LIBS_SO_TWO = $(SHARED_LIBS:%.so.$(SONAME)=%.so.$(SOMAJOR))
|
||||
|
||||
noinst_HEADERS = apidef.h logconfig.h main.h \
|
||||
quorum.h service.h timer.h totemconfig.h \
|
||||
totemmrp.h totemnet.h totemudp.h totemiba.h totemrrp.h \
|
||||
totemudpu.h totemsrp.h util.h vsf.h schedwrk.h \
|
||||
sync.h fsm.h votequorum.h vsf_ykd.h totemcrypto.h
|
||||
|
||||
if BUILD_DARWIN
|
||||
libtotem_pg.so.$(SONAME): $(TOTEM_OBJS)
|
||||
$(CC) $(LDFLAGS) $(DARWIN_OPTS) $(TOTEM_OBJS) -o $@ -lpthread
|
||||
ln -sf libtotem_pg.so.$(SONAME) libtotem_pg.so
|
||||
ln -sf libtotem_pg.so.$(SONAME) libtotem_pg.so.$(SOMAJOR)
|
||||
|
||||
else
|
||||
|
||||
if BUILD_SOLARIS
|
||||
libtotem_pg.so.$(SONAME): $(TOTEM_OBJS)
|
||||
$(LD) $(LDFLAGS) -G $(TOTEM_OBJS) -o $@ -lpthread
|
||||
ln -sf libtotem_pg.so.$(SONAME) libtotem_pg.so
|
||||
ln -sf libtotem_pg.so.$(SONAME) libtotem_pg.so.$(SOMAJOR)
|
||||
|
||||
else
|
||||
libtotem_pg.so.$(SONAME): $(TOTEM_OBJS)
|
||||
$(CC) -shared -o $@ \
|
||||
-Wl,-soname=libtotem_pg.so.$(SOMAJOR) \
|
||||
$(LDFLAGS) $^ $(nss_LIBS) $(rdmacm_LIBS) $(ibverbs_LIBS) -lpthread
|
||||
ln -sf libtotem_pg.so.$(SONAME) libtotem_pg.so
|
||||
ln -sf libtotem_pg.so.$(SONAME) libtotem_pg.so.$(SOMAJOR)
|
||||
|
||||
endif
|
||||
|
||||
endif
|
||||
corosync_LDADD = libtotem_pg.la ../common_lib/libcorosync_common.la \
|
||||
$(LIBQB_LIBS) $(statgrab_LIBS)
|
||||
corosync_DEPENDENCIES = libtotem_pg.la ../common_lib/libcorosync_common.la
|
||||
|
||||
lint:
|
||||
-splint $(INCLUDES) $(LINT_FLAGS) $(CFLAGS) *.c
|
||||
|
||||
all-local: $(SHARED_LIBS)
|
||||
@echo Built corosync Executive
|
||||
|
||||
install-exec-local:
|
||||
$(INSTALL) -d $(DESTDIR)/$(libdir)
|
||||
$(INSTALL) -m 755 $(SHARED_LIBS) $(DESTDIR)/$(libdir)
|
||||
$(CP) -a $(SHARED_LIBS_SO) $(SHARED_LIBS_SO_TWO) $(DESTDIR)/$(libdir)
|
||||
|
||||
uninstall-local:
|
||||
cd $(DESTDIR)/$(libdir) && \
|
||||
rm -f $(SHARED_LIBS) $(SHARED_LIBS_SO) $(SHARED_LIBS_SO_TWO)
|
||||
|
||||
clean-local:
|
||||
rm -f corosync *.o gmon.out *.da *.bb *.bbg *.so*
|
||||
-splint $(AM_CPPFLAGS) $(LINT_FLAGS) $(CFLAGS) *.c
|
||||
|
105
lib/Makefile.am
105
lib/Makefile.am
@ -30,83 +30,42 @@
|
||||
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
|
||||
# THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
# Functions
|
||||
uc=$(shell echo $1 | tr a-z A-Z)
|
||||
get_soname=$(if $($(call uc,$1)_SONAME),$($(call uc,$1)_SONAME),$(SONAME))
|
||||
get_major=$(firstword $(subst ., ,$(call get_soname,$1)))
|
||||
get_sharedlibs=$(foreach lib,$(SHARED_LIBS_SO:lib%.so=%),lib$(lib).so.$(call get_soname,$(lib)))
|
||||
get_sharedlibs_two=$(foreach lib,$(SHARED_LIBS_SO:lib%.so=%),lib$(lib).so.$(call get_major,$(lib)))
|
||||
get_linker_add=$(if $($(call uc,$1)_LINKER_ADD),$($(call uc,$1)_LINKER_ADD))
|
||||
# Functions to be used at link time (target.lo)
|
||||
get_libname=$(shell echo $1 | sed -e "s/\.lo//")
|
||||
uc=$(shell echo $(call get_libname,$1) | tr a-z A-Z)
|
||||
get_soname=$(subst .,:,$(if $($(call uc,$1)_SONAME),$($(call uc,$1)_SONAME),$(SONAME)))
|
||||
get_major=$(firstword $(subst :, ,$(call get_soname,$1)))
|
||||
|
||||
MAINTAINERCLEANFILES = Makefile.in
|
||||
|
||||
EXTRA_DIST = libcfg.versions libcfg.verso \
|
||||
libcmap.versions libcmap.verso \
|
||||
libcpg.versions libcpg.verso \
|
||||
libquorum.versions libquorum.verso \
|
||||
libsam.versions libsam.verso \
|
||||
libvotequorum.versions libvotequorum.verso
|
||||
|
||||
noinst_HEADERS = util.h
|
||||
|
||||
AM_CPPFLAGS = -I$(top_builddir)/include \
|
||||
-I$(top_srcdir)/include
|
||||
|
||||
AM_CFLAGS = -fPIC
|
||||
|
||||
AM_LDFLAGS = -lpthread -L../common_lib -lcorosync_common
|
||||
# override global LIBS that pulls in lots of craft we don't need here
|
||||
LIBS = -version-number $(call get_soname,$<) \
|
||||
-version-script=$(srcdir)/lib$(call get_libname,$<).versions \
|
||||
-lpthread \
|
||||
$(top_builddir)/common_lib/libcorosync_common.la \
|
||||
$(LIBQB_LIBS)
|
||||
|
||||
INCLUDES = -I$(top_builddir)/include -I$(top_srcdir)/include
|
||||
lib_LTLIBRARIES = libcpg.la libquorum.la libcfg.la \
|
||||
libvotequorum.la libsam.la libcmap.la
|
||||
|
||||
lib_LIBRARIES = libcpg.a libquorum.a libcfg.a \
|
||||
libvotequorum.a libsam.a libcmap.a
|
||||
SHARED_LIBS_SO = $(lib_LIBRARIES:%.a=%.so)
|
||||
|
||||
libcpg_a_SOURCES = cpg.c
|
||||
libcfg_a_SOURCES = cfg.c
|
||||
libquorum_a_SOURCES = quorum.c
|
||||
libvotequorum_a_SOURCES = votequorum.c
|
||||
libcmap_a_SOURCES = cmap.c
|
||||
SAM_LINKER_ADD = -L. -lquorum -lcmap
|
||||
libsam_a_SOURCES = sam.c
|
||||
|
||||
noinst_HEADERS = util.h \
|
||||
libcfg.versions \
|
||||
libcpg.versions \
|
||||
libquorum.versions libvotequorum.versions \
|
||||
libsam.versions libcmap.versions
|
||||
|
||||
if BUILD_DARWIN
|
||||
|
||||
lib%.so: lib%.a $(LIBQB_LIBS)
|
||||
$(CC) $(DARWIN_OPTS) $(call get_linker_add,$*) -Wl,-whole-archive $^ -Wl,-no-whole-archive -o $@
|
||||
ln -sf lib$*.so.$(call get_soname,$*) lib$*.so
|
||||
ln -sf lib$*.so.$(call get_soname,$*) lib$*.so.$(call get_major,$*)
|
||||
|
||||
else
|
||||
|
||||
if BUILD_SOLARIS
|
||||
|
||||
libsam.so.$(SONAME): libcmap.so libquorum.a
|
||||
lib%.so.$(SONAME): lib%.a
|
||||
$(LD) $(SOLARIS_OPTS) $(call get_linker_add,$*) -G -whole-archive $^ -no-whole-archive -o $@
|
||||
ln -sf lib$*.so.$(call get_soname,$*) lib$*.so
|
||||
ln -sf lib$*.so.$(call get_soname,$*) lib$*.so.$(call get_major,$*)
|
||||
|
||||
else
|
||||
|
||||
libsam.so: libcmap.so libquorum.so
|
||||
lib%.so: lib%.a
|
||||
$(CC) -shared -o $@.$(call get_soname,$*) \
|
||||
-Wl,-soname=lib$*.so.$(call get_major,$*) \
|
||||
-Wl,-version-script=$(srcdir)/lib$*.versions \
|
||||
-Wl,-whole-archive $^ -Wl,-no-whole-archive $(LDFLAGS) $(LIBQB_LIBS) $(AM_LDFLAGS) $(call get_linker_add,$*)
|
||||
ln -sf lib$*.so.$(call get_soname,$*) lib$*.so
|
||||
ln -sf lib$*.so.$(call get_soname,$*) lib$*.so.$(call get_major,$*)
|
||||
|
||||
endif
|
||||
|
||||
endif
|
||||
|
||||
all-local: $(get_explicit_sharedlibs) $(SHARED_LIBS_SO)
|
||||
@echo Built shared libs
|
||||
|
||||
install-exec-local:
|
||||
$(INSTALL) -d $(DESTDIR)/$(libdir)
|
||||
$(INSTALL) -m 755 $(get_sharedlibs) $(DESTDIR)/$(libdir)
|
||||
$(CP) -a $(SHARED_LIBS_SO) $(get_sharedlibs_two) $(DESTDIR)/$(libdir)
|
||||
|
||||
uninstall-local:
|
||||
cd $(DESTDIR)/$(libdir)/ && \
|
||||
rm -f $(get_sharedlibs) $(SHARED_LIBS_SO) $(get_sharedlibs_two)
|
||||
|
||||
clean-local:
|
||||
rm -f *.o *.a *.so* *.da *.bb *.bbg
|
||||
libcpg_la_SOURCES = cpg.c
|
||||
libcfg_la_SOURCES = cfg.c
|
||||
libquorum_la_SOURCES = quorum.c
|
||||
libvotequorum_la_SOURCES= votequorum.c
|
||||
libcmap_la_SOURCES = cmap.c
|
||||
libsam_la_SOURCES = sam.c
|
||||
libsam_la_LIBADD = libquorum.la libcmap.la
|
||||
|
@ -30,8 +30,7 @@
|
||||
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
|
||||
# THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
MAINTAINERCLEANFILES = Makefile.in
|
||||
INCLUDES = -I$(top_builddir)/include/corosync -I$(top_srcdir)/include
|
||||
MAINTAINERCLEANFILES = Makefile.in
|
||||
|
||||
EXTRA_DIST = ploadstart.sh
|
||||
|
||||
@ -42,39 +41,27 @@ noinst_PROGRAMS = cpgverify testcpg testcpg2 cpgbench \
|
||||
|
||||
noinst_SCRIPTS = ploadstart
|
||||
|
||||
COMMON_OPTS = -L../lib -L../common_lib -Wl,-rpath,../common_lib
|
||||
AM_CPPFLAGS = -I$(top_builddir)/include/corosync \
|
||||
-I$(top_srcdir)/include \
|
||||
$(nss_CFLAGS)
|
||||
|
||||
testcpg_LDADD = -lcpg $(LIBQB_LIBS)
|
||||
testcpg_LDFLAGS = $(COMMON_OPTS)
|
||||
testcpg2_LDADD = -lcpg $(LIBQB_LIBS)
|
||||
testcpg2_LDFLAGS = $(COMMON_OPTS)
|
||||
testcpgzc_LDADD = -lcpg $(LIBQB_LIBS)
|
||||
testcpgzc_LDFLAGS = $(COMMON_OPTS)
|
||||
testzcgc_LDADD = -lcpg $(LIBQB_LIBS)
|
||||
testzcgc_LDFLAGS = $(COMMON_OPTS)
|
||||
stress_cpgzc_LDADD = -lcpg $(LIBQB_LIBS)
|
||||
stress_cpgzc_LDFLAGS = $(COMMON_OPTS)
|
||||
stress_cpgfdget_LDADD = -lcpg $(LIBQB_LIBS)
|
||||
stress_cpgfdget_LDFLAGS = $(COMMON_OPTS)
|
||||
stress_cpgcontext_LDADD = -lcpg $(LIBQB_LIBS)
|
||||
stress_cpgcontext_LDFLAGS = $(COMMON_OPTS)
|
||||
testquorum_LDADD = -lquorum $(LIBQB_LIBS)
|
||||
testquorum_LDFLAGS = $(COMMON_OPTS)
|
||||
testvotequorum1_LDADD = -lvotequorum $(LIBQB_LIBS)
|
||||
testvotequorum1_LDFLAGS = $(COMMON_OPTS)
|
||||
testvotequorum2_LDADD = -lvotequorum $(LIBQB_LIBS)
|
||||
testvotequorum2_LDFLAGS = $(COMMON_OPTS)
|
||||
cpgverify_CFLAGS = $(nss_CFLAGS)
|
||||
cpgverify_LDADD = -lcpg -ltotem_pg $(LIBQB_LIBS) $(nss_LIBS)
|
||||
cpgverify_LDFLAGS = $(COMMON_OPTS) -L../exec
|
||||
cpgbound_LDADD = -lcpg $(LIBQB_LIBS)
|
||||
cpgbound_LDFLAGS = $(COMMON_OPTS)
|
||||
cpgbench_LDADD = -lcpg $(LIBQB_LIBS)
|
||||
cpgbench_LDFLAGS = $(COMMON_OPTS)
|
||||
cpgbenchzc_LDADD = -lcpg -lcorosync_common $(LIBQB_LIBS)
|
||||
cpgbenchzc_LDFLAGS = $(COMMON_OPTS)
|
||||
testsam_LDADD = -lsam -lcmap -lquorum $(LIBQB_LIBS)
|
||||
testsam_LDFLAGS = $(COMMON_OPTS)
|
||||
AM_CFLAGS = -fPIC
|
||||
|
||||
testcpg_LDADD = $(LIBQB_LIBS) $(top_builddir)/lib/libcpg.la
|
||||
testcpg2_LDADD = $(LIBQB_LIBS) $(top_builddir)/lib/libcpg.la
|
||||
testcpgzc_LDADD = $(LIBQB_LIBS) $(top_builddir)/lib/libcpg.la
|
||||
testzcgc_LDADD = $(LIBQB_LIBS) $(top_builddir)/lib/libcpg.la
|
||||
stress_cpgzc_LDADD = $(LIBQB_LIBS) $(top_builddir)/lib/libcpg.la
|
||||
stress_cpgfdget_LDADD = $(LIBQB_LIBS) $(top_builddir)/lib/libcpg.la
|
||||
stress_cpgcontext_LDADD = $(LIBQB_LIBS) $(top_builddir)/lib/libcpg.la
|
||||
testquorum_LDADD = $(LIBQB_LIBS) $(top_builddir)/lib/libquorum.la
|
||||
testvotequorum1_LDADD = $(LIBQB_LIBS) $(top_builddir)/lib/libvotequorum.la
|
||||
testvotequorum2_LDADD = $(LIBQB_LIBS) $(top_builddir)/lib/libvotequorum.la
|
||||
cpgverify_LDADD = $(LIBQB_LIBS) $(nss_LIBS) $(top_builddir)/lib/libcpg.la
|
||||
cpgbound_LDADD = $(LIBQB_LIBS) $(top_builddir)/lib/libcpg.la
|
||||
cpgbench_LDADD = $(LIBQB_LIBS) $(top_builddir)/lib/libcpg.la
|
||||
cpgbenchzc_LDADD = $(LIBQB_LIBS) $(top_builddir)/lib/libcpg.la
|
||||
testsam_LDADD = $(LIBQB_LIBS) $(top_builddir)/lib/libsam.la
|
||||
|
||||
ploadstart: ploadstart.sh
|
||||
cp $^ $@
|
||||
@ -84,7 +71,7 @@ LINT_FILES1:=$(filter-out sa_error.c, $(wildcard *.c))
|
||||
LINT_FILES:=$(filter-out testparse.c, $(LINT_FILES1))
|
||||
|
||||
lint:
|
||||
-for f in $(LINT_FILES) ; do echo Splint $$f ; splint $(INCLUDES) $(LINT_FLAGS) $(CFLAGS) $$f ; done
|
||||
-for f in $(LINT_FILES) ; do echo Splint $$f ; splint $(AM_CPPFLAGS) $(LINT_FLAGS) $(CFLAGS) $$f ; done
|
||||
|
||||
clean-local:
|
||||
rm -f fdata ploadstart
|
||||
rm -f ploadstart
|
||||
|
@ -29,9 +29,7 @@
|
||||
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
|
||||
# THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
MAINTAINERCLEANFILES = Makefile.in
|
||||
INCLUDES = -I$(top_builddir)/include -I$(top_srcdir)/include \
|
||||
-I$(top_builddir)/include/corosync
|
||||
MAINTAINERCLEANFILES = Makefile.in
|
||||
|
||||
sbin_PROGRAMS = corosync-cfgtool \
|
||||
corosync-keygen \
|
||||
@ -44,40 +42,41 @@ if INSTALL_XMLCONF
|
||||
bin_SCRIPTS += corosync-xmlproc
|
||||
endif
|
||||
|
||||
EXTRA_DIST = $(bin_SCRIPTS) corosync-xmlproc.sh \
|
||||
corosync-notifyd.sysconfig.example \
|
||||
corosync-blackbox.sh
|
||||
|
||||
corosync-xmlproc: corosync-xmlproc.sh
|
||||
sed -e 's#@''DATADIR@#${datadir}#g' $< > $@
|
||||
|
||||
corosync-blackbox: corosync-blackbox.sh
|
||||
sed -e 's#@''LOCALSTATEDIR@#${localstatedir}#g' $< > $@
|
||||
|
||||
AM_CPPFLAGS = -I$(top_builddir)/include \
|
||||
-I$(top_srcdir)/include \
|
||||
-I$(top_builddir)/include/corosync \
|
||||
$(DBUS_CFLAGS)
|
||||
|
||||
EXTRA_DIST = $(bin_SCRIPTS) corosync-xmlproc.sh corosync-notifyd.sysconfig.example \
|
||||
corosync-blackbox.sh
|
||||
corosync_cmapctl_LDADD = $(LIBQB_LIBS) $(top_builddir)/lib/libcmap.la
|
||||
|
||||
COMMON_OPTS = -L../lib -L../common_lib -Wl,-rpath,../common_lib
|
||||
corosync_cfgtool_LDADD = $(LIBQB_LIBS) $(top_builddir)/lib/libcfg.la
|
||||
|
||||
corosync_cmapctl_LDFLAGS= $(COMMON_OPTS)
|
||||
corosync_cmapctl_LDADD = -lcorosync_common -lcmap $(LIBQB_LIBS)
|
||||
corosync_cpgtool_LDADD = $(LIBQB_LIBS) $(top_builddir)/lib/libcfg.la \
|
||||
$(top_builddir)/lib/libcpg.la
|
||||
|
||||
corosync_cfgtool_LDFLAGS= $(COMMON_OPTS)
|
||||
corosync_cfgtool_LDADD = -lcfg $(LIBQB_LIBS)
|
||||
corosync_quorumtool_LDADD = $(LIBQB_LIBS) \
|
||||
$(top_builddir)/lib/libcmap.la \
|
||||
$(top_builddir)/lib/libcfg.la \
|
||||
$(top_builddir)/lib/libquorum.la \
|
||||
$(top_builddir)/lib/libvotequorum.la
|
||||
|
||||
corosync_cpgtool_LDFLAGS= $(COMMON_OPTS)
|
||||
corosync_cpgtool_LDADD = -lcfg -lcpg $(LIBQB_LIBS)
|
||||
|
||||
corosync_quorumtool_LDFLAGS = $(COMMON_OPTS)
|
||||
corosync_quorumtool_LDADD = -lcmap -lcfg -lquorum -lcorosync_common \
|
||||
-lvotequorum $(LIBQB_LIBS)
|
||||
|
||||
corosync_notifyd_CPPFLAGS = $(DBUS_CFLAGS)
|
||||
corosync_notifyd_LDFLAGS = $(COMMON_OPTS)
|
||||
corosync_notifyd_LDADD = -lcfg -lcmap \
|
||||
$(LIBQB_LIBS) $(DBUS_LIBS) $(SNMPLIBS) \
|
||||
-lquorum
|
||||
corosync_notifyd_LDADD = $(LIBQB_LIBS) $(DBUS_LIBS) $(SNMPLIBS) \
|
||||
$(top_builddir)/lib/libcmap.la \
|
||||
$(top_builddir)/lib/libcfg.la \
|
||||
$(top_builddir)/lib/libquorum.la
|
||||
|
||||
lint:
|
||||
-splint $(LINT_FLAGS) $(DBUS_CFLAGS) $(INCLUDES) $(CFLAGS) *.c
|
||||
-splint $(LINT_FLAGS) $(DBUS_CFLAGS) $(AM_CPPFLAGS) $(CFLAGS) *.c
|
||||
|
||||
clean-local:
|
||||
rm -f corosync-xmlproc corosync-blackbox
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user