# Applying patch
# First argument is the name of the patch
-# Second argument is the package name (target dir in $LFS_TMP)
+# Second argument is the package name
+# Third argument: optional target directory (default is $LFS_TMP)
apply_patch()
{
local PATCH_FILE=${1}
- local TARGET_DIR=${2}
+ local PACKAGE=${2}
+ local TARGET_DIR=""
+
+ if [ $# -eq 3 ]; then
+ TARGET_DIR=${3}/${PACKAGE}
+ else
+ TARGET_DIR=${LFS_TMP}/${PACKAGE}
+ fi
if [ -z "${PATCH_FILE}" ]; then
echo
fi
echo "Applying patch: ${PATCH_FILE}"
- patch -Np1 -d ${LFS_TMP}/${TARGET_DIR} -i ${LFS_PKG_DIR}/${PATCH_FILE}
+ patch -Np1 -d ${TARGET_DIR} -i ${LFS_PKG_DIR}/${PATCH_FILE}
}
# Applying any patch(es) found for the current package.
apply_patches()
{
PACKAGE=${1}
- local TARGET_DIR=${PACKAGE}
+ local TARGET_DIR=""
# Checking for correct number of arguments
if [ $# -gt 2 ]; then
if [ $# -eq 2 ]; then
TARGET_DIR=${2}
- else
- TARGET_DIR=${PACKAGE}
fi
# Checking if we can find at least one patch.
if ls ${LFS_PKG_DIR}/${1}-*.patch 1> /dev/null 2>&1; then
cd ${LFS_PKG_DIR}
for patch in ${1}-*.patch; do
- apply_patch ${patch} ${TARGET_DIR}
+ apply_patch ${patch} ${PACKAGE} ${TARGET_DIR}
done
fi
# Arg. #1: Package name and version (ex: gcc-4.5.1)
# Remaining arguments: Additional configure options
# Options:
-# -c Do not decompress package to ${LFS_TMP}
+# -c Do not decompress package
# -j Disable parallel make for this package
# -l Unique identification label in 'install.log'
# (default is package name and version)
# Decompress kernel sources
decompress_package ${PACKAGE} ${LFS}/usr/src
+ apply_patches ${PACKAGE} ${LFS}/usr/src
+
# Copy kernel configuration file in source tree.
cp -v ${SCRDIR}/../config/${KERNEL_CONFIG} ${LFS}/usr/src/${PACKAGE}/.config
if [ ! -d /usr/src/${PACKAGE} ]; then
# Decompress kernel sources
decompress_package ${PACKAGE} /usr/src
+
+ apply_patches ${PACKAGE} /usr/src
fi
# Copy kernel configuration file in source tree.