#!/bin/sh echo "*** BUILD GLIBC BEGIN ***" setvar SRC_DIR = $(pwd) # Read the 'JOB_FACTOR' property from '.config' setvar JOB_FACTOR = "$(grep -i ^JOB_FACTOR .config | cut -f2 -d'=')" # Read the 'CFLAGS' property from '.config' setvar CFLAGS = "$(grep -i ^CFLAGS .config | cut -f2 -d'=')" # Find the number of available CPU cores. setvar NUM_CORES = $(grep ^processor /proc/cpuinfo | wc -l) # Calculate the number of 'make' jobs to be used later. setvar NUM_JOBS = $((NUM_CORES * JOB_FACTOR)) # Save the kernel installation directory. setvar KERNEL_INSTALLED = "$SRC_DIR/work/kernel/kernel_installed" cd work/glibc # Find the glibc source directory, e.g. 'glibc-2.23' and remember it. cd $(ls -d glibc-*) setvar GLIBC_SRC = $(pwd) cd .. # Prepare the work area, e.g. 'work/glibc/glibc_objects'. echo "Preparing glibc object area. This may take a while..." rm -rf glibc_objects mkdir glibc_objects # Prepare the install area, e.g. 'work/glibc/glibc_installed'. echo "Preparing glibc install area. This may take a while..." rm -rf glibc_installed mkdir glibc_installed setvar GLIBC_INSTALLED = "$(pwd)/glibc_installed" # All glibc work is done from the working area. cd glibc_objects # glibc is configured to use the root folder (--prefix=) and as result all # libraries will be installed in '/lib'. Note that on 64-bit machines BusyBox # will be linked with the libraries in '/lib' while the Linux loader is expected # to be in '/lib64'. Kernel headers are taken from our already prepared kernel # header area (see xx_build_kernel.sh). Packages 'gd' and 'selinux' are disabled # for better build compatibility with the host system. echo "Configuring glibc..." $GLIBC_SRC/configure \ --prefix= \ --with-headers=$KERNEL_INSTALLED/include \ --without-gd \ --without-selinux \ --disable-werror \ CFLAGS="$CFLAGS" # Compile glibc with optimization for "parallel jobs" = "number of processors". echo "Building glibc..." make -j $NUM_JOBS # Install glibc in the installation area, e.g. 'work/glibc/glibc_installed'. echo "Installing glibc..." make install \ DESTDIR=$GLIBC_INSTALLED \ -j $NUM_JOBS cd $SRC_DIR echo "*** BUILD GLIBC END ***"