changeset 217:89ba55cd6e29

switch from MinGW GCC to TDM-GCC
author Volker Grabsch <vog@notjusthosting.com>
date Tue, 03 Feb 2009 01:57:06 +0100
parents d740c44d051f
children 0b626230c49b
files src/gcc-core.mk src/gcc-g++.mk src/gcc-gmp.mk src/gcc-mpfr.mk src/gcc.mk
diffstat 5 files changed, 92 insertions(+), 11 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/gcc-core.mk	Tue Feb 03 01:57:06 2009 +0100
@@ -0,0 +1,16 @@
+# GCC core
+# http://gcc.gnu.org/
+
+PKG            := gcc-core
+$(PKG)_VERSION := 4.3.2
+$(PKG)_SUBDIR  := gcc-$($(PKG)_VERSION)
+$(PKG)_FILE    := gcc-core-$($(PKG)_VERSION).tar.bz2
+$(PKG)_URL     := http://$(SOURCEFORGE_MIRROR)/tdm-gcc/$($(PKG)_FILE)
+$(PKG)_DEPS    :=
+
+define $(PKG)_UPDATE
+    wget -q -O- 'http://sourceforge.net/project/showfiles.php?group_id=200665&package_id=238462' | \
+    grep 'gcc-core-' | \
+    $(SED) -n 's,.*gcc-core-\([4-9][^>]*\)\.tar.*,\1,p' | \
+    head -1
+endef
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/gcc-g++.mk	Tue Feb 03 01:57:06 2009 +0100
@@ -0,0 +1,16 @@
+# GCC g++
+# http://gcc.gnu.org/
+
+PKG            := gcc-g++
+$(PKG)_VERSION := 4.3.2
+$(PKG)_SUBDIR  := gcc-$($(PKG)_VERSION)
+$(PKG)_FILE    := gcc-g++-$($(PKG)_VERSION).tar.bz2
+$(PKG)_URL     := http://$(SOURCEFORGE_MIRROR)/tdm-gcc/$($(PKG)_FILE)
+$(PKG)_DEPS    :=
+
+define $(PKG)_UPDATE
+    wget -q -O- 'http://sourceforge.net/project/showfiles.php?group_id=200665&package_id=238462' | \
+    grep 'gcc-g++-' | \
+    $(SED) -n 's,.*gcc-g++-\([4-9][^>]*\)\.tar.*,\1,p' | \
+    head -1
+endef
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/gcc-gmp.mk	Tue Feb 03 01:57:06 2009 +0100
@@ -0,0 +1,16 @@
+# GMP for GCC
+# http://www.gmplib.org/
+
+PKG            := gcc-gmp
+$(PKG)_VERSION := 4.2.4
+$(PKG)_SUBDIR  := gmp-$($(PKG)_VERSION)
+$(PKG)_FILE    := gmp-$($(PKG)_VERSION).tar.bz2
+$(PKG)_URL     := http://$(SOURCEFORGE_MIRROR)/tdm-gcc/$($(PKG)_FILE)
+$(PKG)_DEPS    :=
+
+define $(PKG)_UPDATE
+    wget -q -O- 'http://sourceforge.net/project/showfiles.php?group_id=200665&package_id=238462' | \
+    grep 'gmp-' | \
+    $(SED) -n 's,.*gmp-\([4-9][^>]*\)\.tar.*,\1,p' | \
+    head -1
+endef
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/gcc-mpfr.mk	Tue Feb 03 01:57:06 2009 +0100
@@ -0,0 +1,16 @@
+# MPFR for GCC
+# http://www.mpfr.org/
+
+PKG            := gcc-mpfr
+$(PKG)_VERSION := 2.3.2
+$(PKG)_SUBDIR  := mpfr-$($(PKG)_VERSION)
+$(PKG)_FILE    := mpfr-$($(PKG)_VERSION).tar.bz2
+$(PKG)_URL     := http://$(SOURCEFORGE_MIRROR)/tdm-gcc/$($(PKG)_FILE)
+$(PKG)_DEPS    :=
+
+define $(PKG)_UPDATE
+    wget -q -O- 'http://sourceforge.net/project/showfiles.php?group_id=200665&package_id=238462' | \
+    grep 'mpfr-' | \
+    $(SED) -n 's,.*mpfr-\([2-9][^>]*\)\.tar.*,\1,p' | \
+    head -1
+endef
--- a/src/gcc.mk	Tue Feb 03 01:42:58 2009 +0100
+++ b/src/gcc.mk	Tue Feb 03 01:57:06 2009 +0100
@@ -1,21 +1,37 @@
-# MinGW GCC
-# http://mingw.sourceforge.net/
+# TDM-GCC
+# http://www.tdragon.net/recentgcc/
 
 PKG            := gcc
