summaryrefslogtreecommitdiff
path: root/openwrt/target/Makefile
blob: 437609a28be1bebfe84d26bad8e9d4f1a4a5f1d9 (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
84
85
86
87
88
89
90
91
92
93
94
95
96
97
include $(TOPDIR)/rules.mk

# Default target skeleton stuff, may be overridden
TARGET_SKEL_DIR=default/target_skeleton

all: install

define IMAGE_template
$(BIN_DIR)/openwrt-wrt54g-$(1).bin: $(BIN_DIR)/openwrt-generic-$(patsubst jffs2,jffs2-4MB,$(1)).trx
	PATH=$(TARGET_PATH) addpattern -2 -i $$< -o $$@ -g
	$(SED) "1s,^W54S,W54G," $$@
	
$(BIN_DIR)/openwrt-wrt54gs-$(1).bin: $(BIN_DIR)/openwrt-generic-$(patsubst jffs2,jffs2-8MB,$(1)).trx
	PATH=$(TARGET_PATH) addpattern -2 -i $$< -o $$@ -g
	
ifeq ($(BR2_TARGET_WRT54G),y)
IMAGE_TARGETS += $(BIN_DIR)/openwrt-wrt54g-$(1).bin
endif
ifeq ($(BR2_TARGET_WRT54GS),y)
IMAGE_TARGETS += $(BIN_DIR)/openwrt-wrt54gs-$(1).bin
endif


$(BIN_DIR)/openwrt-motorola-$(1).bin: $(BIN_DIR)/openwrt-generic-$(patsubst jffs2,jffs2-8MB,$(1)).trx
	PATH=$(TARGET_PATH) motorola-bin $$< $$@

ifeq ($(BR2_TARGET_MOTOROLA),y)
IMAGE_TARGETS += $(BIN_DIR)/openwrt-motorola-$(1).bin
endif
endef

$(LINUX_IMAGE): $(LINUX_KERNEL)
	cat $^ | $(BUILD_DIR)/lzma/lzma e -si -so -eos > $@ || (rm -f $@ && false)

TARGET_DIRS:=
TARGET_FS:=
IMAGE_TARGETS:=
ifeq ($(strip $(BR2_TARGET_ROOTFS_JFFS2)),y)
TARGET_DIRS += jffs2
TARGET_FS += jffs2
endif
ifeq ($(strip $(BR2_TARGET_ROOTFS_SQUASHFS_LZMA)),y)
TARGET_DIRS += squashfs-lzma
TARGET_FS += squashfs
endif
$(foreach fs,$(TARGET_FS),$(eval $(call IMAGE_template,$(fs))))

INSTALL_TARGET_DIRS:=$(patsubst %,%-install,$(TARGET_DIRS))
$(INSTALL_TARGET_DIRS): image_clean $(TARGET_DIR)/etc/sysconf $(BIN_DIR)

prepare: $(patsubst %,%-prepare,$(TARGET_DIRS))
	mkdir -p $(TARGET_DIR)
	if [ -f "$(TARGET_SKELETON)" ] ; then \
	zcat $(TARGET_SKELETON) | tar -C $(BUILD_DIR) -xf -; \
	fi;
	if [ -d "$(TARGET_SKEL_DIR)" ] ; then \
		cp -a $(TARGET_SKEL_DIR)/* $(TARGET_DIR)/; \
	fi;
	mkdir -p $(TARGET_DIR)/jffs
	mkdir -p $(TARGET_DIR)/dev
	mkdir -p $(TARGET_DIR)/proc
	mkdir -p $(TARGET_DIR)/tmp
	mkdir -p $(TARGET_DIR)/lib
	mkdir -p $(TARGET_DIR)/usr/lib
	mkdir -p $(TARGET_DIR)/usr/bin
	ln -sf /tmp/resolv.conf $(TARGET_DIR)/etc/resolv.conf
	rm -rf $(TARGET_DIR)/var
	ln -sf /tmp $(TARGET_DIR)/var
	-find $(TARGET_DIR) -type d -name CVS | xargs rm -rf
	-find $(TARGET_DIR) -type d -name .svn | xargs rm -rf

$(BIN_DIR):
	mkdir -p $(BIN_DIR)

$(INSTALL_TARGET_DIRS): lzma-loader-compile
$(IMAGE_TARGETS): $(patsubst %,%-install,$(TARGET_DIRS))
compile: $(patsubst %,%-compile,$(TARGET_DIRS))
install: utils-install lzma-install $(LINUX_IMAGE) $(patsubst %,%-install,$(TARGET_DIRS)) $(IMAGE_TARGETS)
clean: $(patsubst %,%-clean,$(TARGET_DIRS)) image_clean

image_clean:
	rm -f $(BIN_DIR)/openwrt-*

$(TARGET_DIR)/etc/sysconf:
	mkdir -p $(TARGET_DIR)/etc
	-grep \^BR2_SYSCONF $(TOPDIR)/.config > $(TARGET_DIR)/etc/sysconf

%-clean:
	$(MAKE) -C $(patsubst %-clean,%,$@) clean
%-prepare:
	$(MAKE) -C $(patsubst %-prepare,%,$@) prepare
%-compile: %-prepare
	$(MAKE) -C $(patsubst %-compile,%,$@) compile
%-install: %-compile
	$(MAKE) -C $(patsubst %-install,%,$@) install