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 # Steps to build toolchains
5 # 1) build and install binutils
6 # 2) build and install mpfr, mpc and gmp
7 # 3) build and install gcc c compiler
8 # 4) install kernel-headers
9 # 5) install libc headers
10 # 6) build and install full gcc
11 # 7) build and install full libc
12 # 8) build and install gdb debugger
14 include $(TOPDIR
)/rules.mk
16 TARGETS
:=binutils gmp mpfr mpc gcc
17 ifeq ($(ADK_TARGET_LIB_GLIBC
),y
)
18 TARGETS
+=glibc-ports glibc
21 ifeq ($(ADK_TARGET_LIB_EGLIBC
),y
)
25 ifeq ($(ADK_TARGET_LIB_UCLIBC
),y
)
31 DOWNLOAD
:=kernel-headers-download
$(patsubst %,%-download
,$(TARGETS
))
32 TARGETS_INSTALL
:=$(patsubst %,%-install,$(TARGETS
))
33 TARGETS_CLEAN
:=$(patsubst %,%-clean,$(TARGETS
))
35 install: $(TARGETS_INSTALL
)
36 clean: $(TARGETS_CLEAN
)
39 gcc-prepare
: binutils-install gmp-install mpfr-install mpc-install
40 ifeq ($(ADK_TARGET_LIB_GLIBC
),y
)
41 $(LIBC
)-prepare
: gcc-prepare kernel-headers-prepare glibc-ports-prepare
43 $(LIBC
)-prepare
: gcc-prepare kernel-headers-prepare
45 gcc-configure
: $(LIBC
)-prepare
46 $(LIBC
)-compile
: gcc-configure
47 gcc-compile
: $(LIBC
)-install
50 @mkdir
-p
$(STAGING_HOST_DIR
)/lib
51 @mkdir
-p
$(STAGING_HOST_DIR
)/include
52 @mkdir
-p
$(STAGING_HOST_DIR
)/$(REAL_GNU_TARGET_NAME
)
53 @ln
-sf ..
/lib
$(STAGING_HOST_DIR
)/$(REAL_GNU_TARGET_NAME
)/lib
55 $(TOOLCHAIN_BUILD_DIR
):
56 @mkdir
-p
$(TOOLCHAIN_BUILD_DIR
)
59 $(TRACE
) toolchain
/$(patsubst %-download
,%,$@
)/download
60 $(MAKE
) -C
$(patsubst %-download
,%,$@
) fetch
62 %-prepare
: $(STAGING_HOST_DIR
) $(TOOLCHAIN_BUILD_DIR
)
63 $(TRACE
) toolchain
/$(patsubst %-prepare
,%,$@
)/prepare
64 @if
test x
"$(patsubst %-prepare,%,$@)" = x
"$(LIBC)"; then \
65 $(MAKE
) -C
$(patsubst %-prepare
,%,$@
) prepare \
68 $(MAKE
) -C
$(patsubst %-prepare
,%,$@
) prepare \
69 CC
='$(HOSTCC)' CFLAGS
='$(HOSTCFLAGS)' \
73 %-configure
: %-prepare
74 $(TRACE
) toolchain
/$(patsubst %-configure
,%,$@
)/configure
75 @if
test x
"$(patsubst %-configure,%,$@)" = x
"$(LIBC)"; then \
76 $(MAKE
) -C
$(patsubst %-configure
,%,$@
) configure \
79 $(MAKE
) -C
$(patsubst %-configure
,%,$@
) configure \
80 CC
='$(HOSTCC)' CFLAGS
='$(HOSTCFLAGS)' \
84 %-compile
: %-configure
85 $(TRACE
) toolchain
/$(patsubst %-compile
,%,$@
)/compile
86 @if
test x
"$(patsubst %-compile,%,$@)" = x
"$(LIBC)"; then \
87 $(MAKE
) -C
$(patsubst %-compile
,%,$@
) compile \
90 $(MAKE
) -C
$(patsubst %-compile
,%,$@
) compile \
91 CC
='$(HOSTCC)' CFLAGS
='$(HOSTCFLAGS)' \
96 $(TRACE
) toolchain
/$(patsubst %-install,%,$@
)/install
97 @if
test x
"$(patsubst %-install,%,$@)" = x
"$(LIBC)"; then \
98 $(MAKE
) -C
$(patsubst %-install,%,$@
) install \
101 $(MAKE
) -C
$(patsubst %-install,%,$@
) install \
102 CC
='$(HOSTCC)' CFLAGS
='$(HOSTCFLAGS)' \
107 $(TRACE
) toolchain
/$(patsubst %-clean,%,$@
)/clean
108 @
$(MAKE
) -C
$(patsubst %-clean,%,$@
) clean $(MAKE_TRACE
)