diff --git a/LFS/master.sh b/LFS/master.sh index 71362e3..75e1c4e 100644 --- a/LFS/master.sh +++ b/LFS/master.sh @@ -219,335 +219,6 @@ EOF fi } -# NOT USED -- NOT USED -#----------------------------# -chapter5_Makefiles() { -#----------------------------# - echo "${tab_}${GREEN}Processing... ${L_arrow}Chapter5 ( LUSER ) ${R_arrow}" - -# Initialize the Makefile target: it'll change during chapter -# For vanilla lfs, the "changingowner" script should be run as root. So -# it belongs to the "SUDO" target, with list in the "runasroot" variable. -# For new lfs, changingowner and kernfs are in "runasroot", then the following, -# starting at creatingdirs, are in the "CHROOT" target, in variable "chapter6". -# Makefile_target records the variable, not really the target! -# We use a case statement on that variable, because instructions in the -# Makefile change according to the phase of the build (LUSER, SUDO, CHROOT). - Makefile_target=chapter5 - -# Start loop - for file in chapter05/* ; do - # Keep the script file name - this_script=`basename $file` - - # Append each name of the script files to a list that Makefile_target - # points to. But before that, change Makefile_target at the first script - # of each target. - case "${this_script}" in - *changingowner) Makefile_target=runasroot ;; - *creatingdirs ) Makefile_target=chapter6 ;; # only run for new lfs - esac - eval $Makefile_target=\"\$$Makefile_target ${this_script}\" - - # Grab the name of the target (minus the -pass1 or -pass2 in the case of gcc - # and binutils in chapter 5) - name=`echo ${this_script} | sed -e 's@[0-9]\{3\}-@@' \ - -e 's@-pass[0-9]\{1\}@@' \ - -e 's@-libstdc++@@'` - - #--------------------------------------------------------------------# - # >>>>>>>> START BUILDING A Makefile ENTRY <<<<<<<< # - #--------------------------------------------------------------------# - # - # Find the name of the tarball and the version of the package - pkg_tarball=$(sed -n 's/tar -xf \(.*\)/\1/p' $file) - pkg_version=$(sed -n 's/VERSION=\(.*\)/\1/p' $file) - - # Drop in the name of the target on a new line, and the previous target - # as a dependency. Also call the echo_message function. - case $Makefile_target in - chapter6) CHROOT_wrt_target "${this_script}" "$PREV" "$pkg_version" ;; - *) LUSER_wrt_target "${this_script}" "$PREV" "$pkg_version" ;; - esac - - # If $pkg_tarball isn't empty, we've got a package... - if [ "$pkg_tarball" != "" ] ; then - # Always initialize the log file, since the test instructions may be - # "uncommented" by the user - case $Makefile_target in - chapter6) CHROOT_wrt_test_log "${this_script}" "$pkg_version" ;; - *) LUSER_wrt_test_log "${this_script}" "$pkg_version" ;; - esac - - # If using optimizations, write the instructions - case "${OPTIMIZE}${this_script}${REALSBU}" in - *binutils-pass1y) ;; - 2*) wrt_optimize "$name" && wrt_makeflags "$name" ;; - *) ;; - esac - fi - - # Insert date and disk usage at the top of the log file, the script run - # and date and disk usage again at the bottom of the log file. - # The changingowner script must be run as root. - case "${Makefile_target}" in - runasroot) wrt_RunAsRoot "$file" "$pkg_version" ;; - chapter5) LUSER_wrt_RunAsUser "$file" "$pkg_version" ;; - chapter6) CHROOT_wrt_RunAsRoot "$file" "$pkg_version" ;; - esac - - # Include a touch of the target name so make can check - # if it's already been made. - wrt_touch - # - #--------------------------------------------------------------------# - # >>>>>>>> END OF Makefile ENTRY <<<<<<<< # - #--------------------------------------------------------------------# - - # Keep the script file name for Makefile dependencies. - PREV=${this_script} - done # end for file in chapter05/* -} - -# NOT USED -- NOT USED keep for ICA code -#----------------------------# -chapter6_Makefiles() { -#----------------------------# - - # Set envars and scripts for iteration targets - if [[ -z "$1" ]] ; then - local N="" - else - local N=-build_$1 - local chapter6="" - mkdir chapter06$N - cp chapter06/* chapter06$N - for script in chapter06$N/* ; do - # Overwrite existing symlinks, files, and dirs - sed -e 's/ln *-sv/&f/g' \ - -e 's/mv *-v/&f/g' \ - -e 's/mkdir *-v/&p/g' -i ${script} - # Suppress the mod of "test-installation.pl" because now - # the library path points to /usr/lib - if [[ ${script} =~ glibc ]]; then - sed '/DL=/,/unset DL/d' -i ${script} - fi - # Rename the scripts - mv ${script} ${script}$N - done - # Remove Bzip2 binaries before make install (LFS-6.2 compatibility) - sed -e 's@make install@rm -vf /usr/bin/bz*\n&@' -i chapter06$N/*-bzip2$N - # Remove openssl- from /usr/share/doc (LFS-9.x), because - # otherwise the mv command creates an openssl directory. - sed -e 's@mv -v@rm -rfv /usr/share/doc/openssl-*\n&@' \ - -i chapter06$N/*-openssl$N - fi - - echo "${tab_}${GREEN}Processing... ${L_arrow}Chapter6$N ( CHROOT ) ${R_arrow}" - -# Initialize the Makefile target. In vanilla lfs, kernfs should be run as root, -# then the others are run in chroot. If in new lfs, we should start in chroot. -# this will be changed later because man-pages is the first script in -# chapter 6. Note that this Makefile_target business is not really needed here -# but we do it to have a similar structure to chapter 5 (we may merge all -# those functions at some point). - case "$N" in - -build*) Makefile_target=chapter6 ;; - *) Makefile_target=runasroot ;; - esac - -# Start loop - for file in chapter06$N/* ; do - # Keep the script file name - this_script=`basename $file` - - # Skip the "stripping" scripts if the user does not want to strip. - # Skip also linux-headers in iterative builds. - case "${this_script}" in - *stripping*) [[ "${STRIP}" = "n" ]] && continue ;; - *linux-headers*) [[ -n "$N" ]] && continue ;; - esac - - # Grab the name of the target. - name=`echo ${this_script} | sed -e 's@[0-9]\{3\}-@@' -e 's,'$N',,'` - - # Find the tarball corresponding to our script. - # If it doesn't exist, we skip it in iterations rebuilds (except stripping - # and revisedchroot, where .a and .la files are removed). - pkg_tarball=$(sed -n 's/tar -xf \(.*\)/\1/p' $file) - pkg_version=$(sed -n 's/VERSION=\(.*\)/\1/p' $file) - - if [[ "$pkg_tarball" = "" ]] && [[ -n "$N" ]] ; then - case "${this_script}" in - *stripping*|*revised*) ;; - *) continue ;; - esac - fi - - # Append each name of the script files to a list (this will become - # the names of the targets in the Makefile) - # The kernfs script must be run as part of SUDO target. - case "${this_script}" in - *creatingdirs) Makefile_target=chapter6 ;; - *man-pages ) Makefile_target=chapter6 ;; - esac - eval $Makefile_target=\"\$$Makefile_target ${this_script}\" - - #--------------------------------------------------------------------# - # >>>>>>>> START BUILDING A Makefile ENTRY <<<<<<<< # - #--------------------------------------------------------------------# - # - # Drop in the name of the target on a new line, and the previous target - # as a dependency. Also call the echo_message function. - # In the mount of kernel filesystems we need to set LFS - # and not to use chroot. - case "${Makefile_target}" in - runasroot) LUSER_wrt_target "${this_script}" "$PREV" "$pkg_version" ;; - *) CHROOT_wrt_target "${this_script}" "$PREV" "$pkg_version" ;; - esac - - # If $pkg_tarball isn't empty, we've got a package... - # Insert instructions for unpacking the package and changing directories - if [ "$pkg_tarball" != "" ] ; then - # Touch timestamp file if installed files logs will be created. - # But only for the firt build when running iterative builds. - if [ "${INSTALL_LOG}" = "y" ] && [ "x${N}" = "x" ] ; then - CHROOT_wrt_TouchTimestamp - fi - # Always initialize the log file, so that the user may reinstate a - # commented out test - CHROOT_wrt_test_log "${this_script}" "$pkg_version" - # If using optimizations, write the instructions - [[ "$OPTIMIZE" != "0" ]] && wrt_optimize "$name" && wrt_makeflags "$name" - fi - - # In the mount of kernel filesystems we need to set LFS - # and not to use chroot. - case "${Makefile_target}" in - runasroot) wrt_RunAsRoot "$file" "$pkg_version" ;; - *) CHROOT_wrt_RunAsRoot "$file" "$pkg_version" ;; - esac - - # Write installed files log and remove the build directory(ies) - # except if the package build fails. - if [ "$pkg_tarball" != "" ] ; then - if [ "${INSTALL_LOG}" = "y" ] && [ "x${N}" = "x" ] ; then - CHROOT_wrt_LogNewFiles "$name" - fi - fi - - # Include a touch of the target name so make can check - # if it's already been made. - wrt_touch - # - #--------------------------------------------------------------------# - # >>>>>>>> END OF Makefile ENTRY <<<<<<<< # - #--------------------------------------------------------------------# - - # Keep the script file name for Makefile dependencies. - PREV=${this_script} - # Set system_build envar for iteration targets - if [ -z "$N" ]; then - system_build="$system_build $this_script" - fi - done # end for file in chapter06/* - if [ -n "$N" ]; then - system_build="$chapter6" - fi -} -# NOT USED -- NOT USED -#----------------------------# -chapter78_Makefiles() { -#----------------------------# - echo "${tab_}${GREEN}Processing... ${L_arrow}Chapter7/8 ( BOOT ) ${R_arrow}" - - for file in chapter0{7,8}/* ; do - # Keep the script file name - this_script=`basename $file` - - # Grub must be configured manually. - # Handle fstab creation. - # If no .config file is supplied, the kernel build is skipped - case ${this_script} in - *grub) continue ;; - *fstab) [[ -z "${FSTAB}" ]] || - [[ ${FSTAB} == $BUILDDIR/sources/fstab ]] || - cp ${FSTAB} $BUILDDIR/sources/fstab ;; - *kernel) [[ -z ${CONFIG} ]] && continue - [[ ${CONFIG} == $BUILDDIR/sources/kernel-config ]] || - cp ${CONFIG} $BUILDDIR/sources/kernel-config ;; - esac - - # First append each name of the script files to a list (this will become - # the names of the targets in the Makefile - chapter78="$chapter78 ${this_script}" - - #--------------------------------------------------------------------# - # >>>>>>>> START BUILDING A Makefile ENTRY <<<<<<<< # - #--------------------------------------------------------------------# - # - # Drop in the name of the target on a new line, and the previous target - # as a dependency. Also call the echo_message function. - CHROOT_wrt_target "${this_script}" "$PREV" - - # Find the bootscripts or networkscripts (for systemd) - # and kernel package names - case "${this_script}" in - *bootscripts) - name="lfs-bootscripts" - if [ "${INSTALL_LOG}" = "y" ] ; then - CHROOT_wrt_TouchTimestamp - fi - ;; - *network-scripts) - name="lfs-network-scripts" - if [ "${INSTALL_LOG}" = "y" ] ; then - CHROOT_wrt_TouchTimestamp - fi - ;; - *kernel) - name="linux" - if [ "${INSTALL_LOG}" = "y" ] ; then - CHROOT_wrt_TouchTimestamp - fi - # If using optimizations, use MAKEFLAGS (unless blacklisted) - # no setting of CFLAGS and friends. - [[ "$OPTIMIZE" != "0" ]] && wrt_makeflags "$name" - ;; - esac - - # Check if we have a real /etc/fstab file - case "${this_script}" in - *fstab) if [[ -n "$FSTAB" ]]; then - CHROOT_wrt_CopyFstab - else - CHROOT_wrt_RunAsRoot "$file" - fi - ;; - *) CHROOT_wrt_RunAsRoot "$file" - ;; - esac - - case "${this_script}" in - *bootscripts|*network-scripts|*kernel) - if [ "${INSTALL_LOG}" = "y" ] ; then - CHROOT_wrt_LogNewFiles "$name" - fi ;; - esac - # Include a touch of the target name so make can check - # if it's already been made. - wrt_touch - # - #--------------------------------------------------------------------# - # >>>>>>>> END OF Makefile ENTRY <<<<<<<< # - #--------------------------------------------------------------------# - - # Keep the script file name for Makefile dependencies. - PREV=${this_script} - done # for file in chapter0{7,8}/* - -} - #----------------------------# build_Makefile() { # #----------------------------#