1From c349964887901848fb4cd5db53a5bcb6dae27aaa Mon Sep 17 00:00:00 2001 2From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> 3Date: Sun, 23 Nov 2014 10:16:33 +0100 4Subject: [PATCH] Add minimal support for --{enable,disable}-{shared,static} 5 6mpdecimal uses autoconf, but not automake or libtool, so this commit 7adds some basic handling of --{enable,disable}-{shared,static}, so 8that building the shared library can be disabled in pure static 9library contexts. 10 11Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> 12[Fabrice: update for 2.5.0 (add libmpdec++)] 13Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com> 14--- 15 Makefile.in | 6 ++++++ 16 configure.ac | 13 +++++++++++++ 17 libmpdec/Makefile.in | 11 ++++++++++- 18 3 files changed, 29 insertions(+), 1 deletion(-) 19 20diff --git a/Makefile.in b/Makefile.in 21index 2c91891..0c44f36 100644 22--- a/Makefile.in 23+++ b/Makefile.in 24@@ -9,6 +9,8 @@ LIBSTATIC = @LIBSTATIC@ 25 LIBSONAME = @LIBSONAME@ 26 LIBSHARED = @LIBSHARED@ 27 INSTALL = @INSTALL@ 28+BUILD_SHARED = @BUILD_SHARED@ 29+BUILD_STATIC = @BUILD_STATIC@ 30 31 prefix = @prefix@ 32 exec_prefix = @exec_prefix@ 33@@ -32,9 +34,13 @@ install: FORCE 34 $(INSTALL) -d -m 755 $(DESTDIR)$(includedir) 35 $(INSTALL) -m 644 libmpdec/mpdecimal.h $(DESTDIR)$(includedir) 36 $(INSTALL) -d -m 755 $(DESTDIR)$(libdir) 37+ifeq ($(BUILD_STATIC),yes) 38 $(INSTALL) -m 644 libmpdec/$(LIBSTATIC) $(DESTDIR)$(libdir) 39+endif 40+ifeq ($(BUILD_SHARED),yes) 41 $(INSTALL) -m 755 libmpdec/$(LIBSHARED) $(DESTDIR)$(libdir) 42 cd $(DESTDIR)$(libdir) && ln -sf $(LIBSHARED) $(LIBSONAME) && ln -sf $(LIBSHARED) $(LIBNAME) 43+endif 44 $(INSTALL) -d -m 755 $(DESTDIR)$(docdir) 45 cp -R doc/* $(DESTDIR)$(docdir) 46 47@@ -74,9 +80,13 @@ install_libcxx: install_lib 48 $(INSTALL) -d -m 755 $(DESTDIR)$(includedir) 49 $(INSTALL) -m 644 libmpdec++/decimal.hh $(DESTDIR)$(includedir) 50 $(INSTALL) -d -m 755 $(DESTDIR)$(libdir) 51+ifeq ($(BUILD_STATIC),yes) 52 $(INSTALL) -m 644 libmpdec++/$(LIBSTATIC_CXX) $(DESTDIR)$(libdir) 53+endif 54+ifeq ($(BUILD_SHARED),yes) 55 $(INSTALL) -m 755 libmpdec++/$(LIBSHARED_CXX) $(DESTDIR)$(libdir) 56 cd $(DESTDIR)$(libdir) && ln -sf $(LIBSHARED_CXX) $(LIBSONAME_CXX) && ln -sf $(LIBSHARED_CXX) $(LIBNAME_CXX) 57+endif 58 cp -R doc/libmpdec++ $(DESTDIR)$(docdir) 59 60 61diff --git a/configure.ac b/configure.ac 62index 7ee8f86..2b3e505 100644 63--- a/configure.ac 64+++ b/configure.ac 65@@ -88,6 +88,19 @@ CFLAGS="$saved_cflags" 66 AC_PROG_INSTALL 67 AC_SUBST(INSTALL) 68 69+AC_ARG_ENABLE([shared], 70+ [AS_HELP_STRING([--enable-shared], [build shared library])], 71+ [BUILD_SHARED=$enableval], 72+ [BUILD_SHARED=yes]) 73+ 74+AC_ARG_ENABLE([static], 75+ [AS_HELP_STRING([--enable-static], [build static library])], 76+ [BUILD_STATIC=$enableval], 77+ [BUILD_STATIC=yes]) 78+ 79+AC_SUBST(BUILD_SHARED) 80+AC_SUBST(BUILD_STATIC) 81+ 82 # _FORTIFY_SOURCE wrappers for memmove and bcopy are incorrect: 83 # http://sourceware.org/ml/libc-alpha/2010-12/msg00009.html 84 AC_MSG_CHECKING(for glibc _FORTIFY_SOURCE/memmove bug) 85diff --git a/libmpdec/Makefile.in b/libmpdec/Makefile.in 86index d9619a3..985c73c 100644 87--- a/libmpdec/Makefile.in 88+++ b/libmpdec/Makefile.in 89@@ -7,6 +7,8 @@ 90 LIBSTATIC = @LIBSTATIC@ 91 LIBSONAME = @LIBSONAME@ 92 LIBSHARED = @LIBSHARED@ 93+BUILD_SHARED = @BUILD_SHARED@ 94+BUILD_STATIC = @BUILD_STATIC@ 95 96 CC = @CC@ 97 LD = @LD@ 98@@ -32,8 +34,15 @@ ifeq ($(MAKECMDGOALS), profile_use) 99 MPD_LDFLAGS += $(MPD_PUSE) 100 endif 101 102+ifeq ($(BUILD_SHARED),yes) 103+TARGETS += $(LIBSHARED) 104+endif 105+ 106+ifeq ($(BUILD_STATIC),yes) 107+TARGETS += $(LIBSTATIC) 108+endif 109 110-default: $(LIBSTATIC) $(LIBSHARED) 111+default: $(TARGETS) 112 113 114 OBJS := basearith.o context.o constants.o convolute.o crt.o mpdecimal.o \ 115diff --git a/libmpdec/Makefile.in b/libmpdec/Makefile.in 116index d9619a3..985c73c 100644 117--- a/libmpdec++/Makefile.in 118+++ b/libmpdec++/Makefile.in 119@@ -13,6 +13,8 @@ LIBSTATIC_CXX = @LIBSTATIC_CXX@ 120 LIBNAME_CXX = @LIBNAME_CXX@ 121 LIBSONAME_CXX = @LIBSONAME_CXX@ 122 LIBSHARED_CXX = @LIBSHARED_CXX@ 123+BUILD_SHARED = @BUILD_SHARED@ 124+BUILD_STATIC = @BUILD_STATIC@ 125 126 CXX = @CXX@ 127 LDXX = @LDXX@ 128@@ -39,8 +41,15 @@ ifeq ($(MAKECMDGOALS), profile_use) 129 MPD_LDXXFLAGS += $(MPD_PUSE) 130 endif 131 132+ifeq ($(BUILD_SHARED),yes) 133+TARGETS += $(LIBSHARED_CXX) 134+endif 135+ 136+ifeq ($(BUILD_STATIC),yes) 137+TARGETS += $(LIBSTATIC_CXX) 138+endif 139 140-default: $(LIBSTATIC_CXX) $(LIBSHARED_CXX) 141+default: $(TARGETS) 142 143 144 OBJS := decimal.o 145-- 1462.1.0 147 148