hc
2024-08-14 d5ef2fdafdb09de9c2f876fc0edf2ba6bf224909
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
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