X-Git-Url: http://gitweb.hugovil.com/?a=blobdiff_plain;f=functions%2Fmain;h=357eb1987d90d69690b5c6ea85abd487217523fe;hb=bf3b29999186b32eaeb6323c247c3d92cd139c02;hp=7c071db87c1315543d82765e3929298920eb0b88;hpb=71a4362438cd17248be2046e845e48c638e309dd;p=hvlinux.git diff --git a/functions/main b/functions/main index 7c071db..357eb19 100644 --- a/functions/main +++ b/functions/main @@ -95,11 +95,10 @@ DEFAULT_IPKG_SCRIPT="ipkg.def" HVMAKE="make -j ${MAKEJOBS}" case "${HVL_TARGET}" in - arm*) + arm926*) CLFS_BUILDFLAGS="-mabi=aapcs-linux -mfloat-abi=soft" CLFS_TARGET="arm-linux-gnueabi" CLFS_ARCH=arm - CLFS_ENDIAN=LITTLE ;; "x86_64") CLFS_BUILDFLAGS="-m64" @@ -127,7 +126,7 @@ esac CLFS_HOST="$(echo $MACHTYPE | \ sed "s/$(echo $MACHTYPE | cut -d- -f2)/cross/")" -export CLFS_BUILDFLAGS CLFS_TARGET CLFS_ARCH CLFS_HOST CLFS_ENDIAN +export CLFS_BUILDFLAGS CLFS_TARGET CLFS_ARCH CLFS_HOST test_presence_of_packages_directory() { @@ -147,6 +146,7 @@ init_log_file() test_presence_of_packages_directory export LFS_PKG_DIR="$(dirname $(pwd))/packages/${LFS_STAGE}" + export LFS_PATCHES_DIR="${SCRDIR}/patches" export LFS_LOG_DIR=${LFS}/var/log/hvlinux-install/${LFS_STAGE} export LFS_LOG_FILE=${LFS_LOG_DIR}/install.log export LFS_TMP="${LFS}/tmp" @@ -585,15 +585,17 @@ hv_useradd() # Applying patch # First argument is the name of the patch # Second argument is the package name -# Third argument: optional target directory (default is $LFS_TMP) +# Third argument is the subdirectory inside the patches directory +# Fourth argument: optional target directory (default is $LFS_TMP) apply_patch() { local PATCH_FILE=${1} local PACKAGE=${2} + local PDIR=${3} local TARGET_DIR="" - if [ $# -eq 3 ]; then - TARGET_DIR=${3}/${PACKAGE} + if [ $# -eq 4 ]; then + TARGET_DIR=${4}/${PACKAGE} else TARGET_DIR=${LFS_TMP}/${PACKAGE} fi @@ -604,14 +606,14 @@ apply_patch() return ${EXIT_FAILURE} fi - if [ ! -f ${LFS_PKG_DIR}/${PATCH_FILE} ]; then + if [ ! -f ${PDIR}/${PATCH_FILE} ]; then echo echo "${FUNCNAME}(): patch file '${PATCH_FILE}' not found." return ${EXIT_FAILURE} fi echo "Applying patch: ${PATCH_FILE}" - patch -Np1 -d ${TARGET_DIR} -i ${LFS_PKG_DIR}/${PATCH_FILE} + patch -Np1 -d ${TARGET_DIR} -i ${PDIR}/${PATCH_FILE} } # Applying any patch(es) found for the current package. @@ -637,13 +639,17 @@ apply_patches() TARGET_DIR=${2} 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} ${PACKAGE} ${TARGET_DIR} - done - fi + for s in common ${HVL_TARGET}; do + pdir=${LFS_PATCHES_DIR}/${s} + if [ -d ${pdir} ]; then + if ls ${pdir}/${1}-*.patch 1> /dev/null 2>&1; then + cd ${pdir} + for patch in ${1}-*.patch; do + apply_patch ${patch} ${PACKAGE} ${pdir} ${TARGET_DIR} + done + fi + fi + done return $? } @@ -1139,15 +1145,15 @@ get_total_build_time() for time in ${TIMES}; do HOURS=$(( $HOURS + $(echo ${time} | sed "s!^\([0-9]*\)\..*!\1!g") )) - + # The first SED command extracts the minutes (fractions of an hour). # The second SED command removed the leading zero, if applicable. MIN=$(( $MIN + $(echo ${time} | sed "s!.*\.\([0-9][0-9]\)!\1!g" | sed "s!^0\([0-9]\)!\1!g" ) )) done - + HOURS=$(( ${HOURS} + ( ${MIN} / 100 ) )) MIN=$(( ${MIN} % 100 )) - + echo "${HOURS}.${MIN}" }