#!/bin/bash
-# This file is 'sourced' by other scripts, therefore the above line is of no
-# use, except when modifying the file in emacs to have syntax highlighting.
+set -o errtrace # Let shell functions inherit ERR trap.
+set -o errexit
# Constants for return codes
EXIT_SUCCESS=0
exit 1
}
+ipkg_display_build_infos()
+{
+ echo "hvlinux: configure options:"
+ for opt in ${CONFIGURE_OPTS}; do
+ echo " ${opt}"
+ done
+ echo "hvlinux: environment variables:"
+ echo " HOST: ${CLFS_HOST}"
+ echo " TARGET: ${CLFS_TARGET}"
+ echo " BUILD64: ${BUILD64}"
+ echo " CFLAGS: ${CFLAGS}"
+ echo " CPPFLAGS: ${CPPFLAGS}"
+ echo " CXXFLAGS: ${CFLAGS}"
+ echo " LDFLAGS: ${LDFLAGS}"
+ echo " RANLIB: ${RANLIB}"
+ echo " CC: ${CC}"
+ echo " CXX: ${CXX}"
+ echo " AR: ${AR}"
+ echo " AS: ${AS}"
+ echo " PATH: ${PATH}"
+}
+
# Installation of a package
# Arg. #1: Package name and version (ex: gcc-4.5.1)
# Remaining arguments: Additional configure options
echo "------------------------" 1>> ${LFS_LOG_FILE}
echo "${MSGSTRING}" 1>> ${LFS_LOG_FILE}
+ exec 7>&1 # Save current "value" of stdout.
+ # All output from commands in this block sent to file $LFS_LOG_FILE.
+ exec >> ${LFS_LOG_FILE} 2>&1
+ ipkg_display_build_infos
+ exec 1>&7 7>&- # Restore stdout and close file descriptor #7.
+
# All output from commands in this block sent to file $PACKAGE_LOG.
exec > ${PACKAGE_LOG} 2>&1
return $EXIT_SUCCESS
}
+rcmd_trap_setup()
+{
+ exec 6>&1 # Save current "value" of stdout.
+ trap rcmd_trap_handler INT TERM EXIT ERR
+}
+
+rcmd_trap_end()
+{
+ trap - INT TERM EXIT ERR
+
+ # Restore global trap
+ #####hvtrap_setup
+}
+
+rcmd_trap_handler()
+{
+ exec 1>&6 6>&- # Restore stdout and close file descriptor #6.
+ print_status failure
+
+ ###rcmd_trap_end
+ ###exit 1
+}
+
# Run command, no log
# First argument: Message to display during script
# Second argument: command + arguments
display_checkbox_msg ${MSGSTRING}
+ rcmd_trap_setup
+
echo ${CMD_WITH_ARGS} 1>> ${LFS_LOG_FILE}
+ if [ -n "${RCMD_NO_EXIT}" ]; then
+ set +e
+ fi
+
# Executing command
${CMD_WITH_ARGS} 1>> ${LFS_LOG_FILE} 2>&1
+
+ if [ -n "${RCMD_NO_EXIT}" ]; then
+ set -e
+ fi
+
if [ $? -ne 0 ]; then
print_status failure
if [ -n "${RCMD_NO_EXIT}" ]; then
# Displaying build time after the package name
print_status success
+ rcmd_trap_end
+
return $EXIT_SUCCESS
}