summaryrefslogtreecommitdiff
path: root/cleopatre/buildroot/target/device/Spidcom/Makefile.in
blob: af6b88449b49cf4f541c8c0e6ac0ec906306fe3e (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
# Override the default uClibc configuration
ifeq ($(strip $(BR2_TARGET_SPIDCOM)),y)

TARGET_SKELETON = target/device/Spidcom/common/target_skeleton_base

include target/device/Spidcom/$(subst ",,$(BR2_TARGET_SPIDCOM_BOARD))/Makefile.in

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_SKELETON_ADD); 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 $@