|
@@ -21,6 +21,7 @@
|
|
|
# SITE_REPO_FETCH_METHOD = http, everything except "git" will use the HTTP method for fetchting site repo
|
|
|
# TARGETS = a space separated list of target platforms (if unset, all platforms will be build)
|
|
|
# VERBOSE = 0 (default) or 1, call the make commands with 'V=s' to see actual errors better
|
|
|
+# VERSIONS_DIR = specify directory for version files
|
|
|
#
|
|
|
|
|
|
|
|
@@ -31,6 +32,7 @@
|
|
|
MY_DIR=$(dirname $0)
|
|
|
MY_DIR=$(readlink -f "${MY_DIR}")
|
|
|
DEFAULT_KEY_DIR="${MY_DIR}/opkg-keys"
|
|
|
+DEFAULT_VERSIONS_DIR="${MY_DIR}/versions"
|
|
|
CODE_DIR="${MY_DIR}/src"
|
|
|
GLUON_BUILD_DIR="${CODE_DIR}/build"
|
|
|
SITE_DIR="${CODE_DIR}/site"
|
|
@@ -39,7 +41,6 @@ OUTPUT_DIR="${MY_DIR}/output"
|
|
|
IMAGE_DIR="${CODE_DIR}/output/images"
|
|
|
MODULE_DIR="${CODE_DIR}/output/modules"
|
|
|
MANIFEST_DIR="${CODE_DIR}/output/images/sysupgrade"
|
|
|
-VERSIONS_INFO_DIR="${MY_DIR}/versions"
|
|
|
SITE_GEN_SCRIPT="${CODE_DIR}/packages/ffho/ffho/ffho-site-generate/scripts/gen-site-conf.lua"
|
|
|
SRV_URL="firmware.in.ffho.net"
|
|
|
SRV_USER="firmware"
|
|
@@ -51,13 +52,6 @@ LANG=C
|
|
|
|
|
|
pushd ${MY_DIR} > /dev/null
|
|
|
|
|
|
-### ERROR handling
|
|
|
-[ -n "${BASE}" ] || abort "Please specify BASE environment variable (Gluon, i.e. 'v2014.3' or commit-id)."
|
|
|
-[ -n "${BRANCH}" ] || abort "Please specify BRANCH environment variable."
|
|
|
-[ "${BRANCH}" == "experimental" -o "${BASE}" != "HEAD" ] || abort "HEAD is not an allowed BASE-identifier for non-experimental builds. Either use a tagged commit or the commit-SHA itself."
|
|
|
-[ -n "${VERSION}" -o "${BRANCH}" == "experimental" ] || abort "Please specify VERSION environment variable (not necessary for experimental branch)."
|
|
|
-[ "${BRANCH}" == "experimental" -o ! -r "${VERSIONS_INFO_DIR}/${VERSION}" ] || abort "There exists a version file for '${VERSION}' ... you are trying to do something really stupid, aren't you?"
|
|
|
-
|
|
|
### set reasonable defaults for unset environment variables
|
|
|
[ -n "${AUTOUPDATER}" ] || AUTOUPDATER=${BRANCH}
|
|
|
if [ -n "${BROKEN}" ]; then
|
|
@@ -85,6 +79,14 @@ fi
|
|
|
[ -e "${KEY_DIR}" ] || mkdir -p ${KEY_DIR}
|
|
|
[ "$?" -eq "0" ] || abort "Unable to create key directory: ${KEY_DIR}"
|
|
|
|
|
|
+if [ -n "${VERSIONS_DIR}" ]; then
|
|
|
+ VERSIONS_DIR=$(readlink -f "${VERSIONS_DIR}")
|
|
|
+else
|
|
|
+ VERSIONS_DIR="${DEFAULT_VERSIONS_DIR}"
|
|
|
+fi
|
|
|
+[ -e "${VERSIONS_DIR}" ] || mkdir -p ${VERSIONS_DIR}
|
|
|
+[ "$?" -eq "0" ] || abort "Unable to create versions directory: ${VERSIONS_DIR}"
|
|
|
+
|
|
|
[ -n "${MAKEJOBS}" ] || MAKEJOBS=$(grep -c "^processor" /proc/cpuinfo)
|
|
|
[ -n "${PRIORITY}" ] || PRIORITY=0
|
|
|
[ -n "${PUBLISH}" ] || PUBLISH=0
|
|
@@ -100,6 +102,13 @@ fi
|
|
|
MAKE_PARAM=""
|
|
|
[ "${VERBOSE}" -eq "1" ] && MAKE_PARAM="${MAKE_PARAM} V=s"
|
|
|
|
|
|
+### ERROR handling
|
|
|
+[ -n "${BASE}" ] || abort "Please specify BASE environment variable (Gluon, i.e. 'v2014.3' or commit-id)."
|
|
|
+[ -n "${BRANCH}" ] || abort "Please specify BRANCH environment variable."
|
|
|
+[ "${BRANCH}" == "experimental" -o "${BASE}" != "HEAD" ] || abort "HEAD is not an allowed BASE-identifier for non-experimental builds. Either use a tagged commit or the commit-SHA itself."
|
|
|
+[ -n "${VERSION}" -o "${BRANCH}" == "experimental" ] || abort "Please specify VERSION environment variable (not necessary for experimental branch)."
|
|
|
+[ "${BRANCH}" == "experimental" -o ! -r "${VERSIONS_DIR}/${VERSION}" ] || abort "There exists a version file for '${VERSION}' ... you are trying to do something really stupid, aren't you?"
|
|
|
+
|
|
|
### INIT /src IF NECESSARY
|
|
|
if [ ! -d "${CODE_DIR}" ]; then
|
|
|
info "Code directory does not exist yet - fetching Gluon ..."
|
|
@@ -193,7 +202,7 @@ if [ "${BRANCH}" == "experimental" -a -z "${VERSION}" ] ; then
|
|
|
fi
|
|
|
|
|
|
# we are now ready to produce the firmware images, so let's "save" our state
|
|
|
-build_info_path="${VERSIONS_INFO_DIR}/${VERSION}"
|
|
|
+build_info_path="${VERSIONS_DIR}/${VERSION}"
|
|
|
progress "Saving build information to: ${build_info_path}"
|
|
|
[ -n "${build_info_path}" -a -f "${build_info_path}" ] && rm -f ${build_info_path}
|
|
|
mkdir -p $(dirname ${build_info_path})
|