From f04fca09a7af3972f21a488e891b3c72d7ef8c6e Mon Sep 17 00:00:00 2001 From: Ben Wiederhake Date: Tue, 10 Sep 2019 01:43:30 +0200 Subject: Attempt and fail to make Windows 64-bit builds See https://developer.pidgin.im/ticket/9915#comment:5 --- Makefile.in | 71 +++++++++++++++++++++++++++++++--------------- mkwindows.sh | 13 +++++---- telegram-purple.nsi.awk-in | 8 +++--- 3 files changed, 59 insertions(+), 33 deletions(-) diff --git a/Makefile.in b/Makefile.in index 41c69c6..659485b 100644 --- a/Makefile.in +++ b/Makefile.in @@ -23,20 +23,36 @@ localedir=@localedir@ gettext_package=@GETTEXT_PACKAGE@ # Also update mkwindows.sh +MINGW_TARGET?=i686 PIDGIN_VERSION=2.13.0 -WIN32_GTK_BUNDLE_DIR=win32/gtk+-bundle_2.24.10-20120208_win32 -WIN32_GTK_BUNDLE_URL=http://ftp.acc.umu.se/pub/gnome/binaries/win32/gtk+/2.24/gtk+-bundle_2.24.10-20120208_win32.zip -WIN32_GTK_BUNDLE_FILE=win32/gtk+-bundle_2.24.10-20120208_win32.zip -WIN32_PIDGIN_SRC_URL=http://sourceforge.net/projects/pidgin/files/Pidgin/${PIDGIN_VERSION}/pidgin-${PIDGIN_VERSION}.tar.gz/download -WIN32_PIDGIN_SRC_FILE=win32/pidgin-${PIDGIN_VERSION}.tar.gz -WIN32_PIDGIN_SRC_DIR=win32/pidgin-${PIDGIN_VERSION} -WIN32_PIDGIN_BIN_URL=http://sourceforge.net/projects/pidgin/files/Pidgin/${PIDGIN_VERSION}/pidgin-${PIDGIN_VERSION}-win32-bin.zip/download -WIN32_PIDGIN_BIN_FILE=win32/pidgin-${PIDGIN_VERSION}-win32-bin.zip -WIN32_PIDGIN_BIN_DIR=win32/pidgin-${PIDGIN_VERSION}-win32bin -WIN32_WEBP_URL=https://github.com/webmproject/libwebp/archive/v1.0.2.tar.gz -WIN32_WEBP_FILE=win32/libwebp-1.0.2.tar.gz -WIN32_WEBP_DIR=win32/libwebp-1.0.2 -WIN32_DIRS=${WIN32_GTK_BUNDLE_DIR} ${WIN32_PIDGIN_SRC_DIR} ${WIN32_PIDGIN_BIN_DIR} ${WIN32_WEBP_DIR} +WIN_i686_GTK_BUNDLE_DIR=win/gtk+-bundle_2.24.10-20120208_win32 +WIN_i686_GTK_BUNDLE_URL=http://ftp.acc.umu.se/pub/gnome/binaries/win32/gtk+/2.24/gtk+-bundle_2.24.10-20120208_win32.zip +WIN_i686_GTK_BUNDLE_FILE=win/gtk+-bundle_2.24.10-20120208_win32.zip +WIN_i686_PIDGIN_SRC_URL=http://sourceforge.net/projects/pidgin/files/Pidgin/${PIDGIN_VERSION}/pidgin-${PIDGIN_VERSION}.tar.gz/download +WIN_i686_PIDGIN_SRC_FILE=win/pidgin-${PIDGIN_VERSION}.tar.gz +WIN_i686_PIDGIN_SRC_DIR=win/pidgin-${PIDGIN_VERSION} +WIN_i686_PIDGIN_BIN_URL=http://sourceforge.net/projects/pidgin/files/Pidgin/${PIDGIN_VERSION}/pidgin-${PIDGIN_VERSION}-win32-bin.zip/download +WIN_i686_PIDGIN_BIN_FILE=win/pidgin-${PIDGIN_VERSION}-win32-bin.zip +WIN_i686_PIDGIN_BIN_DIR=win/pidgin-${PIDGIN_VERSION}-win32bin +WIN_i686_WEBP_URL=https://github.com/webmproject/libwebp/archive/v1.0.2.tar.gz +WIN_i686_WEBP_FILE=win/libwebp-1.0.2.tar.gz +WIN_i686_WEBP_DIR=win/libwebp-1.0.2 +WIN_i686_DIRS=${WIN_i686_GTK_BUNDLE_DIR} ${WIN_i686_PIDGIN_SRC_DIR} ${WIN_i686_PIDGIN_BIN_DIR} ${WIN_i686_WEBP_DIR} +WIN_x86_64_GTK_BUNDLE_DIR=win/gtk+-bundle_2.22.1-20101229_win64 +WIN_x86_64_GTK_BUNDLE_URL=http://ftp.acc.umu.se/pub/gnome/binaries/win64/gtk+/2.22/gtk+-bundle_2.22.1-20101229_win64.zip +WIN_x86_64_GTK_BUNDLE_FILE=win/gtk+-bundle_2.22.1-20101229_win64.zip +WIN_x86_64_PIDGIN_SRC_URL=${WIN_i686_PIDGIN_SRC_URL} +WIN_x86_64_PIDGIN_SRC_FILE=${WIN_i686_PIDGIN_SRC_FILE} +WIN_x86_64_PIDGIN_SRC_DIR=${WIN_i686_PIDGIN_SRC_DIR} + +WIN_x86_64_PIDGIN_BIN_URL=IMPOSSIBLE! https://developer.pidgin.im/ticket/9915#comment:5 + +error ${error} $(error) + +WIN_x86_64_PIDGIN_BIN_FILE=win/pidgin-${PIDGIN_VERSION}-win32-bin.zip +WIN_x86_64_PIDGIN_BIN_DIR=win/pidgin-${PIDGIN_VERSION}-win32bin + +WIN_x86_64_DIRS=${WIN_x86_64_GTK_BUNDLE_DIR} ${WIN_x86_64_PIDGIN_SRC_DIR} ${WIN_x86_64_PIDGIN_BIN_DIR} ${WIN_x86_64_WEBP_DIR} # Not directly used here, but the usage will be injected via the CFLAGS configure var. # Note on webp: locally cross-built! That's why it violates the pattern. WIN32_INC=-I${WIN32_PIDGIN_SRC_DIR}/pidgin \ @@ -242,34 +258,43 @@ local_uninstall: ### == Windows sources downloads == ### -.PHONY: download_win32_sources -download_win32_sources: | ${WIN32_DIRS} +.PHONY: download_win_i686_sources +download_win_i686_sources: | ${WIN32_DIRS} -win32: +.PHONY: download_win_x86_64_sources +download_win_x86_64_sources: | ${WIN64_DIRS} + +win: @mkdir -p $@ ${WIN32_GTK_BUNDLE_DIR}: | ${WIN32_GTK_BUNDLE_FILE} unzip -q $| -d $@ -${WIN32_GTK_BUNDLE_FILE}: | win32 +${WIN32_GTK_BUNDLE_FILE}: | win wget -q -O $@ ${WIN32_GTK_BUNDLE_URL} +${WIN64_GTK_BUNDLE_DIR}: | ${WIN64_GTK_BUNDLE_FILE} + unzip -q $| -d $@ + +${WIN64_GTK_BUNDLE_FILE}: | win + wget -q -O $@ ${WIN64_GTK_BUNDLE_URL} + ${WIN32_PIDGIN_SRC_DIR}: | ${WIN32_PIDGIN_SRC_FILE} - tar xf $| -C win32/ + tar xf $| -C win/ -${WIN32_PIDGIN_SRC_FILE}: | win32 +${WIN32_PIDGIN_SRC_FILE}: | win wget -q -O $@ ${WIN32_PIDGIN_SRC_URL} ${WIN32_PIDGIN_BIN_DIR}: | ${WIN32_PIDGIN_BIN_FILE} - unzip -q $| -d win32/ + unzip -q $| -d win/ -${WIN32_PIDGIN_BIN_FILE}: | win32 +${WIN32_PIDGIN_BIN_FILE}: | win wget -q -O $@ ${WIN32_PIDGIN_BIN_URL} ${WIN32_WEBP_DIR}: | ${WIN32_WEBP_FILE} - tar xf $| -C win32/ + tar xf $| -C win/ -${WIN32_WEBP_FILE}: | win32 +${WIN32_WEBP_FILE}: | win wget -q -O $@ ${WIN32_WEBP_URL} .PHONY: win-installer-deps diff --git a/mkwindows.sh b/mkwindows.sh index b76a20a..91a71c9 100755 --- a/mkwindows.sh +++ b/mkwindows.sh @@ -76,7 +76,8 @@ HOST_MACHINE="$(uname -m)" HOST="${HOST_MACHINE}-linux-gnu" # MinGW -MINGW_MACHINE="i686" +# Either "i686" or "x86_64": +MINGW_MACHINE="x86_64" MINGW_TARGET="${MINGW_MACHINE}-w64-mingw32" MINGW_BASE=/usr/${MINGW_TARGET} MINGW_INCLUDEDIR=/usr/share/mingw-w64/include @@ -90,9 +91,9 @@ WEBP_BUILD_DIR="objs/webp/build/" # Win32 references # Sadly, the library paths must be resolved *now* already. # AND, they must be absolute. Sigh. -mkdir -p win32 -WIN32_GTK_DEV_DIR=`realpath win32/gtk+-bundle_2.24.10-20120208_win32` -WIN32_PIDGIN_DIR=`realpath win32/pidgin-2.13.0` +mkdir -p win +WIN32_GTK_DEV_DIR=`realpath win/gtk+-bundle_2.24.10-20120208_win32` +WIN32_PIDGIN_DIR=`realpath win/pidgin-2.13.0` WIN32_WEBP_PRISTINE="win32/libwebp-1.0.2/" # Versioning information @@ -142,7 +143,7 @@ fi # === Download all sources === echo "===== 01: Prepare sources" -make clean download_win32_sources +make MINGW_TARGET=${MINGW_TARGET} clean download_win_${MINGW_MACHINE}_sources # === Build libpng and libwebp === @@ -368,7 +369,7 @@ then fi ${FAKETIME} makensis -DPLUGIN_VERSION="${VERSION}+g${COMMIT}${VARIANT_SUFFIX}" -DPRPL_NAME=libtelegram.dll \ - -DWIN32_DEV_TOP=contrib telegram-purple.nsi + -DWIN_DEV_TOP=contrib telegram-purple.nsi # There's no monster under your bed, I swear. echo "===== 11: Unspoof files" diff --git a/telegram-purple.nsi.awk-in b/telegram-purple.nsi.awk-in index 7044946..e33af08 100644 --- a/telegram-purple.nsi.awk-in +++ b/telegram-purple.nsi.awk-in @@ -94,10 +94,10 @@ Section "MainSection" SEC01 File /nonfatal "/oname=變\LC_MESSAGES\telegram-purple.mo" "po\變.mo" SetOutPath "$PidginDir" - File "${WIN32_DEV_TOP}\libgpg-error-0.dll" - File "${WIN32_DEV_TOP}\libgcrypt-20.dll" - 或File "${WIN32_DEV_TOP}\libwebp-7.dll" - File "${WIN32_DEV_TOP}\libgcc_s_sjlj-1.dll" + File "${WIN_DEV_TOP}\libgpg-error-0.dll" + File "${WIN_DEV_TOP}\libgcrypt-20.dll" + 或File "${WIN_DEV_TOP}\libwebp-7.dll" + File "${WIN_DEV_TOP}\libgcc_s_sjlj-1.dll" SectionEnd Function GetPidginInstPath -- cgit v1.2.3