320 lines
6.6 KiB
Bash
320 lines
6.6 KiB
Bash
#!/bin/bash
|
|
|
|
# $Id$
|
|
|
|
#=== MAKEFILE HEADER ===
|
|
|
|
HEADER="# This file is automatically generated by jhalfs
|
|
# DO NOT EDIT THIS FILE MANUALLY
|
|
#
|
|
# Generated on `date \"+%F %X %Z\"`"
|
|
|
|
#=======================
|
|
|
|
|
|
#==== PACKAGES NAMES ===
|
|
|
|
#----------------------------------#
|
|
get_package_tarball_name() { #
|
|
#----------------------------------#
|
|
local script_name=`echo ${1} | sed -e 's@[0-9]\{1\}-@@'`
|
|
|
|
# The use of 'head' is necessary to limit the return value to the FIRST match..
|
|
# hopefully this will not cause problems.
|
|
#
|
|
case $script_name in
|
|
tcl) echo $(grep "^tcl" $JHALFSDIR/pkg_tarball_list | head -n1 )
|
|
;;
|
|
linux-headers)
|
|
if [ "${PROGNAME}" = "lfs" ]; then
|
|
# Uses kernel headers directly
|
|
echo $(grep "^linux-[[:digit:]]" $JHALFSDIR/pkg_tarball_list | head -n1 )
|
|
else
|
|
# CLFS/HLFS use massaged headers package
|
|
echo $(grep "^linux-headers-[[:digit:]]" $JHALFSDIR/pkg_tarball_list | head -n1 )
|
|
fi
|
|
;;
|
|
*) echo $(grep "^$script_name-[[:digit:]]" $JHALFSDIR/pkg_tarball_list | head -n1 )
|
|
;;
|
|
esac
|
|
|
|
}
|
|
|
|
#=======================
|
|
|
|
|
|
#==== TARGET HEADER ====
|
|
|
|
#----------------------------------#
|
|
LUSER_wrt_target() { # Create target and initialize log file
|
|
#----------------------------------#
|
|
local i=$1
|
|
local PREV=$2
|
|
(
|
|
cat << EOF
|
|
|
|
$i: $PREV
|
|
@\$(call echo_message, Building)
|
|
@./progress_bar.sh \$@ \$\$PPID &
|
|
@echo "\$(nl_)\`date\`\$(nl_)" >logs/\$@
|
|
@\$(PRT_DU) >>logs/\$@
|
|
EOF
|
|
) >> $MKFILE.tmp
|
|
}
|
|
|
|
#----------------------------------#
|
|
CHROOT_wrt_target() { # Create target and initialize log file
|
|
#----------------------------------#
|
|
local i=$1
|
|
local PREV=$2
|
|
case $i in
|
|
iteration* ) local LOGFILE="${this_script}.log" ;;
|
|
* ) local LOGFILE="\$@" ;;
|
|
esac
|
|
(
|
|
cat << EOF
|
|
|
|
$i: $PREV
|
|
@\$(call echo_message, Building)
|
|
@./progress_bar.sh \$@ \$\$PPID &
|
|
@echo "\$(nl_)\`date\`\$(nl_)" >logs/$LOGFILE
|
|
@\$(PRT_DU_CR) >>logs/$LOGFILE
|
|
EOF
|
|
) >> $MKFILE.tmp
|
|
}
|
|
|
|
#=======================
|
|
|
|
|
|
#======== UNPACK =======
|
|
|
|
#----------------------------------#
|
|
ROOT_Unpack() { # An alias, for clairity
|
|
#----------------------------------#
|
|
local FILE=$1
|
|
local optSAVE_PREVIOUS=$2
|
|
|
|
if [[ "${optSAVE_PREVIOUS}" != "1" ]]; then
|
|
(
|
|
cat << EOF
|
|
@\$(call remove_existing_dirs,$FILE)
|
|
EOF
|
|
) >> $MKFILE.tmp
|
|
fi
|
|
|
|
(
|
|
cat << EOF
|
|
@\$(call unpack,$FILE)
|
|
@\$(call get_pkg_root_LUSER)
|
|
EOF
|
|
) >> $MKFILE.tmp
|
|
}
|
|
|
|
#----------------------------------#
|
|
LUSER_wrt_unpack() { # Unpack and set 'ROOT' var
|
|
#----------------------------------#
|
|
local FILE=$1
|
|
local optSAVE_PREVIOUS=$2
|
|
|
|
if [[ "${optSAVE_PREVIOUS}" != "1" ]]; then
|
|
(
|
|
cat << EOF
|
|
@\$(call remove_existing_dirs,$FILE)
|
|
EOF
|
|
) >> $MKFILE.tmp
|
|
fi
|
|
|
|
(
|
|
cat << EOF
|
|
@\$(call unpack,$FILE)
|
|
@\$(call get_pkg_root_LUSER)
|
|
EOF
|
|
) >> $MKFILE.tmp
|
|
}
|
|
|
|
#----------------------------------#
|
|
CHROOT_Unpack() { #
|
|
#----------------------------------#
|
|
local FILE=$1
|
|
local optSAVE_PREVIOUS=$2
|
|
|
|
if [ "${optSAVE_PREVIOUS}" != "1" ]; then
|
|
(
|
|
cat << EOF
|
|
@\$(call remove_existing_dirs2,$FILE)
|
|
EOF
|
|
) >> $MKFILE.tmp
|
|
fi
|
|
(
|
|
cat << EOF
|
|
@\$(call unpack3,$FILE)
|
|
@\$(call get_pkg_root2)
|
|
EOF
|
|
) >> $MKFILE.tmp
|
|
}
|
|
|
|
#=======================
|
|
|
|
|
|
#===== TESTS LOGS ======
|
|
|
|
#----------------------------------#
|
|
LUSER_wrt_test_log() { # Initialize testsuite log file
|
|
#----------------------------------#
|
|
local TESTLOGFILE=$1
|
|
(
|
|
cat << EOF
|
|
@echo "export TEST_LOG=$TESTLOGDIR/$TESTLOGFILE" >> envars && \\
|
|
echo '\$(nl_)\`date\`\$(nl_)' >$TESTLOGDIR/$TESTLOGFILE
|
|
EOF
|
|
) >> $MKFILE.tmp
|
|
}
|
|
|
|
#----------------------------------#
|
|
CHROOT_wrt_test_log() { #
|
|
#----------------------------------#
|
|
local TESTLOGFILE=$1
|
|
(
|
|
cat << EOF
|
|
@echo "export TEST_LOG=/\$(SCRIPT_ROOT)/test-logs/$TESTLOGFILE" >> envars && \\
|
|
echo "\$(nl_)\`date\`\$(nl_)" >test-logs/$TESTLOGFILE
|
|
EOF
|
|
) >> $MKFILE.tmp
|
|
}
|
|
|
|
#=======================
|
|
|
|
|
|
#======== RUN AS =======
|
|
|
|
#----------------------------------#
|
|
wrt_RunAsRoot() { # Some scripts must be run as root..
|
|
#----------------------------------#
|
|
local MOUNT_ENV
|
|
local this_script=$1
|
|
local file=$2
|
|
|
|
case ${PROGNAME} in
|
|
lfs ) MOUNT_ENV="LFS" ;;
|
|
blfs ) MOUNT_ENV="BLFS" ;;
|
|
clfs ) MOUNT_ENV="CLFS" ;;
|
|
clfs2 ) MOUNT_ENV="CLFS" ;;
|
|
clfs3 ) MOUNT_ENV="CLFS" ;;
|
|
hlfs ) MOUNT_ENV="HLFS" ;;
|
|
*) echo "undefined progname $PROGNAME"; exit 1 ;;
|
|
esac
|
|
|
|
(
|
|
cat << EOF
|
|
@( time { export ${MOUNT_ENV}=\$(MOUNT_PT) && ${PROGNAME}-commands/`dirname $file`/\$@ >>logs/\$@ 2>&1 ; } ) 2>>logs/\$@ && \\
|
|
\$(PRT_DU) >>logs/\$@
|
|
EOF
|
|
) >> $MKFILE.tmp
|
|
}
|
|
|
|
#----------------------------------#
|
|
ROOT_RunAsRoot() { #
|
|
#----------------------------------#
|
|
local file=$1
|
|
(
|
|
cat << EOF
|
|
@( time { source envars && \$(CMDSDIR)/$file >>logs/\$@ 2>&1 ; } ) 2>>logs/\$@ && \\
|
|
\$(PRT_DU_CR) >>logs/\$@
|
|
EOF
|
|
) >> $MKFILE.tmp
|
|
}
|
|
|
|
#----------------------------------#
|
|
LUSER_wrt_RunAsUser() { # Execute script inside time { }, footer to log file
|
|
#----------------------------------#
|
|
local file=$1
|
|
|
|
(
|
|
cat << EOF
|
|
@( time { source ~/.bashrc && \$(CMDSDIR)/`dirname $file`/\$@ >> logs/\$@ 2>&1; } ) 2>> logs/\$@ && \\
|
|
\$(PRT_DU) >> logs/\$@
|
|
EOF
|
|
) >> $MKFILE.tmp
|
|
}
|
|
|
|
#----------------------------------#
|
|
CHROOT_wrt_RunAsRoot() { #
|
|
#----------------------------------#
|
|
local file=$1
|
|
(
|
|
cat << EOF
|
|
@( time { source envars && \$(crCMDSDIR)/$file >>logs/\$@ 2>&1 ; } ) 2>>logs/\$@ && \\
|
|
\$(PRT_DU_CR) >>logs/\$@
|
|
EOF
|
|
) >> $MKFILE.tmp
|
|
|
|
}
|
|
|
|
#=======================
|
|
|
|
|
|
#====== COPY FSTAB =====
|
|
|
|
#----------------------------------#
|
|
LUSER_wrt_CopyFstab() { #
|
|
#----------------------------------#
|
|
(
|
|
cat << EOF
|
|
@( time { cp -v \$(MOUNT_PT)/sources/fstab \$(MOUNT_PT)/etc/fstab >>logs/\$@ 2>&1 ; } ) 2>>logs/\$@
|
|
EOF
|
|
) >> $MKFILE.tmp
|
|
}
|
|
|
|
#----------------------------------#
|
|
CHROOT_wrt_CopyFstab() { #
|
|
#----------------------------------#
|
|
(
|
|
cat << EOF
|
|
@( time { cp -v /sources/fstab /etc/fstab >>logs/\$@ 2>&1 ; } ) 2>>logs/\$@
|
|
EOF
|
|
) >> $MKFILE.tmp
|
|
}
|
|
|
|
#=======================
|
|
|
|
|
|
#==== RM BUILD DIRS ====
|
|
|
|
#----------------------------------#
|
|
LUSER_RemoveBuildDirs() { #
|
|
#----------------------------------#
|
|
local name=$1
|
|
(
|
|
cat << EOF
|
|
@\$(call remove_build_dirs,$name)
|
|
EOF
|
|
) >> $MKFILE.tmp
|
|
}
|
|
|
|
#----------------------------------#
|
|
CHROOT_wrt_RemoveBuildDirs() { #
|
|
#----------------------------------#
|
|
local name=$1
|
|
(
|
|
cat << EOF
|
|
@\$(call remove_build_dirs2,$name)
|
|
EOF
|
|
) >> $MKFILE.tmp
|
|
}
|
|
|
|
#=======================
|
|
|
|
|
|
#======== TOUCH ========
|
|
|
|
#----------------------------------#
|
|
wrt_touch() { #
|
|
#----------------------------------#
|
|
(
|
|
cat << EOF
|
|
@\$(call housekeeping)
|
|
EOF
|
|
) >> $MKFILE.tmp
|
|
}
|
|
|
|
#=======================
|