mirror of
https://github.com/armbian/build
synced 2025-09-24 19:47:06 +07:00
* Introducing build-all-ng * Implementing REBUILD_IMAGES='board1,board2,...' for rebuilding certain images only * Add optimisations when building kernels - only cycle trough needed targets. Adding variable for defining whether an image is build, otherwise only BSP is made. * repository manipulating RFC * Add bianco deb file that is added by default if repository is clean * Switch to gpg2 signing method, small bugfix * Create subdir for debs and debs-beta * Synaptic bugfix: installing indexing tools https://forum.armbian.com/topic/8021-orange-pi-one-synaptic-package-manager-search-very-slow/?do=findComment&comment=74918 * add all modules by default to Odroid N2, but leave them commented * Bugfix: not making any builds when selecting kernel_only * Remove EXTERNAL=yes ... move armbian-config and armbian-firmware into main compilation area, drop others since they are deprecated anyway. This will also enable multi threaded images making * Move armbian.list to create_sources_list function. Replace NTP by Chrony. Remove armbian-firmware from PACKAGE_LIST and RockPi 4A (#1528) * Replace NTP by chrony. Remove installion of outdated armbian-firmware from reposity. * added RockPi 4A * New format for board config * Fix Bluetooth dependencies for minimal package - add rfkill to family related installs * Moving networkd-dispatcher from minimal image * Cubox-i: update default config * Improving umount process * Add purgesource feature * Add FULL_DESKTOP to install few more applications on top of our desktop - notebooks should * rk3399 default: adjust patches and configuration * Enable full desktop on most powerfull boards and notebooks Signed-off-by: Igor Pecovnik <igor.pecovnik@gmail.com>
102 lines
3.2 KiB
Bash
Executable File
102 lines
3.2 KiB
Bash
Executable File
#!/bin/bash
|
|
#
|
|
# Copyright (c) 2015 Igor Pecovnik, igor.pecovnik@gma**.com
|
|
#
|
|
# This file is licensed under the terms of the GNU General Public
|
|
# License version 2. This program is licensed "as is" without any
|
|
# warranty of any kind, whether express or implied.
|
|
#
|
|
# This file is a part of the Armbian build script
|
|
# https://github.com/armbian/build/
|
|
|
|
# DO NOT EDIT THIS FILE
|
|
# use configuration files like config-default.conf to set the build configuration
|
|
# check Armbian documentation for more info
|
|
|
|
SRC="$(dirname "$(realpath "${BASH_SOURCE[0]}")")"
|
|
# fallback for Trusty
|
|
[[ -z "${SRC}" ]] && SRC="$(pwd)"
|
|
|
|
# check for whitespace in $SRC and exit for safety reasons
|
|
grep -q "[[:space:]]" <<<"${SRC}" && { echo "\"${SRC}\" contains whitespace. Not supported. Aborting." >&2 ; exit 1 ; }
|
|
|
|
cd "${SRC}" || exit
|
|
|
|
if [[ -f "${SRC}"/lib/general.sh && -L "${SRC}"/main.sh ]]; then
|
|
# shellcheck source=lib/general.sh
|
|
source "${SRC}"/lib/general.sh
|
|
else
|
|
echo "Error: missing build directory structure"
|
|
echo "Please clone the full repository https://github.com/armbian/build/"
|
|
exit 255
|
|
fi
|
|
|
|
# source build configuration file
|
|
if [[ -n $1 && -f "${SRC}/config-$1.conf" ]]; then
|
|
display_alert "Using config file" "config-$1.conf" "info"
|
|
# shellcheck source=/dev/null
|
|
source "${SRC}/config-$1.conf"
|
|
else
|
|
# copy default config from the template
|
|
if [[ ! -f "${SRC}"/config-default.conf ]]; then
|
|
display_alert "Create example config file using template" "config-default.conf" "info"
|
|
if [[ ! -f "${SRC}"/config-example.conf ]]; then
|
|
cp "${SRC}"/config/templates/config-example.conf "${SRC}"/config-example.conf || exit 1
|
|
fi
|
|
ln -s config-example.conf "${SRC}"/config-default.conf || exit 1
|
|
fi
|
|
|
|
display_alert "Using config file" "config-default.conf" "info"
|
|
# shellcheck source=/dev/null
|
|
source "${SRC}"/config-default.conf
|
|
fi
|
|
[[ -z "${USERPATCHES_PATH}" ]] && USERPATCHES_PATH="$SRC/userpatches"
|
|
|
|
if [[ $EUID != 0 ]]; then
|
|
display_alert "This script requires root privileges, trying to use sudo" "" "wrn"
|
|
sudo "$SRC/compile.sh" "$@"
|
|
exit $?
|
|
fi
|
|
|
|
# Script parameters handling
|
|
for i in "$@"; do
|
|
if [[ $i == *=* ]]; then
|
|
parameter=${i%%=*}
|
|
value=${i##*=}
|
|
display_alert "Command line: setting $parameter to" "${value:-(empty)}" "info"
|
|
eval "$parameter=\"$value\""
|
|
fi
|
|
done
|
|
|
|
if [[ ! -f $SRC/.ignore_changes ]]; then
|
|
echo -e "[\e[0;32m o.k. \x1B[0m] This script will try to update"
|
|
git pull
|
|
CHANGED_FILES=$(git diff --name-only)
|
|
if [[ -n $CHANGED_FILES ]]; then
|
|
echo -e "[\e[0;35m warn \x1B[0m] Can't update since you made changes to: \e[0;32m\n${CHANGED_FILES}\x1B[0m"
|
|
while true; do
|
|
echo -e "Press \e[0;33m<Ctrl-C>\x1B[0m or \e[0;33mexit\x1B[0m to abort compilation, \e[0;33m<Enter>\x1B[0m to ignore and continue, \e[0;33mdiff\x1B[0m to display changes"
|
|
read -r
|
|
if [[ "$REPLY" == "diff" ]]; then
|
|
git diff
|
|
elif [[ "$REPLY" == "exit" ]]; then
|
|
exit 1
|
|
elif [[ "$REPLY" == "" ]]; then
|
|
break
|
|
else
|
|
echo "Unknown command!"
|
|
fi
|
|
done
|
|
else
|
|
git checkout "${LIB_TAG:-master}"
|
|
fi
|
|
fi
|
|
|
|
if [[ $BUILD_ALL == yes || $BUILD_ALL == demo ]]; then
|
|
# shellcheck source=lib/build-all-ng.sh
|
|
source "${SRC}"/lib/build-all-ng.sh
|
|
else
|
|
# shellcheck source=lib/main.sh
|
|
source "${SRC}"/lib/main.sh
|
|
fi
|