# Override the default uClibc configuration ifeq ($(strip $(BR2_TARGET_SPIDCOM)),y) TARGET_SPIDCOM_DIR := target/device/Spidcom TARGET_SKELETON = $(TARGET_SPIDCOM_DIR)/common/non_existent_dir BOARD_NAME=$(subst ",,$(BR2_TARGET_SPIDCOM_BOARD)) BOARD_PATH=$(PROJECT_BUILD_DIR) $(subst ",,$(BR2_PACKAGE_BUSYBOX_CONFIG)): $(TARGET_SPIDCOM_DIR)/desc.py \ --common-dir $(TARGET_SPIDCOM_DIR)/common \ --desc $(TARGET_SPIDCOM_DIR)/targets/$(BOARD_NAME)/desc \ --gen busybox.config > $@ TARGET_DEVICE_TABLE=$(BOARD_PATH)/device_table.txt $(TARGET_DEVICE_TABLE): $(TARGET_SPIDCOM_DIR)/desc.py \ --common-dir $(TARGET_SPIDCOM_DIR)/common \ --desc $(TARGET_SPIDCOM_DIR)/targets/$(BOARD_NAME)/desc \ --gen device_table.txt > $@ ifeq ($(strip $(BR2_PACKAGE_LINUX)),y) TARGETS+=linux26 LINUX26_KCONFIG=$(BOARD_PATH)/linux26.config LINUX26_FORMAT=sImage LINUX26_KCONFIG_PREREQ=$(BOARD_PATH)/.gen_linux26_config $(LINUX26_KCONFIG_PREREQ): $(TARGET_SPIDCOM_DIR)/desc.py \ --common-dir $(TARGET_SPIDCOM_DIR)/common \ --desc $(TARGET_SPIDCOM_DIR)/targets/$(BOARD_NAME)/desc \ --gen linux26.config > $(LINUX26_KCONFIG) touch $@ endif BUNDLE_VERSION = tag-$(shell git describe --always 2>/dev/null) LINUX_DOT_VERSION = $(shell cat $(LINUX_DIR)/.version 2>/dev/null || echo 0) IMG_VERSION = $(shell cat $(BASE_DIR)/.version 2>/dev/null | sed -e 's/\(.\{16\}\).*/\1/') LINUX26_MAKE_EXTRA_FLAGS+=KBUILD_BUILD_VERSION="$(LINUX_DOT_VERSION)($(BUNDLE_VERSION))" LINUX26_MAKE_EXTRA_FLAGS+=IMG_VERSION="$(IMG_VERSION)" LINUX26_MAKE_EXTRA_FLAGS+=PLC_MEM_SIZE_MB="$(BR2_TARGET_SPIDCOM_PLC_MEM_SIZE_MB)" # change the original BASE_TARGETS to create needed linux source links BASE_TARGETS = check_linux_link uclibc kernel-headers # now some funny trick to adapt buildroot to the modified linux sources # 1: create a fake linux-2.6.25.10.tar.bz2 archive in download dir # 2: create a link to linux spc300 sources inside project_build dir for image generation # 3: create a link to linux spc300 sources inside toolchain_buid_dir for kernel header usage check_linux_link: if [ ! -e $(DL_DIR)/$(LINUX_HEADERS_SOURCE) ]; then \ mkdir -p $(DL_DIR); \ touch $(DL_DIR)/$(LINUX_HEADERS_SOURCE); \ fi; \ if [ ! -e $(LINUX26_DIR) ]; then \ mkdir -p $(PROJECT_BUILD_DIR); \ ln -sf ../../../$(notdir $(LINUX26_DIR)-spc300) $(LINUX26_DIR); \ touch $(LINUX26_DIR)/.unpacked; \ touch $(LINUX26_DIR)/.patched; \ mkdir -p $(TOOL_BUILD_DIR); \ ln -sf ../../$(notdir $(LINUX26_DIR)-spc300) $(TOOL_BUILD_DIR)/linux-$(LINUX_HEADERS_VERSION); \ fi; endif linux26-clean: $(MAKE) -C $(LINUX26_DIR) clean # Add rule to customize target dir for each board. $(TARGET_DIR): $(PROJECT_BUILD_DIR)/.root-add $(PROJECT_BUILD_DIR)/.root-add: $(PROJECT_BUILD_DIR)/.root for dir in $$($(TARGET_SPIDCOM_DIR)/desc.py \ --common-dir $(TARGET_SPIDCOM_DIR)/common \ --desc $(TARGET_SPIDCOM_DIR)/targets/$(BOARD_NAME)/desc \ --gen target_skeleton); do \ cp -fa $$dir/* $(TARGET_DIR)/; \ done -find $(TARGET_DIR) -type d -name CVS -o -name .svn | xargs rm -rf -find $(TARGET_DIR) -type f -name .empty | xargs rm -rf touch $@