1 | #!/bin/bash |
---|
2 | # |
---|
3 | # 1. Download package and unpack package |
---|
4 | # 2. Copy debian/directory to it |
---|
5 | # 3. Run dpkg-buildpackage --arch=<ARCH> -rfakeroot |
---|
6 | |
---|
7 | if [ -z $ARCH ]; then echo "First set \$ARCH before running the build script"; exit 1; fi |
---|
8 | |
---|
9 | export DEBFULLNAME="Amain (DebWrt.net)" |
---|
10 | export LC_ALL=C |
---|
11 | VERBOSE=1 |
---|
12 | |
---|
13 | [ "1" == $VERBOSE ] && set -x |
---|
14 | |
---|
15 | PACKAGE=hostapd |
---|
16 | VERSION=1.0 |
---|
17 | RELEASE=1 |
---|
18 | DOWNLOAD_URL=svn://svn.openwrt.org/openwrt/trunk/package/${PACKAGE} |
---|
19 | DEP= |
---|
20 | |
---|
21 | BASE_DIR=/usr/src |
---|
22 | BUILD_BASE_DIR=${BASE_DIR}/${PACKAGE} |
---|
23 | BUILD_DIR=${BUILD_BASE_DIR}/${PACKAGE}-${VERSION} |
---|
24 | DOWNLOAD_DIR=${BASE_DIR}/dl |
---|
25 | |
---|
26 | mkdir -p $DOWNLOAD_DIR |
---|
27 | rm -rf ${BUILD_DIR} |
---|
28 | mkdir -p ${BUILD_DIR} |
---|
29 | svn co ${DOWNLOAD_URL} ${BUILD_DIR} |
---|
30 | |
---|
31 | VERSION=`cat ${BUILD_DIR}/Makefile | grep ^PKG_VERSION | awk -F ":=" '{print $2}'` |
---|
32 | OPENWRT_VERSION=${VERSION:=20100705} |
---|
33 | PACKAGE_SOURCE=hostapd-${OPENWRT_VERSION}.tar.bz2 |
---|
34 | DOWNLOAD_URL2=http://mirror2.openwrt.org/sources/hostapd-${OPENWRT_VERSION}.tar.bz2 |
---|
35 | |
---|
36 | if [ ! -s ${DOWNLOAD_DIR}/${PACKAGE_SOURCE} ]; then rm -f ${DOWNLOAD_DIR}/${PACKAGE_SOURCE}; wget -O ${DOWNLOAD_DIR}/${PACKAGE_SOURCE} $DOWNLOAD_URL2; fi |
---|
37 | mkdir -p ${BUILD_DIR}/src |
---|
38 | tar xjf ${DOWNLOAD_DIR}/${PACKAGE_SOURCE} -C ${BUILD_DIR}/src --strip 1 |
---|
39 | |
---|
40 | # apply openwrt patches |
---|
41 | for patch in `ls ${BUILD_DIR}/patches | sort`; do |
---|
42 | patch -d ${BUILD_DIR}/src -p1 <${BUILD_DIR}/patches/$patch |
---|
43 | done |
---|
44 | |
---|
45 | # download madwifi from openwrt, to determine which madwifi version to use |
---|
46 | DOWNLOAD_URL3=svn://svn.openwrt.org/openwrt/trunk/package/madwifi |
---|
47 | mkdir -p ${BUILD_DIR}/src/madwifi |
---|
48 | svn co ${DOWNLOAD_URL3} ${BUILD_DIR}/src/madwifi |
---|
49 | |
---|
50 | # download correct version from madwifi |
---|
51 | REV=`cat ${BUILD_DIR}/src/madwifi/Makefile | grep ^PKG_REV | awk -F ":=" '{print $2}'` |
---|
52 | OPENWRT_VERSION="r${REV:=3314}" |
---|
53 | PACKAGE_SOURCE=madwifi-trunk-${OPENWRT_VERSION}.tar.gz |
---|
54 | DOWNLOAD_URL4=http://mirror2.openwrt.org/sources/${PACKAGE_SOURCE} |
---|
55 | |
---|
56 | if [ ! -s ${DOWNLOAD_DIR}/${PACKAGE_SOURCE} ]; then rm -f ${DOWNLOAD_DIR}/${PACKAGE_SOURCE}; wget -O ${DOWNLOAD_DIR}/${PACKAGE_SOURCE} $DOWNLOAD_URL4; fi |
---|
57 | tar xzf ${DOWNLOAD_DIR}/${PACKAGE_SOURCE} -C ${BUILD_DIR}/src/madwifi --strip 1 |
---|
58 | |
---|
59 | # cp config file |
---|
60 | cp ${BUILD_DIR}/files/hostapd-mini.config ${BUILD_DIR}/src/hostapd/.config |
---|
61 | |
---|
62 | # make sure it compiles |
---|
63 | echo "CONFIG_INTERNAL_LIBTOMMATH=internal" >>${BUILD_DIR}/src/hostapd/.config |
---|
64 | |
---|
65 | # temporary remove madwifi |
---|
66 | #sed -i '/CONFIG_DRIVER_MADWIFI/d' ${BUILD_DIR}/src/hostapd/.config |
---|
67 | |
---|
68 | if [ ! -d debian ]; then |
---|
69 | cd ${BUILD_DIR} |
---|
70 | dh_make -c gpl -e "amain@debwrt.net" -s -n |
---|
71 | echo "Please complete debian package configuration. And copy the files back to the svn working directory." |
---|
72 | exit 1 |
---|
73 | else |
---|
74 | cp -rav debian ${BUILD_DIR} |
---|
75 | cd ${BUILD_DIR} |
---|
76 | dpkg-buildpackage -a${ARCH} -rfakeroot |
---|
77 | find ${BUILD_BASE_DIR} -maxdepth 1 -name "*.deb" | xargs -r -t -i sudo dpkg-cross -a ${ARCH} -i {} |
---|
78 | fi |
---|
79 | |
---|