include ../../$(CONFIG)

GARNAME = toolchain
GARVERSION = 1
CATEGORIES = meta

DEPENDS = \
    toolchain/base \
    binutils/$(BINUTILS_DIR) \
    binutils/binutils-debian \
    libc/$(LIBC_HEADERS_DIR) \
    cc/$(CC_PASS1_DIR) \
    libc/$(LIBC_DIR) \
    cc/$(CC_PASS2_DIR) \
    toolchain/post-install

ifdef GETTEXT_VER
DEPENDS += libc/uclibc-gettext
endif
ifdef LIBC_DEBIAN_DIR
DEPENDS += toolchain/base-debian \
           libc/$(LIBC_DEBIAN_DIR)
endif
ifdef CC_DEBIAN_DIR
DEPENDS += cc/$(CC_DEBIAN_DIR)
endif

DESCRIPTION = Builds a binutils, gcc and glibc toolchain

include ../category.mk

ifeq ($(USE_SOFTFLOAT), yes)
SOFTFLOAT=-nofpu
endif


all: build-devicetools build-archtools


build-devicetools:
	$(MAKE) -C ../device_tools device-tools

build-archtools:
	$(MAKE) -C ../device_tools arch-tools


packages:
	$(MAKE) -C ../../ tarball deb \
	   TC_ARCH=$(ARCH) \
	   TC_NAME=$(COMPILER_NAME) \
	   TC_PACKAGE=scratchbox-toolchain-$(SUB_ARCH)-$(shell echo $(CC_VER) |cut -d. -f1-2)-$(shell echo $(LIBC_VER) |cut -d. -f1-2)$(SOFTFLOAT)


post-clean:
	for DEP_DIR in $(DEPENDS); do \
	    $(MAKE) -C ../../$$DEP_DIR clean; \
	done
	$(MAKE) -C ../device_tools/ clean-all
	$(MAKE) -C ../../ clean

all-sums:
	set -e; \
	rm -f ../../$(CHECKSUM_FILE) ;\
	for DEP_DIR in $(DEPENDS); do \
	    $(MAKE) -C ../../$$DEP_DIR CHECKSUM_FILE=checksums makesum; \
		test -f ../../$$DEP_DIR/checksums && cat ../../$$DEP_DIR/checksums >> $(CHECKSUM_FILE) ;\
	done; \
	$(MAKE) -C ../device_tools CONFIG=$(CONFIG) all-sums

cache:
	set -e; \
	mkdir -p ../../packages; \
	for DEP_DIR in $(DEPENDS); do \
	    $(MAKE) -C ../../$$DEP_DIR fetch; \
	    for PKG in `find ../../$$DEP_DIR/download -type f`; do \
	        cp $$PKG ../../packages/; \
	    done; \
	done

