summaryrefslogtreecommitdiff
path: root/make/system-linux.mk
blob: 6098cc6bc49c8be2794a129dbae00cb3283464c8 (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
#############################################################
#
# System Linux kernel target
#
# This uses an existing linux kernel source tree on
# your build system, and makes no effort at compiling
# anything....
#
# You will probably want to change LINUX_SOURCE to
# point to wherever you installed you kernel.
#
#  -Erik
#
#############################################################
ifneq ($(filter $(TARGETS),system-linux),)

LINUX_SOURCE=/usr/src/linux
LINUX_DIR=$(BUILD_DIR)/linux
LINUX_KERNEL=$(BUILD_DIR)/buildroot-kernel
# Used by pcmcia-cs and others
LINUX_SOURCE_DIR=$(LINUX_SOURCE)

$(LINUX_DIR)/.configured:
	mkdir -p $(LINUX_DIR)/include
	(cd $(LINUX_DIR)/include; \
	for i in $(LINUX_SOURCE)/include/*; do ln -sf $$i ; done; \
	rm -f asm; \
	if [ "$(ARCH)" = "powerpc" ];then \
	    ln -fs asm-ppc asm; \
	elif [ "$(ARCH)" = "mips" ];then \
	    ln -fs asm-mips asm; \
	elif [ "$(ARCH)" = "mipsel" ];then \
	    ln -fs asm-mips asm; \
	elif [ "$(ARCH)" = "cris" ];then \
	    ln -fs asm-cris asm; \
	else ln -fs asm-$(ARCH) asm; \
	fi)
	cp $(LINUX_SOURCE)/Makefile $(LINUX_DIR)/
	cp $(LINUX_SOURCE)/Rules.make $(LINUX_DIR)/
	touch $(LINUX_DIR)/.configured

$(LINUX_KERNEL): $(LINUX_DIR)/.configured

$(STAGING_DIR)/include/linux/version.h: $(LINUX_DIR)/.configured
	mkdir -p $(STAGING_DIR)/include
	rm -rf $(STAGING_DIR)/include/linux
	cp -dpa $(LINUX_DIR)/include/linux $(STAGING_DIR)/include/
	rm -rf $(STAGING_DIR)/include/asm
	mkdir -p $(STAGING_DIR)/include/asm
	cp -dpa $(LINUX_DIR)/include/asm/* $(STAGING_DIR)/include/asm/
	rm -rf $(STAGING_DIR)/include/scsi
	mkdir -p $(STAGING_DIR)/include/scsi
	cp -dpa $(LINUX_DIR)/include/scsi/* $(STAGING_DIR)/include/scsi
	touch -c $(STAGING_DIR)/include/linux/version.h

system-linux: $(STAGING_DIR)/include/linux/version.h

system-linux-clean: clean
	rm -f $(LINUX_KERNEL)
	rm -rf $(LINUX_DIR)

system-linux-dirclean:
	rm -rf $(LINUX_DIR)

endif