| 1 | # This file is part of the FreeWRT project. FreeWRT is copyrighted
|
|---|
| 2 | # material, please see the LICENCE file in the top-level directory
|
|---|
| 3 |
|
|---|
| 4 | include $(TOPDIR)/rules.mk
|
|---|
| 5 | include ../rules.mk
|
|---|
| 6 |
|
|---|
| 7 | GCC_VERSION:=14.3.0
|
|---|
| 8 | GCC_SITE:=@GNU/gcc/gcc-$(GCC_VERSION)
|
|---|
| 9 | GCC_MD5SUM:=1ba56546c0274ea75457bf5c00c61506
|
|---|
| 10 | SOURCE:=gcc-$(GCC_VERSION).tar.gz
|
|---|
| 11 | GCC_DIR:=$(TOOLCHAIN_BUILD_DIR)/gcc-$(GCC_VERSION)
|
|---|
| 12 |
|
|---|
| 13 | TARGET_LANGUAGES:=c,c++
|
|---|
| 14 |
|
|---|
| 15 | GCC_BUILD_DIR1:=$(TOOLCHAIN_BUILD_DIR)/gcc-$(GCC_VERSION)-initial
|
|---|
| 16 |
|
|---|
| 17 | $(DL_DIR)/$(SOURCE):
|
|---|
| 18 | mkdir -p $(DL_DIR)
|
|---|
| 19 | $(SCRIPT_DIR)/download.pl $(DL_DIR) $(SOURCE) $(GCC_MD5SUM) $(GCC_SITE)
|
|---|
| 20 |
|
|---|
| 21 | $(GCC_DIR)/.unpacked: $(DL_DIR)/$(SOURCE)
|
|---|
| 22 | ${EXTRACT_CMD}
|
|---|
| 23 | touch $@
|
|---|
| 24 |
|
|---|
| 25 | $(GCC_BUILD_DIR1)/.configured: $(GCC_DIR)/.unpacked
|
|---|
| 26 | mkdir -p $(GCC_BUILD_DIR1)
|
|---|
| 27 | (cd $(GCC_BUILD_DIR1); rm -f config.cache; PATH=$(TARGET_PATH) \
|
|---|
| 28 | $(GCC_DIR)/configure \
|
|---|
| 29 | --prefix=$(STAGING_DIR)/usr \
|
|---|
| 30 | --build=$(GNU_HOST_NAME) \
|
|---|
| 31 | --host=$(GNU_HOST_NAME) \
|
|---|
| 32 | --target=$(GNU_TARGET_NAME) \
|
|---|
| 33 | --with-gmp=$(STAGING_HOST_DIR)/usr \
|
|---|
| 34 | --with-mpfr=$(STAGING_HOST_DIR)/usr \
|
|---|
| 35 | --enable-languages=c \
|
|---|
| 36 | --with-system-zlib \
|
|---|
| 37 | --with-newlib \
|
|---|
| 38 | --disable-shared \
|
|---|
| 39 | --disable-threads \
|
|---|
| 40 | --enable-tls \
|
|---|
| 41 | --enable-__cxa_atexit \
|
|---|
| 42 | --enable-target-optspace \
|
|---|
| 43 | --with-gnu-ld \
|
|---|
| 44 | --with-gnu-as \
|
|---|
| 45 | --disable-nls \
|
|---|
| 46 | --enable-largefile \
|
|---|
| 47 | --without-headers \
|
|---|
| 48 | );
|
|---|
| 49 | touch $@
|
|---|
| 50 |
|
|---|
| 51 | $(GCC_BUILD_DIR1)/.compiled: $(GCC_BUILD_DIR1)/.configured
|
|---|
| 52 | PATH=$(TARGET_PATH) $(MAKE) -j$(FWRT_JLEVEL) -C $(GCC_BUILD_DIR1) all-gcc all-target-libgcc
|
|---|
| 53 | touch $@
|
|---|
| 54 |
|
|---|
| 55 | $(STAGING_DIR)/bin/$(GNU_TARGET_NAME)-gcc: $(GCC_BUILD_DIR1)/.compiled
|
|---|
| 56 | PATH=$(TARGET_PATH) $(MAKE) -j$(FWRT_JLEVEL) -C $(GCC_BUILD_DIR1) install-gcc install-target-libgcc
|
|---|
| 57 |
|
|---|
| 58 | GCC_BUILD_DIR2:=$(TOOLCHAIN_BUILD_DIR)/gcc-$(GCC_VERSION)-final
|
|---|
| 59 | $(GCC_BUILD_DIR2)/.configured: $(STAGING_DIR)/usr/lib/libc.a
|
|---|
| 60 | mkdir -p $(GCC_BUILD_DIR2)
|
|---|
| 61 | (cd $(GCC_BUILD_DIR2); rm -f config.cache; PATH=$(TARGET_PATH) \
|
|---|
| 62 | $(GCC_DIR)/configure \
|
|---|
| 63 | --prefix=$(STAGING_DIR)/usr \
|
|---|
| 64 | --build=$(GNU_HOST_NAME) \
|
|---|
| 65 | --host=$(GNU_HOST_NAME) \
|
|---|
| 66 | --target=$(GNU_TARGET_NAME) \
|
|---|
| 67 | --with-gmp=$(STAGING_HOST_DIR)/usr \
|
|---|
| 68 | --with-mpfr=$(STAGING_HOST_DIR)/usr \
|
|---|
| 69 | --enable-languages=$(TARGET_LANGUAGES) \
|
|---|
| 70 | --with-system-zlib \
|
|---|
| 71 | --disable-libsanitizer \
|
|---|
| 72 | --enable-shared \
|
|---|
| 73 | --enable-tls \
|
|---|
| 74 | --enable-libatomic \
|
|---|
| 75 | --with-sysroot=$(STAGING_DIR) \
|
|---|
| 76 | --enable-__cxa_atexit \
|
|---|
| 77 | --enable-target-optspace \
|
|---|
| 78 | --with-gnu-ld \
|
|---|
| 79 | --with-gnu-as \
|
|---|
| 80 | --disable-nls \
|
|---|
| 81 | --enable-largefile \
|
|---|
| 82 | );
|
|---|
| 83 | touch $@
|
|---|
| 84 |
|
|---|
| 85 | $(GCC_BUILD_DIR2)/.compiled: $(GCC_BUILD_DIR2)/.configured
|
|---|
| 86 | PATH=$(TARGET_PATH) $(MAKE) -j$(FWRT_JLEVEL) -C $(GCC_BUILD_DIR2) all
|
|---|
| 87 | touch $@
|
|---|
| 88 |
|
|---|
| 89 | gcc-install: $(GCC_BUILD_DIR2)/.compiled
|
|---|
| 90 | PATH=$(TARGET_PATH) $(MAKE) -j$(FWRT_JLEVEL) -C $(GCC_BUILD_DIR2) install
|
|---|
| 91 | echo $(GCC_VERSION) > $(STAGING_DIR)/gcc_version
|
|---|
| 92 |
|
|---|
| 93 | source: $(DL_DIR)/$(SOURCE)
|
|---|
| 94 | prepare: $(STAGING_DIR)/bin/$(GNU_TARGET_NAME)-gcc
|
|---|
| 95 | compile: gcc-install
|
|---|
| 96 | install:
|
|---|
| 97 | clean: gcc-clean
|
|---|
| 98 | rm -rf $(GCC_DIR)
|
|---|
| 99 | rm -rf $(GCC_BUILD_DIR1)
|
|---|
| 100 | rm -rf $(GCC_BUILD_DIR2)
|
|---|
| 101 | rm -f $(STAGING_DIR)/bin/$(GNU_TARGET_NAME)-gc*
|
|---|
| 102 | rm -f $(STAGING_DIR)/bin/$(GNU_TARGET_NAME)-c*
|
|---|