1 # This file is part of the OpenADK project. OpenADK is copyrighted
2 # material, please see the LICENCE file in the top-level directory.
4 include $(TOPDIR
)/rules.mk
8 GCC_CONFOPTS
= --prefix=$(STAGING_TOOLS
) \
9 --build
=$(GNU_HOST_NAME
) \
10 --host
=$(GNU_HOST_NAME
) \
11 --target
=$(REAL_GNU_TARGET_NAME
) \
12 --with-gmp
=$(STAGING_TOOLS
) \
13 --with-mpfr
=$(STAGING_TOOLS
) \
14 --disable-__cxa_atexit \
15 --enable-target-optspace \
17 --disable-libmudflap \
20 --disable-decimal-float \
22 --disable-sjlj-exceptions \
24 --disable-libstdcxx-pch \
27 ifeq ($(ADK_TARGET_NO_FPU
),y
)
28 GCC_CONFOPTS
+= --with-float
=soft
31 ifeq ($(ADK_LINUX_64
),y
)
32 GCC_CONFOPTS
+= --with-abi
=64
35 ifeq ($(ADK_TARGET_LIB_UCLIBC
),y
)
36 GCC_CONFOPTS
+= --disable-tls
39 ifeq (${ADK_MAKE_PARALLEL},y
)
40 GCC_MAKEOPTS
+= -j
${ADK_MAKE_JOBS}
43 include ${TOPDIR}/mk
/buildhlp.mk
45 GCC_BUILD_DIR_MINIMAL
:= $(WRKBUILD
)-minimal
46 GCC_BUILD_DIR_INITIAL
:= $(WRKBUILD
)-initial
47 GCC_BUILD_DIR_FINAL
:= $(WRKBUILD
)-final
49 $(GCC_BUILD_DIR_MINIMAL
)/.configured
:
50 mkdir
-p
$(GCC_BUILD_DIR_MINIMAL
)
51 (cd
$(GCC_BUILD_DIR_MINIMAL
); rm -f config.cache
; \
53 $(WRKBUILD
)/configure \
55 --enable-languages
=c \
62 $(GCC_BUILD_DIR_MINIMAL
)/.compiled
: $(GCC_BUILD_DIR_MINIMAL
)/.configured
64 $(MAKE
) ${GCC_MAKEOPTS} -C
$(GCC_BUILD_DIR_MINIMAL
) all-gcc
67 $(WRKBUILD
)/.headers
: $(GCC_BUILD_DIR_MINIMAL
)/.compiled
69 $(MAKE
) -C
$(GCC_BUILD_DIR_MINIMAL
) install-gcc
72 $(GCC_BUILD_DIR_INITIAL
)/.configured
:
73 rm -rf
$(STAGING_TOOLS
)/$(REAL_GNU_TARGET_NAME
)/sys-include
74 ln
-sf
${STAGING_DIR}/include $(STAGING_TOOLS
)/$(REAL_GNU_TARGET_NAME
)/sys-include
75 rm -rf
${STAGING_TOOLS}/$(REAL_GNU_TARGET_NAME
)/lib
76 ln
-sf
${STAGING_DIR}/lib
$(STAGING_TOOLS
)/$(REAL_GNU_TARGET_NAME
)/lib
77 mkdir
-p
$(GCC_BUILD_DIR_INITIAL
)
78 (cd
$(GCC_BUILD_DIR_INITIAL
); rm -f config.cache
; \
80 $(WRKBUILD
)/configure \
82 --enable-languages
=c \
86 --with-sysroot
=$(TOOLCHAIN_SYSROOT
) \
91 $(GCC_BUILD_DIR_INITIAL
)/.compiled
: $(GCC_BUILD_DIR_INITIAL
)/.configured
93 $(MAKE
) ${GCC_MAKEOPTS} -C
$(GCC_BUILD_DIR_INITIAL
) all-gcc all-target-libgcc
96 $(WRKBUILD
)/.configured
: $(GCC_BUILD_DIR_INITIAL
)/.compiled
98 $(MAKE
) -C
$(GCC_BUILD_DIR_INITIAL
) install-gcc install-target-libgcc
101 $(GCC_BUILD_DIR_FINAL
)/.configured
:
102 mkdir
-p
$(GCC_BUILD_DIR_FINAL
)
103 (cd
$(GCC_BUILD_DIR_FINAL
); rm -f config.cache
; \
104 PATH
=$(TARGET_PATH
) \
105 $(WRKBUILD
)/configure \
107 --enable-languages
=c
,c
++ \
108 --with-sysroot
=$(STAGING_DIR
) \
109 --with-slibdir
=$(STAGING_DIR
)/lib \
114 $(WRKBUILD
)/.compiled
: $(GCC_BUILD_DIR_FINAL
)/.configured
115 PATH
=$(TARGET_PATH
) \
116 $(MAKE
) ${GCC_MAKEOPTS} -C
$(GCC_BUILD_DIR_FINAL
) all
119 $(WRKBUILD
)/.installed
: $(WRKBUILD
)/.compiled
120 PATH
=$(TARGET_PATH
) \
121 $(MAKE
) -C
$(GCC_BUILD_DIR_FINAL
) install
122 # workaround if you cross-compile binutils
123 @
-rm $(STAGING_DIR
)/lib
/libiberty.a
124 # Set up the symlinks to enable lying about target name.
126 (cd
$(STAGING_TOOLS
); \
127 ln
-sf
$(REAL_GNU_TARGET_NAME
) $(GNU_TARGET_NAME
); \
129 for app in
$(REAL_GNU_TARGET_NAME
)-* ; do \
131 $(GNU_TARGET_NAME
)$${app
##$(REAL_GNU_TARGET_NAME)}; \
136 include ${TOPDIR}/mk
/toolchain.mk