1
0
mirror of git://projects.qi-hardware.com/openwrt-xburst.git synced 2024-11-24 04:56:14 +02:00
openwrt-xburst/toolchain/Makefile
nbd 10e064f98c fix ccache build order
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@5783 3c298f89-4303-0410-b956-a3cf2f4a3e73
2006-12-14 05:10:23 +00:00

76 lines
1.9 KiB
Makefile

#
# Copyright (C) 2006 OpenWrt.org
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
# Main makefile for the toolchain
#
include $(TOPDIR)/rules.mk
TARGETS-y:=kernel-headers
TARGETS-$(CONFIG_GDB) += gdb
TARGETS-$(CONFIG_CCACHE) += ccache
ifeq ($(CONFIG_NATIVE_TOOLCHAIN),)
TARGETS-y+=binutils gcc uClibc
endif
TARGETS_DOWNLOAD:=$(patsubst %,%-download,$(TARGETS-y))
TARGETS_INSTALL:=$(patsubst %,%-install,$(TARGETS-y))
TARGETS_CLEAN:=$(patsubst %,%-clean,$(TARGETS-y))
all: install
download: $(TARGETS_DOWNLOAD)
install: $(TARGETS_INSTALL)
clean: $(TARGETS_CLEAN)
$(TARGETS_INSTALL): $(STAGING_DIR)/$(REAL_GNU_TARGET_NAME)
ifeq ($(CONFIG_CCACHE),y)
uClibc-prepare: ccache-install
endif
uClibc-prepare: kernel-headers-prepare
ifeq ($(CONFIG_NATIVE_TOOLCHAIN),)
binutils-prepare: uClibc-prepare
gcc-prepare: binutils-install
uClibc-compile: gcc-compile
endif
gcc-install: uClibc-install
TOOLCHAIN_STAMP_DIR:=$(STAGING_DIR)/stampfiles
$(STAGING_DIR)/$(REAL_GNU_TARGET_NAME):
@mkdir -p $@
@ln -sf ../lib $@/lib
$(TOOLCHAIN_STAMP_DIR):
mkdir -p $@
$(TOOLCHAIN_BUILD_DIR):
@mkdir -p $@
%-download: FORCE
$(MAKE) -C $(patsubst %-download,%,$@) download
%-prepare: $(TOOLCHAIN_STAMP_DIR) $(STAGING_DIR)/$(REAL_GNU_TARGET_NAME) $(TOOLCHAIN_BUILD_DIR) FORCE
@[ -f $(TOOLCHAIN_STAMP_DIR)/.toolchain_$@ ] || { \
$(MAKE) -C $(patsubst %-prepare,%,$@) prepare; \
}
@touch $(TOOLCHAIN_STAMP_DIR)/.toolchain_$@
%-compile: %-prepare
@[ -f $(TOOLCHAIN_STAMP_DIR)/.toolchain_$@ ] || { \
$(MAKE) -C $(patsubst %-compile,%,$@) compile; \
}
@touch $(TOOLCHAIN_STAMP_DIR)/.toolchain_$@
%-install: %-compile
@[ -f $(TOOLCHAIN_STAMP_DIR)/.toolchain_$@ ] || { \
$(MAKE) -C $(patsubst %-install,%,$@) install; \
}
@touch $(TOOLCHAIN_STAMP_DIR)/.toolchain_$@
%-clean: FORCE
@$(MAKE) -C $(patsubst %-clean,%,$@) clean
@rm -f $(TOOLCHAIN_STAMP_DIR)/.toolchain_$(patsubst %-clean,%,$@)-*