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 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 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
))
36 install: $(TARGETS_INSTALL
)
37 clean: $(TARGETS_CLEAN
)
40 gcc-prepare
: binutils-install gmp-install mpfr-install
41 ifeq ($(ADK_TARGET_LIB_GLIBC
),y
)
42 $(LIBC
)-prepare
: gcc-prepare kernel-headers-prepare glibc-ports-prepare
44 $(LIBC
)-prepare
: gcc-prepare kernel-headers-prepare
46 gcc-configure
: $(LIBC
)-prepare
47 $(LIBC
)-compile
: gcc-configure
48 gcc-compile
: $(LIBC
)-install
51 @mkdir
-p
$(STAGING_TOOLS
)/lib
52 @mkdir
-p
$(STAGING_TOOLS
)/include
53 @mkdir
-p
$(STAGING_TOOLS
)/$(REAL_GNU_TARGET_NAME
)
54 @ln
-sf ..
/lib
$(STAGING_TOOLS
)/$(REAL_GNU_TARGET_NAME
)/lib
56 $(TOOLCHAIN_BUILD_DIR
):
57 @mkdir
-p
$(TOOLCHAIN_BUILD_DIR
)
60 $(TRACE
) toolchain
/$(patsubst %-download
,%,$@
)/download
61 $(MAKE
) -C
$(patsubst %-download
,%,$@
) fetch
63 %-prepare
: $(STAGING_TOOLS
) $(TOOLCHAIN_BUILD_DIR
)
64 $(TRACE
) toolchain
/$(patsubst %-prepare
,%,$@
)/prepare
65 @if
test x
"$(patsubst %-prepare,%,$@)" = x
"$(LIBC)"; then \
66 $(MAKE
) -C
$(patsubst %-prepare
,%,$@
) prepare \
69 $(MAKE
) -C
$(patsubst %-prepare
,%,$@
) prepare \
70 CC
='$(HOSTCC)' CFLAGS
='$(HOSTCFLAGS)' \
74 %-configure
: %-prepare
75 $(TRACE
) toolchain
/$(patsubst %-configure
,%,$@
)/configure
76 @if
test x
"$(patsubst %-configure,%,$@)" = x
"$(LIBC)"; then \
77 $(MAKE
) -C
$(patsubst %-configure
,%,$@
) configure \
80 $(MAKE
) -C
$(patsubst %-configure
,%,$@
) configure \
81 CC
='$(HOSTCC)' CFLAGS
='$(HOSTCFLAGS)' \
85 %-compile
: %-configure
86 $(TRACE
) toolchain
/$(patsubst %-compile
,%,$@
)/compile
87 @if
test x
"$(patsubst %-compile,%,$@)" = x
"$(LIBC)"; then \
88 $(MAKE
) -C
$(patsubst %-compile
,%,$@
) compile \
91 $(MAKE
) -C
$(patsubst %-compile
,%,$@
) compile \
92 CC
='$(HOSTCC)' CFLAGS
='$(HOSTCFLAGS)' \
97 $(TRACE
) toolchain
/$(patsubst %-install,%,$@
)/install
98 @if
test x
"$(patsubst %-install,%,$@)" = x
"$(LIBC)"; then \
99 $(MAKE
) -C
$(patsubst %-install,%,$@
) install \
102 $(MAKE
) -C
$(patsubst %-install,%,$@
) install \
103 CC
='$(HOSTCC)' CFLAGS
='$(HOSTCFLAGS)' \
108 $(TRACE
) toolchain
/$(patsubst %-clean,%,$@
)/clean
109 @
$(MAKE
) -C
$(patsubst %-clean,%,$@
) clean $(MAKE_TRACE
)