echo ${1} | sed "s!.*_\([0-9].*\)!\1!g"
}
+# Extracting the version number from a complete package name
+# when the package name uses the underscore as the separator.
+# Arg. #1: Complete package name with version (ex: icu4c-54_1 will output 54.1)
+get_pkg_ver_underscore2()
+{
+ # Checking for correct number of arguments
+ if [ $# -ne 1 ]; then
+ echo "${FUNCNAME}(), wrong number of arguments: ${*}"
+ return 1
+ fi
+
+ local v=$(get_pkg_ver ${1})
+
+ # Replace underscore by dot
+ echo ${v} | sed "s!_!\.!g"
+}
+
+# Convert package version dots to uderscore.
+# Ex: gcc-3.4.6 will output 3_4_6
+# Arg. #1: Complete package name with version
+ver_dots_to_underscore()
+{
+ # Checking for correct number of arguments
+ if [ $# -ne 1 ]; then
+ echo "${FUNCNAME}(), wrong number of arguments: ${*}"
+ return 1
+ fi
+
+ local v=$(get_pkg_ver ${1})
+
+ # Replace dots by underscores
+ echo ${v} | sed "s!\.!_!g"
+}
+
# Extracting the first digit version number from a complete package name.
# Arg. #1: Complete package name with version (ex: gcc-3.4.4 will output 3)
get_pkg_ver1()
echo ${1} | sed "s!^.*-\([0-9]*\)\..*!\1!g"
}
+# Extracting the first digit version number from a complete package name,
+# when the package name uses the underscore as the separator.
+# Arg. #1: Complete package name with version (ex: icu4c-54_1 will output 54)
+get_pkg_ver1_underscore()
+{
+ # Checking for correct number of arguments
+ if [ $# -ne 1 ]; then
+ echo "${FUNCNAME}(), wrong number of arguments: ${*}"
+ return 1
+ fi
+
+ echo ${1} | sed "s!^.*-\([0-9]*\)_.*!\1!g"
+}
+
# Extracting the first 2 digits version number from a complete package name.
# Arg. #1: Complete package name with version (ex: gcc-3.4.4 will output 3.4)
get_pkg_ver2()
# Remaining arguments: Additional configure options
# Options:
# -c Do not decompress package
+# -d DIR Change to directory DIR before configuring and building.
+# -i DIR Installation directory (for cross-compilation, stage1)
# -j Disable parallel make for this package
# -l Unique identification label in 'install.log'
# (default is package name and version)
# ac Standard autoconf package, build in separate dir (default)
# acnb Standard autoconf package, build in source dir
# noac No autoconf (configure)
-# gnome
-# xorg
# pm
# -t Enable dependency tracking
# -s Name of script to source (default is from name of package)
export DECOMPRESS="1"
export IPKG_MODE="ac" # Default mode if not specified
export HVLABEL="" # Global variable
+ export SRC_DIR="" # Global variable, source directory
+ export BUILD_DIR="" # Global variable, build directory
+ export SRC_SUBDIR="" # Global variable
+ export INSTALL_DIR="" # Global variable, installation directory
export ENABLE_DEPENDENCY_TRACKING="0"
local HVMAKE_ORIG=${HVMAKE}
- while getopts "cjl:m:s:t" flag ;do
+ while getopts "cd:i:jl:m:s:t" flag ;do
case ${flag} in
c)
# Do not decompress package
DECOMPRESS="0"
;;
+ d)
+ SRC_SUBDIR=${OPTARG}
+ ;;
+ i)
+ INSTALL_DIR=${OPTARG}
+ ;;
j)
# Disable parallel make only for this package
HVMAKE="make"
m)
# Installation mode
case ${OPTARG} in
- ac|acnb|noac|gnome|xorg|pm)
+ ac|acnb|noac|pm)
IPKG_MODE=${OPTARG}
;;
*)
PACKAGE_LOG=${LFS_LOG_DIR}/${HVLABEL}.log
PACKAGE_DONE=${LFS_LOG_DIR}/${HVLABEL}.done
PACKAGE_STATUS=${LFS_LOG_DIR}/${HVLABEL}.status
+ SRC_DIR="${LFS_TMP}/${PACKAGE}"
+ BUILD_DIR="${LFS_TMP}/${PACKAGE}"
+
+ if [ -n "${SRC_SUBDIR}" ]; then
+ SRC_DIR+="/${SRC_SUBDIR}"
+ fi
+
+ case "${IPKG_MODE}" in
+ ac)
+ BUILD_DIR="${LFS_TMP}/${PACKAGE}-build"
+ ;;
+ acnb|noac|xpm)
+ BUILD_DIR="${SRC_DIR}"
+ ;;
+ esac
# Checking if package was previously successfully installed
if [ -f ${PACKAGE_DONE} ]; then