1 # Main makefile for the toolchain
2 include $(TOPDIR
)/rules.mk
3 TARGETS-y
:=sed kernel-headers utils binutils gcc uClibc ipkg-utils libnotimpl squashfs jffs2 lzma
4 TARGETS-
$(CONFIG_GDB
) += gdb
6 TARGETS_DOWNLOAD
:=$(patsubst %,%-source
,$(TARGETS-y
))
7 TARGETS_INSTALL
:=$(patsubst %,%-install,$(TARGETS-y
))
8 TARGETS_CLEAN
:=$(patsubst %,%-clean,$(TARGETS-y
))
11 download
: $(TARGETS_DOWNLOAD
)
12 install: $(TARGETS_INSTALL
)
13 clean: $(TARGETS_CLEAN
)
15 uClibc-prepare
: kernel-headers-prepare sed-install utils-install
16 binutils-prepare
: uClibc-prepare
17 gcc-prepare
: binutils-install
18 uClibc-compile
: gcc-prepare
19 gcc-compile
: uClibc-install
20 squashfs-compile
: lzma-compile
22 TOOLCHAIN_STAMP_DIR
:=$(STAGING_DIR
)/stampfiles
24 $(TOOLCHAIN_STAMP_DIR
):
30 @mkdir
-p
$@
/$(REAL_GNU_TARGET_NAME
)
31 @ln
-sf ..
/lib
$@
/$(REAL_GNU_TARGET_NAME
)/lib
37 $(MAKE
) -C
$(patsubst %-source
,%,$@
) source
39 %-prepare
: $(TOOLCHAIN_STAMP_DIR
) $(STAGING_DIR
) $(TOOL_BUILD_DIR
) FORCE
40 @
[ -f
$(TOOLCHAIN_STAMP_DIR
)/.toolchain_
$@
] ||
{ \
41 $(MAKE
) -C
$(patsubst %-prepare
,%,$@
) prepare
; \
43 @touch
$(TOOLCHAIN_STAMP_DIR
)/.toolchain_
$@
46 @
[ -f
$(TOOLCHAIN_STAMP_DIR
)/.toolchain_
$@
] ||
{ \
47 $(MAKE
) -C
$(patsubst %-compile
,%,$@
) compile
; \
49 @touch
$(TOOLCHAIN_STAMP_DIR
)/.toolchain_
$@
52 @
[ -f
$(TOOLCHAIN_STAMP_DIR
)/.toolchain_
$@
] ||
{ \
53 $(MAKE
) -C
$(patsubst %-install,%,$@
) install; \
55 @touch
$(TOOLCHAIN_STAMP_DIR
)/.toolchain_
$@
58 @
$(MAKE
) -C
$(patsubst %-clean,%,$@
) clean
59 @
rm -f
$(TOOLCHAIN_STAMP_DIR
)/.toolchain_
$(patsubst %-clean,%,$@
)-*