mirror of
https://git.proxmox.com/git/mirror_corosync
synced 2025-10-18 13:43:02 +00:00

Signed-off-by: Jan Friesse <jfriesse@redhat.com> Reviewed-by: Fabio M. Di Nitto <fdinitto@redhat.com>
99 lines
3.6 KiB
Makefile
99 lines
3.6 KiB
Makefile
#
|
|
# Copyright (c) 2012 Red Hat, Inc.
|
|
#
|
|
# Authors: Angus Salkeld
|
|
#
|
|
# 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.
|
|
|
|
# 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
|
|
|
|
AM_CFLAGS = -fPIC
|
|
|
|
INCLUDES = -I$(top_builddir)/include -I$(top_srcdir)/include
|
|
|
|
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
|