diff -Nur mpdecimal-2.5.1-orig/configure.ac mpdecimal-2.5.1/configure.ac --- mpdecimal-2.5.1-orig/configure.ac 2021-01-20 15:07:31.000000000 +0100 +++ mpdecimal-2.5.1/configure.ac 2021-08-28 16:41:17.444914500 +0200 @@ -198,6 +198,7 @@ LIBSTATIC=libmpdec.a LIBSHARED_USE_AR="no" LIBIMPORT= +IS_WINDOWS=no LINK_STATIC= LINK_DYNAMIC= LINK_SHLIBS="-lmpdec" @@ -219,6 +220,22 @@ LINK_DYNAMIC="-Wl,-bshared" LINK_SHLIBS="../libmpdec/$LIBIMPORT" ;; + mingw*|MINGW*) + LIBNAME= + LIBIMPORT="libmpdec.dll.a" + LIBSONAME= + LIBSHARED="libmpdec-2.dll" + CONFIGURE_LDFLAGS="-shared -Wl,--out-implib,$LIBIMPORT" + IS_WINDOWS=yes + ;; + msys*|MSYS*) + LIBNAME= + LIBIMPORT="libmpdec.dll.a" + LIBSONAME= + LIBSHARED="msys-mpdec-2.dll" + CONFIGURE_LDFLAGS="-shared -Wl,--out-implib,$LIBIMPORT" + IS_WINDOWS=yes + ;; *) LIBNAME="libmpdec.so" LIBSONAME="libmpdec.so.3" @@ -228,6 +245,7 @@ esac LIBSTATIC_CXX=libmpdec++.a +LIBIMPORT_CXX= LINK_SHLIBS_CXX="-lmpdec++" case $ac_sys_system in darwin*|Darwin*) @@ -242,6 +260,20 @@ LIBSHARED_CXX="shr.o" CONFIGURE_LDXXFLAGS="-shared -Wl,-bnoentry -Wl,-bE:.objs/symbols.exp" ;; + mingw*|MINGW*) + LIBNAME_CXX= + LIBIMPORT_CXX="libmpdec++.dll.a" + LIBSONAME_CXX= + LIBSHARED_CXX="libmpdec++-2.dll" + CONFIGURE_LDXXFLAGS="-shared -Wl,--out-implib,$LIBIMPORT_CXX" + ;; + msys*|MSYS*) + LIBNAME_CXX= + LIBIMPORT_CXX="libmpdec++.dll.a" + LIBSONAME_CXX= + LIBSHARED_CXX="msys-mpdec++-2.dll" + CONFIGURE_LDXXFLAGS="-shared -Wl,--out-implib,$LIBIMPORT_CXX" + ;; *) LIBNAME_CXX="libmpdec++.so" LIBSONAME_CXX="libmpdec++.so.3" @@ -255,6 +287,7 @@ AC_SUBST(LIBSONAME) AC_SUBST(LIBSHARED) AC_SUBST(LIBIMPORT) +AC_SUBST(IS_WINDOWS) AC_SUBST(LIBSHARED_USE_AR) AC_SUBST(LINK_STATIC) AC_SUBST(LINK_DYNAMIC) @@ -264,6 +297,7 @@ AC_SUBST(LIBNAME_CXX) AC_SUBST(LIBSONAME_CXX) AC_SUBST(LIBSHARED_CXX) +AC_SUBST(LIBIMPORT_CXX) AC_SUBST(LINK_SHLIBS_CXX) # Apparently purely informational for this particular build: diff -Nur mpdecimal-2.5.1-orig/libmpdec/Makefile.in mpdecimal-2.5.1/libmpdec/Makefile.in --- mpdecimal-2.5.1-orig/libmpdec/Makefile.in 2021-01-20 15:07:31.000000000 +0100 +++ mpdecimal-2.5.1/libmpdec/Makefile.in 2021-08-28 16:51:47.066899100 +0200 @@ -10,6 +10,7 @@ LIBSONAME = @LIBSONAME@ LIBSHARED = @LIBSHARED@ LIBIMPORT = @LIBIMPORT@ +IS_WINDOWS= @IS_WINDOWS@ LIBSHARED_USE_AR = @LIBSHARED_USE_AR@ LINK_STATIC = @LINK_STATIC@ LINK_DYNAMIC = @LINK_DYNAMIC@ @@ -84,9 +85,11 @@ $(LIBSHARED): Makefile $(SHARED_OBJS) $(LD) $(MPD_LDFLAGS) -o $(LIBSHARED) $(SHARED_OBJS) -lm +ifeq ($(IS_WINDOWS),no) ln -sf $(LIBSHARED) $(LIBNAME) ln -sf $(LIBSHARED) $(LIBSONAME) endif +endif basearith.o:\ diff -Nur mpdecimal-2.5.1-orig/libmpdec++/Makefile.in mpdecimal-2.5.1/libmpdec++/Makefile.in --- mpdecimal-2.5.1-orig/libmpdec++/Makefile.in 2021-01-20 15:07:31.000000000 +0100 +++ mpdecimal-2.5.1/libmpdec++/Makefile.in 2021-08-28 16:52:35.175574300 +0200 @@ -9,11 +9,14 @@ LIBNAME = @LIBNAME@ LIBSONAME = @LIBSONAME@ LIBSHARED = @LIBSHARED@ +LIBIMPORT = @LIBIMPORT@ +IS_WINDOWS= @IS_WINDOWS@ LIBSTATIC_CXX = @LIBSTATIC_CXX@ LIBNAME_CXX = @LIBNAME_CXX@ LIBSONAME_CXX = @LIBSONAME_CXX@ LIBSHARED_CXX = @LIBSHARED_CXX@ +LIBIMPORT_CXX = @LIBIMPORT_CXX@ LIBSHARED_USE_AR = @LIBSHARED_USE_AR@ LINK_STATIC = @LINK_STATIC@ LINK_DYNAMIC = @LINK_DYNAMIC@ @@ -74,10 +77,14 @@ $(RANLIB) $(LIBSTATIC_CXX) $(LIBSHARED_CXX): Makefile $(SHARED_OBJS) +ifeq ($(IS_WINDOWS),yes) + $(LDXX) $(MPD_LDXXFLAGS) -o $(LIBSHARED_CXX) $(SHARED_OBJS) ../libmpdec/$(LIBIMPORT) -lm +else $(MPD_LDXX) -L../libmpdec $(MPD_LDXXFLAGS) -o $(LIBSHARED_CXX) $(SHARED_OBJS) -lmpdec -lm ln -sf $(LIBSHARED_CXX) $(LIBNAME_CXX) ln -sf $(LIBSHARED_CXX) $(LIBSONAME_CXX) endif +endif decimal.o:\ diff -Nur mpdecimal-2.5.1-orig/Makefile.in mpdecimal-2.5.1/Makefile.in --- mpdecimal-2.5.1-orig/Makefile.in 2021-01-20 15:07:31.000000000 +0100 +++ mpdecimal-2.5.1/Makefile.in 2021-08-28 16:43:00.149589100 +0200 @@ -16,17 +16,20 @@ LIBSONAME = @LIBSONAME@ LIBSHARED = @LIBSHARED@ LIBIMPORT = @LIBIMPORT@ +IS_WINDOWS= @IS_WINDOWS@ LIBSTATIC_CXX = @LIBSTATIC_CXX@ LIBNAME_CXX = @LIBNAME_CXX@ LIBSONAME_CXX = @LIBSONAME_CXX@ LIBSHARED_CXX = @LIBSHARED_CXX@ +LIBIMPORT_CXX = @LIBIMPORT_CXX@ LIBSHARED_USE_AR = @LIBSHARED_USE_AR@ prefix = @prefix@ exec_prefix = @exec_prefix@ includedir = @includedir@ +bindir = @bindir@ libdir = @libdir@ datarootdir = @datarootdir@ docdir = @docdir@ @@ -48,7 +51,7 @@ cd libmpdec++ && $(MAKE) check_alloc ifeq ($(LIBSHARED_USE_AR), yes) -install: install_libcxx install_imp install_cxx_doc +install: install_libcxx install_impcxx install_cxx_doc else ifeq ($(ENABLE_SHARED), yes) install: install_shared_libcxx install_cxx_doc @@ -96,8 +99,14 @@ $(INSTALL) -m 644 libmpdec/$(LIBSTATIC) $(DESTDIR)$(libdir) install_shared_lib: install_lib +ifeq ($(IS_WINDOWS),yes) + $(INSTALL) -d -m 755 $(DESTDIR)$(bindir) + $(INSTALL) -m 655 libmpdec/$(LIBIMPORT) $(DESTDIR)$(libdir) + $(INSTALL) -m 755 libmpdec/$(LIBSHARED) $(DESTDIR)$(bindir) +else $(INSTALL) -m 755 libmpdec/$(LIBSHARED) $(DESTDIR)$(libdir) cd $(DESTDIR)$(libdir) && ln -sf $(LIBSHARED) $(LIBSONAME) && ln -sf $(LIBSHARED) $(LIBNAME) +endif install_imp: $(INSTALL) -m 644 libmpdec/$(LIBIMPORT) $(DESTDIR)$(libdir) @@ -113,8 +122,14 @@ $(INSTALL) -m 644 libmpdec++/$(LIBSTATIC_CXX) $(DESTDIR)$(libdir) install_shared_libcxx: install_shared_lib install_libcxx +ifeq ($(IS_WINDOWS),yes) + $(INSTALL) -d -m 755 $(DESTDIR)$(bindir) + $(INSTALL) -m 644 libmpdec++/$(LIBIMPORT_CXX) $(DESTDIR)$(libdir) + $(INSTALL) -m 755 libmpdec++/$(LIBSHARED_CXX) $(DESTDIR)$(bindir) +else $(INSTALL) -m 755 libmpdec++/$(LIBSHARED_CXX) $(DESTDIR)$(libdir) cd $(DESTDIR)$(libdir) && ln -sf $(LIBSHARED_CXX) $(LIBSONAME_CXX) && ln -sf $(LIBSHARED_CXX) $(LIBNAME_CXX) +endif install_cxx_doc: install_doc cp -Rp doc/libmpdec++ $(DESTDIR)$(docdir) diff -Nur mpdecimal-2.5.1-orig/tests/Makefile.in mpdecimal-2.5.1/tests/Makefile.in --- mpdecimal-2.5.1-orig/tests/Makefile.in 2021-01-20 15:07:31.000000000 +0100 +++ mpdecimal-2.5.1/tests/Makefile.in 2021-08-28 16:46:42.826010700 +0200 @@ -15,6 +15,9 @@ MPD_GNU99 = @MPD_GNU99@ +# Windows demands some special build rules. +IS_WINDOWS = @IS_WINDOWS@ + CONFIGURE_CFLAGS = @CONFIGURE_CFLAGS@ MPD_CFLAGS = $(strip $(filter-out $(CFLAGS),$(CONFIGURE_CFLAGS)) $(CFLAGS) $(MPD_GNU99)) @@ -52,6 +55,9 @@ clean: FORCE rm -f *.o *.gch *.gcda *.gcno *.gcov *.dyn *.dpi *.lock rm -f runtest runtest_shared +ifeq ($(IS_WINDOWS),yes) + rm -f *.dll *.exe +endif distclean: FORCE $(MAKE) clean diff -Nur mpdecimal-2.5.1-orig/tests/runshort.sh mpdecimal-2.5.1/tests/runshort.sh --- mpdecimal-2.5.1-orig/tests/runshort.sh 2021-01-20 15:07:31.000000000 +0100 +++ mpdecimal-2.5.1/tests/runshort.sh 2021-08-28 18:50:12.073569400 +0200 @@ -46,6 +46,7 @@ LD_LIBRARY_PATH="$PORTABLE_PWD/../libmpdec" LD_32_LIBRARY_PATH="$PORTABLE_PWD/../libmpdec" +PATH="$LD_LIBRARY_PATH:$PATH" export LD_LIBRARY_PATH export LD_32_LIBRARY_PATH diff -Nur mpdecimal-2.5.1-orig/tests/runshort_alloc.sh mpdecimal-2.5.1/tests/runshort_alloc.sh --- mpdecimal-2.5.1-orig/tests/runshort_alloc.sh 2021-01-20 15:07:31.000000000 +0100 +++ mpdecimal-2.5.1/tests/runshort_alloc.sh 2021-08-28 16:58:55.526592500 +0200 @@ -44,6 +44,7 @@ LD_LIBRARY_PATH="$PORTABLE_PWD/../libmpdec" LD_32_LIBRARY_PATH="$PORTABLE_PWD/../libmpdec" +PATH="$LD_LIBRARY_PATH:$PATH" export LD_LIBRARY_PATH export LD_32_LIBRARY_PATH diff -Naur mpdecimal-2.5.0-orig/tests/runtest.c mpdecimal-2.5.0/tests/runtest.c --- mpdecimal-2.5.0-orig/tests/runtest.c 2020-06-27 22:41:49.000000000 +0300 +++ mpdecimal-2.5.0/tests/runtest.c 2020-07-16 09:18:19.834286900 +0300 @@ -46,6 +46,10 @@ #include "malloc_fail.h" +#if defined(__MINGW32__) +#define random rand +#define srandom srand +#endif #define MAXLINE 400000 #define MAXTOKEN 32 diff -Nur mpdecimal-2.5.1-orig/tests++/runshort.sh mpdecimal-2.5.1/tests++/runshort.sh --- mpdecimal-2.5.1-orig/tests++/runshort.sh 2021-01-20 15:07:31.000000000 +0100 +++ mpdecimal-2.5.1/tests++/runshort.sh 2021-08-28 17:02:19.339551800 +0200 @@ -63,6 +63,7 @@ LD_LIBRARY_PATH="$PORTABLE_PWD/../libmpdec:$PORTABLE_PWD/../libmpdec++" LD_32_LIBRARY_PATH="$PORTABLE_PWD/../libmpdec:$PORTABLE_PWD/../libmpdec++" +PATH="$LD_LIBRARY_PATH:$PATH" export LD_LIBRARY_PATH export LD_32_LIBRARY_PATH diff -Nur mpdecimal-2.5.1-orig/tests++/runshort_alloc.sh mpdecimal-2.5.1/tests++/runshort_alloc.sh --- mpdecimal-2.5.1-orig/tests++/runshort_alloc.sh 2021-01-20 15:07:31.000000000 +0100 +++ mpdecimal-2.5.1/tests++/runshort_alloc.sh 2021-08-28 17:02:28.555004800 +0200 @@ -61,6 +61,7 @@ LD_LIBRARY_PATH="$PORTABLE_PWD/../libmpdec:$PORTABLE_PWD/../libmpdec++" LD_32_LIBRARY_PATH="$PORTABLE_PWD/../libmpdec:$PORTABLE_PWD/../libmpdec++" +PATH="$LD_LIBRARY_PATH:$PATH" export LD_LIBRARY_PATH export LD_32_LIBRARY_PATH