59 lines
1.8 KiB
Bash
Executable File
59 lines
1.8 KiB
Bash
Executable File
#!/bin/sh
|
|
|
|
set -e
|
|
|
|
# Load common properties and functions in the current script.
|
|
. ./common.sh
|
|
|
|
echo "*** BUILD BUSYBOX BEGIN ***"
|
|
|
|
# Remove the old Busybox install area.
|
|
echo "Removing old Busybox artifacts. This may take a while."
|
|
rm -rf $BUSYBOX_INSTALLED
|
|
|
|
# Change to the source directory ls finds, e.g. 'busybox-1.24.2'.
|
|
cd `ls -d $WORK_DIR/busybox/busybox-*`
|
|
|
|
# Remove previously generated artifacts.
|
|
echo "Preparing Busybox work area. This may take a while."
|
|
make distclean -j $NUM_JOBS
|
|
|
|
# Read the 'USE_PREDEFINED_BUSYBOX_CONFIG' property from '.config'
|
|
USE_PREDEFINED_BUSYBOX_CONFIG=`read_property USE_PREDEFINED_BUSYBOX_CONFIG`
|
|
|
|
if [ "$USE_PREDEFINED_BUSYBOX_CONFIG" = "true" -a ! -f $SRC_DIR/minimal_config/busybox.config ] ; then
|
|
echo "Config file $SRC_DIR/minimal_config/busybox.config does not exist."
|
|
USE_PREDEFINED_BUSYBOX_CONFIG="false"
|
|
fi
|
|
|
|
if [ "$USE_PREDEFINED_BUSYBOX_CONFIG" = "true" ] ; then
|
|
# Use predefined configuration file for Busybox.
|
|
echo "Using config file $SRC_DIR/minimal_config/busybox.config"
|
|
cp -f $SRC_DIR/minimal_config/busybox.config .config
|
|
else
|
|
# Create default configuration file.
|
|
echo "Generating default Busybox configuration."
|
|
make defconfig -j $NUM_JOBS
|
|
fi
|
|
|
|
# Now we tell Busybox to use the sysroot area.
|
|
sed -i "s|.*CONFIG_SYSROOT.*|CONFIG_SYSROOT=\"$SYSROOT\"|" .config
|
|
|
|
# Configure the compiler flags and explicitly link Busybox with GLIBC from sysroot.
|
|
sed -i "s|.*CONFIG_EXTRA_CFLAGS.*|CONFIG_EXTRA_CFLAGS=\"$CFLAGS -L$SYSROOT/lib\"|" .config
|
|
|
|
# Compile busybox with optimization for "parallel jobs" = "number of processors".
|
|
echo "Building Busybox."
|
|
make \
|
|
busybox -j $NUM_JOBS
|
|
|
|
# Create the symlinks for busybox. The file 'busybox.links' is used for this.
|
|
echo "Generating Busybox based initramfs area."
|
|
make \
|
|
CONFIG_PREFIX="$BUSYBOX_INSTALLED" \
|
|
install -j $NUM_JOBS
|
|
|
|
cd $SRC_DIR
|
|
|
|
echo "*** BUILD BUSYBOX END ***"
|