From 63711882aef3c31b876f30c3802e3729e893daae Mon Sep 17 00:00:00 2001 From: Mirko Vogt Date: Wed, 7 Apr 2010 09:49:21 +0200 Subject: [PATCH] add script for easing the task of building official images --- scripts/build | 123 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 123 insertions(+) create mode 100755 scripts/build diff --git a/scripts/build b/scripts/build new file mode 100755 index 000000000..e18393f79 --- /dev/null +++ b/scripts/build @@ -0,0 +1,123 @@ +#!/bin/sh + +BASE_DIR="xburst" + +LOG="${BASE_DIR}/LOG" + +BUILD_LOG="${BASE_DIR}/BUILD_LOG" + +DATE=$(date "+%Y-%m-%d") +TIME=$(date "+%H-%M-%S") +DATE_TIME="${DATE}_${TIME}" + +if [ "${0}" != "./scripts/build" ]; then + echo "Please call me that way: ./scripts/build" + echo " - out of the main directory" + exit 1 +fi + +if [ ! -f ".config" ]; then + echo "OpenWrt didn't get configured yet." + exit 1 +fi + +if [ -f "config" ]; then + echo "file exists." + echo "That means normally, a previous build failed" + echo "Please examine the situation" + exit 1 +fi + +echo "This script will move previous builds to bak/!" +echo "This script will reset modifications you made" +echo " to files which are part of the repository!" +echo "This script comes without any kind of warranty!" +echo " " +echo "Are you brave, dude? [NO/yes]" + +read brave + +echo " " + +if [ "${brave}" != "yes" ]; then + exit 1 +fi + +echo "cleaning up toolchain..." +mkdir bak 2>/dev/null +BAK="build_dir staging_dir tmp bin .config.old feeds xburst config" +for bak in $BAK; do + mv "${bak}" "bak/${bak}_${DATE_TIME}" 2> /dev/null && echo "backed up <${bak}>" +done +rm -rf package/feeds/* + +mv .config config +mkdir xburst + +echo "updating git repo..." +git pull > /dev/null +if [ "$?" != "0" ]; then + echo "ERROR: updating openwrt-xburst failed" + exit 1 +fi + +echo "updating feeds..." +scripts/feeds update -a > /dev/null 2>&1 +if [ "$?" != "0" ]; then + echo "ERROR: updating feeds failed" + exit 1 +fi +echo "installing feeds..." +scripts/feeds install -a > /dev/null 2>&1 +if [ "$?" != "0" ]; then + echo "ERROR: installing feeds failed" + exit 1 +fi + +echo "getting version numbers of used repositories..." +feeds="$(cat feeds.conf | grep -v -E "^#")" +VERSIONS_FILE="xburst/VERSIONS" +echo "# base :: 'openwrt' [scm-protocol] [revision] [source] [branch]" > ${VERSIONS_FILE} +tmp=($(git show-ref | head -n 1)) +rev=${tmp[0]} +echo "openwrt git ${rev} git://projects.qi-hardware.com/openwrt-xburst.git xburst" >> ${VERSIONS_FILE} +echo "# feeds :: [feedname] [scm-protocol] [revision]" >> ${VERSIONS_FILE} +IFS=$'\n' +for feed in $feeds; do + IFS=' ' arr=(${feed:4}) + proto=${arr[0]} + dir=${arr[1]} + url=${arr[2]} + if [ "$proto" = "svn" ]; then + cd feeds/${arr[1]} && tmp=($(svn info | grep -E "^Revision")) && cd ../../ + rev=${tmp[1]} + fi + if [ "$proto" = "git" ]; then + cd feeds/${arr[1]} && tmp=($(git show-ref | head -n 1)) && cd ../../ + rev=${tmp[0]} + fi + echo "${dir} ${proto} ${rev}" >> ${VERSIONS_FILE} +done + +echo ${DATE} > files/etc/VERSION + +mv config .config + +make oldconfig + +echo "starting compiling - this may take several hours..." + +time make V=99 > xburst/BUILD_LOG 2>&1 + +if [ "$?" != "0" ]; then + echo "ERROR: Build failed!" + echo "Please refer to the log file" + exit 1 +fi + +cp .config xburst/config +cp bin/xburst/* xburst/ 2>/dev/null +mkdir xburst/files +cp -a files/* xburst/files/ + +echo "DONE :)"