###############################################################################
# Target Architecture #
###############################################################################
-# TARGET is one out of i686|i586|via-c7|via-c3|geodelx. #
+# TARGET is one out of i686|i586|i486|atom330|core2duo|via-c7|via-c3|geodelx. #
# This is the target architecture you specify for the system that is built. #
# Default is i686. #
+# ALLOWED_TARGETS is a setting for cron builds only. By default it includes #
+# all targets the host can build (./make.sh check targets). #
+# So, if you want to build only some of them, define them in ALLOWED_TARGETS. #
###############################################################################
#TARGET=i686
+#ALLOWED_TARGETS="i686 i586 atom330" # Just an example
###############################################################################
# Embedded Build #
# Starts the batch process in the background #
###############################################################################
batch_start() {
- if [ -e "$RUNNING" ]; then
- echo -n "Build is already running..."
- beautify message FAIL
- exit 1
- fi
-
- git_diff
- git checkout -f # Remove all local changes !!!
- git_pull --batch
-
- if [ -e "$FAILED" ]; then
- echo -n "Last build failed..."
- beautify message FAIL
- exit 1
- fi
-
[ "$1" = "--clean" ] && TARGET=$TARGET $0 clean
screen -dmS ipfire $0 batch _run
--- /dev/null
+#!/bin/bash
+###############################################################################
+# #
+# IPFire.org - A linux based firewall #
+# Copyright (C) 2008, 2009 Michael Tremer & Christian Schmidt #
+# #
+# This program is free software: you can redistribute it and/or modify #
+# it under the terms of the GNU General Public License as published by #
+# the Free Software Foundation, either version 3 of the License, or #
+# (at your option) any later version. #
+# #
+# This program is distributed in the hope that it will be useful, #
+# but WITHOUT ANY WARRANTY; without even the implied warranty of #
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #
+# GNU General Public License for more details. #
+# #
+# You should have received a copy of the GNU General Public License #
+# along with this program. If not, see <http://www.gnu.org/licenses/>. #
+# #
+###############################################################################
+
+ALLOWED_TARGETS=${ALLOWED_TARGETS-$(check_supported_targets)}
+
+cron_run() {
+ if [ "$PATH" = "/sbin:/bin" ];
+ export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
+ fi
+
+ local RAND=$(( $RANDOM % $(wc -w <<< $ALLOWED_TARGETS) ))
+
+ if [ "$(dirname $0)" != "." ]; then
+ dialogerror "You must change into the basedirectory before you run \"./$(basename $0) $@\""
+ exit 1
+ fi
+
+ if [ -e "$RUNNING" ]; then
+ dialogerror "Build is already running at the moment..." 2>&1
+ exit 0
+ fi
+
+ if [ -e "$FAILED" ]; then
+ dialogerror "Build failed..." 2>&1
+ exit 0
+ fi
+
+ # Pull latest changes
+ git_diff
+ git checkout -f # Remove all local changes !!!
+ git_pull --batch
+
+ local COUNT=0
+ for i in $ALLOWED_TARGETS; do
+ COUNT=$(( $COUNT + 1 ))
+ [ "$COUNT" != "$(( $RAND + 1 ))" ] && continue
+ TARGET=$i $0 batch start --clean
+ break
+ done
+}
. $BASEDIR/tools/make-git
. $BASEDIR/tools/make-packages
. $BASEDIR/tools/make-vm
+. $BASEDIR/tools/make-cron
evaluate() {
RETVAL=$?
done
# On debug build, we don't strip
- if [ "$1" == "strip" -a "$BUILD_DEBUG" == "1" ]; then
+ if [ "$STAGE" != "toolchain" -a \
+ "$1" == "strip" -a "$BUILD_DEBUG" == "1" ]; then
beautify result SKIP
return 1
fi