source: freewrt/toolchain/gcc/Makefile

freewrt_2_0
Last change on this file was 9554ed5, checked in by Waldemar Brodkorb <wbx@…>, 4 months ago

populate FWRT_JLEVEL to toolchain, reduces the buildtime on multi-core machines

  • Property mode set to 100644
File size: 3.0 KB
Line 
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
4include $(TOPDIR)/rules.mk
5include ../rules.mk
6
7GCC_VERSION:=14.3.0
8GCC_SITE:=@GNU/gcc/gcc-$(GCC_VERSION)
9GCC_MD5SUM:=1ba56546c0274ea75457bf5c00c61506
10SOURCE:=gcc-$(GCC_VERSION).tar.gz
11GCC_DIR:=$(TOOLCHAIN_BUILD_DIR)/gcc-$(GCC_VERSION)
12
13TARGET_LANGUAGES:=c,c++
14
15GCC_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
58GCC_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
89gcc-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
93source: $(DL_DIR)/$(SOURCE)
94prepare: $(STAGING_DIR)/bin/$(GNU_TARGET_NAME)-gcc
95compile: gcc-install
96install:
97clean: 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*
Note: See TracBrowser for help on using the repository browser.