toolchain: trailing whitespaces cleanup (just cosmetics!)
[openadk.git] / toolchain / gcc / Makefile
blob0b033cd91e9f51984c788286ab40b9419c09c6ec
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
5 include ../rules.mk
6 include Makefile.inc
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 \
16 --with-gnu-ld \
17 --disable-libmudflap \
18 --disable-libgomp \
19 --disable-biarch \
20 --disable-decimal-float \
21 --disable-multilib \
22 --disable-sjlj-exceptions \
23 --disable-libssp \
24 --disable-libstdcxx-pch \
25 --disable-nls
27 ifeq ($(ADK_TARGET_NO_FPU),y)
28 GCC_CONFOPTS+= --with-float=soft
29 endif
31 ifeq ($(ADK_LINUX_64),y)
32 GCC_CONFOPTS+= --with-abi=64
33 endif
35 ifeq ($(ADK_TARGET_LIB_UCLIBC),y)
36 GCC_CONFOPTS+= --disable-tls
37 endif
39 ifeq (${ADK_MAKE_PARALLEL},y)
40 GCC_MAKEOPTS+= -j${ADK_MAKE_JOBS}
41 endif
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; \
52 PATH=$(TARGET_PATH) \
53 $(WRKBUILD)/configure \
54 ${GCC_CONFOPTS} \
55 --enable-languages=c \
56 --disable-shared \
57 --with-newlib \
58 --without-headers \
60 touch $@
62 $(GCC_BUILD_DIR_MINIMAL)/.compiled: $(GCC_BUILD_DIR_MINIMAL)/.configured
63 PATH=$(TARGET_PATH) \
64 $(MAKE) ${GCC_MAKEOPTS} -C $(GCC_BUILD_DIR_MINIMAL) all-gcc
65 touch $@
67 $(WRKBUILD)/.headers: $(GCC_BUILD_DIR_MINIMAL)/.compiled
68 PATH=$(TARGET_PATH) \
69 $(MAKE) -C $(GCC_BUILD_DIR_MINIMAL) install-gcc
70 touch $@
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; \
79 PATH=$(TARGET_PATH) \
80 $(WRKBUILD)/configure \
81 ${GCC_CONFOPTS} \
82 --enable-languages=c \
83 --disable-shared \
84 --disable-threads \
85 --with-newlib \
86 --with-sysroot=$(TOOLCHAIN_SYSROOT) \
88 touch $@
91 $(GCC_BUILD_DIR_INITIAL)/.compiled: $(GCC_BUILD_DIR_INITIAL)/.configured
92 PATH=$(TARGET_PATH) \
93 $(MAKE) ${GCC_MAKEOPTS} -C $(GCC_BUILD_DIR_INITIAL) all-gcc all-target-libgcc
94 touch $@
96 $(WRKBUILD)/.configured: $(GCC_BUILD_DIR_INITIAL)/.compiled
97 PATH=$(TARGET_PATH) \
98 $(MAKE) -C $(GCC_BUILD_DIR_INITIAL) install-gcc install-target-libgcc
99 touch $@
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 \
106 ${GCC_CONFOPTS} \
107 --enable-languages=c,c++ \
108 --with-sysroot=$(STAGING_DIR) \
109 --with-slibdir=$(STAGING_DIR)/lib \
110 --enable-shared \
112 touch $@
114 $(WRKBUILD)/.compiled: $(GCC_BUILD_DIR_FINAL)/.configured
115 PATH=$(TARGET_PATH) \
116 $(MAKE) ${GCC_MAKEOPTS} -C $(GCC_BUILD_DIR_FINAL) all
117 touch $@
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.
125 set -e; \
126 (cd $(STAGING_TOOLS); \
127 ln -sf $(REAL_GNU_TARGET_NAME) $(GNU_TARGET_NAME); \
128 cd bin; \
129 for app in $(REAL_GNU_TARGET_NAME)-* ; do \
130 ln -sf $${app} \
131 $(GNU_TARGET_NAME)$${app##$(REAL_GNU_TARGET_NAME)}; \
132 done; \
134 touch $@
136 include ${TOPDIR}/mk/toolchain.mk