-$(PKG)_VERSION := 4.2.1-2
-$(PKG)_SUBDIR  := gcc-$($(PKG)_VERSION)-src
-$(PKG)_FILE    := gcc-$($(PKG)_VERSION)-src.tar.gz
-$(PKG)_URL     := http://$(SOURCEFORGE_MIRROR)/mingw/$($(PKG)_FILE)
-$(PKG)_DEPS    := mingwrt w32api binutils pkg_config
+$(PKG)_VERSION := 4.3.2-tdm-2
+$(PKG)_SUBDIR  := .
+$(PKG)_FILE    := gcc-$($(PKG)_VERSION)-srcbase.zip
+$(PKG)_URL     := http://$(SOURCEFORGE_MIRROR)/tdm-gcc/$($(PKG)_FILE)
+$(PKG)_DEPS    := pkg_config mingwrt w32api binutils gcc-gmp gcc-mpfr gcc-core gcc-g++
 
 define $(PKG)_UPDATE
-    wget -q -O- 'http://sourceforge.net/project/showfiles.php?group_id=2435&package_id=241304' | \
-    $(SED) -n 's,.*gcc-\([4-9][^>]*\)-src\.tar.*,\1,p' | \
+    wget -q -O- 'http://sourceforge.net/project/showfiles.php?group_id=200665&package_id=238347' | \
+    grep 'gcc-' | \
+    $(SED) -n 's,.*gcc-\([4-9][^>]*\)-srcbase\.zip.*,\1,p' | \
     head -1
 endef
 
 define $(PKG)_BUILD
-    cd '$(1)' && ./configure \
+    # unpack GCC
+    cd '$(1)' && $(call UNPACK_PKG_ARCHIVE,gcc-core)
+    cd '$(1)' && $(call UNPACK_PKG_ARCHIVE,gcc-g++)
+    # apply TDM patches to GCC
+    cd '$(1)/$(gcc-core_SUBDIR)' && \
+        for p in '$(1)'/*.patch; do \
+            patch -p1 < "$$p"; \
+        done
+    # unpack support libraries
+    cd '$(1)' && $(call UNPACK_PKG_ARCHIVE,gcc-gmp)
+    mv '$(1)/$(gcc-gmp_SUBDIR)' '$(1)/$(gcc-core_SUBDIR)/gmp'
+    cd '$(1)' && $(call UNPACK_PKG_ARCHIVE,gcc-mpfr)
+    mv '$(1)/$(gcc-mpfr_SUBDIR)' '$(1)/$(gcc-core_SUBDIR)/mpfr'
+    # build
+    mkdir '$(1)/build'
+    cd '$(1)/build' && '$(1)/$(gcc-core_SUBDIR)/configure' \
         --target='$(TARGET)' \
         --prefix='$(PREFIX)' \
         --enable-languages='c,c++' \
@@ -29,5 +45,6 @@
         --enable-threads=win32 \
         --disable-win32-registry \
         --enable-sjlj-exceptions
-    $(MAKE) -C '$(1)' -j 1 all install
+    $(MAKE) -C '$(1)/build' -j '$(JOBS)'
+    $(MAKE) -C '$(1)/build' -j 1 install
 endef