changeset 3542:bff3dfa5c343

make native linux builds work again, hopefully without breaking cross mingw builds...
author John W. Eaton <jwe@octave.org>
date Wed, 19 Feb 2014 16:46:26 -0500
parents 3ba1b1d89243
children d02a04017e44
files src/build-binutils.mk src/build-gcc.mk
diffstat 2 files changed, 46 insertions(+), 33 deletions(-) [+]
line wrap: on
line diff
--- a/src/build-binutils.mk	Wed Feb 19 02:47:38 2014 -0500
+++ b/src/build-binutils.mk	Wed Feb 19 16:46:26 2014 -0500
@@ -9,11 +9,7 @@
 $(PKG)_FILE     := binutils-$($(PKG)_VERSION).tar.bz2
 $(PKG)_URL      := ftp://ftp.gnu.org/pub/gnu/binutils/$($(PKG)_FILE)
 $(PKG)_URL_2    := ftp://ftp.cs.tu-berlin.de/pub/gnu/binutils/$($(PKG)_FILE)
-ifeq ($(MXE_SYSTEM),mingw)
-  $(PKG)_DEPS     :=
-else
-  $(PKG)_DEPS     := build-gcc
-endif
+$(PKG)_DEPS     :=
 
 ifneq ($(MXE_NATIVE_BUILD),yes)
   define $(PKG)_POST_BUILD
@@ -29,6 +25,17 @@
     head -1
 endef
 
+ifeq ($(MXE_NATIVE_BUILD),yes)
+  $(PKG)_DEPS += build-gcc
+else
+  $(PKG)_SYSDEP_CONFIGURE_OPTIONS := \
+    --target='$(TARGET)' \
+    --build='$(BUILD_SYSTEM)' \
+    --libdir='$(BUILD_TOOLS_PREFIX)/lib' \
+    --disable-multilib \
+    --with-sysroot='$(HOST_PREFIX)'
+endif
+
 define $(PKG)_BUILD
     # install config.guess for general use
     $(INSTALL) -d '$(BUILD_TOOLS_PREFIX)/bin'
@@ -39,16 +46,12 @@
     echo "ac_cv_build=`$(1)/config.guess`" > '$(HOST_PREFIX)/share/config.site'
 
     cd '$(1)' && ./configure \
-        --target='$(TARGET)' \
-        --build='$(BUILD_SYSTEM)' \
+        $($(PKG)_SYSDEP_CONFIGURE_OPTIONS) \
         --prefix='$(BUILD_TOOLS_PREFIX)' \
-        --libdir='$(BUILD_TOOLS_PREFIX)/lib' \
         --with-gcc \
         --with-gnu-ld \
         --with-gnu-as \
         --disable-nls \
-        --disable-multilib \
-        --with-sysroot='$(HOST_PREFIX)' \
         $(ENABLE_SHARED_OR_STATIC) \
         --disable-werror
     $(MAKE) -C '$(1)' -j '$(JOBS)'
--- a/src/build-gcc.mk	Wed Feb 19 02:47:38 2014 -0500
+++ b/src/build-gcc.mk	Wed Feb 19 16:46:26 2014 -0500
@@ -10,7 +10,10 @@
 $(PKG)_URL      := ftp://ftp.gnu.org/pub/gnu/gcc/gcc-$($(PKG)_VERSION)/$($(PKG)_FILE)
 $(PKG)_URL_2    := ftp://ftp.mirrorservice.org/sites/sourceware.org/pub/gcc/releases/gcc-$($(PKG)_VERSION)/$($(PKG)_FILE)
 
-$(PKG)_DEPS := build-cmake build-binutils gcc-cloog gcc-gmp gcc-isl gcc-mpc gcc-mpfr
+$(PKG)_DEPS := build-cmake gcc-cloog gcc-gmp gcc-isl gcc-mpc gcc-mpfr
+ifneq ($(MXE_NATIVE_BUILD),yes)
+  $(PKG)_DEPS += build-binutils
+endif
 ifeq ($(MXE_SYSTEM),mingw)
   $(PKG)_DEPS += mingw-w64
 endif
@@ -29,12 +32,38 @@
     --disable-nls \
     --without-x \
     --disable-win32-registry \
-    --enable-threads=win32 \
-    --with-native-system-header-dir='/include'
+    --with-native-system-header-dir='/include' \
+    --enable-threads=win32
   ifneq ($(ENABLE_64),yes)
     $(PKG)_SYSDEP_CONFIGURE_OPTIONS += \
       --disable-sjlj-exceptions
   endif
