Standardize Makefile
[openwrt.git] / openwrt / target / Makefile
1 include $(TOPDIR)/rules.mk
2
3 # Default target skeleton stuff, may be overridden
4 TARGET_SKEL_DIR=default/target_skeleton
5
6 all: install
7
8 define BIN_template
9 $(BIN_DIR)/openwrt-wrt54g-$(1).bin: $(BIN_DIR)/openwrt-brcm-2.4-$(patsubst jffs2,jffs2-4MB,$(1)).trx
10 PATH=$(TARGET_PATH) addpattern -2 -i $$< -o $$@ -g
11 $(SED) "1s,^W54S,W54G," $$@
12
13 $(BIN_DIR)/openwrt-wrt54gs-$(1).bin: $(BIN_DIR)/openwrt-brcm-2.4-$(patsubst jffs2,jffs2-8MB,$(1)).trx
14 PATH=$(TARGET_PATH) addpattern -2 -i $$< -o $$@ -g
15
16 ifeq ($(BR2_TARGET_WRT54G),y)
17 IMAGE_TARGETS += $(BIN_DIR)/openwrt-wrt54g-$(1).bin
18 endif
19 ifeq ($(BR2_TARGET_WRT54GS),y)
20 IMAGE_TARGETS += $(BIN_DIR)/openwrt-wrt54gs-$(1).bin
21 endif
22
23
24 $(BIN_DIR)/openwrt-motorola-$(1).bin: $(BIN_DIR)/openwrt-brcm-2.4-$(patsubst jffs2,jffs2-8MB,$(1)).trx
25 PATH=$(TARGET_PATH) motorola-bin $$< $$@
26
27 ifeq ($(BR2_TARGET_MOTOROLA),y)
28 IMAGE_TARGETS += $(BIN_DIR)/openwrt-motorola-$(1).bin
29 endif
30 endef
31
32 TARGET_DIRS:=
33 TARGET_FS:=
34 IMAGE_TARGETS:=
35 ifeq ($(strip $(BR2_TARGET_ROOTFS_JFFS2)),y)
36 TARGET_DIRS += jffs2
37 TARGET_FS += jffs2
38 endif
39 ifeq ($(strip $(BR2_TARGET_ROOTFS_SQUASHFS_LZMA)),y)
40 TARGET_DIRS += squashfs-lzma
41 TARGET_FS += squashfs
42 endif
43 $(foreach fs,$(TARGET_FS),$(eval $(call BIN_template,$(fs))))
44
45 INSTALL_TARGET_DIRS:=$(patsubst %,%-install,$(TARGET_DIRS))
46 $(INSTALL_TARGET_DIRS): image_clean $(TARGET_DIR)/etc/sysconf $(BIN_DIR)
47
48 prepare: $(patsubst %,%-prepare,$(TARGET_DIRS)) $(TARGET_DIR)
49
50 $(TARGET_DIR):
51 mkdir -p $(TARGET_DIR)
52 if [ -f "$(TARGET_SKELETON)" ] ; then \
53 zcat $(TARGET_SKELETON) | tar -C $(BUILD_DIR) -xf -; \
54 fi;
55 if [ -d "$(TARGET_SKEL_DIR)" ] ; then \
56 cp -a $(TARGET_SKEL_DIR)/* $(TARGET_DIR)/; \
57 fi;
58 mkdir -p $(TARGET_DIR)/jffs
59 mkdir -p $(TARGET_DIR)/dev
60 mkdir -p $(TARGET_DIR)/proc
61 mkdir -p $(TARGET_DIR)/tmp
62 mkdir -p $(TARGET_DIR)/lib
63 mkdir -p $(TARGET_DIR)/usr/lib
64 mkdir -p $(TARGET_DIR)/usr/bin
65 ln -sf /tmp/resolv.conf $(TARGET_DIR)/etc/resolv.conf
66 rm -rf $(TARGET_DIR)/var
67 ln -sf /tmp $(TARGET_DIR)/var
68 -find $(TARGET_DIR) -type d -name CVS | xargs rm -rf
69 -find $(TARGET_DIR) -type d -name .svn | xargs rm -rf
70
71 $(BIN_DIR):
72 mkdir -p $(BIN_DIR)
73
74 $(INSTALL_TARGET_DIRS): lzma-loader-compile linux-install
75 $(IMAGE_TARGETS): $(patsubst %,%-install,$(TARGET_DIRS) linux)
76 compile: $(patsubst %,%-compile,jffs2 lzma squashfs-lzma lzma-loader utils linux)
77 install: utils-install lzma-install $(patsubst %,%-install,$(TARGET_DIRS) linux) $(IMAGE_TARGETS)
78 clean: $(patsubst %,%-clean,$(TARGET_DIRS) linux) image_clean
79
80 image_clean:
81 rm -f $(BIN_DIR)/openwrt-*
82
83 $(TARGET_DIR)/etc/sysconf:
84 mkdir -p $(TARGET_DIR)/etc
85 -grep \^BR2_SYSCONF $(TOPDIR)/.config > $(TARGET_DIR)/etc/sysconf
86
87 %-clean:
88 $(MAKE) -C $(patsubst %-clean,%,$@) clean
89 %-prepare:
90 $(MAKE) -C $(patsubst %-prepare,%,$@) prepare
91 %-compile: %-prepare
92 $(MAKE) -C $(patsubst %-compile,%,$@) compile
93 %-rebuild:
94 $(MAKE) -C $(patsubst %-rebuild,%,$@) rebuild
95 %-install: %-compile
96 $(MAKE) -C $(patsubst %-install,%,$@) install
97
98
This page took 0.047266 seconds and 5 git commands to generate.