0001-Add-minimal-support-for-enable-disable-shared-static.patch 4.2 KB

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