![Fabrice Fontaine](/assets/img/avatar_default.png)
Version 2.5.0 enables the new libmpdec++ library by default: http://www.bytereef.org/mpdecimal/changelog.html#version-2-5-0 Adapt the existing patch, to allow static build of this C++ library. Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com> [yann.morin.1998@free.fr: - meld the C++-enabling and the static-patch commits into one ] Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
148 lines
4.2 KiB
Diff
148 lines
4.2 KiB
Diff
From c349964887901848fb4cd5db53a5bcb6dae27aaa Mon Sep 17 00:00:00 2001
|
|
From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
|
|
Date: Sun, 23 Nov 2014 10:16:33 +0100
|
|
Subject: [PATCH] Add minimal support for --{enable,disable}-{shared,static}
|
|
|
|
mpdecimal uses autoconf, but not automake or libtool, so this commit
|
|
adds some basic handling of --{enable,disable}-{shared,static}, so
|
|
that building the shared library can be disabled in pure static
|
|
library contexts.
|
|
|
|
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
|
|
[Fabrice: update for 2.5.0 (add libmpdec++)]
|
|
Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
|
|
---
|
|
Makefile.in | 6 ++++++
|
|
configure.ac | 13 +++++++++++++
|
|
libmpdec/Makefile.in | 11 ++++++++++-
|
|
3 files changed, 29 insertions(+), 1 deletion(-)
|
|
|
|
diff --git a/Makefile.in b/Makefile.in
|
|
index 2c91891..0c44f36 100644
|
|
--- a/Makefile.in
|
|
+++ b/Makefile.in
|
|
@@ -9,6 +9,8 @@ LIBSTATIC = @LIBSTATIC@
|
|
LIBSONAME = @LIBSONAME@
|
|
LIBSHARED = @LIBSHARED@
|
|
INSTALL = @INSTALL@
|
|
+BUILD_SHARED = @BUILD_SHARED@
|
|
+BUILD_STATIC = @BUILD_STATIC@
|
|
|
|
prefix = @prefix@
|
|
exec_prefix = @exec_prefix@
|
|
@@ -32,9 +34,13 @@ install: FORCE
|
|
$(INSTALL) -d -m 755 $(DESTDIR)$(includedir)
|
|
$(INSTALL) -m 644 libmpdec/mpdecimal.h $(DESTDIR)$(includedir)
|
|
$(INSTALL) -d -m 755 $(DESTDIR)$(libdir)
|
|
+ifeq ($(BUILD_STATIC),yes)
|
|
$(INSTALL) -m 644 libmpdec/$(LIBSTATIC) $(DESTDIR)$(libdir)
|
|
+endif
|
|
+ifeq ($(BUILD_SHARED),yes)
|
|
$(INSTALL) -m 755 libmpdec/$(LIBSHARED) $(DESTDIR)$(libdir)
|
|
cd $(DESTDIR)$(libdir) && ln -sf $(LIBSHARED) $(LIBSONAME) && ln -sf $(LIBSHARED) $(LIBNAME)
|
|
+endif
|
|
$(INSTALL) -d -m 755 $(DESTDIR)$(docdir)
|
|
cp -R doc/* $(DESTDIR)$(docdir)
|
|
|
|
@@ -74,9 +80,13 @@ install_libcxx: install_lib
|
|
$(INSTALL) -d -m 755 $(DESTDIR)$(includedir)
|
|
$(INSTALL) -m 644 libmpdec++/decimal.hh $(DESTDIR)$(includedir)
|
|
$(INSTALL) -d -m 755 $(DESTDIR)$(libdir)
|
|
+ifeq ($(BUILD_STATIC),yes)
|
|
$(INSTALL) -m 644 libmpdec++/$(LIBSTATIC_CXX) $(DESTDIR)$(libdir)
|
|
+endif
|
|
+ifeq ($(BUILD_SHARED),yes)
|
|
$(INSTALL) -m 755 libmpdec++/$(LIBSHARED_CXX) $(DESTDIR)$(libdir)
|
|
cd $(DESTDIR)$(libdir) && ln -sf $(LIBSHARED_CXX) $(LIBSONAME_CXX) && ln -sf $(LIBSHARED_CXX) $(LIBNAME_CXX)
|
|
+endif
|
|
cp -R doc/libmpdec++ $(DESTDIR)$(docdir)
|
|
|
|
|
|
diff --git a/configure.ac b/configure.ac
|
|
index 7ee8f86..2b3e505 100644
|
|
--- a/configure.ac
|
|
+++ b/configure.ac
|
|
@@ -88,6 +88,19 @@ CFLAGS="$saved_cflags"
|
|
AC_PROG_INSTALL
|
|
AC_SUBST(INSTALL)
|
|
|
|
+AC_ARG_ENABLE([shared],
|
|
+ [AS_HELP_STRING([--enable-shared], [build shared library])],
|
|
+ [BUILD_SHARED=$enableval],
|
|
+ [BUILD_SHARED=yes])
|
|
+
|
|
+AC_ARG_ENABLE([static],
|
|
+ [AS_HELP_STRING([--enable-static], [build static library])],
|
|
+ [BUILD_STATIC=$enableval],
|
|
+ [BUILD_STATIC=yes])
|
|
+
|
|
+AC_SUBST(BUILD_SHARED)
|
|
+AC_SUBST(BUILD_STATIC)
|
|
+
|
|
# _FORTIFY_SOURCE wrappers for memmove and bcopy are incorrect:
|
|
# http://sourceware.org/ml/libc-alpha/2010-12/msg00009.html
|
|
AC_MSG_CHECKING(for glibc _FORTIFY_SOURCE/memmove bug)
|
|
diff --git a/libmpdec/Makefile.in b/libmpdec/Makefile.in
|
|
index d9619a3..985c73c 100644
|
|
--- a/libmpdec/Makefile.in
|
|
+++ b/libmpdec/Makefile.in
|
|
@@ -7,6 +7,8 @@
|
|
LIBSTATIC = @LIBSTATIC@
|
|
LIBSONAME = @LIBSONAME@
|
|
LIBSHARED = @LIBSHARED@
|
|
+BUILD_SHARED = @BUILD_SHARED@
|
|
+BUILD_STATIC = @BUILD_STATIC@
|
|
|
|
CC = @CC@
|
|
LD = @LD@
|
|
@@ -32,8 +34,15 @@ ifeq ($(MAKECMDGOALS), profile_use)
|
|
MPD_LDFLAGS += $(MPD_PUSE)
|
|
endif
|
|
|
|
+ifeq ($(BUILD_SHARED),yes)
|
|
+TARGETS += $(LIBSHARED)
|
|
+endif
|
|
+
|
|
+ifeq ($(BUILD_STATIC),yes)
|
|
+TARGETS += $(LIBSTATIC)
|
|
+endif
|
|
|
|
-default: $(LIBSTATIC) $(LIBSHARED)
|
|
+default: $(TARGETS)
|
|
|
|
|
|
OBJS := basearith.o context.o constants.o convolute.o crt.o mpdecimal.o \
|
|
diff --git a/libmpdec/Makefile.in b/libmpdec/Makefile.in
|
|
index d9619a3..985c73c 100644
|
|
--- a/libmpdec++/Makefile.in
|
|
+++ b/libmpdec++/Makefile.in
|
|
@@ -13,6 +13,8 @@ LIBSTATIC_CXX = @LIBSTATIC_CXX@
|
|
LIBNAME_CXX = @LIBNAME_CXX@
|
|
LIBSONAME_CXX = @LIBSONAME_CXX@
|
|
LIBSHARED_CXX = @LIBSHARED_CXX@
|
|
+BUILD_SHARED = @BUILD_SHARED@
|
|
+BUILD_STATIC = @BUILD_STATIC@
|
|
|
|
CXX = @CXX@
|
|
LDXX = @LDXX@
|
|
@@ -39,8 +41,15 @@ ifeq ($(MAKECMDGOALS), profile_use)
|
|
MPD_LDXXFLAGS += $(MPD_PUSE)
|
|
endif
|
|
|
|
+ifeq ($(BUILD_SHARED),yes)
|
|
+TARGETS += $(LIBSHARED_CXX)
|
|
+endif
|
|
+
|
|
+ifeq ($(BUILD_STATIC),yes)
|
|
+TARGETS += $(LIBSTATIC_CXX)
|
|
+endif
|
|
|
|
-default: $(LIBSTATIC_CXX) $(LIBSHARED_CXX)
|
|
+default: $(TARGETS)
|
|
|
|
|
|
OBJS := decimal.o
|
|
--
|
|
2.1.0
|
|
|