From d5ce1f165f5752dfac7a1fdc3c08226a3d763389 Mon Sep 17 00:00:00 2001 From: Richard Meadows Date: Wed, 3 Aug 2016 00:09:26 +0100 Subject: [PATCH 1/2] Aim is to add pthreadGC2.dll and mingwm10.dll back into the installer. This commit partially reverts 89c189d2e65a218af87a2e86fde057106996be3 --- data/win32/fldigi.nsi | 6 ++++++ scripts/mkhamlibstatic.sh | 2 +- scripts/mknsisinst.sh | 39 +++++++++++++++++++++++++++++++++++++-- 3 files changed, 44 insertions(+), 3 deletions(-) diff --git a/data/win32/fldigi.nsi b/data/win32/fldigi.nsi index 081d6130..746a8f24 100644 --- a/data/win32/fldigi.nsi +++ b/data/win32/fldigi.nsi @@ -122,6 +122,7 @@ SectionEnd SectionIn RO SetOutPath $INSTDIR File "${FLDIGI_BINARY}" + File /nonfatal "${MINGWM_DLL}" "${PTW32_DLL}" !ifdef FLDIGI_LOCALE_DIR File /r "${FLDIGI_LOCALE_PATH}/${FLDIGI_LOCALE_DIR}" !endif @@ -138,6 +139,9 @@ SectionEnd !endif SetOutPath $INSTDIR File "${FLARQ_BINARY}" +!ifndef HAVE_FLDIGI + File /nonfatal "${MINGWM_DLL}" "${PTW32_DLL}" +!endif StrCpy $WANT_FLARQ "true" SectionEnd !endif @@ -217,6 +221,8 @@ Section "Uninstall" !ifdef HAVE_FLARQ Delete /REBOOTOK $INSTDIR\${FLARQ_BINARY} !endif + Delete /REBOOTOK $INSTDIR\${MINGWM_DLL} + Delete /REBOOTOK $INSTDIR\${PTW32_DLL} Delete /REBOOTOK $INSTDIR\uninstall.exe # Remove shortcuts, if any diff --git a/scripts/mkhamlibstatic.sh b/scripts/mkhamlibstatic.sh index ed9383fb..2f47aa73 100755 --- a/scripts/mkhamlibstatic.sh +++ b/scripts/mkhamlibstatic.sh @@ -13,7 +13,7 @@ if test "x$PKG_CONFIG" != "x"; then else hamlib_dir="${HAMLIB_LIBS#*-L}" hamlib_dir="${HAMLIB_LIBS%% *}" - if test "x$hamlib_dir" = "x"; then\ + if test "x$hamlib_dir" = "x"; then hamlib_dir=/usr/lib fi fi diff --git a/scripts/mknsisinst.sh b/scripts/mknsisinst.sh index 8487835b..962cc0e5 100755 --- a/scripts/mknsisinst.sh +++ b/scripts/mknsisinst.sh @@ -35,8 +35,6 @@ fldigi_bin=dl-fldigi.exe flarq_name=Flarq flarq_bin=flarq.exe -def= - if test "x$WANT_FLDIGI" != "xyes" && test "x$WANT_FLARQ" != "xyes"; then echo "E: refusing to create empty installer" >&2 exit 1 @@ -50,6 +48,43 @@ if test "x$WANT_FLARQ" = "xyes"; then def="$def -DHAVE_FLARQ -DFLARQ_NAME=$flarq_name -DFLARQ_BINARY=$flarq_bin -DFLARQ_VERSION=$FLARQ_VERSION" fi +# Look for pthreadGC2.dll and mingwm10.dll +MINGWM_DLL=mingwm10.dll +PTW32_DLL=pthreadGC2.dll +if ! test -r "$build/$MINGWM_DLL" || ! test -r "$build/$PTW32_DLL"; then + IFS_saved="$IFS" + IFS=: + MINGWM_PATH="" + PTW32_PATH="" + for dir in $LIB_PATH; do + test "x$MINGWM_PATH" = "x" && test -r "$dir/$MINGWM_DLL" && MINGWM_PATH="$dir/$MINGWM_DLL" + test "x$PTW32_PATH" = "x" && test -r "$dir/$PTW32_DLL" && PTW32_PATH="$dir/$PTW32_DLL" + done + IFS="$IFS_saved" +fi +if ! test -r "$build/$MINGWM_DLL"; then + if test "x$MINGWM_PATH" != "x"; then + cp "$MINGWM_PATH" "$build" + elif test -r /usr/share/doc/mingw32-runtime/${MINGWM_DLL}.gz; then + # Debian and Ubuntu + gzip -dc /usr/share/doc/mingw32-runtime/${MINGWM_DLL}.gz > "$build/$MINGWM_DLL" + fi +fi +if ! test -r "$build/$PTW32_DLL"; then + if test "x$PTW32_PATH" != "x"; then + cp "$PTW32_PATH" "$build" + else + # look for dll in PTW32_LIBS + dir=$(echo $PTW32_LIBS | sed -r 's/.*-L([[:graph:]]+).*/\1/g') + lib=$(echo $PTW32_LIBS | sed -r 's/.*-l(pthreadGC[[:graph:]]+).*/\1/g') + lib="${lib}.dll" + if test -r "$dir/$lib"; then + cp "$dir/$lib" "$build" + fi + fi +fi +def="$def -DMINGWM_DLL=$MINGWM_DLL -DPTW32_DLL=$PTW32_DLL" + if test "x$USE_NLS" = "xyes" && make -C "$srcdir/../po" install prefix="$build" >/dev/null; then def="$def -DFLDIGI_LOCALE_PATH=$build/share -DFLDIGI_LOCALE_DIR=locale" fi From 2dd383a3a9858a4a200633788e85f5d842d63898 Mon Sep 17 00:00:00 2001 From: Richard Meadows Date: Sat, 6 Aug 2016 13:40:57 +0100 Subject: [PATCH 2/2] Change 'dl_fldigi' to 'dl-fldigi' in win32. It changed in this merge https://github.com/richardeoin/dl-fldigi/commit/2fe29550 Thanks to @m1ari for finding this --- src/main.cxx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main.cxx b/src/main.cxx index 5b18cc4b..73f17cb3 100644 --- a/src/main.cxx +++ b/src/main.cxx @@ -404,7 +404,7 @@ int main(int argc, char ** argv) FLMSG_dir.clear(); #ifdef __WOE32__ - size_t p = appdir.rfind("dl_fldigi.exe"); + size_t p = appdir.rfind("dl-fldigi.exe"); appdir.erase(p); p = appdir.find("FL_APPS\\"); if (p != string::npos) {