summaryrefslogtreecommitdiff
path: root/cleopatre/buildroot/target/device/Spidcom/Makefile.in
blob: 7f0fe7b0e5b69a11e2b08317957f39609d03a7ee (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
# 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 $@