cleanup; change base-files build directory
[openwrt-10.03/.git] / package / base-files / Makefile
1 # $Id$
2
3 include $(TOPDIR)/rules.mk
4
5 ifneq ($(DUMP),1)
6 include $(BUILD_DIR)/kernel.mk
7 include $(TOPDIR)/target/linux/rules.mk
8 TARGET:=-$(BOARD)-$(KERNEL)
9 BUILD_DIR:=$(BUILD_DIR)/linux-$(KERNEL)-$(BOARD)
10
11 UCLIBC_VERSION:=${shell cat $(STAGING_DIR)/uclibc_version}
12 LIBGCC_VERSION:=${shell cat $(STAGING_DIR)/gcc_version}
13 endif
14
15 PKG_NAME:=base-files
16 PKG_RELEASE:=8
17 PKG_BUILD_DIR:=$(BUILD_DIR)/base-files
18
19 REV:=$(shell LANG=C svn info | awk '/^Revision:/ { print$$2 }' )
20 ifeq ($(REV),)
21 REV:=0
22 endif
23
24 include $(TOPDIR)/package/rules.mk
25
26 CONFIG_PACKAGE_base-files$(TARGET):=CONFIG_PACKAGE_base-files
27
28 define Package/base-files$(TARGET)
29  SECTION:=base
30  CATEGORY:=Base system
31  DEFAULT:=y
32  TITLE:=OpenWrt system scripts
33  DESCRIPTION:=Base filesystem for OpenWrt
34 endef
35
36 define Package/libgcc
37  SECTION:=libs
38  CATEGORY:=Libraries
39  DEFAULT:=m, y if GCC_VERSION_4_0_2 || GCC_VERSION_4_0_3 || GCC_VERSION_4_1_0
40  TITLE:=GCC support library
41  VERSION:=$(LIBGCC_VERSION)-$(PKG_RELEASE)
42  DESCRIPTION:=$(TITLE)
43 endef
44
45 define Package/uclibc
46  $(call Package/base-files$(TARGET))
47  VERSION:=$(UCLIBC_VERSION)-$(PKG_RELEASE)
48  TITLE:=C library
49  DESCRIPTION:=C library for embedded systems
50 endef
51
52
53 define Build/Prepare
54         mkdir -p $(PKG_BUILD_DIR)
55 endef
56
57
58 define Build/Compile/ar7
59         $(TARGET_CC) -o $(PKG_BUILD_DIR)/adam2patcher src/adam2patcher.c
60 endef
61
62 define Build/Compile/brcm
63         $(TARGET_CC) -o $(PKG_BUILD_DIR)/jffs2root src/jffs2root.c
64 endef
65
66 define Build/Compile
67 $(call Build/Compile/$(BOARD))
68 endef
69
70
71 define Package/base-files$(TARGET)/install-ar7
72         mkdir -p $(1)/sbin
73         $(CP) $(PKG_BUILD_DIR)/adam2patcher $(1)/sbin
74 endef
75 define Package/base-files$(TARGET)/install-brcm
76         mkdir -p $(1)/sbin
77         $(CP) $(PKG_BUILD_DIR)/jffs2root $(1)/sbin
78 endef
79
80 define Package/base-files$(TARGET)/install
81 $(call Package/base-files$(TARGET)/install-$(BOARD),$(1))
82         $(CP) ./default/* $(1)
83         if [ -d $(BOARD)-$(KERNEL) ]; then \
84                 $(CP) $(BOARD)-$(KERNEL)/* $(1)/; \
85         fi
86         $(SED) 's,$$$$R,r$(REV),g' $(1)/etc/banner
87         $(SED) 's,$$$$S,$(BOARD)-$(KERNEL),g' $(1)/etc/ipkg.conf
88         mkdir -p $(1)/dev
89         mkdir -p $(1)/etc/crontabs
90         mkdir -p $(1)/jffs
91         mkdir -p $(1)/lib
92         mkdir -p $(1)/mnt
93         mkdir -p $(1)/proc
94         mkdir -p $(1)/tmp
95         mkdir -p $(1)/usr/lib
96         mkdir -p $(1)/usr/bin
97         mkdir -p $(1)/sys
98         mkdir -p $(1)/www
99         ln -sf /tmp/resolv.conf $(1)/etc/resolv.conf
100         ln -sf /proc/mounts $(1)/etc/mtab
101         rm -f $(1)/var
102         ln -sf /tmp $(1)/var
103         mkdir -p $(1)/etc
104 endef
105
106 define Package/uclibc/install
107         mkdir -p $(1)/lib
108         for file in ld-uClibc libc libcrypt libdl libm libnsl libresolv librt libuClibc libutil; do \
109                 $(CP) $(STAGING_DIR)/lib/$$$$file.so.* $(1)/lib/; \
110                 $(CP) $(STAGING_DIR)/lib/$$$$file-$(UCLIBC_VERSION).so $(1)/lib/; \
111         done
112 endef
113
114 define Package/libgcc/install
115         mkdir -p $(1)/lib
116         $(CP) $(STAGING_DIR)/lib/libgcc_s.so.* $(1)/lib/
117 endef
118
119 $(eval $(call BuildPackage,base-files$(TARGET)))
120 $(eval $(call BuildPackage,libgcc))
121 $(eval $(call BuildPackage,uclibc))