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