#!/bin/sh echo "*** PREPARE SYSROOT BEGIN ***" setvar SRC_DIR = $(pwd) cd work echo "Cleaning existing sysroot. This may take a while..." rm -rf sysroot rm -rf sysroot.specs echo "Preparing glibc. This may take a while..." cp -r glibc/glibc_installed sysroot cd sysroot # Create custom 'usr' area and link it with some of the kernel header directories. # BusyBox compilation process uses these linked directories. The following # directories are affected: # # usr (glibc) # | # +--include (glibc) # | | # | +--asm (kernel) # | | # | +--asm-generic (kernel) # | | # | +--linux (kernel) # | | # | +--mtd (kernel) # | # +--lib (glibc) mkdir -p usr ln -s ../include usr/include ln -s ../lib usr/lib ln -s ../../kernel/kernel_installed/include/linux include/linux ln -s ../../kernel/kernel_installed/include/asm include/asm ln -s ../../kernel/kernel_installed/include/asm-generic include/asm-generic ln -s ../../kernel/kernel_installed/include/mtd include/mtd cd .. echo "generating sysroot.specs" setvar SYSROOT = ""$PWD/sysroot"" # gcc has a "internal" path that needs to be added to find the static versions of libgcc_* setvar GCC_INTERNAL_PATH = $(dirname $(gcc -print-libgcc-file-name)) cat <<< """ > sysroot.specs *link_libgcc: -L$SYSROOT/lib -L$SYSROOT/lib64 -L$SYSROOT/usr/lib -L$SYSROOT/usr/lib64 -L$SYSROOT/usr/local/lib -L$SYSROOT/usr/local/lib64 -L$GCC_INTERNAL_PATH """ > sysroot.specs *link_libgcc: -L$SYSROOT/lib -L$SYSROOT/lib64 -L$SYSROOT/usr/lib -L$SYSROOT/usr/lib64 -L$SYSROOT/usr/local/lib -L$SYSROOT/usr/local/lib64 -L$GCC_INTERNAL_PATH CEOF cd $SRC_DIR echo "*** PREPARE SYSROOT END ***"