summaryrefslogtreecommitdiffstats
path: root/Makefile.32
diff options
context:
space:
mode:
authorJoerg Koenig <Joerg.Koenig@techsat.com>2018-11-28 13:51:49 (GMT)
committerJoerg Koenig <Joerg.Koenig@techsat.com>2018-11-28 13:51:49 (GMT)
commitcea9b2d0b6ee11b0a9adaae4d6d922e601546e49 (patch)
tree502910dc606380e5a6dc69c4e00e55bdd5990309 /Makefile.32
parentbeb1727dc678545e02cf2e5437ecaf562a9c9f20 (diff)
downloadgcc-compiler-suite-cea9b2d0b6ee11b0a9adaae4d6d922e601546e49.zip
gcc-compiler-suite-cea9b2d0b6ee11b0a9adaae4d6d922e601546e49.tar.gz
gcc-compiler-suite-cea9b2d0b6ee11b0a9adaae4d6d922e601546e49.tar.bz2
Next Compiler Suite Version 1.2.0refs/changes/84/6284/1
Updates of compilers, tools & libs Change-Id: I27758e16124b4129d32cf37ce64b658cf090ad7b
Diffstat (limited to 'Makefile.32')
-rwxr-xr-xMakefile.32726
1 files changed, 726 insertions, 0 deletions
diff --git a/Makefile.32 b/Makefile.32
new file mode 100755
index 0000000..4bc0008
--- /dev/null
+++ b/Makefile.32
@@ -0,0 +1,726 @@
+###################################################################
+# Makefile to generate a GNU GCC compiler (64-Bit) collection
+#
+# - linux based mingw multilib cross compiler
+# - windows gcc multilib native compiler
+# - linux gcc multilib native compiler
+#
+# all compiler including GDB 7.12
+#
+# Languages: C, C++, Fortran, Obj-C
+# Multilib: -m32, -m64
+#
+# host
+#
+# The system that is going to run the software once it is built. Once the software
+# has been built, it will execute on this particular system.
+#
+# build
+#
+# The system where the build process is being executed. For most uses this
+# would be the same as the host system, but in case of cross-compilation
+# the two obviously differ.
+#
+# target
+#
+# The system against which the software being built will run on. This only exists, or rather
+# has a meaning, when the software being built may interact specifically with a
+# system that differs from the one it's being executed on (our host). This is the case
+# for compilers, debuggers, profilers and analyzers and other tools in general.
+#
+# Build order:
+#
+# linux hosted nativ compiler -> linux hosted mingw cross compiler -> windows hosted nativ compiler
+#
+#
+
+include versions.mk.inc
+
+ifeq ($(BUILD_NUMBER),)
+VERSION_SUITE = $(SUITE)-unofficial
+else
+VERSION_SUITE = $(SUITE)-$(BUILD_NUMBER)
+endif
+
+TOP = $(shell readlink -f .)
+ARCH = x86-linux
+ARCH32 = i686-linux-gnu
+
+GCC_PKGVERSION = "TechSAT GCC-Suite v$(VERSION_SUITE)"
+
+XGCC_TARGET64 = x86_64-w64-mingw32
+XGCC_TARGET32 = i686-w64-mingw32
+
+SOURCE_DIR = $(shell readlink -f $(PWD)/SOURCES)
+PATCHES_DIR = $(shell readlink -f $(PWD)/PATCHES)
+UNPACK_DIR = $(PWD)/unpack.$(ARCH)
+BUILD_DIR = $(PWD)/build.$(ARCH)
+INST_BASE = $(PWD)/inst.$(ARCH)
+
+INST_BASE_LINUX = $(PWD)/inst.x86-linux64
+
+XGCC_INST_DIR = $(INST_BASE_LINUX)/mingw64
+XGCC_PREFIX = $(XGCC_TARGET64)-
+XGCC_BINPATH = $(XGCC_INST_DIR)/bin
+XGCC32 = "$(XGCC_BINPATH)/$(XGCC_PREFIX)gcc -m32 -static-libgcc"
+XGCC64 = "$(XGCC_BINPATH)/$(XGCC_PREFIX)gcc -m64 -static-libgcc"
+XGPP32 = "$(XGCC_BINPATH)/$(XGCC_PREFIX)g++ -m32 -static-libgcc -static-libstdc++"
+XGPP64 = "$(XGCC_BINPATH)/$(XGCC_PREFIX)g++ -m64 -static-libgcc -static-libstdc++"
+
+GCC_BINPATH = $(INST_BASE)/gcc-$(VERSION_GCC)/bin
+GCC32 = "$(GCC_BINPATH)/gcc -static-libgcc"
+GXX32 = "$(GCC_BINPATH)/g++ -static-libgcc -static-libstdc++"
+GCC64 = "$(GCC_BINPATH)/gcc -static-libgcc"
+GXX64 = "$(GCC_BINPATH)/g++ -static-libgcc -static-libstdc++"
+GCC = "$(GCC_BINPATH)/gcc -static-libgcc"
+GXX = "$(GCC_BINPATH)/g++ -static-libgcc -static-libstdc++"
+
+
+WINGCC_ROOTNAME = gcc-$(VERSION_GCC)
+WINGCC_INST_DIR = $(INST_BASE)/$(WINGCC_ROOTNAME)
+WINGCC_SYSROOT = $(INST_BASE)/$(WINGCC_ROOTNAME)
+
+LANGUAGES = c,c++,fortran,objc
+
+SOURCE_PACKAGES = \
+ $(SOURCE_DIR)/binutils-$(VERSION_BINUTILS).tar.bz2 \
+ $(SOURCE_DIR)/gcc-$(VERSION_GCC).tar.gz \
+ $(SOURCE_DIR)/gdb-$(VERSION_GDB).tar.bz2 \
+ $(SOURCE_DIR)/gmp-$(VERSION_GMP).tar.lz \
+ $(SOURCE_DIR)/isl-$(VERSION_ISL).tar.bz2 \
+ $(SOURCE_DIR)/mingw-w64-v$(VERSION_MINGW).tar.bz2 \
+ $(SOURCE_DIR)/mpc-$(VERSION_MPC).tar.gz \
+ $(SOURCE_DIR)/mpfr-$(VERSION_MPFR).tar.bz2 \
+ $(SOURCE_DIR)/zlib-$(VERSION_ZLIB).tar.gz \
+ $(SOURCE_DIR)/bzip2-$(VERSION_BZ2).tar.gz
+
+JOBS = -j4
+
+$(SOURCE_DIR)/binutils-$(VERSION_BINUTILS).tar.bz2: _download_prepare
+ wget -c https://ftp.gnu.org/gnu/binutils/binutils-$(VERSION_BINUTILS).tar.bz2 -O \
+ $(SOURCE_DIR)/binutils-$(VERSION_BINUTILS).tar.bz2 2>&1
+$(SOURCE_DIR)/gcc-$(VERSION_GCC).tar.gz:
+ wget -c https://ftp.gnu.org/gnu/gcc/gcc-$(VERSION_GCC)/gcc-$(VERSION_GCC).tar.gz -O \
+ $(SOURCE_DIR)/gcc-$(VERSION_GCC).tar.gz
+$(SOURCE_DIR)/gmp-$(VERSION_GMP).tar.lz:
+ wget -c https://gmplib.org/download/gmp/gmp-$(VERSION_GMP).tar.lz -O \
+ $(SOURCE_DIR)/gmp-$(VERSION_GMP).tar.lz
+$(SOURCE_DIR)/mingw-w64-v$(VERSION_MINGW).tar.bz2:
+ wget -c https://datapacket.dl.sourceforge.net/project/mingw-w64/mingw-w64/mingw-w64-release/mingw-w64-v$(VERSION_MINGW).tar.bz2 -O \
+ $(SOURCE_DIR)/mingw-w64-v$(VERSION_MINGW).tar.bz2
+$(SOURCE_DIR)/mpc-$(VERSION_MPC).tar.gz:
+ wget -c ftp://ftp.gnu.org/gnu/mpc/mpc-$(VERSION_MPC).tar.gz -O \
+ $(SOURCE_DIR)/mpc-$(VERSION_MPC).tar.gz
+$(SOURCE_DIR)/mpfr-$(VERSION_MPFR).tar.bz2:
+ wget -c http://www.mpfr.org/mpfr-current/mpfr-$(VERSION_MPFR).tar.bz2 -O \
+ $(SOURCE_DIR)/mpfr-$(VERSION_MPFR).tar.bz2
+$(SOURCE_DIR)/zlib-$(VERSION_ZLIB).tar.gz:
+ wget -c https://www.zlib.net/zlib-$(VERSION_ZLIB).tar.gz -O \
+ $(SOURCE_DIR)/zlib-$(VERSION_ZLIB).tar.gz
+$(SOURCE_DIR)/bzip2-$(VERSION_BZ2).tar.gz:
+ wget -c https://netcologne.dl.sourceforge.net/project/bzip2/bzip2-$(VERSION_BZ2).tar.gz -O \
+ $(SOURCE_DIR)/bzip2-$(VERSION_BZ2).tar.gz
+$(SOURCE_DIR)/gdb-$(VERSION_GDB).tar.gz:
+ wget -c ftp://sourceware.org/pub/gdb/releases/gdb-$(VERSION_GDB).tar.gz -O \
+ $(SOURCE_DIR)/gdb-$(VERSION_GDB).tar.gz
+$(SOURCE_DIR)/isl-$(VERSION_ISL).tar.bz2:
+ wger -c "ftp://gcc.gnu.org/pub/gcc/infrastructure/isl-$(VERSION_ISL).tar.bz2" -O \
+ $(SOURCE_DIR)/isl-$(VERSION_ISL).tar.bz2
+
+download: $(SOURCE_PACKAGES)
+
+_download_prepare:
+ mkdir -p $(SOURCE_DIR)
+
+all: \
+ lingcc-all \
+ xgcc-all \
+ wingcc-all \
+ fullclean
+ifneq ($(LOCAL_INST_PATH),)
+ mkdir -p $(LOCAL_INST_PATH)
+ mkdir -p $(LOCAL_INST_PATH)/../x86-mingw64
+ cd $(LOCAL_INST_PATH); \
+ tar -zxf $(PWD)/gcc-suite-$(VERSION_SUITE)-gcc-$(VERSION_GCC)-x86-linux64.tgz
+ cd $(LOCAL_INST_PATH); \
+ tar -zxf $(PWD)/gcc-suite-$(VERSION_SUITE)-xgcc-$(VERSION_GCC)-$(VERSION_MINGW)-x86-linux64.tgz
+ cd $(LOCAL_INST_PATH)/../x86-mingw64; \
+ unzip -o $(PWD)/gcc-suite-$(VERSION_SUITE)-gcc-$(VERSION_GCC)-$(VERSION_MINGW)-x86-mingw64.zip
+endif
+
+prepare:
+ mkdir -p $(UNPACK_DIR)
+ tar -zxf $(SOURCE_DIR)/gcc-$(VERSION_GCC).tar.gz -C $(UNPACK_DIR)/
+ cd $(UNPACK_DIR)/gcc-$(VERSION_GCC) && \
+ patch -p1 < $(PATCHES_DIR)/windows-lrealpath-no-force-lowercase-nor-backslash.patch
+ tar -zxf $(SOURCE_DIR)/gdb-$(VERSION_GDB).tar.gz -C $(UNPACK_DIR)/
+ cd $(UNPACK_DIR)/gdb-$(VERSION_GDB) && \
+ patch -p1 < $(PATCHES_DIR)/windows-lrealpath-no-force-lowercase-nor-backslash.patch
+ tar -jxf $(SOURCE_DIR)/binutils-$(VERSION_BINUTILS).tar.bz2 -C $(UNPACK_DIR)/
+ cd $(UNPACK_DIR)/binutils-$(VERSION_BINUTILS) && \
+ patch -p1 < $(PATCHES_DIR)/windows-lrealpath-no-force-lowercase-nor-backslash.patch
+ tar -jxf $(SOURCE_DIR)/mingw-w64-v$(VERSION_MINGW).tar.bz2 -C $(UNPACK_DIR)/
+ tar -jxf $(SOURCE_DIR)/mpfr-$(VERSION_MPFR).tar.bz2 -C $(UNPACK_DIR)/
+ tar -jxf $(SOURCE_DIR)/isl-$(VERSION_ISL).tar.bz2 -C $(UNPACK_DIR)/
+ tar -zxf $(SOURCE_DIR)/mpc-$(VERSION_MPC).tar.gz -C $(UNPACK_DIR)/
+ tar --lzip -xf $(SOURCE_DIR)/gmp-$(VERSION_GMP).tar.lz -C $(UNPACK_DIR)/
+ tar -zxf $(SOURCE_DIR)/zlib-$(VERSION_ZLIB).tar.gz -C $(UNPACK_DIR)/
+ tar -zxf $(SOURCE_DIR)/bzip2-$(VERSION_BZ2).tar.gz -C $(UNPACK_DIR)/
+ #
+ rm -Rf $(UNPACK_DIR)/gcc-$(VERSION_GCC)/gmp
+ mv $(UNPACK_DIR)/gmp-$(VERSION_GMP) $(UNPACK_DIR)/gcc-$(VERSION_GCC)/gmp
+ rm -Rf $(UNPACK_DIR)/gcc-$(VERSION_GCC)/mpc
+ mv $(UNPACK_DIR)/mpc-$(VERSION_MPC) $(UNPACK_DIR)/gcc-$(VERSION_GCC)/mpc
+ rm -Rf $(UNPACK_DIR)/gcc-$(VERSION_GCC)/mpfr
+ mv $(UNPACK_DIR)/mpfr-$(VERSION_MPFR) $(UNPACK_DIR)/gcc-$(VERSION_GCC)/mpfr
+ rm -Rf $(UNPACK_DIR)/gcc-$(VERSION_GCC)/isl
+ mv $(UNPACK_DIR)/isl-$(VERSION_ISL) $(UNPACK_DIR)/gcc-$(VERSION_GCC)/isl
+
+build-common:
+ mkdir -p $(BUILD_DIR)
+
+##############################################################################
+# Nativ Multilib Linux Compiler (64 -Bit)
+##############################################################################
+lingcc-all:
+ make -f Makefile.32 ARCH=x86-linux clean
+ make -f Makefile.32 ARCH=x86-linux prepare
+ #
+ make -f Makefile.32 ARCH=x86-linux lingcc-binutils
+ make -f Makefile.32 ARCH=x86-linux lingcc-gcc
+ make -f Makefile.32 ARCH=x86-linux lingcc-finish
+ make -f Makefile.32 ARCH=x86-linux lingcc-gdb
+ make -f Makefile.32 ARCH=x86-linux lingcc-pack
+
+lingcc-binutils:
+ mkdir -p $(BUILD_DIR)/binutils
+ cd $(BUILD_DIR)/binutils ;\
+ export CFLAGS="-m32" && \
+ export CXXLAGS="-m32" && \
+ $(UNPACK_DIR)/binutils-$(VERSION_BINUTILS)/configure \
+ --with-pkgversion=$(GCC_PKGVERSION) \
+ --prefix=$(INST_BASE)/gcc-$(VERSION_GCC) \
+ --disable-nls \
+ --enable-deterministic-archives \
+ --with-gcc \
+ --with-gnu-ld \
+ --with-gnu-as \
+ --disable-werror \
+ --build=$(ARCH32) \
+ --host=$(ARCH32) \
+ --enable-targets=$(ARCH32) && \
+ make $(JOBS) && make $(JOBS) install
+
+
+lingcc-gcc:
+ mkdir -p $(BUILD_DIR)/gcc
+ cd $(BUILD_DIR)/gcc && \
+ export CC="gcc -m32" && \
+ export CXX="g++ -m32" && \
+ export CFLAGS="-m32" && \
+ export CXXLAGS="-m32" && \
+ export LDLAGS="-m32" && \
+ $(UNPACK_DIR)/gcc-$(VERSION_GCC)/configure \
+ --with-pkgversion=$(GCC_PKGVERSION) \
+ --prefix=$(INST_BASE)/gcc-$(VERSION_GCC) \
+ --build=$(ARCH32) \
+ --host=$(ARCH32) \
+ --target=$(ARCH32) \
+ --disable-nls \
+ --disable-multilib \
+ --with-arch-32=i686 \
+ --with-tune=generic\
+ --enable-checking=release \
+ --enable-languages=$(LANGUAGES) \
+ --without-included-gettext \
+ --enable-threads=posix \
+ --enable-shared \
+ --enable-static \
+ --disable-werror \
+ --disable--long-long \
+ --disable-symvers \
+ --enable-libstdcxx-time=yes \
+ --enable-libstdcxx-debug \
+ --enable-linker-build-id \
+ --enable-nls \
+ --disable-plugin \
+ --enable-gnu-unique-object \
+ --disable-vtable-verify \
+ --enable-clocale=gnu \
+ && \
+ make $(JOBS) all && \
+ make $(JOBS) install
+
+lingcc-finish:
+ for f in `find $(INST_BASE)/gcc-$(VERSION_GCC) -type f -executable -exec file -i '{}' \; | grep 'x-executable; charset=binary' | cut -d: -f1`; do \
+ strip $$f ;\
+ done;
+ rm -Rf $(INST_BASE)/gcc-$(VERSION_GCC)/share
+ find $(INST_BASE)/gcc-$(VERSION_GCC) -type f -name "*.py" | xargs rm -f
+
+lingcc-gdb:
+ rm -Rf $(BUILD_DIR)/lingdb
+ mkdir -p $(BUILD_DIR)/lingdb
+ cd $(BUILD_DIR)/lingdb && \
+ export PATH=$(INST_BASE)/gcc-$(VERSION_GCC)/bin:$(PATH) && \
+ CFLAGS="-g -O2" \
+ LDLAGS="-static-libgcc -static-libstdc++" \
+ CXXFLAGS="-g -O2 -fpermissive" \
+ $(UNPACK_DIR)/gdb-$(VERSION_GDB)/configure \
+ --prefix=$(INST_BASE)/gcc-$(VERSION_GCC) \
+ --target=$(ARCH64) \
+ --host=$(ARCH64) \
+ --build=$(ARCH64) && \
+ make $(JOBS) && make $(JOBS) install
+
+lingcc-pack:
+ rm -Rf $(INST_BASE)/gcc$(VERSION_GCC)/share
+ cd $(INST_BASE) && \
+ tar -zcf $(PWD)/gcc-suite-$(VERSION_SUITE)-gcc-$(VERSION_GCC)-x86-linux64.tgz ./gcc-$(VERSION_GCC)
+
+
+##############################################################################
+# Linux based MinGW multilib cross compiler
+##############################################################################
+xgcc-all:
+ make clean
+ make prepare
+ #
+ make build-common
+ make xgcc-build-binutils
+ make xgcc-mingw-pass1
+ make xgcc-gcc-pass1
+ make xgcc-mingw-pass2
+ make xgcc-gcc-pass2
+ make xgcc-finish
+ make xgcc-gdb
+ make xgcc-zlib
+ make xgcc-bzip2
+ make xgcc-reimp
+ make xgcc-genpeimg
+ make xgcc-gendef
+ make xgcc-pack
+
+xgcc-build-binutils:
+ mkdir -p $(BUILD_DIR)/binutils
+ cd $(BUILD_DIR)/binutils ;\
+ LDLAGS="-static-libgcc -static-libstdc++" \
+ CFLAGS="-m32 -O2 -pipe" \
+ CXXFLAGS="-m32 -O2 -pipe" \
+ $(UNPACK_DIR)/binutils-$(VERSION_BINUTILS)/configure \
+ --with-pkgversion=$(GCC_PKGVERSION) \
+ --prefix=$(XGCC_INST_DIR) \
+ --disable-nls \
+ --enable-deterministic-archives \
+ --with-gcc \
+ --with-gnu-ld \
+ --with-gnu-as \
+ --disable-werror \
+ --enable-targets=$(XGCC_TARGET32) \
+ --host=$(ARCH32) \
+ --build=$(ARCH32) \
+ --target=$(XGCC_TARGET32) ;\
+ make $(JOBS) ;\
+ make $(JOBS) install
+
+xgcc-mingw-pass1:
+ mkdir -p $(BUILD_DIR)/mingw
+ cd $(BUILD_DIR)/mingw ;\
+ LDLAGS="-static-libgcc -static-libstdc++" \
+ CFLAGS="-m32 -O2 -pipe" \
+ CXXFLAGS="-m32 -O2 -pipe" \
+ $(UNPACK_DIR)/mingw-w64-v$(VERSION_MINGW)/mingw-w64-headers/configure \
+ --prefix=$(XGCC_INST_DIR)/$(XGCC_TARGET32) \
+ --host=$(XGCC_TARGET32) ;\
+ make $(JOBS) install
+ cd $(XGCC_INST_DIR) && rm -f mingw && ln -s $(XGCC_TARGET32) mingw
+
+xgcc-gcc-pass1:
+ mkdir -p $(BUILD_DIR)/gcc
+ cd $(BUILD_DIR)/gcc && \
+ LDLAGS="-static-libgcc -static-libstdc++" \
+ CFLAGS="-m32 -O2 -pipe" \
+ CXXFLAGS="-m32 -O2 -pipe" \
+ $(UNPACK_DIR)/gcc-$(VERSION_GCC)/configure \
+ --with-pkgversion=$(GCC_PKGVERSION) \
+ --prefix=$(XGCC_INST_DIR) \
+ --with-sysroot=$(XGCC_INST_DIR) \
+ --disable-nls \
+ --host=$(ARCH32) \
+ --build=$(ARCH32) \
+ --target=$(XGCC_TARGET32) \
+ --enable-languages=$(LANGUAGES) \
+ --disable-win32-registry \
+ --with-gcc \
+ --with-gnu-ld \
+ --with-gnu-as \
+ --without-x \
+ --enable-shared \
+ --enable-static \
+ --disable-werror \
+ --with-tune-64=core2 \
+ --enable-threads=win32 \
+ --disable-multilib \
+ --enable-clocale=gnu \
+ --enable-version-specific-runtime-libs \
+ --enable-fully-dynamic-string && \
+ make $(JOBS) all-gcc && \
+ make $(JOBS) install-gcc
+
+xgcc-mingw-pass2:
+ cd $(BUILD_DIR)/mingw && \
+ export PATH=$(XGCC_INST_DIR)/bin:$(PATH) && \
+ LDLAGS="-static-libgcc -static-libstdc++" \
+ CFLAGS="-m32 -O2 -pipe" \
+ CXXFLAGS="-m32 -O2 -pipe" \
+ $(UNPACK_DIR)/mingw-w64-v$(VERSION_MINGW)/configure \
+ --prefix=$(XGCC_INST_DIR)/$(XGCC_TARGET32) \
+ --host=$(XGCC_TARGET32) \
+ --disable-nls \
+ --enable-sdk=all \
+ --enable-idl \
+ --enable-secure-api \
+ --disable-lib64 \
+ --enable-lib32 && \
+ make $(JOBS) && \
+ make $(JOBS) install
+
+xgcc-gcc-pass2:
+ cd $(BUILD_DIR)/gcc && \
+ make $(JOBS) && \
+ make $(JOBS) install
+
+
+xgcc-finish:
+ cd $(XGCC_INST_DIR) && rm -f mingw
+ for f in `find $(XGCC_INST_DIR) -type f -executable -exec file -i '{}' \; | grep 'x-executable; charset=binary' | cut -d: -f1`; do \
+ $(XGCC_INST_DIR)/bin/$(XGCC_TARGET64)-strip $$f ;\
+ done;
+ rm -Rf $(XGCC_INST_DIR)/share
+ find $(XGCC_INST_DIR) -type f -name "*.py" | xargs rm -f
+ cp -f $(SOURCE_DIR)/mingw.gcc.specs \
+ $(XGCC_INST_DIR)/lib/gcc/$(XGCC_TARGET32)/$(VERSION_GCC)/specs
+ cp -f $(SOURCE_DIR)/dll2a \
+ $(XGCC_INST_DIR)/bin/$(XGCC_TARGET32)-dll2a
+ chmod a+x $(XGCC_INST_DIR)/bin/$(XGCC_TARGET32)-dll2a
+ sed -i -e 's/__LIB64__/lib\/gcc\/$(XGCC_TARGET32)\/lib/g' \
+ $(XGCC_INST_DIR)/lib/gcc/$(XGCC_TARGET32)/$(VERSION_GCC)/specs
+ cat $(XGCC_INST_DIR)/lib/gcc/$(XGCC_TARGET32)/$(VERSION_GCC)/specs \
+ $(SOURCE_DIR)/gcc.msvcr90.spec > \
+ $(XGCC_INST_DIR)/lib/gcc/$(XGCC_TARGET32)/$(VERSION_GCC)/msvcr90
+ cat $(XGCC_INST_DIR)/lib/gcc/$(XGCC_TARGET32)/$(VERSION_GCC)/specs \
+ $(SOURCE_DIR)/gcc.msvcr100.spec > \
+ $(XGCC_INST_DIR)/lib/gcc/$(XGCC_TARGET32)/$(VERSION_GCC)/msvcr100
+ cat $(XGCC_INST_DIR)/lib/gcc/$(XGCC_TARGET32)/$(VERSION_GCC)/specs \
+ $(SOURCE_DIR)/gcc.msvcr110.spec > \
+ $(XGCC_INST_DIR)/lib/gcc/$(XGCC_TARGET32)/$(VERSION_GCC)/msvcr110
+
+xgcc-gdb:
+ rm -rf $(BUILD_DIR)/gdb && mkdir -p $(BUILD_DIR)/gdb
+ cd $(BUILD_DIR)/gdb && \
+ export PATH=$(XGCC_BINPATH):$(INST_BASE)/gcc-$(VERSION_GCC)/bin:$(PATH) && \
+ LDLAGS="-static-libgcc -static-libstdc++" \
+ CFLAGS="-m32 -O2 -pipe" \
+ CXXFLAGS="-m32 -O2 -pipe -fpermissive" \
+ $(UNPACK_DIR)/gdb-$(VERSION_GDB)/configure \
+ --prefix=$(XGCC_INST_DIR) \
+ --target=$(XGCC_TARGET32) \
+ --build=$(ARCH32) \
+ --host=$(ARCH32) && \
+ make $(JOBS) && make $(JOBS) install
+
+xgcc-reimp:
+ rm -Rf $(BUILD_DIR)/reimp
+ cd $(BUILD_DIR)/ && \
+ tar -zxf $(SOURCE_DIR)/reimp.tar.gz
+ cd $(BUILD_DIR)/reimp/src && \
+ make X=""
+ cp -f $(BUILD_DIR)/reimp/src/reimp $(XGCC_INST_DIR)/bin/$(XGCC_TARGET32)-reimp
+
+xgcc-genpeimg:
+ rm -Rf $(BUILD_DIR)/genpeimg
+ cd $(BUILD_DIR)/ && \
+ tar -zxf $(SOURCE_DIR)/genpeimg.tar.gz
+ export PATH=$(GCC_BINPATH):$(PATH) && \
+ CC=$(GCC) CXX=$(GXX) \
+ cd $(BUILD_DIR)/genpeimg && \
+ LDLAGS="-static-libgcc" \
+ CFLAGS="-m32 -pipe -Werror=implicit-fallthrough=0" \
+ ./configure && \
+ make
+ cp -f $(BUILD_DIR)/genpeimg/genpeimg $(XGCC_INST_DIR)/bin/$(XGCC_TARGET32)-genpeimg
+
+xgcc-gendef:
+ rm -Rf $(BUILD_DIR)/gendef
+ cd $(BUILD_DIR)/ && \
+ tar -zxf $(SOURCE_DIR)/gendef.tar.gz
+ export PATH=$(GCC_BINPATH):$(PATH) && \
+ CC=$(GCC) CXX=$(GXX) \
+ cd $(BUILD_DIR)/gendef && \
+ CFLAGS="-m32 -pipe -Werror=implicit-fallthrough=0" \
+ LDLAGS="-static-libgcc" \
+ ./configure && \
+ make
+ cp -f $(BUILD_DIR)/gendef/gendef $(XGCC_INST_DIR)/bin/$(XGCC_TARGET64)-gendef
+
+xgcc-zlib:
+ mkdir -p $(BUILD_DIR)
+ cd $(BUILD_DIR) && rm -Rf zlib-$(VERSION_ZLIB)
+ cd $(BUILD_DIR) && tar -zxf $(SOURCE_DIR)/zlib-$(VERSION_ZLIB).tar.gz
+ cd $(BUILD_DIR)/zlib-$(VERSION_ZLIB) && patch -p1 < $(PATCHES_DIR)/zlib_ranlib.patch
+ cd $(BUILD_DIR)/zlib-$(VERSION_ZLIB) && \
+ export PATH=$(XGCC_INST_DIR)/bin:$(PATH) && \
+ CC=$(XGCC32) \
+ AR=$(XGCC_BINPATH)/$(XGCC_PREFIX)ar \
+ RANLIB=$(XGCC_BINPATH)/$(XGCC_PREFIX)ranlib \
+ ./configure \
+ --prefix=$(XGCC_INST_DIR)/$(XGCC_TARGET32) --static && \
+ make clean && make
+ #
+ cd $(BUILD_DIR)/zlib-$(VERSION_ZLIB) && \
+ export PATH=$(XGCC_INST_DIR)/bin:$(PATH) && \
+ CC=$(XGCC32) \
+ AR=$(XGCC_BINPATH)/$(XGCC_PREFIX)ar \
+ RANLIB=$(XGCC_BINPATH)/$(XGCC_PREFIX)ranlib \
+ ./configure \
+ --prefix=$(XGCC_INST_DIR)/$(XGCC_TARGET64) --static && \
+ make clean && make
+ cd $(BUILD_DIR)/zlib-$(VERSION_ZLIB) && \
+ cp -f libz.a $(XGCC_INST_DIR)/$(XGCC_TARGET64)/lib32 && \
+ chmod 644 $(XGCC_INST_DIR)/$(XGCC_TARGET64)/lib32/libz.a
+
+xgcc-bzip2:
+ mkdir -p $(BUILD_DIR)
+ cd $(UNPACK_DIR)/bzip2-$(VERSION_BZ2) && \
+ export PATH=$(XGCC_BINPATH)/bin:$(PATH) && \
+ make \
+ CC=$(XGCC32) \
+ PREFIX=$(XGCC_INST_DIR)/$(XGCC_TARGET32) clean libbz2.a
+ cd $(UNPACK_DIR)/bzip2-$(VERSION_BZ2) && \
+ cp -f libbz2.a $(XGCC_INST_DIR)/$(XGCC_TARGET32)/lib
+ chmod 644 $(XGCC_INST_DIR)/$(XGCC_TARGET64)/lib/libbz2.a
+
+xgcc-pack:
+ rm -Rf $(XGCC_INST_DIR)/share
+ cd $(INST_BASE_LINUX) && \
+ tar -zcf $(PWD)/gcc-suite-$(VERSION_SUITE)-xgcc-$(VERSION_GCC)-$(VERSION_MINGW)-x86-linux.tgz ./mingw64
+
+##############################################################################
+# Nativ Multilib Windows Compiler (64 -Bit)
+##############################################################################
+wingcc-all:
+ make ARCH=x86-mingw64 clean
+ make ARCH=x86-mingw64 prepare
+ #
+ make ARCH=x86-mingw64 wingcc-binutils
+ make ARCH=x86-mingw64 wingcc-mingw
+ make ARCH=x86-mingw64 wingcc-gcc
+ make ARCH=x86-mingw64 wingcc-finish
+ make ARCH=x86-mingw64 wingcc-zlib
+ make ARCH=x86-mingw64 wingcc-bzip2
+ make ARCH=x86-mingw64 wingcc-gendef
+ make ARCH=x86-mingw64 wingcc-genpeimg
+ make ARCH=x86-mingw64 wingcc-reimp
+ make ARCH=x86-mingw64 wingcc-gdb
+ make ARCH=x86-mingw64 wingcc-pack
+
+wingcc-binutils:
+ mkdir -p $(BUILD_DIR)/binutils
+ cd $(BUILD_DIR)/binutils ;\
+ export PATH=$(XGCC_BINPATH):$(PATH) && \
+ CC=$(XGCC32) CXX=$(XGPP32) \
+ $(UNPACK_DIR)/binutils-$(VERSION_BINUTILS)/configure \
+ --with-pkgversion=$(GCC_PKGVERSION) \
+ --prefix=$(WINGCC_INST_DIR) \
+ --disable-nls \
+ --enable-deterministic-archives \
+ --with-gcc \
+ --with-gnu-ld \
+ --with-gnu-as \
+ --enable-static \
+ --disable-werror \
+ --disable-rpath \
+ --enable-targets=$(XGCC_TARGET32) \
+ --host=$(XGCC_TARGET32) \
+ --target=$(XGCC_TARGET32) &&\
+ make $(JOBS) && make $(JOBS) install
+
+wingcc-mingw:
+ rm -Rf $(BUILD_DIR)/mingw && mkdir -p $(BUILD_DIR)/mingw
+ cd $(BUILD_DIR)/mingw && \
+ export PATH=$(XGCC_BINPATH):$(PATH) && \
+ CC=$(XGCC32) CXX=$(XGPP32) \
+ $(UNPACK_DIR)/mingw-w64-v$(VERSION_MINGW)/configure \
+ --prefix=$(WINGCC_INST_DIR)/$(XGCC_TARGET32) \
+ --host=$(XGCC_TARGET32) \
+ --disable-nls \
+ --enable-sdk=all \
+ --enable-idl \
+ --enable-secure-api \
+ --disable-lib64 \
+ --enable-lib32 && \
+ make $(JOBS) && \
+ make $(JOBS) install
+ cd $(WINGCC_INST_DIR) && rm -f mingw && ln -s $(XGCC_TARGET64) mingw
+
+wingcc-gcc:
+ rm -Rf $(BUILD_DIR)/gcc && mkdir -p $(BUILD_DIR)/gcc
+ cd $(BUILD_DIR)/gcc && \
+ export PATH=$(XGCC_BINPATH):$(PATH) && \
+ CC=$(XGCC32) CXX=$(XGPP32) \
+ $(UNPACK_DIR)/gcc-$(VERSION_GCC)/configure \
+ --with-pkgversion=$(GCC_PKGVERSION) \
+ --prefix=$(WINGCC_INST_DIR) \
+ --with-sysroot=$(WINGCC_INST_DIR) \
+ --disable-nls \
+ --host=$(XGCC_TARGET32) \
+ --target=$(XGCC_TARGET32) \
+ --build=$(ARCH32) \
+ --enable-languages=$(LANGUAGES) \
+ --with-gcc \
+ --with-gnu-ld \
+ --with-gnu-as \
+ --without-x \
+ --enable-shared \
+ --with-tune-64=core2 \
+ --disable-werror \
+ --disable-win32-registry \
+ --disable-symvers \
+ --disable-multilib \
+ --enable-clocale=gnu \
+ --enable-version-specific-runtime-libs \
+ --enable-fully-dynamic-string && \
+ make CFLAGS="-O2 -Wshadow -Wexpansion-to-defined" $(JOBS) all && \
+ make $(JOBS) install
+
+wingcc-finish:
+ cd $(WINGCC_INST_DIR)/bin && \
+ mkdir -p ../tmp; \
+ mv $(XGCC_TARGET32)-*.exe ../tmp ; \
+ for f in *.exe; do \
+ cp -f $$f $(XGCC_TARGET32)-`basename $$f` > /dev/null 2>&1 ;\
+ done; \
+ mv ../tmp/* . ;\
+ rm -Rf ../tmp ;
+ find $(WINGCC_INST_DIR) -type f -name "*.py" | xargs rm -f
+ cd $(WINGCC_INST_DIR) && rm -Rf share
+ cd $(WINGCC_INST_DIR) && rm -f mingw
+ cd $(WINGCC_INST_DIR) ;\
+ find . -type f -name "*.exe" | xargs $(XGCC_BINPATH)/$(XGCC_PREFIX)strip
+ #
+ cp -f $(SOURCE_DIR)/mingw.gcc.specs \
+ $(WINGCC_INST_DIR)/lib/gcc/$(XGCC_TARGET32)/$(VERSION_GCC)/specs
+ sed -i -e 's/__LIB64__/lib\/gcc\/$(XGCC_TARGET32)\/lib/g' \
+ $(WINGCC_INST_DIR)/lib/gcc/$(XGCC_TARGET32)/$(VERSION_GCC)/specs
+ cat $(WINGCC_INST_DIR)/lib/gcc/$(XGCC_TARGET32)/$(VERSION_GCC)/specs \
+ $(SOURCE_DIR)/gcc.msvcr90.spec > \
+ $(WINGCC_INST_DIR)/lib/gcc/$(XGCC_TARGET32)/$(VERSION_GCC)/msvcr90
+ cat $(WINGCC_INST_DIR)/lib/gcc/$(XGCC_TARGET32)/$(VERSION_GCC)/specs \
+ $(SOURCE_DIR)/gcc.msvcr100.spec > \
+ $(WINGCC_INST_DIR)/lib/gcc/$(XGCC_TARGET32)/$(VERSION_GCC)/msvcr100
+ cat $(WINGCC_INST_DIR)/lib/gcc/$(XGCC_TARGET32)/$(VERSION_GCC)/specs \
+ $(SOURCE_DIR)/gcc.msvcr110.spec > \
+ $(WINGCC_INST_DIR)/lib/gcc/$(XGCC_TARGET32)/$(VERSION_GCC)/msvcr110
+
+wingcc-reimp:
+ rm -Rf $(BUILD_DIR)/reimp
+ cd $(BUILD_DIR)/ && \
+ tar -zxf $(SOURCE_DIR)/reimp.tar.gz
+ export PATH=$(XGCC_BINPATH):$(PATH) && \
+ cd $(BUILD_DIR)/reimp/src && \
+ make CC="$(XGCC_TARGET32)-gcc -m32"
+ cp -f $(BUILD_DIR)/reimp/src/reimp.exe $(WINGCC_INST_DIR)/bin/reimp.exe
+ cp -f $(BUILD_DIR)/reimp/src/reimp.exe $(WINGCC_INST_DIR)/bin/$(XGCC_TARGET32)-reimp.exe
+
+wingcc-genpeimg:
+ rm -Rf $(BUILD_DIR)/genpeimg
+ cd $(BUILD_DIR)/ && \
+ tar -zxf $(SOURCE_DIR)/genpeimg.tar.gz
+ cd $(BUILD_DIR)/genpeimg && \
+ export PATH=$(XGCC_BINPATH):$(PATH) && \
+ CC=$(XGCC32) CXX=$(XGPP32) genpeimg_CFLAGS="" CFLAGS="-O3 -g -Werror=implicit-fallthrough=0"\
+ ./configure \
+ --host=$(XGCC_TARGET32) && \
+ make
+ cp -f $(BUILD_DIR)/genpeimg/genpeimg.exe \
+ $(WINGCC_INST_DIR)/bin/genpeimg.exe
+ cp -f $(BUILD_DIR)/genpeimg/genpeimg.exe \
+ $(WINGCC_INST_DIR)/bin/$(XGCC_TARGET32)-genpeimg.exe
+
+wingcc-gendef:
+ rm -Rf $(BUILD_DIR)/gendef
+ cd $(BUILD_DIR)/ && \
+ tar -zxf $(SOURCE_DIR)/gendef.tar.gz
+ cd $(BUILD_DIR)/gendef && \
+ export PATH=$(XGCC_BINPATH):$(PATH) && \
+ CC=$(XGCC32) CXX=$(XGPP32) genpeimg_CFLAGS="" CFLAGS="-O3 -g -Werror=implicit-fallthrough=0"\
+ ./configure \
+ --host=$(XGCC_TARGET32) && \
+ make
+ cp -f $(BUILD_DIR)/gendef/gendef.exe $(WINGCC_INST_DIR)/bin/gendef.exe
+ cp -f $(BUILD_DIR)/gendef/gendef.exe $(WINGCC_INST_DIR)/bin/$(XGCC_TARGET32)-gendef.exe
+
+wingcc-zlib:
+ mkdir -p $(BUILD_DIR)
+ cd $(BUILD_DIR) && rm -Rf zlib-$(VERSION_ZLIB)
+ cd $(BUILD_DIR) && tar -zxf $(SOURCE_DIR)/zlib-$(VERSION_ZLIB).tar.gz
+ cd $(BUILD_DIR)/zlib-$(VERSION_ZLIB) && patch -p1 < $(PATCHES_DIR)/zlib_ranlib.patch
+ cd $(BUILD_DIR)/zlib-$(VERSION_ZLIB) && \
+ export PATH=$(XGCC_BINPATH):$(PATH) && \
+ CC=$(XGCC32) \
+ AR=$(XGCC_BINPATH)/$(XGCC_PREFIX)ar \
+ RANLIB=$(XGCC_BINPATH)/$(XGCC_PREFIX)ranlib \
+ ./configure \
+ --prefix=$(WINGCC_INST_DIR)/$(XGCC_TARGET32) --static && \
+ make clean && make
+ #
+ cd $(BUILD_DIR)/zlib-$(VERSION_ZLIB) && \
+ cp -f libz.a $(WINGCC_INST_DIR)/$(XGCC_TARGET32)/lib && \
+ cp -f zlib.h zconf.h $(WINGCC_INST_DIR)/$(XGCC_TARGET32)/include
+ #
+ chmod 644 $(WINGCC_INST_DIR)/$(XGCC_TARGET32)/lib/libz.a
+ chmod 644 $(WINGCC_INST_DIR)/$(XGCC_TARGET32)/include/zlib.h
+ chmod 644 $(WINGCC_INST_DIR)/$(XGCC_TARGET32)/include/zconf.h
+
+wingcc-bzip2:
+ cd $(UNPACK_DIR)/bzip2-$(VERSION_BZ2) && \
+ export PATH=$(XGCC_BINPATH)/bin:$(PATH) && \
+ make \
+ CC=$(XGCC32) \
+ PREFIX=$(WINGCC_INST_DIR)/$(XGCC_TARGET64) libbz2.a
+ cd $(UNPACK_DIR)/bzip2-$(VERSION_BZ2) && \
+ cp -f libbz2.a $(WINGCC_INST_DIR)/$(XGCC_TARGET32)/lib32
+ chmod 644 $(WINGCC_INST_DIR)/$(XGCC_TARGET32)/lib/libbz2.a
+
+wingcc-gdb:
+ rm -Rf $(BUILD_DIR)/gdb && mkdir -p $(BUILD_DIR)/gdb
+ cd $(BUILD_DIR)/gdb && \
+ export PATH=$(XGCC_BINPATH):$(INST_BASE)/gcc-$(VERSION_GCC)/bin:$(PATH) && \
+ CC=$(XGCC32) CXX=$(XGPP32) \
+ CXXFLAGS="-m32 -g -O2 -fpermissive" \
+ CFLAGS="-m32 -g -O2" \
+ $(UNPACK_DIR)/gdb-$(VERSION_GDB)/configure \
+ --prefix=$(WINGCC_INST_DIR) \
+ --target=$(XGCC_TARGET32) \
+ --host=$(XGCC_TARGET32) \
+ --build=$(ARCH32) && \
+ make $(JOBS) && make $(JOBS) install
+ mv -f $(WINGCC_INST_DIR)/bin/gdb.exe \
+ $(WINGCC_INST_DIR)/bin/$(XGCC_TARGET32)-gdb.exe
+ mv -f $(WINGCC_INST_DIR)/bin/gdbserver.exe \
+ $(WINGCC_INST_DIR)/bin/$(XGCC_TARGET32)-gdbserver.exe
+wingcc-pack:
+ rm -Rf $(WINGCC_INST_DIR)/share
+ cd $(INST_BASE) && \
+ zip -qr $(PWD)/gcc-suite-$(VERSION_SUITE)-gcc-$(VERSION_GCC)-$(VERSION_MINGW)-x86-mingw32.zip ./$(WINGCC_ROOTNAME)
+# ----------------------------------------------------------------------------
+
+clean:
+ rm -Rf $(UNPACK_DIR)
+ rm -Rf $(BUILD_DIR)
+
+fullclean: clean
+ rm -Rf inst.*
+ rm -Rf build.*
+ rm -Rf unpack.*
+