comparison src/gcc.mk @ 2997:4f9b72cf7ee7

allow native builds too
author John W. Eaton <jwe@octave.org>
date Tue, 28 May 2013 17:31:59 -0400
parents a9fa640c348c
children 100e618349f7
comparison
equal deleted inserted replaced
2996:446aa596bb99 2997:4f9b72cf7ee7
6 $(PKG)_CHECKSUM := a464ba0f26eef24c29bcd1e7489421117fb9ee35 6 $(PKG)_CHECKSUM := a464ba0f26eef24c29bcd1e7489421117fb9ee35
7 $(PKG)_SUBDIR := gcc-$($(PKG)_VERSION) 7 $(PKG)_SUBDIR := gcc-$($(PKG)_VERSION)
8 $(PKG)_FILE := gcc-$($(PKG)_VERSION).tar.bz2 8 $(PKG)_FILE := gcc-$($(PKG)_VERSION).tar.bz2
9 $(PKG)_URL := ftp://ftp.gnu.org/pub/gnu/gcc/gcc-$($(PKG)_VERSION)/$($(PKG)_FILE) 9 $(PKG)_URL := ftp://ftp.gnu.org/pub/gnu/gcc/gcc-$($(PKG)_VERSION)/$($(PKG)_FILE)
10 $(PKG)_URL_2 := ftp://ftp.mirrorservice.org/sites/sourceware.org/pub/gcc/releases/gcc-$($(PKG)_VERSION)/$($(PKG)_FILE) 10 $(PKG)_URL_2 := ftp://ftp.mirrorservice.org/sites/sourceware.org/pub/gcc/releases/gcc-$($(PKG)_VERSION)/$($(PKG)_FILE)
11 $(PKG)_DEPS := mingwrt w32api binutils gcc-gmp gcc-mpc gcc-mpfr 11 ifeq ($(USE_SYSTEM_GCC),yes)
12 $(PKG)_DEPS :=
13 else
14 ifeq ($(MXE_NATIVE_BUILD),yes)
15 $(PKG)_DEPS := binutils gcc-gmp gcc-mpc gcc-mpfr
16 else
17 ifeq ($(MXE_SYSTEM),mingw)
18 $(PKG)_DEPS := mingwrt w32api binutils gcc-gmp gcc-mpc gcc-mpfr
19 else
20 endif
21 endif
22 endif
12 ifneq ($(BUILD_SHARED),yes) 23 ifneq ($(BUILD_SHARED),yes)
13 $(PKG)_STATIC_FLAG := --static 24 $(PKG)_STATIC_FLAG := --static
14 endif 25 endif
15 26
16 define $(PKG)_UPDATE 27 define $(PKG)_UPDATE
18 $(SED) -n 's,.*<a href="gcc-\([0-9][^"]*\)/".*,\1,p' | \ 29 $(SED) -n 's,.*<a href="gcc-\([0-9][^"]*\)/".*,\1,p' | \
19 grep -v '^4\.[543]\.' | \ 30 grep -v '^4\.[543]\.' | \
20 head -1 31 head -1
21 endef 32 endef
22 33
34 ifeq ($(USE_SYSTEM_GCC),yes)
35 define $(PKG)_BUILD
36 # create the CMake toolchain file
37 [ -d '$(dir $(CMAKE_TOOLCHAIN_FILE))' ] || mkdir -p '$(dir $(CMAKE_TOOLCHAIN_FILE))'
38 (if [ $(MXE_SYSTEM) = mingw ]; then \
39 echo 'set(CMAKE_SYSTEM_NAME Windows)'; \
40 echo 'set(MSYS 1)'; \
41 fi; \
42 if [ $(BUILD_SHARED) = yes ]; then \
43 echo 'set(BUILD_SHARED_LIBS ON)'; \
44 else \
45 echo 'set(BUILD_SHARED_LIBS OFF)'; \
46 fi; \
47 if [ $(BUILD_STATIC) = yes ]; then \
48 echo 'set(BUILD_STATIC_LIBS ON)'; \
49 else \
50 echo 'set(BUILD_STATIC_LIBS OFF)'; \
51 fi; \
52 echo 'set(CMAKE_BUILD_TYPE Release)'; \
53 echo 'set(CMAKE_FIND_ROOT_PATH $(PREFIX)/$(TARGET))'; \
54 echo 'set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)'; \
55 echo 'set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)'; \
56 echo 'set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)'; \
57 echo 'set(CMAKE_C_COMPILER $(MXE_CC))'; \
58 echo 'set(CMAKE_CXX_COMPILER $(MXE_CXX))'; \
59 echo 'set(CMAKE_Fortran_COMPILER $(MXE_F77))'; \
60 echo 'set(CMAKE_RC_COMPILER $(MXE_WINDRES))'; \
61 echo 'set(PKG_CONFIG_EXECUTABLE $(MXE_PKG_CONFIG))'; \
62 echo 'set(QT_QMAKE_EXECUTABLE $(MXE_QMAKE))'; \
63 echo 'set(CMAKE_INSTALL_PREFIX $(PREFIX)/$(TARGET) CACHE PATH "Installation Prefix")'; \
64 echo 'set(CMAKE_BUILD_TYPE Release CACHE STRING "Debug|Release|RelWithDebInfo|MinSizeRel")') \
65 > '$(CMAKE_TOOLCHAIN_FILE)'
66 endef
67 else
23 define $(PKG)_BUILD 68 define $(PKG)_BUILD
24 # unpack support libraries 69 # unpack support libraries
25 cd '$(1)' && $(call UNPACK_PKG_ARCHIVE,gcc-gmp) 70 cd '$(1)' && $(call UNPACK_PKG_ARCHIVE,gcc-gmp)
26 mv '$(1)/$(gcc-gmp_SUBDIR)' '$(1)/gmp' 71 mv '$(1)/$(gcc-gmp_SUBDIR)' '$(1)/gmp'
27 cd '$(1)' && $(call UNPACK_PKG_ARCHIVE,gcc-mpc) 72 cd '$(1)' && $(call UNPACK_PKG_ARCHIVE,gcc-mpc)
52 --with-mpfr-include='$(1)/mpfr/src' \ 97 --with-mpfr-include='$(1)/mpfr/src' \
53 --with-mpfr-lib='$(1).build/mpfr/src/.libs' \ 98 --with-mpfr-lib='$(1).build/mpfr/src/.libs' \
54 $(shell [ `uname -s` == Darwin ] && echo "LDFLAGS='-Wl,-no_pie'") 99 $(shell [ `uname -s` == Darwin ] && echo "LDFLAGS='-Wl,-no_pie'")
55 $(MAKE) -C '$(1).build' -j '$(JOBS)' 100 $(MAKE) -C '$(1).build' -j '$(JOBS)'
56 $(MAKE) -C '$(1).build' -j 1 install 101 $(MAKE) -C '$(1).build' -j 1 install
57 mkdir -p $(PREFIX)/../cross-tools/$(PREFIX)/$(TARGET)/bin 102 mkdir -p $(PREFIX)/../cross-tools/$(MXE_BINDIR)
58 $(MAKE) -C '$(1).build' -j 1 DESTDIR=$(PREFIX)/../cross-tools install 103 $(MAKE) -C '$(1).build' -j 1 DESTDIR=$(PREFIX)/../cross-tools install
59 104
60 # create pkg-config script 105 # create pkg-config script
61 (echo '#!/bin/sh'; \ 106 (echo '#!/bin/sh'; \
62 echo 'PKG_CONFIG_PATH="$$PKG_CONFIG_PATH_$(subst -,_,$(TARGET))" PKG_CONFIG_LIBDIR='\''$(PREFIX)/$(TARGET)/lib/pkgconfig'\'' exec pkg-config $($(PKG)_STATIC_FLAG) "$$@"') \ 107 echo 'PKG_CONFIG_PATH="$$PKG_CONFIG_PATH_$(subst -,_,$(TARGET))" PKG_CONFIG_LIBDIR='\''$(MXE_LIBDIR)/pkgconfig'\'' exec pkg-config $($(PKG)_STATIC_FLAG) "$$@"') \
63 > '$(PREFIX)/bin/$(TARGET)-pkg-config' 108 > '$(PREFIX)/bin/$(TARGET)-pkg-config'
64 chmod 0755 '$(PREFIX)/bin/$(TARGET)-pkg-config' 109 chmod 0755 '$(PREFIX)/bin/$(TARGET)-pkg-config'
65 110
66 # create the CMake toolchain file 111 # create the CMake toolchain file
67 [ -d '$(dir $(CMAKE_TOOLCHAIN_FILE))' ] || mkdir -p '$(dir $(CMAKE_TOOLCHAIN_FILE))' 112 [ -d '$(dir $(CMAKE_TOOLCHAIN_FILE))' ] || mkdir -p '$(dir $(CMAKE_TOOLCHAIN_FILE))'
90 echo 'set(QT_QMAKE_EXECUTABLE $(PREFIX)/bin/$(TARGET)-qmake)'; \ 135 echo 'set(QT_QMAKE_EXECUTABLE $(PREFIX)/bin/$(TARGET)-qmake)'; \
91 echo 'set(CMAKE_INSTALL_PREFIX $(PREFIX)/$(TARGET) CACHE PATH "Installation Prefix")'; \ 136 echo 'set(CMAKE_INSTALL_PREFIX $(PREFIX)/$(TARGET) CACHE PATH "Installation Prefix")'; \
92 echo 'set(CMAKE_BUILD_TYPE Release CACHE STRING "Debug|Release|RelWithDebInfo|MinSizeRel")') \ 137 echo 'set(CMAKE_BUILD_TYPE Release CACHE STRING "Debug|Release|RelWithDebInfo|MinSizeRel")') \
93 > '$(CMAKE_TOOLCHAIN_FILE)' 138 > '$(CMAKE_TOOLCHAIN_FILE)'
94 endef 139 endef
140 endif