diff options
author | Andrew Sun | 2018-06-14 11:55:34 -0400 |
---|---|---|
committer | Andrew Sun | 2018-06-14 11:55:34 -0400 |
commit | 06a0423f3f7828b714be6760c6e4de3a883283ff (patch) | |
tree | 8d4172e8bbdbd010c79902eeb13945089347de9e | |
download | aur-06a0423f3f7828b714be6760c6e4de3a883283ff.tar.gz |
mingw-w64-mpdecimal: version 2.4.2
-rw-r--r-- | .SRCINFO | 19 | ||||
-rw-r--r-- | PKGBUILD | 44 | ||||
-rw-r--r-- | msys2-mingw-fixes.patch | 324 |
3 files changed, 387 insertions, 0 deletions
diff --git a/.SRCINFO b/.SRCINFO new file mode 100644 index 000000000000..7ebd4cd459a7 --- /dev/null +++ b/.SRCINFO @@ -0,0 +1,19 @@ +pkgbase = mingw-w64-mpdecimal + pkgdesc = Package for correctly-rounded arbitrary precision decimal floating point arithmetic (mingw-w64) + pkgver = 2.4.2 + pkgrel = 1 + url = http://www.bytereef.org/mpdecimal/index.html + arch = any + license = custom + makedepends = mingw-w64-configure + depends = mingw-w64-crt + options = !strip + options = !buildflags + options = staticlibs + source = http://www.bytereef.org/software/mpdecimal/releases/mpdecimal-2.4.2.tar.gz + source = msys2-mingw-fixes.patch + md5sums = aa63cab5d06a96855a44da2db90a29d9 + md5sums = c9bc7fb46b559da9ce5cb31f405b5e22 + +pkgname = mingw-w64-mpdecimal + diff --git a/PKGBUILD b/PKGBUILD new file mode 100644 index 000000000000..f216886731c5 --- /dev/null +++ b/PKGBUILD @@ -0,0 +1,44 @@ +# Maintainer: Andrew Sun <adsun701@gmail.com> + +pkgname=mingw-w64-mpdecimal +pkgver=2.4.2 +pkgrel=1 +pkgdesc="Package for correctly-rounded arbitrary precision decimal floating point arithmetic (mingw-w64)" +arch=('any') +url="http://www.bytereef.org/mpdecimal/index.html" +license=('custom') +makedepends=('mingw-w64-configure') +depends=('mingw-w64-crt') +options=('!strip' '!buildflags' 'staticlibs') +md5sums=('aa63cab5d06a96855a44da2db90a29d9' + 'c9bc7fb46b559da9ce5cb31f405b5e22') +source=("http://www.bytereef.org/software/mpdecimal/releases/mpdecimal-${pkgver}.tar.gz" + "msys2-mingw-fixes.patch") + +_architectures="i686-w64-mingw32 x86_64-w64-mingw32" + +prepare() { + cd "${srcdir}/mpdecimal-${pkgver}/" + patch -Nbp1 -i "${srcdir}/msys2-mingw-fixes.patch" + autoreconf -fiv +} + +build() { + cd "${srcdir}/mpdecimal-${pkgver}/" + for _arch in ${_architectures}; do + mkdir -p ${srcdir}/build-${_arch} && pushd ${srcdir}/build-${_arch} + cp -rf "${srcdir}/mpdecimal-${pkgver}/." ${srcdir}/build-${_arch} + last="${srcdir}/mpdecimal-${pkgver}/" ${_arch}-configure + make + popd + done +} + +package() { + for _arch in ${_architectures}; do + cd "${srcdir}/build-${_arch}" + make DESTDIR="${pkgdir}" install + ${_arch}-strip --strip-unneeded "$pkgdir"/usr/${_arch}/bin/*.dll + ${_arch}-strip -g "$pkgdir"/usr/${_arch}/lib/*.a + done +} diff --git a/msys2-mingw-fixes.patch b/msys2-mingw-fixes.patch new file mode 100644 index 000000000000..72e7a1cc9e32 --- /dev/null +++ b/msys2-mingw-fixes.patch @@ -0,0 +1,324 @@ +--- mpdecimal-2.4.2/configure.ac.orig 2016-02-27 16:55:00.000000000 -0500 ++++ mpdecimal-2.4.2/configure.ac 2017-02-14 09:04:56.759794200 -0500 +@@ -5,19 +5,51 @@ + AC_CONFIG_FILES([Makefile libmpdec/Makefile tests/Makefile libmpdec/mpdecimal.h]) + AC_ARG_VAR(MACHINE, [force configuration: x64, uint128, ansi64, ppro, ansi32, ansi-legacy]) + +-LIBSTATIC=libmpdec.a +-LIBSONAME=libmpdec.so.2 +-LIBSHARED=libmpdec.so.2.4.2 +-AC_SUBST(LIBSTATIC) +-AC_SUBST(LIBSONAME) +-AC_SUBST(LIBSHARED) +- +- +-# Apparently purely informational for this particular build: + AC_CANONICAL_HOST + AC_SUBST(build) + AC_SUBST(host) + ++case $host in ++ *-*-mingw*) ++ LIBSTATIC=libmpdec.a ++ LIBSOALIAS= ++ LIBSONAME=libmpdec-${PACKAGE_VERSION}.dll ++ LIBSHARED=libmpdec-2.dll ++ LIBIMPORT=libmpdec.dll.a ++ IS_WINDOWS=yes ++ ;; ++ *-*-cygwin*) ++ LIBSTATIC=libmpdec.a ++ LIBSOALIAS= ++ LIBSONAME=cygmpdec-2.dll ++ LIBSHARED=cygmpdec-${PACKAGE_VERSION}.dll ++ LIBIMPORT=libmpdec.dll.a ++ IS_WINDOWS=yes ++ ;; ++ *-*-msys*) ++ LIBSTATIC=libmpdec.a ++ LIBSOALIAS= ++ LIBSONAME=msys-mpdec-2.dll ++ LIBSHARED=msys-mpdec-${PACKAGE_VERSION}.dll ++ LIBIMPORT=libmpdec.dll.a ++ IS_WINDOWS=yes ++ ;; ++ *) ++ LIBSTATIC=libmpdec.a ++ LIBSOALIAS=libmpdec.so ++ LIBSONAME=libmpdec.so.2 ++ LIBSHARED=libmpdec.so.2.4.2 ++ LIBIMPORT= ++ IS_WINDOWS=no ++ ;; ++esac ++AC_SUBST(LIBSTATIC) ++AC_SUBST(LIBSOALIAS) ++AC_SUBST(LIBSONAME) ++AC_SUBST(LIBSHARED) ++AC_SUBST(LIBIMPORT) ++AC_SUBST(IS_WINDOWS) ++ + # Language and compiler: + AC_LANG_C + saved_cflags=$CFLAGS +@@ -88,6 +120,10 @@ + AC_PROG_INSTALL + AC_SUBST(INSTALL) + ++# ln -s program ++AC_PROG_LN_S ++AC_SUBST(LN_S) ++ + # _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) +--- mpdecimal-2.4.2/libmpdec/Makefile.in.orig 2016-02-27 16:55:00.000000000 -0500 ++++ mpdecimal-2.4.2/libmpdec/Makefile.in 2017-02-14 09:58:38.908029100 -0500 +@@ -7,6 +7,13 @@ + LIBSTATIC = @LIBSTATIC@ + LIBSONAME = @LIBSONAME@ + LIBSHARED = @LIBSHARED@ ++#In Unix-like systems, used to denote a so without a version number ++LIBSOALIAS= @LIBSOALIAS@ ++#LIBIMPORT may be empty. It's only for systems where you link ++# to a separate import file, rather than directly to the shared ++# file. ++LIBIMPORT = @LIBIMPORT@ ++IS_WINDOWS= @IS_WINDOWS@ + + CC = @CC@ + LD = @LD@ +@@ -17,6 +24,8 @@ + MPD_PREC = @MPD_PREC@ + MPD_DPREC = @MPD_DPREC@ + ++LN_S = @LN_S@ ++ + CONFIGURE_CFLAGS = @CONFIGURE_CFLAGS@ + MPD_CFLAGS = $(strip $(CONFIGURE_CFLAGS) $(CFLAGS)) + +@@ -37,7 +46,11 @@ + ifeq ($(shell uname), Darwin) + MPD_SOFLAGS=-dynamiclib -Wl,-install_name,$(LIBSONAME) + else +- MPD_SOFLAGS=-shared -Wl,-soname,$(LIBSONAME) ++ ifneq ($(LIBIMPORT),) ++ MPD_SOFLAGS=-shared -Wl,-soname,$(LIBSONAME),--out-implib,$(LIBIMPORT) ++ else ++ MPD_SOFLAGS=-shared -Wl,-soname,$(LIBSONAME) ++ endif + endif + + +@@ -60,8 +73,10 @@ + + $(LIBSHARED): Makefile $(SHARED_OBJS) + $(LD) $(MPD_LDFLAGS) $(MPD_SOFLAGS) -o $(LIBSHARED) $(SHARED_OBJS) -lm +- ln -sf $(LIBSHARED) libmpdec.so +- ln -sf $(LIBSHARED) $(LIBSONAME) ++ifneq ($(LIBSOALIAS),) ++ $(LN_S) $(LIBSHARED) $(LIBSOALIAS) ++endif ++ $(LN_S) $(LIBSHARED) $(LIBSONAME) + + + basearith.o:\ +@@ -220,7 +235,7 @@ + LD_LIBRARY_PATH=. ./bench_shared $(MPD_PREC) 1000 + LD_LIBRARY_PATH=. ./bench_shared $(MPD_DPREC) 1000 + rm -f *.o *.gch .objs/*.o .objs/*.gch bench bench_shared +- rm -f $(LIBSTATIC) $(LIBSHARED) $(LIBSONAME) libmpdec.so ++ rm -f $(LIBSTATIC) $(LIBSHARED) $(LIBSONAME) $(LIBSOALIAS) + + profile_use: bench bench_shared + ./bench $(MPD_PREC) 1000 +@@ -234,8 +249,12 @@ + + clean: FORCE + rm -f *.o *.so *.gch *.gcda *.gcno *.gcov *.dyn *.dpi *.lock +- rm -f bench bench_shared $(LIBSTATIC) $(LIBSHARED) $(LIBSONAME) libmpdec.so ++ rm -f bench bench_shared $(LIBSTATIC) $(LIBSHARED) $(LIBSONAME) $(LIBSOALIAS) + cd .objs && rm -f *.o *.so *.gch *.gcda *.gcno *.gcov *.dyn *.dpi *.lock ++ifeq ($(IS_WINDOWS),yes) ++ rm -f *.dll *.exe ++ cd .objs && rm -rf *.dll *.exe ++endif + + distclean: clean + rm -f config.h config.log config.status Makefile mpdecimal.h +--- mpdecimal-2.4.2/Makefile.in.orig 2016-02-27 16:55:00.000000000 -0500 ++++ mpdecimal-2.4.2/Makefile.in 2017-02-14 09:58:38.913529400 -0500 +@@ -8,12 +8,23 @@ + LIBSTATIC = @LIBSTATIC@ + LIBSONAME = @LIBSONAME@ + LIBSHARED = @LIBSHARED@ ++#In Unix-like systems, used to denote a so without a version number ++LIBSOALIAS= @LIBSOALIAS@ ++#LIBIMPORT may be empty. It's only for systems where you link ++# to a separate import file, rather than directly to the shared ++# file. ++LIBIMPORT = @LIBIMPORT@ + INSTALL = @INSTALL@ ++LN_S = @LN_S@ ++EXEEXT = @EXEEXT@ ++# Windows demands some special build rules. ++IS_WINDOWS = @IS_WINDOWS@ + + prefix = @prefix@ + exec_prefix = @exec_prefix@ + includedir = @includedir@ + libdir = @libdir@ ++bindir = @bindir@ + datarootdir = @datarootdir@ + docdir = @docdir@ + +@@ -35,9 +46,23 @@ + $(INSTALL) -d -m 755 $(DESTDIR)$(includedir) + $(INSTALL) -m 644 libmpdec/mpdecimal.h $(DESTDIR)$(includedir) + $(INSTALL) -d -m 755 $(DESTDIR)$(libdir) ++ifneq ($(LIBIMPORT),) ++ $(INSTALL) -m 644 libmpdec/$(LIBIMPORT) $(DESTDIR)$(libdir) ++endif + $(INSTALL) -m 644 libmpdec/$(LIBSTATIC) $(DESTDIR)$(libdir) ++ifeq ($(IS_WINDOWS),yes) ++ $(INSTALL) -d -m 755 $(DESTDIR)$(bindir) ++ $(INSTALL) -m 755 libmpdec/$(LIBSHARED) $(DESTDIR)$(bindir) ++ifneq ($(LIBSOALIAS),) ++ cd $(DESTDIR)$(bindir) && $(LN_S) $(LIBSHARED) $(LIBSOALIAS) ++endif ++else + $(INSTALL) -m 755 libmpdec/$(LIBSHARED) $(DESTDIR)$(libdir) +- cd $(DESTDIR)$(libdir) && ln -sf $(LIBSHARED) $(LIBSONAME) && ln -sf $(LIBSHARED) libmpdec.so ++ cd $(DESTDIR)$(libdir) && $(LN_S) $(LIBSHARED) $(LIBSONAME) ++ifneq ($(LIBSOALIAS),) ++ cd $(DESTDIR)$(libdir) && $(LN_S) $(LIBSHARED) $(LIBSOALIAS) ++endif ++endif + $(INSTALL) -d -m 755 $(DESTDIR)$(docdir) + cp -R doc/* $(DESTDIR)$(docdir) + +--- mpdecimal-2.4.2/tests/Makefile.in.orig 2016-02-27 16:55:00.000000000 -0500 ++++ mpdecimal-2.4.2/tests/Makefile.in 2017-02-14 09:58:38.919030700 -0500 +@@ -11,6 +11,9 @@ + MPD_WARN = @MPD_WARN@ + MPD_CONFIG = @MPD_CONFIG@ + ++# Windows demands some special build rules. ++IS_WINDOWS = @IS_WINDOWS@ ++ + CONFIGURE_CFLAGS = @CONFIGURE_CFLAGS@ + CFLAGS ?= $(CONFIGURE_CFLAGS) + +@@ -46,6 +49,9 @@ + clean: FORCE + rm -f *.o *.gch *.gcda *.gcno *.gcov *.dyn *.dpi *.lock + rm -f runtest runtest_shared runtest_alloc runtest_alloc_shared ++ifeq ($(IS_WINDOWS),yes) ++ rm -f *.dll *.exe ++endif + + distclean: FORCE + $(MAKE) clean +--- mpdecimal-2.4.2/tests/runshort.sh.orig 2016-02-27 16:55:00.000000000 -0500 ++++ mpdecimal-2.4.2/tests/runshort.sh 2017-02-14 09:58:38.924030500 -0500 +@@ -30,9 +30,21 @@ + + printf "Running official tests ...\n\n" + ++case "$(uname -s)" in ++ CYGWIN*|MINGW*|MSYS*) ++ cp ../libmpdec/*.dll . ++ ;; ++esac ++ + if ! LD_LIBRARY_PATH=../libmpdec ./runtest_shared official.decTest + then + printf "\nFAIL\n\n\n" ++ case "$(uname -s)" in ++ CYGWIN*|MINGW*|MSYS*) ++ rm -f *.dll ++ ;; ++ esac ++ + exit 1 + fi + +@@ -41,8 +53,19 @@ + if ! LD_LIBRARY_PATH=../libmpdec ./runtest_shared additional.decTest + then + printf "\nFAIL\n\n\n" ++ ++ case "$(uname -s)" in ++ CYGWIN*|MINGW*|MSYS*) ++ rm -f *.dll ++ ;; ++ esac ++ + exit 1 + fi + +- ++case "$(uname -s)" in ++ CYGWIN*|MINGW*|MSYS*) ++ rm -f *.dll ++ ;; ++esac + +--- mpdecimal-2.4.2/tests/runshort_alloc.sh.orig 2016-02-27 16:55:00.000000000 -0500 ++++ mpdecimal-2.4.2/tests/runshort_alloc.sh 2017-02-14 09:58:38.933031900 -0500 +@@ -30,9 +30,21 @@ + + printf "Running official tests with allocation failures ...\n\n" + ++case "$(uname -s)" in ++ CYGWIN*|MINGW*|MSYS*) ++ cp ../libmpdec/*.dll . ++ ;; ++esac ++ + if ! LD_LIBRARY_PATH=../libmpdec ./runtest_alloc_shared official.decTest + then + printf "\nFAIL\n\n\n" ++ case "$(uname -s)" in ++ CYGWIN*|MINGW*|MSYS*) ++ rm -f *.dll ++ ;; ++ esac ++ + exit 1 + fi + +@@ -41,8 +53,18 @@ + if ! LD_LIBRARY_PATH=../libmpdec ./runtest_alloc_shared additional.decTest + then + printf "\nFAIL\n\n\n" ++ case "$(uname -s)" in ++ CYGWIN*|MINGW*|MSYS*) ++ rm -f *.dll ++ ;; ++ esac ++ + exit 1 + fi + +- ++case "$(uname -s)" in ++ CYGWIN*|MINGW*|MSYS*) ++ rm -f *.dll ++ ;; ++esac + + +--- mpdecimal-2.4.2/tests/runtest.c.orig 2017-02-14 18:41:32.763666600 -0500 ++++ mpdecimal-2.4.2/tests/runtest.c 2017-02-14 19:38:26.102943000 -0500 +@@ -46,6 +46,10 @@ + #include "mptest.h" + #include "malloc_fail.h" + ++#if defined(__MINGW32__) ++#define random rand ++#define srandom srand ++#endif + + #define MAXLINE 400000 + #define MAXTOKEN 32 |