summaryrefslogtreecommitdiffstats
path: root/package/base-files/Makefile
blob: 536857657f43657a32619b91e209c0f3da2252ea (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
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
# $Id$

include $(TOPDIR)/rules.mk

PKG_NAME:=base-files
PKG_RELEASE:=8
PKG_BUILD_DIR:=$(BUILD_DIR)/base-files

REV:=$(shell LANG=C svn info | awk '/^Revision:/ { print$$2 }' )
ifeq ($(REV),)
REV:=0
endif

include $(TOPDIR)/package/rules.mk

ifneq ($(DUMP),1)
include $(BUILD_DIR)/kernel.mk
include $(TOPDIR)/target/linux/rules.mk
TARGET:=-$(BOARD)-$(KERNEL)

UCLIBC_VERSION:=${shell cat $(STAGING_DIR)/uclibc_version}
LIBGCC_VERSION:=${shell cat $(STAGING_DIR)/gcc_version}
endif

CONFIG_PACKAGE_base-files$(TARGET):=CONFIG_PACKAGE_base-files

define Package/base-files$(TARGET)
 SECTION:=base
 CATEGORY:=Base system
 DEFAULT:=y
 TITLE:=OpenWrt system scripts
 DESCRIPTION:=Base filesystem for OpenWrt
endef

define Package/libgcc
 SECTION:=libs
 CATEGORY:=Libraries
 DEFAULT:=m, y if GCC_VERSION_4_0_2 || GCC_VERSION_4_0_3 || GCC_VERSION_4_1_0
 TITLE:=GCC support library
 VERSION:=$(LIBGCC_VERSION)-$(PKG_RELEASE)
 DESCRIPTION:=$(TITLE)
endef

define Package/uclibc
 $(call Package/base-files$(TARGET))
 VERSION:=$(UCLIBC_VERSION)-$(PKG_RELEASE)
 TITLE:=C library
 DESCRIPTION:=C library for embedded systems
endef


define Build/Prepare
	mkdir -p $(PKG_BUILD_DIR)
endef


define Build/Compile/ar7
	$(TARGET_CC) -o $(PKG_BUILD_DIR)/adam2patcher src/adam2patcher.c
endef

define Build/Compile/brcm
	$(TARGET_CC) -o $(PKG_BUILD_DIR)/jffs2root src/jffs2root.c
endef

define Build/Compile
$(call Build/Compile/$(BOARD))
endef


define Package/base-files$(TARGET)/install-ar7
	mkdir -p $(1)/sbin
	$(CP) $(PKG_BUILD_DIR)/adam2patcher $(1)/sbin
endef
define Package/base-files$(TARGET)/install-brcm
	mkdir -p $(1)/sbin
	$(CP) $(PKG_BUILD_DIR)/jffs2root $(1)/sbin
endef

define Package/base-files$(TARGET)/install
$(call Package/base-files$(TARGET)/install-$(BOARD),$(1))
	$(CP) ./default/* $(1)
	if [ -d $(BOARD)-$(KERNEL) ]; then \
		$(CP) $(BOARD)-$(KERNEL)/* $(1)/; \
	fi
	$(SED) 's,$$$$R,r$(REV),g' $(1)/etc/banner
	$(SED) 's,$$$$S,$(BOARD)-$(KERNEL),g' $(1)/etc/ipkg.conf
	mkdir -p $(1)/dev
	mkdir -p $(1)/etc/crontabs
	mkdir -p $(1)/jffs
	mkdir -p $(1)/lib
	mkdir -p $(1)/mnt
	mkdir -p $(1)/proc
	mkdir -p $(1)/tmp
	mkdir -p $(1)/usr/lib
	mkdir -p $(1)/usr/bin
	mkdir -p $(1)/sys
	mkdir -p $(1)/www
	ln -sf /tmp/resolv.conf $(1)/etc/resolv.conf
	ln -sf /proc/mounts $(1)/etc/mtab
	rm -f $(1)/var
	ln -sf /tmp $(1)/var
	-find $(1) -type d -name CVS | xargs rm -rf
	-find $(1) -type d -name .svn | xargs rm -rf
	-find $(1) -name '.#*' | xargs rm -f
	mkdir -p $(1)/etc
endef

define Package/uclibc/install
	mkdir -p $(1)/lib
	for file in ld-uClibc libc libcrypt libdl libm libnsl libresolv librt libuClibc libutil; do \
		$(CP) $(STAGING_DIR)/lib/$$$$file.so.* $(1)/lib/; \
		$(CP) $(STAGING_DIR)/lib/$$$$file-$(UCLIBC_VERSION).so $(1)/lib/; \
	done
endef

define Package/libgcc/install
	mkdir -p $(1)/lib
	$(CP) $(STAGING_DIR)/lib/libgcc_s.so.* $(1)/lib/
endef

$(eval $(call BuildPackage,base-files$(TARGET)))
$(eval $(call BuildPackage,libgcc))
$(eval $(call BuildPackage,uclibc))