mirror of
https://git.proxmox.com/git/mirror_corosync
synced 2026-01-17 13:20:22 +00:00
report install failures) and it's just overhead since $(INSTALL) can do the same. 2) make sure to create our directories with $(INSTALL). Not sure I did catch them all yet, but at least a good bunch. This also fix the corosync.conf install error I introduced in the previous commit. 3) Handle SONAME automatically. This is the most intrusive change across the board: * configure.in now defines the system wide SOMAJOR, SOMINOR, SOMICRO and SONAME and exports them to the Makefile. * exec/Makefile.am, lib/Makefile.am are now updated to use those vars rather than hardcoded version. 4) Bump the SOMAJOR to 3 as agreed since we did change both API and ABI. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1835 fd59a12c-fef9-0310-b244-a6a79926bd2f
110 lines
4.0 KiB
Makefile
110 lines
4.0 KiB
Makefile
# Copyright (c) 2009 Red Hat, Inc.
|
|
#
|
|
# Authors: Andrew Beekhof
|
|
# Steven Dake (sdake@redhat.com)
|
|
#
|
|
# This software licensed under BSD license, the text of which follows:
|
|
#
|
|
# Redistribution and use in source and binary forms, with or without
|
|
# modification, are permitted provided that the following conditions are met:
|
|
#
|
|
# - Redistributions of source code must retain the above copyright notice,
|
|
# this list of conditions and the following disclaimer.
|
|
# - Redistributions in binary form must reproduce the above copyright notice,
|
|
# this list of conditions and the following disclaimer in the documentation
|
|
# and/or other materials provided with the distribution.
|
|
# - Neither the name of the MontaVista Software, Inc. nor the names of its
|
|
# contributors may be used to endorse or promote products derived from this
|
|
# software without specific prior written permission.
|
|
#
|
|
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
|
# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
|
# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
|
# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
|
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
|
# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
|
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
|
|
# THE POSSIBILITY OF SUCH DAMAGE.
|
|
|
|
MAINTAINERCLEANFILES = Makefile.in
|
|
|
|
AM_CFLAGS = -fPIC
|
|
INCLUDES = -I$(top_builddir)/include -I$(top_srcdir)/include
|
|
DARWIN_OPTS = -dynamiclib -bind_at_load -current_version $(SONAME) -compatibility_version $(SONAME)
|
|
|
|
LCRSO =
|
|
LCR_SRC = objdb.c vsf_ykd.c coroparse.c quorum.c vsf_quorum.c
|
|
TOTEM_SRC = coropoll.c totemip.c totemnet.c totemrrp.c totemsrp.c totemmrp.c totempg.c crypto.c wthread.c
|
|
LOGSYS_SRC = wthread.c logsys.c
|
|
|
|
lib_LIBRARIES = libtotem_pg.a liblogsys.a
|
|
sbin_PROGRAMS = corosync
|
|
SHARED_LIBS =
|
|
|
|
libtotem_pg_a_SOURCES = $(TOTEM_SRC)
|
|
liblogsys_a_SOURCES = $(LOGSYS_SRC)
|
|
|
|
corosync_SOURCES = main.c mempool.c util.c sync.c apidef.c service.c ipc.c \
|
|
timer.c totemconfig.c mainconfig.c quorum.c ../lcr/lcr_ifact.c
|
|
corosync_LDADD = -ltotem_pg -llogsys
|
|
corosync_DEPENDENCIES = libtotem_pg.so.$(SONAME) liblogsys.so.$(SONAME)
|
|
corosync_LDFLAGS = $(DYFLAGS) -L./
|
|
|
|
TOTEM_OBJS = $(TOTEM_SRC:%.c=%.o)
|
|
LOGSYS_OBJS = $(LOGSYS_SRC:%.c=%.o)
|
|
|
|
if BUILD_DYNAMIC
|
|
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))
|
|
LCRSO += $(LCR_SRC:%.c=%.lcrso)
|
|
else
|
|
corosync_SOURCES += $(LCR_SRC)
|
|
endif
|
|
|
|
if BUILD_DARWIN
|
|
%.lcrso: %.o
|
|
$(CC) $(CFLAGS) -bundle -bind_at_load -bundle_loader ./corosync $^ -o $@
|
|
|
|
libtotem_pg.so.$(SONAME): $(TOTEM_OBJS)
|
|
$(CC) $(LDFLAGS) $(DARWIN_OPTS) $(TOTEM_OBJS) -o $@
|
|
|
|
liblogsys.so.$(SONAME): $(LOGSYS_OBJS)
|
|
$(CC) $(LDFLAGS) $(DARWIN_OPTS) $(LOGSYS_OBJS) -o $@
|
|
|
|
else
|
|
|
|
%.lcrso: %.o
|
|
$(CC) $(CFLAGS) -shared -Wl,-soname,$@ $^ -o $@
|
|
|
|
libtotem_pg.so.$(SONAME): $(TOTEM_OBJS)
|
|
$(CC) $(LDFLAGS) -shared -Wl,-soname,libtotem_pg.so.$(SOMAJOR) $^ -o $@
|
|
ln -sf libtotem_pg.so.$(SONAME) libtotem_pg.so
|
|
ln -sf libtotem_pg.so.$(SONAME) libtotem_pg.so.$(SOMAJOR)
|
|
|
|
liblogsys.so.$(SONAME): $(LOGSYS_OBJS)
|
|
$(CC) $(LDFLAGS) -shared -Wl,-soname,liblogsys.so.$(SOMAJOR) $^ -o $@
|
|
ln -sf liblogsys.so.$(SONAME) liblogsys.so
|
|
ln -sf liblogsys.so.$(SONAME) liblogsys.so.$(SOMAJOR)
|
|
endif
|
|
|
|
lint:
|
|
-splint $(LINT_FLAGS) $(CFLAGS) *.c
|
|
|
|
all-local: $(LCRSO) $(SHARED_LIBS)
|
|
@echo Built corosync Executive
|
|
|
|
install-exec-local:
|
|
$(INSTALL) -d $(DESTDIR)/$(libdir)
|
|
$(INSTALL) -m 644 $(SHARED_LIBS) $(SHARED_LIBS_SO) $(SHARED_LIBS_SO_TWO) $(DESTDIR)/$(libdir)
|
|
$(INSTALL) -d $(DESTDIR)/$(LCRSODIR)
|
|
$(INSTALL) -m 644 $(LCRSO) $(DESTDIR)/$(LCRSODIR)
|
|
|
|
clean-local:
|
|
rm -f corosync *.o *.lcrso gmon.out *.da *.bb *.bbg *.so*
|
|
|
|
|