source: freewrt/package/base-files/Makefile@ fb3e134

freewrt_2_0
Last change on this file since fb3e134 was fb3e134, checked in by Waldemar Brodkorb <wbx@…>, 4 months ago

fix for missing tmpfs in the kernel, various bootup fixes

  • Property mode set to 100644
File size: 4.6 KB
Line 
1# This file is part of the FreeWRT project. FreeWRT is copyrighted
2# material, please see the LICENCE file in the top-level directory
3
4include $(TOPDIR)/rules.mk
5include $(TOPDIR)/mk/targets.mk
6
7PKG_NAME:= base-files
8PKG_VERSION:= 1.0
9PKG_RELEASE:= 20
10WRKSRC= ${WRKDIR}/base-files
11DISTFILES:=
12
13include $(TOPDIR)/mk/package.mk
14
15IDIR_BASE:=$(WRKBUILD)/$(PKG_NAME)-$(PKG_VERSION)
16IPKG_BASE:=$(PACKAGE_DIR)/$(PKG_NAME)_$(PKG_VERSION)-$(PKG_RELEASE)_$(ARCH).ipk
17
18UCLIBC_VERSION:=${shell cat $(STAGING_DIR)/uclibc_version}
19IDIR_UCLIBC:=$(WRKBUILD)/uclibc
20IPKG_UCLIBC:=$(PACKAGE_DIR)/uclibc_$(UCLIBC_VERSION)-$(PKG_RELEASE)_$(ARCH).ipk
21
22LIBGCC_VERSION:=${shell cat $(STAGING_DIR)/gcc_version}
23IDIR_LIBGCC:=$(WRKBUILD)/libgcc
24IPKG_LIBGCC:=$(PACKAGE_DIR)/libgcc_$(LIBGCC_VERSION)-$(PKG_RELEASE)_$(ARCH).ipk
25
26PACKAGES:=$(IPKG_BASE) $(IPKG_UCLIBC)
27PACKAGES_INSTALL:=$(IPKG_BASE) $(IPKG_UCLIBC)
28
29MD5CRYPT := $(shell $(MKPASSWD) $(FWRT_RUNTIME_PASSWORD))
30
31FWRT_VERSION:=2.0
32
33ifeq ($(FWRT_PACKAGE_LIBGCC),y)
34PACKAGES+=$(IPKG_LIBGCC)
35PACKAGES_INSTALL+=$(IPKG_LIBGCC)
36endif
37ifeq ($(FWRT_PACKAGE_LIBGCC),m)
38PACKAGES+=$(IPKG_LIBGCC)
39endif
40
41ADMIN_SHELL:= /bin/sh
42ifeq (${FWRT_BASEFILES_ADMIN_ASH},y)
43ADMIN_SHELL:= /bin/ash
44endif
45ifeq (${FWRT_BASEFILES_ADMIN_MKSH},y)
46ADMIN_SHELL:= /bin/mksh
47endif
48ifeq (${FWRT_BASEFILES_ADMIN_HUSH},y)
49ADMIN_SHELL:= /bin/hush
50endif
51ifeq (${FWRT_BASEFILES_ADMIN_LASH},y)
52ADMIN_SHELL:= /bin/lash
53endif
54ifeq (${FWRT_BASEFILES_ADMIN_MSH},y)
55ADMIN_SHELL:= /bin/msh
56endif
57
58$(WRKBUILD)/.prepared:
59 mkdir -p $(WRKBUILD) $(PACKAGE_DIR)
60 touch $@
61
62$(WRKBUILD)/.configured:
63 touch $@
64
65$(WRKBUILD)/.built:
66 touch $@
67
68$(IPKG_BASE):
69 $(SCRIPT_DIR)/make-ipkg-dir.sh $(IDIR_BASE) ipkg/$(PKG_NAME).control $(PKG_VERSION)-$(PKG_RELEASE) $(ARCH)
70 $(CP) ./files/* $(IDIR_BASE)
71 test -z $(FWRT_RUNTIME_PACKAGES_URL) || \
72 $(SED) 's,^src freewrt.*$$,src freewrt $(FWRT_RUNTIME_PACKAGES_URL),' \
73 -e '/^src freewrt/s,"\(.*\)",\1,' $(IDIR_BASE)/etc/ipkg.conf
74 $(SED) 's,@TARGET@,$(BOARD)-$(KERNEL),g' $(IDIR_BASE)/etc/ipkg.conf
75 $(SED) 's,@VERSION@,$(FWRT_VERSION),g' $(IDIR_BASE)/etc/ipkg.conf
76 test -z $(FWRT_RUNTIME_PASSWORD) || \
77 $(SED) 's,\*NP\*,$(MD5CRYPT),g' $(IDIR_BASE)/etc/passwd
78 $(SED) 's!@SHELL@!${ADMIN_SHELL}!g' $(IDIR_BASE)/etc/passwd
79 test -z $(FWRT_RUNTIME_SSHKEY) || ( \
80 mkdir -p $(IDIR_BASE)/root/.ssh/; \
81 echo $(FWRT_RUNTIME_SSHKEY) >$(IDIR_BASE)/root/.ssh/authorized_keys; \
82 )
83 rng=/dev/arandom; test -e $$rng || rng=/dev/urandom; \
84 dd if=$$rng of=$(IDIR_BASE)/etc/.rnd bs=512 count=1; \
85 chmod 600 $(IDIR_BASE)/etc/.rnd
86 echo /bin/sh >${IDIR_BASE}/etc/shells
87ifneq (${BUSYBOX_CONFIG_ASH},)
88 echo /bin/ash >>${IDIR_BASE}/etc/shells
89endif
90ifneq (${BUSYBOX_CONFIG_HUSH},)
91 echo /bin/hush >>${IDIR_BASE}/etc/shells
92endif
93ifneq (${BUSYBOX_CONFIG_LASH},)
94 echo /bin/lash >>${IDIR_BASE}/etc/shells
95endif
96ifneq (${BUSYBOX_CONFIG_MSH},)
97 echo /bin/msh >>${IDIR_BASE}/etc/shells
98endif
99ifneq (${FWRT_PACKAGE_MKSH},)
100 echo /bin/mksh >>${IDIR_BASE}/etc/shells
101endif
102ifneq (${FWRT_PACKAGE_MKSH_AS_BINASH},)
103 echo /bin/ash >>${IDIR_BASE}/etc/shells
104endif
105 mkdir -p $(IDIR_BASE)/dev
106 mkdir -p $(IDIR_BASE)/etc/crontabs
107 mkdir -p $(IDIR_BASE)/lib
108 mkdir -p $(IDIR_BASE)/mnt
109 mkdir -p $(IDIR_BASE)/proc
110 mkdir -p $(IDIR_BASE)/tmp
111 mkdir -p $(IDIR_BASE)/usr/lib
112 mkdir -p $(IDIR_BASE)/usr/bin
113 ln -sf /tmp/resolv.conf $(IDIR_BASE)/etc/resolv.conf
114 ln -sf /proc/mounts $(IDIR_BASE)/etc/mtab
115 rm -f $(IDIR_BASE)/var
116 ln -sf /tmp $(IDIR_BASE)/var
117 -find $(IDIR_BASE) -name '.#*' | xargs rm -f
118ifneq (${FWRT_PACKAGE_CONFIG_IN_ETC},)
119 gzip -9c ${TOPDIR}/.config > $(IDIR_BASE)/etc/freewrt.config.gz
120endif
121 $(IPKG_BUILD) $(IDIR_BASE) $(PACKAGE_DIR)
122
123$(IPKG_UCLIBC):
124 $(SCRIPT_DIR)/make-ipkg-dir.sh $(IDIR_UCLIBC) ipkg/uclibc.control $(UCLIBC_VERSION)-$(PKG_RELEASE) $(ARCH)
125 mkdir -p $(IDIR_UCLIBC)/lib
126 for file in ld-uClibc libc libuClibc; do \
127 $(CP) $(STAGING_DIR)/lib/$$file.so.* $(IDIR_UCLIBC)/lib/; \
128 $(CP) $(STAGING_DIR)/lib/$$file-$(UCLIBC_VERSION).so $(IDIR_UCLIBC)/lib/; \
129 (cd $(IDIR_UCLIBC)/lib && ln -sf $$file.so.1 $$file.so.0); \
130 done
131 -$(STRIP) $(IDIR_UCLIBC)/lib/*
132 $(IPKG_BUILD) $(IDIR_UCLIBC) $(PACKAGE_DIR)
133
134$(IPKG_LIBGCC):
135 $(SCRIPT_DIR)/make-ipkg-dir.sh $(IDIR_LIBGCC) ipkg/libgcc.control $(LIBGCC_VERSION)-$(PKG_RELEASE) $(ARCH)
136 mkdir -p $(IDIR_LIBGCC)/lib
137 $(CP) $(STAGING_DIR)/lib/libgcc_s.so.* $(IDIR_LIBGCC)/lib/
138 -$(STRIP) $(IDIR_LIBGCC)/lib/*
139 $(IPKG_BUILD) $(IDIR_LIBGCC) $(PACKAGE_DIR)
140
141install-dev:
142 mkdir -p $(STAGING_DIR)/usr/include
143 $(CP) ./include/[a-z]* $(STAGING_DIR)/usr/include/
144
145package-clean:
146 rm -f $(PACKAGES)
147
148clean-targets: package-clean
149prepare: install-dev
150compile-targets: $(PACKAGES)
151install-targets: compile
152 mkdir -p $(TARGET_DIR)
153 $(IPKG) install $(PACKAGES_INSTALL)
Note: See TracBrowser for help on using the repository browser.