source: trunk/openwrt/openwrt-deliver.mk @ 332

Last change on this file since 332 was 332, checked in by amain, 8 years ago

Fix ticket #167: handle kernel version 3.0

File size: 5.2 KB
Line 
1# DebWrt - Debian on Embedded devices
2#
3# Copyright (C) 2010 Johan van Zoomeren <amain@debwrt.net>
4#
5# This program is free software: you can redistribute it and/or modify
6# it under the terms of the GNU General Public License as published by
7# the Free Software Foundation, either version 3 of the License, or
8# (at your option) any later version.
9#
10# This program is distributed in the hope that it will be useful,
11# but WITHOUT ANY WARRANTY; without even the implied warranty of
12# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13# GNU General Public License for more details.
14#
15# You should have received a copy of the GNU General Public License
16# along with this program.  If not, see <http://www.gnu.org/licenses/>.
17
18# The following function imports some environment variables
19# save in a special config file during OpenWrt's build process
20#
21# OPENWRT_BIN_DIR               - directory where OpenWrt firmware is stored
22# OPENWRT_PACKAGE_DIR           - directory where OpenWrt packages are stored
23# OPENWRT_TMP_DIR               - directory where OpenWrt stored all kernel modules
24# OPENWRT_LINUX_VERSION         - kernel version of the kernel build by OpenWrt
25# OPENWRT_LINUX_UNAME_VERSION   - uname kernel version of the kernel build by OpenWrt
26# OPENWRT_LINUX_DIR             - OpenWrt's kernel build directory
27#
28-include $(OPENWRT_SAVE_CONFIG_FILE)
29
30ERROR_MSG_NOCONF:=" not defined. Make sure OpenWrt build finished."
31
32openwrt/deliver: \
33  openwrt/deliver/prepare \
34  openwrt/deliver/clean \
35  openwrt/deliver/image \
36  openwrt/deliver/kernel-modules \
37  openwrt/deliver/packages \
38  openwrt/deliver/config\
39  openwrt/deliver/kernel-headers \
40  # end openwrt/deliver:
41
42openwrt/deliver/prepare: openwrt/deliver/import-config openwrt/deliver/check
43
44openwrt/deliver/import-config:
45        @echo OPENWRT_BIN_DIR=$(OPENWRT_BIN_DIR)
46        @echo OPENWRT_PACKAGE_DIR=$(OPENWRT_PACKAGE_DIR)
47        @echo OPENWRT_TMP_DIR=$(OPENWRT_TMP_DIR)
48        @echo OPENWRT_LINUX_VERSION=$(OPENWRT_LINUX_VERSION)
49        @echo OPENWRT_LINUX_UNAME_VERSION=$(OPENWRT_LINUX_UNAME_VERSION)
50        @echo OPENWRT_LINUX_DIR=$(OPENWRT_LINUX_DIR)
51
52openwrt/deliver/check: ${OPENWRT_BIN_DIR} openwrt/deliver/import-config
53  ifndef OPENWRT_PACKAGE_DIR
54        @echo OPENWRT_PACKAGE_DIR$(ERROR_MSG_NOCONF) && false
55  endif
56  ifndef OPENWRT_TMP_DIR
57        @echo OPENWRT_TMP_DIR$(ERROR_MSG_NOCONF) && false
58  endif
59  ifndef OPENWRT_LINUX_VERSION
60        @echo OPENWRT_LINUX_VERSION$(ERROR_MSG_NOCONF) && false
61  endif
62  ifndef OPENWRT_LINUX_UNAME_VERSION
63        @echo OPENWRT_LINUX_UNAME_VERSION$(ERROR_MSG_NOCONF) && false
64  endif
65  ifndef OPENWRT_LINUX_DIR
66        @echo OPENWRT_LINUX_DIR$(ERROR_MSG_NOCONF) && false
67  endif
68  ifndef OPENWRT_PACKAGE_DIR
69        @echo OPENWRT_PACKAGE_DIR$(ERROR_MSG_NOCONF) && false
70  endif
71
72openwrt/deliver/image: openwrt/deliver/prepare
73        mkdir -p $(INSTALL_DIR)
74        find ${OPENWRT_BIN_DIR} -maxdepth 1 -type f | while read fname; do \
75                tfname=`basename $$fname`; \
76                tfname=`echo $$tfname | sed 's/openwrt/debwrt-firmware/'`; \
77                cp -av $$fname $(INSTALL_DIR)/$$tfname; \
78        done
79
80openwrt/deliver/kernel-modules: openwrt/deliver/prepare
81        mkdir -p $(INSTALL_DIR) $(INSTALL_DIR_OPENWRT) $(INSTALL_DIR_OPENWRT_MODULES)
82        mkdir -p $(INSTALL_DIR_OPENWRT_MODULES)/lib/modules
83        cp -r ${OPENWRT_TMP_DIR}/modules/lib/modules/${OPENWRT_LINUX_UNAME_VERSION} $(INSTALL_DIR_OPENWRT_MODULES)/lib/modules
84        rm -f $(INSTALL_DIR_OPENWRT_MODULES)/lib/modules/${OPENWRT_LINUX_UNAME_VERSION}/build
85        rm -f $(INSTALL_DIR_OPENWRT_MODULES)/lib/modules/${OPENWRT_LINUX_UNAME_VERSION}/source
86        find $(OPENWRT_PACKAGE_DIR) -name "kmod-*" | while read fkmod; do \
87            $(SCRIPT_EXTRACT_KMODPKG) $$fkmod $(INSTALL_DIR_OPENWRT_MODULES) $(TMP_DIR) || true; \
88        done
89        PATH="/sbin:/bin:/usr/sbin:/usr/bin" depmod -a -b $(INSTALL_DIR_OPENWRT_MODULES) ${OPENWRT_LINUX_UNAME_VERSION}
90        tar czf $(INSTALL_DIR)/$(MODULES_TAR_GZ) -C $(INSTALL_DIR_OPENWRT_MODULES) .
91
92openwrt/deliver/kernel-headers: openwrt/deliver/prepare
93        rm -rf $(INSTALL_DIR_OPENWRT_HEADERS)
94        mkdir -p $(INSTALL_DIR_OPENWRT_HEADERS)
95        mkdir -p $(INSTALL_DIR_OPENWRT_HEADERS)/usr/src/linux-headers-${OPENWRT_LINUX_UNAME_VERSION}
96        cd $(OPENWRT_LINUX_DIR) && make headers_install ARCH=$(patsubst %el,%,$(TARGET_ARCH)) INSTALL_HDR_PATH=$(INSTALL_DIR_OPENWRT_HEADERS)/usr/src/linux-headers-${OPENWRT_LINUX_UNAME_VERSION}
97        # some overrides which are not cleanly installed by make headers_install
98        cp $(OPENWRT_LINUX_DIR)/include/linux/switch.h $(INSTALL_DIR_OPENWRT_HEADERS)/usr/src/linux-headers-${OPENWRT_LINUX_UNAME_VERSION}/include/linux/switch.h
99        cp ${OPENWRT_LINUX_DIR}/.config $(INSTALL_DIR_OPENWRT_HEADERS)/usr/src/linux-headers-${OPENWRT_LINUX_UNAME_VERSION}
100        tar czf $(INSTALL_DIR)/$(HEADERS_TAR_GZ) -C $(INSTALL_DIR_OPENWRT_HEADERS) .
101
102openwrt/deliver/packages: openwrt/deliver/prepare
103        mkdir -p $(INSTALL_DIR_OPENWRT_PACKAGES)
104        cp -ra $(OPENWRT_PACKAGE_DIR)/* $(INSTALL_DIR_OPENWRT_PACKAGES)
105
106openwrt/deliver/config: openwrt/deliver/prepare
107        cp ${TOPDIR}/.config $(INSTALL_DIR)/config-debwrt
108        cp ${OPENWRT_BUILD_DIR}/.config $(INSTALL_DIR)/config-openwrt
109        cp ${OPENWRT_LINUX_DIR}/.config $(INSTALL_DIR)/config-kernel-${OPENWRT_LINUX_VERSION}
110        $(SCRIPT_GET_SVN_REVISION) $(OPENWRT_LINUX_DIR) > $(INSTALL_DIR)/openwrt-svn-revision
111        $(SCRIPT_GET_SVN_REVISION) $(TOPDIR) > $(INSTALL_DIR)/debwrt-svn-revision
112
113openwrt/deliver/clean:
114        rm -rf $(INSTALL_DIR)
115
Note: See TracBrowser for help on using the repository browser.