source: debwrt/trunk/openwrt/openwrt-deliver.mk @ 153

Last change on this file since 153 was 153, checked in by amain, 9 years ago

openwrt/deliver/headers-install: fix arch name mismatch between openwrt and linux

File size: 4.8 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_DIR     - OpenWrt's kernel build directory
26#
27-include $(OPENWRT_SAVE_CONFIG_FILE)
28
29ERROR_MSG_NOCONF:=" not defined. Make sure OpenWrt build finished."
30
31openwrt/deliver: openwrt/deliver/prepare        openwrt/deliver/clean                   \
32                                 openwrt/deliver/image          openwrt/deliver/kernel-modules  \
33                                 openwrt/deliver/packages       openwrt/deliver/config              \
34                                 openwrt/deliver/kernel-headers
35
36openwrt/deliver/prepare: openwrt/deliver/import-config openwrt/deliver/check
37
38openwrt/deliver/import-config:
39        @echo OPENWRT_BIN_DIR=$(OPENWRT_BIN_DIR)
40        @echo OPENWRT_PACKAGE_DIR=$(OPENWRT_PACKAGE_DIR)
41        @echo OPENWRT_TMP_DIR=$(OPENWRT_TMP_DIR)
42        @echo OPENWRT_LINUX_VERSION=$(OPENWRT_LINUX_VERSION)
43        @echo OPENWRT_LINUX_DIR=$(OPENWRT_LINUX_DIR)
44
45openwrt/deliver/check: ${OPENWRT_BIN_DIR} openwrt/deliver/import-config
46  ifndef OPENWRT_PACKAGE_DIR
47        @echo OPENWRT_PACKAGE_DIR$(ERROR_MSG_NOCONF) && false
48  endif
49  ifndef OPENWRT_TMP_DIR
50        @echo OPENWRT_TMP_DIR$(ERROR_MSG_NOCONF) && false
51  endif
52  ifndef OPENWRT_LINUX_VERSION
53        @echo OPENWRT_LINUX_VERSION$(ERROR_MSG_NOCONF) && false
54  endif
55  ifndef OPENWRT_LINUX_DIR
56        @echo OPENWRT_LINUX_DIR$(ERROR_MSG_NOCONF) && false
57  endif
58  ifndef OPENWRT_PACKAGE_DIR
59        @echo OPENWRT_PACKAGE_DIR$(ERROR_MSG_NOCONF) && false
60  endif
61
62openwrt/deliver/image: openwrt/deliver/prepare
63        mkdir -p $(INSTALL_DIR)
64        find ${OPENWRT_BIN_DIR} -maxdepth 1 -type f | while read fname; do \
65                tfname=`basename $$fname`; \
66                tfname=`echo $$tfname | sed 's/openwrt/debwrt-firmware/'`; \
67                cp -av $$fname $(INSTALL_DIR)/$$tfname; \
68        done
69
70openwrt/deliver/kernel-modules: openwrt/deliver/prepare
71        mkdir -p $(INSTALL_DIR) $(INSTALL_DIR_OPENWRT) $(INSTALL_DIR_OPENWRT_MODULES)
72        mkdir -p $(INSTALL_DIR_OPENWRT_MODULES)/lib/modules
73        cp -r ${OPENWRT_TMP_DIR}/modules/lib/modules/${OPENWRT_LINUX_VERSION} $(INSTALL_DIR_OPENWRT_MODULES)/lib/modules
74        rm -f $(INSTALL_DIR_OPENWRT_MODULES)/lib/modules/${OPENWRT_LINUX_VERSION}/build
75        rm -f $(INSTALL_DIR_OPENWRT_MODULES)/lib/modules/${OPENWRT_LINUX_VERSION}/source
76        find $(OPENWRT_PACKAGE_DIR) -name "kmod-*" | while read fkmod; do \
77            $(SCRIPT_EXTRACT_KMODPKG) $$fkmod $(INSTALL_DIR_OPENWRT_MODULES) $(TMP_DIR) || true; \
78        done
79        PATH="/sbin:/bin:/usr/sbin:/usr/bin" depmod -a -b $(INSTALL_DIR_OPENWRT_MODULES) ${OPENWRT_LINUX_VERSION}
80        tar czf $(INSTALL_DIR)/$(MODULES_TAR_GZ) -C $(INSTALL_DIR_OPENWRT_MODULES) .
81
82openwrt/deliver/kernel-headers: openwrt/deliver/prepare
83        rm -rf $(INSTALL_DIR_OPENWRT_HEADERS)
84        mkdir -p $(INSTALL_DIR_OPENWRT_HEADERS)
85        mkdir -p $(INSTALL_DIR_OPENWRT_HEADERS)/usr/src/linux-headers-${OPENWRT_LINUX_VERSION}
86        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_VERSION}
87        # some overrides which are not cleanly installed by make headers_install
88        cp $(OPENWRT_LINUX_DIR)/include/linux/switch.h $(INSTALL_DIR_OPENWRT_HEADERS)/usr/src/linux-headers-${OPENWRT_LINUX_VERSION}/include/linux/switch.h
89        cp ${OPENWRT_LINUX_DIR}/.config $(INSTALL_DIR_OPENWRT_HEADERS)/usr/src/linux-headers-${OPENWRT_LINUX_VERSION}
90        tar czf $(INSTALL_DIR)/$(HEADERS_TAR_GZ) -C $(INSTALL_DIR_OPENWRT_HEADERS) .
91
92openwrt/deliver/packages: openwrt/deliver/prepare
93        mkdir -p $(INSTALL_DIR_OPENWRT_PACKAGES)
94        cp -ra $(OPENWRT_PACKAGE_DIR)/* $(INSTALL_DIR_OPENWRT_PACKAGES)
95
96openwrt/deliver/config: openwrt/deliver/prepare
97        cp ${TOPDIR}/.config $(INSTALL_DIR)/config-debwrt
98        cp ${OPENWRT_BUILD_DIR}/.config $(INSTALL_DIR)/config-openwrt
99        cp ${OPENWRT_LINUX_DIR}/.config $(INSTALL_DIR)/config-kernel-${OPENWRT_LINUX_VERSION}
100        $(SCRIPT_GET_SVN_REVISION) $(OPENWRT_LINUX_DIR) > $(INSTALL_DIR)/openwrt-svn-revision
101        $(SCRIPT_GET_SVN_REVISION) $(TOPDIR) > $(INSTALL_DIR)/debwrt-svn-revision
102
103openwrt/deliver/clean:
104        rm -rf $(INSTALL_DIR)
105
Note: See TracBrowser for help on using the repository browser.