r3225 - jhalfs/trunk/CLFS

manuel at linuxfromscratch.org manuel at linuxfromscratch.org
Mon Nov 13 13:01:26 PST 2006


Author: manuel
Date: 2006-11-13 14:01:21 -0700 (Mon, 13 Nov 2006)
New Revision: 3225

Modified:
   jhalfs/trunk/CLFS/master.sh
Log:
Using only one set of functions for both chroot and boot methods in  CLFS Makefile creation.

Modified: jhalfs/trunk/CLFS/master.sh
===================================================================
--- jhalfs/trunk/CLFS/master.sh	2006-11-12 13:50:34 UTC (rev 3224)
+++ jhalfs/trunk/CLFS/master.sh	2006-11-13 21:01:21 UTC (rev 3225)
@@ -387,66 +387,21 @@
 
 
 #--------------------------------------#
-chroot_testsuite_tools_Makefiles() {   #
+testsuite_tools_Makefiles() {          #
 #--------------------------------------#
-  echo "${tab_}${GREEN}Processing... ${L_arrow}(chroot) testsuite tools  ( CHROOT ) ${R_arrow}"
 
-  for file in testsuite-tools/* ; do
-    # Keep the script file name
-    this_script=`basename $file`
+  if [[ "${METHOD}" = "chroot" ]]; then
+    echo "${tab_}${GREEN}Processing... ${L_arrow}(chroot) testsuite tools  ( CHROOT ) ${R_arrow}"
+  else
+    echo "${tab_}${GREEN}Processing... ${L_arrow}(boot) testsuite tools ( ROOT ) ${R_arrow}"
+  fi
 
-    # First append each name of the script files to a list (this will become
-    # the names of the targets in the Makefile
-    testsuitetools="$testsuitetools $this_script"
-
-    # Grab the name of the target, strip id number, XXX-script
-    name=`echo $this_script | sed -e 's@[0-9]\{3\}-@@'\
-                                  -e 's at -64bit@@' \
-                                  -e 's at -64@@' \
-                                  -e 's at 64@@' \
-                                  -e 's at n32@@'`
-
-    pkg_tarball=$(get_package_tarball_name $name)
-
-    #--------------------------------------------------------------------#
-    #         >>>>>>>> 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"
-    #
-    CHROOT_Unpack "$pkg_tarball"
-    [[ "$OPTIMIZE" = "2" ]] &&  wrt_optimize "$name" && wrt_makeflags "$name"
-    #
-    CHROOT_wrt_RunAsRoot "${file}"
-    #
-    CHROOT_wrt_RemoveBuildDirs "${name}"
-    #
-    # 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
-}
-
-#--------------------------------------#
-boot_testsuite_tools_Makefiles() {     #
-#--------------------------------------#
-  echo "${tab_}${GREEN}Processing... ${L_arrow}(boot) testsuite tools ( ROOT ) ${R_arrow}"
   for file in testsuite-tools/* ; do
     # Keep the script file name
     this_script=`basename $file`
 
     # First append each name of the script files to a list (this will become
     # the names of the targets in the Makefile
-    PREV=
     testsuitetools="$testsuitetools $this_script"
 
     # Grab the name of the target, strip id number, XXX-script
@@ -484,17 +439,18 @@
     PREV=$this_script
 
   done
-
 }
 
 
 #--------------------------------------#
-chroot_final_system_Makefiles() {      #
+final_system_Makefiles() {             #
 #--------------------------------------#
   # Set envars and scripts for iteration targets
   LOGS="" # Start with an empty global LOGS envar
   if [[ -z "$1" ]] ; then
     local N=""
+    # In boot method the makesys phase was initiated in testsuite_tools_makefile
+    [[ "${METHOD}" = "boot" ]] && [[ "$TEST" = 0 ]] && PREV=""
   else
     local N=-build_$1
     local basicsystem=""
@@ -512,7 +468,11 @@
     sed -e 's at make install@&\nrm -v /lib/lib{history,readline}*old@' -i final-system$N/*-readline
   fi
 
-  echo "${tab_}${GREEN}Processing... ${L_arrow}(chroot) final system$N ( CHROOT ) ${R_arrow}"
+  if [[ "${METHOD}" = "chroot" ]]; then
+    echo "${tab_}${GREEN}Processing... ${L_arrow}(chroot) final system$N ( CHROOT ) ${R_arrow}"
+  else
+    echo "${tab_}${GREEN}Processing... ${L_arrow}(boot) final system$N  ( ROOT ) ${R_arrow}"
+  fi
 
   for file in final-system$N/* ; do
     # Keep the script file name
@@ -596,122 +556,15 @@
 }
 
 #--------------------------------------#
-boot_final_system_Makefiles() {        #
+bootscripts_Makefiles() {              #
 #--------------------------------------#
-  # Set envars and scripts for iteration targets
-  LOGS="" # Start with an empty global LOGS envar
-  if [[ -z "$1" ]] ; then
-    local N=""
-    # The makesys phase was initiated in bm_testsuite_tools_makefile
-    [[ "$TEST" = 0 ]] && PREV=""
+
+  if [[ "${METHOD}" = "chroot" ]]; then
+    echo "${tab_}${GREEN}Processing... ${L_arrow}(chroot) bootscripts   ( CHROOT ) ${R_arrow}"
   else
-    local N=-build_$1
-    local basicsystem=""
-    mkdir final-system$N
-    cp final-system/* final-system$N
-    for script in final-system$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}
-    done
-    # Remove Bzip2 binaries before make install
-    sed -e 's at make install at rm -vf /usr/bin/bz*\n&@' -i final-system$N/*-bzip2
-    # Delete *old Readline libraries just after make install
-    sed -e 's at make install@&\nrm -v /lib/lib{history,readline}*old@' -i final-system$N/*-readline
+    echo "${tab_}${GREEN}Processing... ${L_arrow}(boot) bootscripts     ( ROOT ) ${R_arrow}"
   fi
 
-  echo "${tab_}${GREEN}Processing... ${L_arrow}(boot) final system$N  ( ROOT ) ${R_arrow}"
-
-  for file in final-system$N/* ; do
-    # Keep the script file name
-    this_script=`basename $file`
-
-    # Test if the stripping phase must be skipped
-    # Skip alsp temp-perl for iterative runs
-    case $this_script in
-      *stripping*) [[ "$STRIP" = "n" ]] && continue ;;
-      *temp-perl*) [[ -n "$N" ]] && continue ;;
-    esac
-
-    # Grab the name of the target, strip id number, XXX-script
-    name=`echo $this_script | sed -e 's@[0-9]\{3\}-@@' \
-                                  -e 's at temp-@@' \
-                                  -e 's at -64bit@@' \
-                                  -e 's at -64@@' \
-                                  -e 's at 64@@' \
-                                  -e 's at n32@@'`
-
-    # Find the version of the command files, if it corresponds with the building of
-    # a specific package. We need this here to can skip scripts not needed for
-    # iterations rebuilds
-
-    pkg_tarball=$(get_package_tarball_name $name)
-
-    if [[ "$pkg_tarball" = "" ]] && [[ -n "$N" ]] ; then
-      case "${this_script}" in
-        *stripping*) ;;
-        *)  continue ;;
-      esac
-    fi
-
-    # Append each name of the script files to a list (this will become
-    # the names of the targets in the Makefile
-    basicsystem="$basicsystem ${this_script}${N}"
-
-    # Append each name of the script files to a list (this will become
-    # the names of the logs to be moved for each iteration)
-    LOGS="$LOGS ${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}${N}" "$PREV"
-
-    # If $pkg_tarball isn't empty, we've got a package...
-    if [ "$pkg_tarball" != "" ] ; then
-      FILE="$pkg_tarball"
-      CHROOT_Unpack "$FILE"
-      # If the testsuites must be run, initialize the log file
-      case $name in
-        binutils | gcc | glibc )
-          [[ "$TEST" != "0" ]] && CHROOT_wrt_test_log "${this_script}"
-          ;;
-        * )
-          [[ "$TEST" = "2" ]] || [[ "$TEST" = "3" ]] && CHROOT_wrt_test_log "${this_script}"
-          ;;
-      esac
-      # If using optimizations, write the instructions
-      [[ "$OPTIMIZE" != "0" ]] &&  wrt_optimize "$name" && wrt_makeflags "$name"
-    fi
-    #
-    CHROOT_wrt_RunAsRoot "${file}"
-    #
-    [[ "$pkg_tarball" != "" ]] && CHROOT_wrt_RemoveBuildDirs "${name}"
-    #
-    # 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}${N}
-    # Set system_build envar for iteration targets
-    system_build=$basicsystem
-  done  # for file in final-system/* ...
-
-}
-
-#--------------------------------------#
-chroot_bootscripts_Makefiles() {       #
-#--------------------------------------#
-  echo "${tab_}${GREEN}Processing... ${L_arrow}(chroot) bootscripts   ( CHROOT ) ${R_arrow}"
-
   for file in bootscripts/* ; do
     # Keep the script file name
     this_script=`basename $file`
@@ -769,71 +622,16 @@
 }
 
 #--------------------------------------#
-boot_bootscripts_Makefiles() {         #
+bootable_Makefiles() {                 #
 #--------------------------------------#
-  echo "${tab_}${GREEN}Processing... ${L_arrow}(boot) bootscripts     ( ROOT ) ${R_arrow}"
 
-  for file in bootscripts/* ; do
-    # Keep the script file name
-    this_script=`basename $file`
+  if [[ "${METHOD}" = "chroot" ]]; then
+    echo "${tab_}${GREEN}Processing... ${L_arrow}(chroot) make bootable ( CHROOT ) ${R_arrow}"
+  else
+    echo "${tab_}${GREEN}Processing... ${L_arrow}(boot) make bootable   ( ROOT ) ${R_arrow}"
+  fi
 
-    case $this_script in
-      *udev) continue    ;;  # This is not a script but a commentary
-      *console*) continue ;; # Use the files that came with the bootscripts
-      *)  ;;
-    esac
 
-    # First append each name of the script files to a list (this will become
-    # the names of the targets in the Makefile
-    bootscripttools="$bootscripttools $this_script"
-
-    # Grab the name of the target, strip id number, XXX-script
-    name=`echo $this_script | sed -e 's@[0-9]\{3\}-@@'\
-                                  -e 's at -64bit@@' \
-                                  -e 's at -64@@' \
-                                  -e 's at 64@@' \
-                                  -e 's at n32@@'`
-    case $name in
-      *bootscripts*) name=bootscripts-cross-lfs ;;
-      *udev-rules)   name=udev-cross-lfs ;;
-    esac
-
-    pkg_tarball=$(get_package_tarball_name $name)
-
-    #--------------------------------------------------------------------#
-    #         >>>>>>>> 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"
-    #
-    # If $pkg_tarball isn't empty, we've got a package...
-    #
-    [[ "$pkg_tarball" != "" ]] && CHROOT_Unpack "$pkg_tarball"
-    #
-    CHROOT_wrt_RunAsRoot "${file}"
-    #
-    [[ "$pkg_tarball" != "" ]] && CHROOT_wrt_RemoveBuildDirs "${name}"
-    #
-    # 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 bootscripts/* ...
-}
-
-#--------------------------------------#
-chroot_bootable_Makefiles() {          #
-#--------------------------------------#
-  echo "${tab_}${GREEN}Processing... ${L_arrow}(chroot) make bootable ( CHROOT ) ${R_arrow}"
-
   for file in {bootable,the-end}/* ; do
     # Keep the script file name
     this_script=`basename $file`
@@ -904,80 +702,7 @@
 
 }
 
-#--------------------------------------#
-boot_bootable_Makefiles() {            #
-#--------------------------------------#
-  echo "${tab_}${GREEN}Processing... ${L_arrow}(boot) make bootable   ( ROOT ) ${R_arrow}"
 
-  for file in {bootable,the-end}/* ; do
-    # Keep the script file name
-    this_script=`basename $file`
-
-    # A little housekeeping on the scripts
-    case $this_script in
-      *grub | *aboot | *colo | *silo | *arcload | *lilo | *reboot* )  continue  ;;
-      *kernel) # if there is no kernel config file do not build the kernel
-               [[ -z $CONFIG ]] && continue
-                 # Copy the named config file to /sources with a standardized name
-               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
-    bootabletools="$bootabletools $this_script"
-    #
-    # Grab the name of the target, strip id number and misc words.
-    case $this_script in
-      *kernel) name=linux  ;;
-      *)       name=`echo $this_script | sed -e 's@[0-9]\{3\}-@@' -e 's at -build@@' ` ;;
-    esac
-
-    pkg_tarball=$(get_package_tarball_name $name)
-
-    #--------------------------------------------------------------------#
-    #         >>>>>>>> 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"
-    #
-    # If $pkg_tarball isn't empty, we've got a package...
-    # Insert instructions for unpacking the package and changing directories
-    #
-    [[ "$pkg_tarball" != "" ]] && CHROOT_Unpack "$pkg_tarball"
-    #
-    # Select a script execution method
-    case $this_script in
-      *fstab*)  if [[ -n "$FSTAB" ]]; then
-                  # Minimal boot mode has no access to original file, store in /sources
-                  cp $FSTAB $BUILDDIR/sources/fstab
-                  CHROOT_wrt_CopyFstab
-                else
-                  CHROOT_wrt_RunAsRoot  "${file}"
-                fi
-          ;;
-      *)  CHROOT_wrt_RunAsRoot  "${file}"   ;;
-    esac
-    #
-    # Housekeeping...remove any build directory(ies) except if the package build fails.
-    [[ "$pkg_tarball" != "" ]] && CHROOT_wrt_RemoveBuildDirs "${name}"
-    #
-    # 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
-
-}
-
-
 #--------------------------------------#
 build_Makefile() {                     # Construct a Makefile from the book scripts
 #--------------------------------------#
@@ -986,10 +711,6 @@
   #
 set +e
   declare -f  method_cmds
-  declare -f  testsuite_cmds
-  declare -f  final_sys_cmds
-  declare -f  bootscripts_cmds
-  declare -f  bootable_cmds
 set -e
 
   echo "...Creating Makefile... ${BOLD}START${OFF}"
@@ -999,24 +720,20 @@
   >$MKFILE
   >$MKFILE.tmp
 
-       method_cmds=${METHOD}_Makefiles
-    testsuite_cmds=${METHOD}_testsuite_tools_Makefiles
-    final_sys_cmds=${METHOD}_final_system_Makefiles
-  bootscripts_cmds=${METHOD}_bootscripts_Makefiles
-     bootable_cmds=${METHOD}_bootable_Makefiles
+  method_cmds=${METHOD}_Makefiles
 
   host_prep_Makefiles        # mk_SETUP      (SETUP)  $host_prep
   cross_tools_Makefiles      # mk_CROSS      (LUSER)  $cross_tools
   temptools_Makefiles        # mk_TEMP       (LUSER)  $temptools
   $method_cmds               # mk_SYSTOOLS   (CHROOT) $chroottools/$boottools
   if [[ ! $TEST = "0" ]]; then
-    $testsuite_cmds          # mk_SYSTOOLS   (CHROOT) $testsuitetools
+    testsuite_tools_Makefiles    # mk_SYSTOOLS   (CHROOT) $testsuitetools
   fi
-  $final_sys_cmds            # mk_FINAL      (CHROOT) $basicsystem
+  final_system_Makefiles         # mk_FINAL      (CHROOT) $basicsystem
     # Add the iterations targets, if needed
   [[ "$COMPARE" = "y" ]] && wrt_compare_targets
-  $bootscripts_cmds          # mk_BOOTSCRIPT (CHROOT) $bootscripttools
-  $bootable_cmds             # mk_BOOTABLE   (CHROOT) $bootabletools
+  bootscripts_Makefiles          # mk_BOOTSCRIPT (CHROOT) $bootscripttools
+  bootable_Makefiles             # mk_BOOTABLE   (CHROOT) $bootabletools
 
   # Add the BLFS_TOOL targets, if needed
   [[ "$BLFS_TOOL" = "y" ]] && wrt_blfs_tool_targets
@@ -1110,7 +827,7 @@
 SETUP:       $host_prep
 AS_LUSER:    $cross_tools $temptools
 SUDO:	     $orphan_scripts
-CHROOT_JAIL: ${chroottools}${boottools} $testsuitetools $basicsystem  $bootscripttools  $bootabletools
+CHROOT_JAIL: ${chroottools} $testsuitetools $basicsystem  $bootscripttools  $bootabletools
 BLFS_TOOL:   $blfs_tool
 
 
@@ -1170,7 +887,7 @@
 
 mk_SETUP:
 	@\$(call echo_SU_request)
-	@sudo make SETUP
+	@sudo make SHELL=/bin/bash SETUP
 	@touch \$@
 
 #---------------AS LUSER
@@ -1188,19 +905,19 @@
 
 mk_FINAL:
 	@\$(call echo_PHASE,Final System)
-	@( make AS_ROOT )
+	@( source /root/.bash_profile && make AS_ROOT )
 	@touch \$@
 
 mk_BLFS_TOOL: mk_FINAL
 	@\$(call echo_PHASE,Building BLFS-TOOLS)
 	@if [ "\$(ADD_BLFS_TOOLS)" = "y" ]; then \\
 	  mkdir -p $TRACKING_DIR; \\
-          make BLFS_TOOL; \\
+          ( make BLFS_TOOL ); \\
 	fi
 	@touch \$@
 
 SETUP:      $host_prep
-AS_LUSER:   $cross_tools $temptools ${chroottools}${boottools}
+AS_LUSER:   $cross_tools $temptools ${boottools}
 SUDO:	    $orphan_scripts
 AS_ROOT:    $testsuitetools $basicsystem $bootscripttools $bootabletools
 BLFS_TOOL:  $blfs_tool




More information about the alfs-log mailing list