summaryrefslogtreecommitdiffstats
path: root/Makefile.xmingw64
diff options
context:
space:
mode:
authorKoenig, Joerg <Joerg.Koenig@techsat.com>2020-04-26 13:26:05 (GMT)
committerKoenig, Joerg <Joerg.Koenig@techsat.com>2020-04-26 13:26:05 (GMT)
commitc6b16b7e4d20734f2ac2fa465badd1121b6a6738 (patch)
tree3a338a67c56a8d6e835811bc1c4481eac7956f0e /Makefile.xmingw64
parent386a4c8a8170b57ec347fc516262ff496e113f5d (diff)
downloadQt-c6b16b7e4d20734f2ac2fa465badd1121b6a6738.zip
Qt-c6b16b7e4d20734f2ac2fa465badd1121b6a6738.tar.gz
Qt-c6b16b7e4d20734f2ac2fa465badd1121b6a6738.tar.bz2
Last stand from QT_5_14refs/changes/82/11082/1
Change-Id: If8cf86e542691fed458098021c042193c4679d14
Diffstat (limited to 'Makefile.xmingw64')
-rw-r--r--Makefile.xmingw64174
1 files changed, 174 insertions, 0 deletions
diff --git a/Makefile.xmingw64 b/Makefile.xmingw64
new file mode 100644
index 0000000..68c1416
--- /dev/null
+++ b/Makefile.xmingw64
@@ -0,0 +1,174 @@
+
+TOP = $(shell readlink -f .)
+ARCH = x86-mingw64
+
+JOBS = 1
+
+LOCAL_BUILD_PATH = $(TOP)/build.$(ARCH)
+LOCAL_INST_PATH = $(TOP)/install.$(ARCH)
+
+VERSION_SHORT=5.14
+VERSION_RELEASE=2
+VERSION=$(VERSION_SHORT).$(VERSION_RELEASE)
+
+SSL_VERSION=1.0.2r
+SSL_ARCHIVE=openssl-$(SSL_VERSION).tar.gz
+
+PACKAGE_NAME = qt-$(VERSION)
+
+GCC_PATH ?= /opt/dev-tools/gcc-suite/1.6.0/x86-linux64/gcc
+CROSS_COMPILE ?= /opt/dev-tools/gcc-suite/1.6.0/x86-linux64/mingw64/bin/x86_64-w64-mingw32-
+
+CC ?= $(GCC_PATH)/bin/gcc
+CXX ?= $(GCC_PATH)/bin/g++
+
+#CC_LDFLAGS = "-m64 -shared -fpic -static-libgcc"
+#CXX_LDFLAGS = "-m64 -shared -fpic -static-libgcc -static-libstdc++"
+
+QT_STATIC_FLAGS = -static -static-runtime -no-shared
+
+all: download qt
+
+qt: ssl.$(ARCH) qt.$(ARCH)
+
+download:
+ $(MAKE) -C $(TOP)/SOURCE
+
+ssl.$(ARCH):
+ # static
+ rm -Rf $(LOCAL_BUILD_PATH)/openssl-$(SSL_VERSION)
+ mkdir -p $(LOCAL_BUILD_PATH)/
+ cd $(LOCAL_BUILD_PATH) && \
+ tar -xzf $(TOP)/SOURCE/$(SSL_ARCHIVE)
+ cd $(LOCAL_BUILD_PATH)/openssl-$(SSL_VERSION) && \
+ export CFLAGS= && \
+ export LDFLAGS="-static-libgcc -static-libstdc++" && \
+ export PATH=$(GCC_PATH)/bin:$(PATH) && \
+ export LD_LIBRARY_PATH=$(GCC_PATH)/lib64:$(LD_LIBRARY_PATH) && \
+ ./Configure -static-libgcc -static-libstdc++ \
+ --cross-compile-prefix=$(CROSS_COMPILE) \
+ --prefix=$(LOCAL_INST_PATH)/openssl mingw64 && \
+ pwd && \
+ make clean && \
+ make -j$(JOBS) && \
+ make install
+ # shared
+ rm -Rf $(LOCAL_BUILD_PATH)/openssl-$(SSL_VERSION)
+ mkdir -p $(LOCAL_BUILD_PATH)/
+ cd $(LOCAL_BUILD_PATH) && \
+ tar -xzf $(TOP)/SOURCE/$(SSL_ARCHIVE)
+ cd $(LOCAL_BUILD_PATH)/openssl-$(SSL_VERSION) && \
+ export CFLAGS=-fpic && \
+ export LDFLAGS="-static-libgcc -static-libstdc++" && \
+ export PATH=$(GCC_PATH)/bin:$(PATH) && \
+ export LD_LIBRARY_PATH=$(GCC_PATH)/lib64:$(LD_LIBRARY_PATH) && \
+ ./Configure -static-libgcc -static-libstdc++ shared \
+ --cross-compile-prefix=$(CROSS_COMPILE) \
+ --prefix=$(LOCAL_INST_PATH)/openssl mingw64 && \
+ pwd && \
+ make clean && \
+ make -j$(JOBS) && \
+ make install
+
+qt.x86-mingw64: qt.x86-mingw64.unpack qt.x86-mingw64.shared qt.x86-mingw64.static
+
+qt.x86-mingw64.unpack:
+ # shared
+ mkdir -p $(LOCAL_BUILD_PATH)
+ rm -Rf $(LOCAL_BUILD_PATH)/qt-everywhere-src-$(VERSION)
+ cd $(LOCAL_BUILD_PATH) && \
+ tar -xJf $(TOP)/SOURCE/qt-everywhere-src-$(VERSION).tar.xz
+ cd $(LOCAL_BUILD_PATH)/qt-everywhere-src-$(VERSION) && \
+ patch -p1 < $(TOP)/SOURCE/qt-5.12.3-cross-static-gcc-libs.patch
+
+qt.x86-mingw64.shared:
+ # shared
+ cd $(LOCAL_BUILD_PATH)/qt-everywhere-src-$(VERSION) && \
+ rm -f config.cache && \
+ export PATH=$(GCC_PATH)/bin:$(PATH) && \
+ export LD_LIBRARY_PATH=$(GCC_PATH)/lib64:$(LD_LIBRARY_PATH) && \
+ gcc --version && \
+ bash ./configure \
+ -platform linux-g++-64 \
+ -xplatform win32-g++ \
+ -device-option CROSS_COMPILE=$(CROSS_COMPILE) \
+ -opengl desktop \
+ -recheck-all \
+ -shared \
+ -prefix $(LOCAL_INST_PATH)/qt-$(VERSION)-shared \
+ -release \
+ -opensource \
+ -no-rpath \
+ -strip \
+ -ssl \
+ -openssl \
+ -I$(LOCAL_INST_PATH)/openssl/include \
+ -I/opt/dev-tools/gcc-suite/1.6.0/x86-linux64/mingw64/x86_64-w64-mingw32/include \
+ -L$(LOCAL_INST_PATH)/openssl/lib \
+ -nomake examples \
+ -nomake tests \
+ -skip qtwebengine \
+ -skip activeqt \
+ -qt-zlib \
+ -qt-libjpeg \
+ -qt-libpng \
+ -qt-pcre \
+ -confirm-license && \
+ make QMAKE_LFLAGS="-m64 -static-libgcc -static-libstdc++" -j$(JOBS) && \
+ make -j$(JOBS) install
+ cp -f $(TOP)/qt.conf $(LOCAL_INST_PATH)/qt-$(VERSION)-shared/bin/
+ cd $(LOCAL_INST_PATH)/qt-$(VERSION)-shared/bin && chmod -f a+x *.exe
+ cd $(LOCAL_INST_PATH)/qt-$(VERSION)-shared && \
+ tar -zcf $(TOP)/qt-$(VERSION)-shared-$(ARCH).tgz ./
+
+qt.x86-mingw64.static:
+ # static
+ mkdir -p $(LOCAL_BUILD_PATH)
+ rm -Rf $(LOCAL_BUILD_PATH)/qt-everywhere-src-$(VERSION)
+ cd $(LOCAL_BUILD_PATH) && \
+ tar -xJf $(TOP)/SOURCE/qt-everywhere-src-$(VERSION).tar.xz
+ cd $(LOCAL_BUILD_PATH)/qt-everywhere-src-$(VERSION) && \
+ patch -p1 < $(TOP)/SOURCE/qt-5.12.3-cross-static-gcc-libs.patch && \
+ rm -f config.cache && \
+ export PATH=$(GCC_PATH)/bin:$(PATH) && \
+ export LD_LIBRARY_PATH=$(GCC_PATH)/lib64:$(LD_LIBRARY_PATH) && \
+ gcc --version && \
+ ./configure \
+ -xplatform win32-g++ \
+ -device-option CROSS_COMPILE=$(CROSS_COMPILE) \
+ -opengl desktop \
+ -recheck-all \
+ -prefix $(LOCAL_INST_PATH)/qt-$(VERSION)-static \
+ -static \
+ -release \
+ -opensource \
+ -strip \
+ -ssl \
+ -openssl \
+ -no-rpath \
+ -I$(LOCAL_INST_PATH)/openssl/include \
+ -L$(LOCAL_INST_PATH)/opensll/lib \
+ -nomake examples \
+ -nomake tests \
+ -skip qtwebengine \
+ -skip activeqt \
+ -qt-zlib \
+ -qt-libjpeg \
+ -qt-libpng \
+ -qt-pcre \
+ -confirm-license && \
+ make QMAKE_LFLAGS="-m64 -static-libgcc -static-libstdc++" -j$(JOBS) && \
+ make -j$(JOBS) install
+ cp -f $(TOP)/qt.conf $(LOCAL_INST_PATH)/qt-$(VERSION)-static/bin/
+ cd $(LOCAL_INST_PATH)/qt-$(VERSION)-shared/bin && chmod -f a+x *.exe
+ cd $(LOCAL_INST_PATH)/qt-$(VERSION)-static && \
+ tar -zcf $(TOP)/qt-$(VERSION)-static-$(ARCH).tgz ./
+
+clean:
+ rm -Rf build.$(ARCH)
+ rm -Rf install.$(ARCH)
+
+dll2a:
+ for d in $(DLL_DIR)/*.dll; do \
+ $(GCC_PATH)/bin/$(XPREFIX)dll2a $$d -l $(LIBDIR) ; \
+ done;