62 lines
1.4 KiB
Bash
Executable File
62 lines
1.4 KiB
Bash
Executable File
#!/bin/sh
|
|
|
|
echo "*** PREPARE SYSROOT BEGIN ***"
|
|
|
|
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"
|
|
SYSROOT="$PWD/sysroot"
|
|
|
|
# gcc has a "internal" path that needs to be added to find the static versions of libgcc_*
|
|
GCC_INTERNAL_PATH=$(dirname $(gcc -print-libgcc-file-name))
|
|
|
|
cat << CEOF > 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 ***"
|
|
|