+  define $(PKG)_BUILD_SYSTEM_RUNTIME
+    # build standalone gcc
+    $(MAKE) -C '$(1).build' -j '$(JOBS)' all-gcc
+    $(MAKE) -C '$(1).build' -j 1 install-gcc
+
+    # build mingw-w64-crt
+    cd '$(1)' && $(call UNPACK_PKG_ARCHIVE,mingw-w64,$(TAR))
+    mkdir '$(1).crt-build'
+    cd '$(1).crt-build' && '$(1)/$(mingw-w64_SUBDIR)/mingw-w64-crt/configure' \
+	--host='$(TARGET)' \
+	--prefix='$(HOST_PREFIX)' \
+	--with-sysroot='$(HOST_PREFIX)' \
+	$(ENABLE_SHARED_OR_STATIC)
+    $(MAKE) -C '$(1).crt-build' -j '$(JOBS)' || $(MAKE) -C '$(1).crt-build' -j '$(JOBS)'
+    $(MAKE) -C '$(1).crt-build' -j 1 install
+  endef
+endif
+
+ifneq ($(MXE_NATIVE_BUILD),yes)
+  $(PKG)_SYSDEP_CONFIGURE_OPTIONS += \
+    --target='$(TARGET)' \
+    --build='$(BUILD_SYSTEM)' \
+    --with-sysroot='$(HOST_PREFIX)' \
+    --with-as='$(BUILD_TOOLS_PREFIX)/bin/$(TARGET)-as' \
+    --with-ld='$(BUILD_TOOLS_PREFIX)/bin/$(TARGET)-ld' \
+    --with-nm='$(BUILD_TOOLS_PREFIX)/bin/$(TARGET)-nm'
 endif
 
 define $(PKG)_UPDATE
@@ -55,12 +84,9 @@
     # configure gcc
     mkdir '$(1).build'
     cd    '$(1).build' && '$(1)/configure' \
-        --target='$(TARGET)' \
-        --build='$(BUILD_SYSTEM)' \
         --prefix='$(BUILD_TOOLS_PREFIX)' \
         --enable-languages='c,c++,fortran' \
         --disable-multilib \
-        --with-sysroot='$(HOST_PREFIX)' \
         $($(PKG)_SYSDEP_CONFIGURE_OPTIONS) \
         $(ENABLE_SHARED_OR_STATIC) \
         --disable-libgomp \
@@ -70,31 +96,15 @@
         --with-isl='$(BUILD_TOOLS_PREFIX)' \
         --with-mpc='$(BUILD_TOOLS_PREFIX)' \
         --with-mpfr='$(BUILD_TOOLS_PREFIX)' \
-        --with-as='$(BUILD_TOOLS_PREFIX)/bin/$(TARGET)-as' \
-        --with-ld='$(BUILD_TOOLS_PREFIX)/bin/$(TARGET)-ld' \
-        --with-nm='$(BUILD_TOOLS_PREFIX)/bin/$(TARGET)-nm'
         $(shell [ `uname -s` == Darwin ] && echo "LDFLAGS='-Wl,-no_pie'")
 endef
 
 define $(PKG)_BUILD
-  # build standalone gcc
   $($(PKG)_CONFIGURE)
-  $(MAKE) -C '$(1).build' -j '$(JOBS)' all-gcc
-  $(MAKE) -C '$(1).build' -j 1 install-gcc
 
-  # build mingw-w64-crt
-  cd '$(1)' && $(call UNPACK_PKG_ARCHIVE,mingw-w64,$(TAR))
-  mkdir '$(1).crt-build'
-  cd '$(1).crt-build' && '$(1)/$(mingw-w64_SUBDIR)/mingw-w64-crt/configure' \
-      --host='$(TARGET)' \
-      --prefix='$(HOST_PREFIX)' \
-      --with-sysroot='$(HOST_PREFIX)' \
-      $(ENABLE_SHARED_OR_STATIC)
-  $(MAKE) -C '$(1).crt-build' -j '$(JOBS)' || $(MAKE) -C '$(1).crt-build' -j '$(JOBS)'
-  $(MAKE) -C '$(1).crt-build' -j 1 install
+  $($(PKG)_BUILD_SYSTEM_RUNTIME)
 
   # build rest of gcc
-  cd '$(1).build'
   $(MAKE) -C '$(1).build' -j '$(JOBS)'
   $(MAKE) -C '$(1).build' -j 1 install