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

freewrt_1_0 freewrt_2_0
Last change on this file since b4b7960 was eb12bb9, checked in by Waldemar Brodkorb <wbx@…>, 19 years ago

use VERSION in package path for ipkg

git-svn-id: svn://www.freewrt.org/branches/freewrt_1_0@844 afb5a338-a214-0410-bd46-81f09a774fd1

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