r3097 - in jhalfs/branches/experimental: CLFS common

georgeb at linuxfromscratch.org georgeb at linuxfromscratch.org
Fri Sep 1 20:04:05 PDT 2006


Author: georgeb
Date: 2006-09-01 21:04:03 -0600 (Fri, 01 Sep 2006)
New Revision: 3097

Modified:
   jhalfs/branches/experimental/CLFS/master.sh
   jhalfs/branches/experimental/common/common-functions
   jhalfs/branches/experimental/common/makefile-functions
Log:
First commit of CLFS changes to new Makefile scheme.. work still to be done on optimize function and ICA/farce tools

Modified: jhalfs/branches/experimental/CLFS/master.sh
===================================================================
--- jhalfs/branches/experimental/CLFS/master.sh	2006-08-30 22:46:21 UTC (rev 3096)
+++ jhalfs/branches/experimental/CLFS/master.sh	2006-09-02 03:04:03 UTC (rev 3097)
@@ -1,17 +1,110 @@
 #!/bin/sh
 # $Id$
 
+
+orphan_scripts="" # 2 scripts do not fit BOOT_Makefiles LUSER environment
+
 ###################################
 ###          FUNCTIONS          ###
 ###################################
 
+#--------------------------------------#
+BOOT_wrt_target() {                    # "${this_script}" "$PREV"
+#--------------------------------------#
+  local i=$1
+  local PREV=$2
+  case $i in
+    iteration* ) local LOGFILE=$this_script.log ;;
+             * ) local LOGFILE=$this_script ;;
+  esac
+(
+cat << EOF
 
-#----------------------------#
-host_prep_Makefiles() {      # Initialization of the system
-#----------------------------#
+$i:  $PREV
+	@\$(call echo_message, Building)
+	@./progress_bar.sh \$@ \$\$PPID &
+	@echo -e "\n\`date\`\n\nKB: \`du -skx --exclude=${SCRIPT_ROOT}\`\n" >logs/$LOGFILE
+EOF
+) >> $MKFILE.tmp
+}
+
+#--------------------------------------#
+BOOT_wrt_Unpack() {                    # "$pkg_tarball"
+#--------------------------------------#
+  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
+}
+
+#----------------------------------#
+BOOT_wrt_RunAsRoot() {             # "${this_script}" "${file}"
+#----------------------------------#
+  local this_script=$1
+  local file=$2
+(
+cat << EOF
+	@( time { source envars && ${PROGNAME}-commands/`dirname $file`/\$@ >>logs/\$@ 2>&1 ; } ) 2>>logs/\$@ && \\
+	echo -e "\nKB: \`du -skx --exclude=${SCRIPT_ROOT} \`\n" >>logs/\$@
+EOF
+) >> $MKFILE.tmp
+}
+
+#--------------------------------------#
+BOOT_wrt_RemoveBuildDirs() {           # "${name}"
+#--------------------------------------#
+  local name=$1
+(
+cat << EOF
+	@\$(call remove_build_dirs2,$name)
+EOF
+) >> $MKFILE.tmp
+}
+
+#----------------------------------#
+BOOT_wrt_test_log() {              #
+#----------------------------------#
+  local TESTLOGFILE=$1
+(
+cat  << EOF
+	@echo "export TEST_LOG=/\$(SCRIPT_ROOT)/test-logs/$TESTLOGFILE" >> envars && \\
+	echo -e "\n\`date\`\n" >test-logs/$TESTLOGFILE
+EOF
+) >> $MKFILE.tmp
+}
+
+#----------------------------------#
+BOOT_wrt_CopyFstab() {             #
+#----------------------------------#
+(
+cat << EOF
+	@( time { cp -v /sources/fstab /etc/fstab >>logs/${this_script} 2>&1 ; } ) 2>>logs/${this_script}
+EOF
+) >> $MKFILE.tmp
+}
+
+
+########################################
+
+
+#--------------------------------------#
+host_prep_Makefiles() {                #
+#--------------------------------------#
   local   CLFS_HOST
 
-  echo "${tab_}${GREEN}Processing... ${L_arrow}host prep files${R_arrow}"
+  echo "${tab_}${GREEN}Processing... ${L_arrow}host prep files  ( SETUP ) ${R_arrow}"
 
   # defined here, only for ease of reading
   CLFS_HOST="$(echo $MACHTYPE | sed "s/$(echo $MACHTYPE | cut -d- -f2)/cross/")"
@@ -78,21 +171,21 @@
 	echo "source $JHALFSDIR/envars" >> /home/\$(LUSER)/.bashrc
 	@chown \$(LUSER):\$(LGROUP) /home/\$(LUSER)/.bashrc && \\
 	touch envars && \\
+	chown -R \$(LUSER) \$(MOUNT_PT)/\$(SCRIPT_ROOT) && \\
 	touch \$@ && \\
 	echo " "\$(BOLD)Target \$(BLUE)\$@ \$(BOLD)OK && \\
 	echo --------------------------------------------------------------------------------\$(WHITE)
 EOF
 ) >> $MKFILE.tmp
+  host_prep=" 023-creatingtoolsdir 024-creatingcrossdir 026-settingenvironment"
 
 }
 
+#--------------------------------------#
+cross_tools_Makefiles() {              #
+#--------------------------------------#
+  echo "${tab_}${GREEN}Processing... ${L_arrow}cross tools  ( LUSER ) ${R_arrow}"
 
-
-#-----------------------------#
-cross_tools_Makefiles() {     #
-#-----------------------------#
-  echo "${tab_}${GREEN}Processing... ${L_arrow}cross tools${R_arrow}"
-
   for file in cross-tools/* ; do
     # Keep the script file name
     this_script=`basename $file`
@@ -126,15 +219,15 @@
     #
     # Drop in the name of the target on a new line, and the previous target
     # as a dependency. Also call the echo_message function.
-    wrt_target "${this_script}" "$PREV"
+    LUSER_wrt_target "${this_script}" "$PREV"
     #
     # If $pkg_tarball isn't empty, we've got a package...
     #
-    [[ "$pkg_tarball" != "" ]] && wrt_unpack "$pkg_tarball"
+    [[ "$pkg_tarball" != "" ]] && LUSER_wrt_unpack "$pkg_tarball"
     #
-    wrt_RunAsUser "${this_script}" "${file}"
+    LUSER_wrt_RunAsUser "${file}"
     #
-    [[ "$pkg_tarball" != "" ]] && wrt_remove_build_dirs "${name}"
+    [[ "$pkg_tarball" != "" ]] && LUSER_RemoveBuildDirs "${name}"
     #
     # Include a touch of the target name so make can check if it's already been made.
     wrt_touch
@@ -149,12 +242,11 @@
   done # for file in ....
 }
 
+#--------------------------------------#
+temptools_Makefiles() {                #
+#--------------------------------------#
+  echo "${tab_}${GREEN}Processing... ${L_arrow}temp system  ( LUSER ) ${R_arrow}"
 
-#-----------------------------#
-temptools_Makefiles() {       #
-#-----------------------------#
-  echo "${tab_}${GREEN}Processing... ${L_arrow}temp system${R_arrow}"
-
   for file in temp-system/* ; do
     # Keep the script file name
     this_script=`basename $file`
@@ -184,17 +276,17 @@
     #
     # Drop in the name of the target on a new line, and the previous target
     # as a dependency. Also call the echo_message function.
-    wrt_target "${this_script}" "$PREV"
+    LUSER_wrt_target "${this_script}" "$PREV"
     #
     # If $pkg_tarball isn't empty, we've got a package...
     # Insert instructions for unpacking the package and to set the PKGDIR variable.
     #
-    [[ "$pkg_tarball" != "" ]] && wrt_unpack "$pkg_tarball"
+    [[ "$pkg_tarball" != "" ]] && LUSER_wrt_unpack "$pkg_tarball"
     [[ "$pkg_tarball" != "" ]] && [[ "$OPTIMIZE" = "2" ]] &&  wrt_optimize "$name" && wrt_makeflags "$name"
     #
-    wrt_RunAsUser "${this_script}" "${file}"
+    LUSER_wrt_RunAsUser "${file}"
     #
-    [[ "$pkg_tarball" != "" ]] && wrt_remove_build_dirs "${name}"
+    [[ "$pkg_tarball" != "" ]] && LUSER_RemoveBuildDirs "${name}"
     #
     # Include a touch of the target name so make can check if it's already been made.
     wrt_touch
@@ -209,76 +301,77 @@
 }
 
 
-#-----------------------------#
-boot_Makefiles() {            #
-#-----------------------------#
-  echo "${tab_}${GREEN}Processing... ${L_arrow}boot${R_arrow}"
+#--------------------------------------#
+chroot_Makefiles() {                   #
+#--------------------------------------#
+  echo "${tab_}${GREEN}Processing... ${L_arrow}tmptools CHROOT        ( CHROOT ) ${R_arrow}"
 
-  for file in boot/* ; do
+  for file in chroot/* ; do
     # Keep the script file name
     this_script=`basename $file`
-
-    # A little housekeeping on the scripts
+    #
+    # Skipping scripts is done now and not included in the build tree.
     case $this_script in
-      *grub | *aboot | *colo | *silo | *arcload | *lilo )     continue     ;;
-      *whatnext*) continue     ;;
-      *kernel)    # if there is no kernel config file do not build the kernel
-                [[ -z $CONFIG ]] && continue
-                  # Copy the config file to /sources with a standardized name
-                cp $BOOT_CONFIG $BUILDDIR/sources/bootkernel-config
-          ;;
+      *chroot*) continue ;;
     esac
+
     #
     # First append each name of the script files to a list (this will become
     # the names of the targets in the Makefile
-    boottools="$boottools $this_script"
-    #
-    # Grab the name of the target, strip id number and misc words.
-    case $this_script in
-      *kernel)        name=linux                   ;;
-      *bootscripts)   name="bootscripts-cross-lfs" ;;
-      *udev-rules)    name="udev-cross-lfs"        ;;
-      *grub-build)    name=grub                    ;;
-      *-aboot-build)  name=aboot                   ;;
-      *yaboot-build)  name=yaboot                  ;;
-      *colo-build)    name=colo                    ;;
-      *silo-build)    name=silo                    ;;
-      *arcload-build) name=arcload                 ;;
-      *lilo-build)    name=lilo                    ;;
-      *)              name=`echo $this_script | sed -e 's@[0-9]\{3\}-@@' -e 's at -build@@' ` ;;
-    esac
-      # Identify the unique version naming scheme for the clfs bootscripts..(bad boys)
+    case "${this_script}" in
+      *util-linux) : ;;
+      *kernfs) orphan_scripts="${orphan_scripts} ${this_script}"  ;;
+      *)          chroottools="$chroottools $this_script"         ;;
+    esac    
+
+    # Grab the name of the target, strip id number, XXX-script
+    name=`echo $this_script | sed -e 's@[0-9]\{3\}-@@'`
+
     pkg_tarball=$(get_package_tarball_name $name)
+    
+    # This is very ugly:: util-linux is in /chroot but should be run under LUSER
+    # A custom collection of routines.
+    case "${this_script}" in
+      *util-linux) 
+         LUSER_wrt_target "${this_script}" "$PREV"
+         [[ "$pkg_tarball" != "" ]] && LUSER_wrt_unpack "$pkg_tarball"
+         [[ "$pkg_tarball" != "" ]] && [[ "$OPTIMIZE" = "2" ]] &&  wrt_optimize "$name" && wrt_makeflags "$name"
+         LUSER_wrt_RunAsUser "${file}"
+         LUSER_RemoveBuildDirs "${name}"
+         wrt_touch
+	 temptools="$temptools $this_script"
+	 continue ;;
+     esac
 
+
     #--------------------------------------------------------------------#
     #         >>>>>>>> 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.
-    wrt_target "${this_script}" "$PREV"
+    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" != "" ]] && wrt_unpack "$pkg_tarball"
-    [[ "$pkg_tarball" != "" ]] && [[ "$OPTIMIZE" = "2" ]] &&  wrt_optimize "$name" && wrt_makeflags "$name"
+    if [ "$pkg_tarball" != "" ] ; then
+      case $this_script in
+        *util-linux)      ROOT_Unpack  "$pkg_tarball"  ;;
+        *)              CHROOT_Unpack "$pkg_tarball"  ;;
+      esac
+      [[ "$OPTIMIZE" = "2" ]] &&  wrt_optimize "$name" && wrt_makeflags "$name"
+    fi
     #
     # Select a script execution method
     case $this_script in
-      *changingowner*)  wrt_RunAsRoot "${this_script}" "${file}"    ;;
-      *devices*)        wrt_RunAsRoot "${this_script}" "${file}"    ;;
-      *fstab*)   if [[ -n "$FSTAB" ]]; then
-                   wrt_copy_fstab "${this_script}"
-                 else
-                   wrt_RunAsUser  "${this_script}" "${file}"
-                 fi
-         ;;
-      *)         wrt_RunAsUser  "${this_script}" "${file}"       ;;
+      *kernfs)      wrt_RunAsRoot         "${this_script}" "${file}"  ;;
+      *util-linux)  ROOT_RunAsRoot        "${file}"  ;;
+      *)            CHROOT_wrt_RunAsRoot  "${file}"  ;;
     esac
     #
-    # Housekeeping...remove any build directory(ies) except if the package build fails.
-    [[ "$pkg_tarball" != "" ]] && wrt_remove_build_dirs "${name}"
+    # Housekeeping...remove the 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
@@ -290,32 +383,58 @@
     # Keep the script file name for Makefile dependencies.
     PREV=$this_script
 
-  done
+  done # for file in...
 }
 
 
-#-----------------------------#
-chroot_Makefiles() {          #
-#-----------------------------#
-  echo "${tab_}${GREEN}Processing... ${L_arrow}chroot${R_arrow}"
-
-  for file in chroot/* ; do
+#--------------------------------------#
+boot_Makefiles() {                     #
+#--------------------------------------#
+  
+  echo "${tab_}${GREEN}Processing... ${L_arrow}tmptools BOOT  ( LUSER ) ${R_arrow}"
+  #
+  # Create a target bootable partition containing a compile environment. Later
+  #  on we boot into this environment and contine the build.
+  #
+  for file in boot/* ; do
     # Keep the script file name
     this_script=`basename $file`
-    #
-    # Skipping scripts is done now and not included in the build tree.
+
+    # A little housekeeping on the scripts
     case $this_script in
-      *chroot*) continue ;;
+      *grub | *aboot | *colo | *silo | *arcload | *lilo )     continue     ;;
+      *whatnext*) continue     ;;
+      *fstab)   [[ ! -z ${FSTAB} ]] && cp ${FSTAB} $BUILDDIR/sources/fstab ;;
+      *kernel)  # if there is no kernel config file do not build the kernel
+                [[ -z $CONFIG ]] && continue
+                  # Copy the config file to /sources with a standardized name
+                cp $BOOT_CONFIG $BUILDDIR/sources/bootkernel-config
+          ;;
     esac
-
     #
     # First append each name of the script files to a list (this will become
     # the names of the targets in the Makefile
-    chroottools="$chroottools $this_script"
-
-    # Grab the name of the target, strip id number, XXX-script
-    name=`echo $this_script | sed -e 's@[0-9]\{3\}-@@'`
-
+    case "${this_script}" in
+      *changingowner)  orphan_scripts="${orphan_scripts} ${this_script}"  ;;
+      *devices)        orphan_scripts="${orphan_scripts} ${this_script}"  ;;
+      *)               boottools="$boottools $this_script" ;;
+    esac
+    #
+    # Grab the name of the target, strip id number and misc words.
+    case $this_script in
+      *kernel)        name=linux                   ;;
+      *bootscripts)   name="bootscripts-cross-lfs" ;;
+      *udev-rules)    name="udev-cross-lfs"        ;;
+      *grub-build)    name=grub                    ;;
+      *-aboot-build)  name=aboot                   ;;
+      *yaboot-build)  name=yaboot                  ;;
+      *colo-build)    name=colo                    ;;
+      *silo-build)    name=silo                    ;;
+      *arcload-build) name=arcload                 ;;
+      *lilo-build)    name=lilo                    ;;
+      *)              name=`echo $this_script | sed -e 's@[0-9]\{3\}-@@' -e 's at -build@@' ` ;;
+    esac
+      # Identify the unique version naming scheme for the clfs bootscripts..(bad boys)
     pkg_tarball=$(get_package_tarball_name $name)
 
     #--------------------------------------------------------------------#
@@ -324,28 +443,31 @@
     #
     # Drop in the name of the target on a new line, and the previous target
     # as a dependency. Also call the echo_message function.
-    wrt_target "${this_script}" "$PREV"
+    LUSER_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
     #
-    if [ "$pkg_tarball" != "" ] ; then
-      case $this_script in
-        *util-linux)    wrt_unpack  "$pkg_tarball"  ;;
-        *)              wrt_unpack2 "$pkg_tarball"  ;;
-      esac
-      [[ "$OPTIMIZE" = "2" ]] &&  wrt_optimize "$name" && wrt_makeflags "$name"
-    fi
+    [[ "$pkg_tarball" != "" ]] && LUSER_wrt_unpack "$pkg_tarball"
+    [[ "$pkg_tarball" != "" ]] && [[ "$OPTIMIZE" = "2" ]] &&  wrt_optimize "$name" && wrt_makeflags "$name"
     #
     # Select a script execution method
     case $this_script in
-      *kernfs)      wrt_RunAsRoot "${this_script}" "${file}"  ;;
-      *util-linux)  wrt_RunAsUser "${this_script}" "${file}"  ;;
-      *)            wrt_run_as_chroot1  "${this_script}" "${file}"  ;;
+       # The following 2 scripts are defined in the /boot directory but need
+       # to be run as a root user. Set them up here but run them in another phase
+      *changingowner*)  wrt_RunAsRoot "${this_script}" "${file}"    ;;
+      *devices*)        wrt_RunAsRoot "${this_script}" "${file}"    ;;
+      *fstab*)   if [[ -n "$FSTAB" ]]; then
+                   LUSER_wrt_CopyFstab
+                 else
+                   LUSER_wrt_RunAsUser  "${file}"
+                 fi
+         ;;
+      *)         LUSER_wrt_RunAsUser  "${file}"       ;;
     esac
     #
-    # Housekeeping...remove the build directory(ies), except if the package build fails.
-    [[ "$pkg_tarball" != "" ]] && wrt_remove_build_dirs "${name}"
+    # Housekeeping...remove any build directory(ies) except if the package build fails.
+    [[ "$pkg_tarball" != "" ]] && LUSER_RemoveBuildDirs "${name}"
     #
     # Include a touch of the target name so make can check if it's already been made.
     wrt_touch
@@ -357,14 +479,14 @@
     # Keep the script file name for Makefile dependencies.
     PREV=$this_script
 
-  done # for file in...
+  done
 }
 
 
-#-----------------------------#
-testsuite_tools_Makefiles() { #
-#-----------------------------#
-  echo "${tab_}${GREEN}Processing... ${L_arrow}(chroot) testsuite tools${R_arrow}"
+#--------------------------------------#
+chroot_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
@@ -389,14 +511,14 @@
     #
     # Drop in the name of the target on a new line, and the previous target
     # as a dependency. Also call the echo_message function.
-    wrt_target "${this_script}" "$PREV"
+    CHROOT_wrt_target "${this_script}" "$PREV"
     #
-    wrt_unpack2 "$pkg_tarball"
+    CHROOT_Unpack "$pkg_tarball"
     [[ "$OPTIMIZE" = "2" ]] &&  wrt_optimize "$name" && wrt_makeflags "$name"
     #
-    wrt_run_as_chroot1 "${this_script}" "${file}"
+    CHROOT_wrt_RunAsRoot "${file}"
     #
-    wrt_remove_build_dirs "${name}"
+    CHROOT_wrt_RemoveBuildDirs "${name}"
     #
     # Include a touch of the target name so make can check if it's already been made.
     wrt_touch
@@ -411,12 +533,10 @@
   done
 }
 
-
-#--------------------------------#
-bm_testsuite_tools_Makefiles() { #
-#--------------------------------#
-  echo "${tab_}${GREEN}Processing... ${L_arrow}(boot) testsuite tools${R_arrow}"
-
+#--------------------------------------#
+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`
@@ -441,14 +561,14 @@
     #
     # Drop in the name of the target on a new line, and the previous target
     # as a dependency. Also call the echo_message function.
-    wrt_target_boot "${this_script}" "$PREV"
+    BOOT_wrt_target "${this_script}" "$PREV"
     #
-    wrt_unpack3 "$pkg_tarball"
+    BOOT_wrt_Unpack "$pkg_tarball"
     [[ "$OPTIMIZE" = "2" ]] &&  wrt_optimize "$name" && wrt_makeflags "$name"
     #
-    wrt_run_as_root2 "${this_script}" "${file}"
+    BOOT_wrt_RunAsRoot "${this_script}" "${file}"
     #
-    wrt_remove_build_dirs2 "${name}"
+    BOOT_wrt_RemoveBuildDirs "${name}"
     #
     # Include a touch of the target name so make can check if it's already been made.
     wrt_touch
@@ -461,12 +581,13 @@
     PREV=$this_script
 
   done
+
 }
 
 
-#-----------------------------#
-final_system_Makefiles() {    #
-#-----------------------------#
+#--------------------------------------#
+chroot_final_system_Makefiles() {      #
+#--------------------------------------#
   # Set envars and scripts for iteration targets
   LOGS="" # Start with an empty global LOGS envar
   if [[ -z "$1" ]] ; then
@@ -488,7 +609,7 @@
     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${R_arrow}"
+  echo "${tab_}${GREEN}Processing... ${L_arrow}(chroot) final system$N ( CHROOT ) ${R_arrow}"
 
   for file in final-system$N/* ; do
     # Keep the script file name
@@ -535,27 +656,27 @@
     #
     # Drop in the name of the target on a new line, and the previous target
     # as a dependency. Also call the echo_message function.
-    wrt_target "${this_script}${N}" "$PREV"
+    CHROOT_wrt_target "${this_script}${N}" "$PREV"
 
     # If $pkg_tarball isn't empty, we've got a package...
     if [ "$pkg_tarball" != "" ] ; then
-      wrt_unpack2 "$pkg_tarball"
+      CHROOT_Unpack "$pkg_tarball"
       # If the testsuites must be run, initialize the log file
       case $name in
         binutils | gcc | glibc )
-          [[ "$TEST" != "0" ]] && wrt_test_log2 "${this_script}"
+          [[ "$TEST" != "0" ]] && CHROOT_wrt_test_log "${this_script}"
           ;;
         * )
-          [[ "$TEST" = "2" ]] || [[ "$TEST" = "3" ]] && wrt_test_log2 "${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
     #
-    wrt_run_as_chroot1 "${this_script}" "${file}"
+    CHROOT_wrt_RunAsRoot  "${file}"
     #
-    [[ "$pkg_tarball" != "" ]] && wrt_remove_build_dirs "${name}"
+    [[ "$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
@@ -571,10 +692,9 @@
   done  # for file in final-system/* ...
 }
 
-
-#-----------------------------#
-bm_final_system_Makefiles() { #
-#-----------------------------#
+#--------------------------------------#
+boot_final_system_Makefiles() {        #
+#--------------------------------------#
   # Set envars and scripts for iteration targets
   LOGS="" # Start with an empty global LOGS envar
   if [[ -z "$1" ]] ; then
@@ -598,7 +718,7 @@
     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}(boot) final system$N${R_arrow}"
+  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
@@ -646,28 +766,28 @@
     #
     # Drop in the name of the target on a new line, and the previous target
     # as a dependency. Also call the echo_message function.
-    wrt_target_boot "${this_script}${N}" "$PREV"
+    BOOT_wrt_target "${this_script}${N}" "$PREV"
 
     # If $pkg_tarball isn't empty, we've got a package...
     if [ "$pkg_tarball" != "" ] ; then
       FILE="$pkg_tarball"
-      wrt_unpack3 "$FILE"
+      BOOT_wrt_Unpack "$FILE"
       # If the testsuites must be run, initialize the log file
       case $name in
         binutils | gcc | glibc )
-          [[ "$TEST" != "0" ]] && wrt_test_log2 "${this_script}"
+          [[ "$TEST" != "0" ]] && BOOT_wrt_test_log "${this_script}"
           ;;
         * )
-          [[ "$TEST" = "2" ]] || [[ "$TEST" = "3" ]] && wrt_test_log2 "${this_script}"
+          [[ "$TEST" = "2" ]] || [[ "$TEST" = "3" ]] && BOOT_wrt_test_log "${this_script}"
           ;;
       esac
       # If using optimizations, write the instructions
       [[ "$OPTIMIZE" != "0" ]] &&  wrt_optimize "$name" && wrt_makeflags "$name"
     fi
     #
-    wrt_run_as_root2 "${this_script}" "${file}"
+    BOOT_wrt_RunAsRoot "${this_script}" "${file}"
     #
-    [[ "$pkg_tarball" != "" ]] && wrt_remove_build_dirs2 "${name}"
+    [[ "$pkg_tarball" != "" ]] && BOOT_wrt_RemoveBuildDirs "${name}"
     #
     # Include a touch of the target name so make can check if it's already been made.
     wrt_touch
@@ -681,14 +801,14 @@
     # 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}"
 
-#-----------------------------#
-bootscripts_Makefiles() {     #
-#-----------------------------#
-    echo "${tab_}${GREEN}Processing... ${L_arrow}(chroot) bootscripts${R_arrow}"
-
   for file in bootscripts/* ; do
     # Keep the script file name
     this_script=`basename $file`
@@ -722,15 +842,15 @@
     #
     # Drop in the name of the target on a new line, and the previous target
     # as a dependency. Also call the echo_message function.
-    wrt_target "${this_script}" "$PREV"
+    CHROOT_wrt_target "${this_script}" "$PREV"
     #
     # If $pkg_tarball isn't empty, we've got a package...
     #
-    [[ "$pkg_tarball" != "" ]] && wrt_unpack2 "$pkg_tarball"
+    [[ "$pkg_tarball" != "" ]] && CHROOT_Unpack "$pkg_tarball"
     #
-    wrt_run_as_chroot1 "${this_script}" "${file}"
+    CHROOT_wrt_RunAsRoot "${file}"
     #
-    [[ "$pkg_tarball" != "" ]] && wrt_remove_build_dirs "${name}"
+    [[ "$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
@@ -743,13 +863,12 @@
     PREV=$this_script
 
   done  # for file in bootscripts/* ...
-
 }
 
-#-----------------------------#
-bm_bootscripts_Makefiles() {  #
-#-----------------------------#
-    echo "${tab_}${GREEN}Processing... ${L_arrow}(boot) bootscripts${R_arrow}"
+#--------------------------------------#
+boot_bootscripts_Makefiles() {         #
+#--------------------------------------#
+  echo "${tab_}${GREEN}Processing... ${L_arrow}(boot) bootscripts     ( ROOT ) ${R_arrow}"
 
   for file in bootscripts/* ; do
     # Keep the script file name
@@ -784,15 +903,15 @@
     #
     # Drop in the name of the target on a new line, and the previous target
     # as a dependency. Also call the echo_message function.
-    wrt_target_boot "${this_script}" "$PREV"
+    BOOT_wrt_target "${this_script}" "$PREV"
     #
     # If $pkg_tarball isn't empty, we've got a package...
     #
-    [[ "$pkg_tarball" != "" ]] && wrt_unpack3 "$pkg_tarball"
+    [[ "$pkg_tarball" != "" ]] && BOOT_wrt_Unpack "$pkg_tarball"
     #
-    wrt_run_as_root2 "${this_script}" "${file}"
+    BOOT_wrt_RunAsRoot "${this_script}" "${file}"
     #
-    [[ "$pkg_tarball" != "" ]] && wrt_remove_build_dirs2 "${name}"
+    [[ "$pkg_tarball" != "" ]] && BOOT_wrt_RemoveBuildDirs "${name}"
     #
     # Include a touch of the target name so make can check if it's already been made.
     wrt_touch
@@ -805,16 +924,13 @@
     PREV=$this_script
 
   done  # for file in bootscripts/* ...
-
 }
 
+#--------------------------------------#
+chroot_bootable_Makefiles() {          #
+#--------------------------------------#
+  echo "${tab_}${GREEN}Processing... ${L_arrow}(chroot) make bootable ( CHROOT ) ${R_arrow}"
 
-
-#-----------------------------#
-bootable_Makefiles() {        #
-#-----------------------------#
-  echo "${tab_}${GREEN}Processing... ${L_arrow}(chroot) make bootable${R_arrow}"
-
   for file in {bootable,the-end}/* ; do
     # Keep the script file name
     this_script=`basename $file`
@@ -822,6 +938,7 @@
     # A little housekeeping on the scripts
     case $this_script in
       *grub | *aboot | *colo | *silo | *arcload | *lilo | *reboot* )  continue ;;
+      *fstab)  [[ ! -z ${FSTAB} ]] && cp ${FSTAB} $BUILDDIR/sources/fstab ;;
       *kernel) # if there is no kernel config file do not build the kernel
                [[ -z $CONFIG ]] && continue
                  # Copy the config file to /sources with a standardized name
@@ -848,26 +965,27 @@
     #
     # Drop in the name of the target on a new line, and the previous target
     # as a dependency. Also call the echo_message function.
-    wrt_target "${this_script}" "$PREV"
+    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" != "" ]] && wrt_unpack2 "$pkg_tarball"
+    [[ "$pkg_tarball" != "" ]] && CHROOT_Unpack "$pkg_tarball"
     #
     # Select a script execution method
     case $this_script in
-      *fstab*)  if [[ -n "$FSTAB" ]]; then
-                  wrt_copy_fstab "${this_script}"
-                else
-                  wrt_run_as_chroot1  "${this_script}" "${file}"
-                fi
-          ;;
-      *)  wrt_run_as_chroot1  "${this_script}" "${file}"   ;;
+      *fstab*)   if [[ -n "$FSTAB" ]]; then
+                   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" != "" ]] && wrt_remove_build_dirs "${name}"
+    [[ "$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
@@ -886,13 +1004,11 @@
 
 }
 
+#--------------------------------------#
+boot_bootable_Makefiles() {            #
+#--------------------------------------#
+  echo "${tab_}${GREEN}Processing... ${L_arrow}(boot) make bootable   ( ROOT ) ${R_arrow}"
 
-
-#-----------------------------#
-bm_bootable_Makefiles() {     #
-#-----------------------------#
-  echo "${tab_}${GREEN}Processing... ${L_arrow}(boot) make bootable${R_arrow}"
-
   for file in {bootable,the-end}/* ; do
     # Keep the script file name
     this_script=`basename $file`
@@ -925,28 +1041,28 @@
     #
     # Drop in the name of the target on a new line, and the previous target
     # as a dependency. Also call the echo_message function.
-    wrt_target_boot "${this_script}" "$PREV"
+    BOOT_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" != "" ]] && wrt_unpack3 "$pkg_tarball"
+    [[ "$pkg_tarball" != "" ]] && BOOT_wrt_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
-                  wrt_copy_fstab2 "${this_script}"
+                  BOOT_wrt_CopyFstab "${this_script}"
                 else
-                  wrt_run_as_root2  "${this_script}" "${file}"
+                  BOOT_wrt_RunAsRoot  "${this_script}" "${file}"
                 fi
           ;;
-      *)  wrt_run_as_root2  "${this_script}" "${file}"   ;;
+      *)  BOOT_wrt_RunAsRoot  "${this_script}" "${file}"   ;;
     esac
     #
     # Housekeeping...remove any build directory(ies) except if the package build fails.
-    [[ "$pkg_tarball" != "" ]] && wrt_remove_build_dirs2 "${name}"
+    [[ "$pkg_tarball" != "" ]] && BOOT_wrt_RemoveBuildDirs "${name}"
     #
     # Include a touch of the target name so make can check if it's already been made.
     wrt_touch
@@ -957,51 +1073,55 @@
     #
     # Keep the script file name for Makefile dependencies.
     PREV=$this_script
-
   done
 
   # Add SBU-disk_usage report target if required
   if [[ "$REPORT" = "y" ]] ; then wrt_report ; fi
 
+
 }
 
 
-#-----------------------------#
-build_Makefile() {            # Construct a Makefile from the book scripts
-#-----------------------------#
-  echo "Creating Makefile... ${BOLD}START${OFF}"
+#--------------------------------------#
+build_Makefile() {                     # Construct a Makefile from the book scripts
+#--------------------------------------#
+  #
+  # Script crashes if error trapping is on
+  #
+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}"
+
   cd $JHALFSDIR/${PROGNAME}-commands
-  # Start with a clean Makefile.tmp file
+  # Start with a clean files
+  >$MKFILE
   >$MKFILE.tmp
 
-  host_prep_Makefiles
-  cross_tools_Makefiles            # $cross_tools
-  temptools_Makefiles              # $temptools
-  if [[ $METHOD = "chroot" ]]; then
-    chroot_Makefiles               # $chroottools
-    if [[ ! $TEST = "0" ]]; then
-      testsuite_tools_Makefiles    # $testsuitetools
-    fi
-    final_system_Makefiles         # $basicsystem
+       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
+  
+  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
+  fi
+  $final_sys_cmds            # mk_FINAL      (CHROOT) $basicsystem
     # Add the iterations targets, if needed
-    [[ "$COMPARE" = "y" ]] && wrt_compare_targets
-    bootscripts_Makefiles          # $bootscripttools
-    bootable_Makefiles             # $bootabletools
-  else
-    boot_Makefiles                 # $boottools
-    if [[ ! $TEST = "0" ]]; then
-      bm_testsuite_tools_Makefiles # $testsuitetools
-    fi
-    bm_final_system_Makefiles      # $basicsystem
-    # Add the iterations targets, if needed
-    [[ "$COMPARE" = "y" ]] && wrt_compare_targets
-    bm_bootscripts_Makefiles       # $bootscipttools
-    bm_bootable_Makefiles          # $bootabletoosl
-  fi
-#  the_end_Makefiles
+  [[ "$COMPARE" = "y" ]] && wrt_compare_targets
+  $bootscripts_cmds          # mk_BOOTSCRIPT (CHROOT) $bootscripttools
+  $bootable_cmds             # mk_BOOTABLE   (CHROOT) $bootabletools
 
-
   # Add a header, some variables and include the function file
   # to the top of the real Makefile.
 (
@@ -1029,9 +1149,8 @@
 SU_LUSER     = su - \$(LUSER) -c
 LUSER_HOME   = /home/\$(LUSER)
 PRT_DU       = echo -e "\nKB: \`du -skx --exclude=jhalfs \$(MOUNT_PT)\`\n"
-PRT_DU_CR    = echo -e "\nKB: \`du -skx --exclude=\$(SCRIPT_ROOT) \$(MOUNT_PT)\`\n"
+PRT_DU_CR    = echo -e "\nKB: \`du -skx --exclude=\$(SCRIPT_ROOT) / \`\n"
 
-
 include makefile-functions
 
 EOF
@@ -1056,64 +1175,141 @@
     echo -e "CHROOT1= $chroot\n" >> $MKFILE
   fi
 
-  # Drop in the main target 'all:' and the chapter targets with each sub-target
-  # as a dependency.
+################## CHROOT ####################
+
 if [[ "${METHOD}" = "chroot" ]]; then
 (
-	cat << EOF
-all:  chapter2 chapter3 chapter4 chapter5 chapter6 chapter7 chapter8 do-housekeeping
+cat << EOF
+
+all: mk_SETUP mk_CROSS mk_TEMP mk_SYSTOOLS mk_FINAL mk_BOOTSCRIPT mk_BOOTABLE do-housekeeping
 	@\$(call echo_finished,$VERSION)
 
-chapter2:  023-creatingtoolsdir 024-creatingcrossdir 025-addinguser 026-settingenvironment
+#---------------AS ROOT
+mk_SETUP:
+	@\$(call echo_SU_request)
+	@sudo make SETUP
+	@touch \$@
+	
+#---------------AS LUSER
+mk_CROSS: mk_SETUP
+	@\$(call echo_PHASE,Cross Tool)
+	@( \$(SU_LUSER) "source .bashrc && cd \$(MOUNT_PT)/\$(SCRIPT_ROOT) && make CROSS" )
+	@touch \$@
 
-chapter3:  chapter2 $cross_tools
+mk_TEMP: mk_CROSS
+	@\$(call echo_PHASE,Temporary Tools)
+	@( \$(SU_LUSER) "source .bashrc && cd \$(MOUNT_PT)/\$(SCRIPT_ROOT) && make TEMP" )
+	@touch \$@
 
-chapter4:  chapter3 $temptools
+#
+# The convoluted piece of code below is necessary to provide 'make' with a valid shell in the
+# chroot environment. (Unless someone knows a different way)
+# Manually create the /bin directory and provide link to the /tools dir.
+# Also change the original symlink creation to include (f)orce to prevent failure due to 
+#  pre-existing links.
 
-chapter5:  chapter4 $chroottools restore-luser-env $testsuitetools
+#---------------CHROOT JAIL
+mk_SYSTOOLS: mk_TEMP $orphan_scripts
+	@mkdir \$(MOUNT_PT)/bin && \\
+	cd \$(MOUNT_PT)/bin && \\
+	ln -sf /tools/bin/bash bash; ln -sf bash sh
+	@sed -e 's|^ln -sv|ln -svf|' -i \$(CMDSDIR)/chroot/082-createfiles
+	@\$(call echo_CHROOT_request)
+	@\$(call echo_PHASE, Chroot systools)
+	@( sudo \$(CHROOT1) "cd \$(SCRIPT_ROOT) && make SYSTOOLS")
+	@touch \$@
 
-chapter6:  chapter5 $basicsystem
+mk_FINAL: mk_SYSTOOLS
+	@\$(call echo_PHASE,Final System)
+	@( sudo \$(CHROOT1) "cd \$(SCRIPT_ROOT) && make FINAL")
+	@touch \$@
 
-chapter7:  chapter6 $bootscripttools
+mk_BOOTSCRIPT: mk_FINAL
+	@\$(call echo_PHASE,Bootscript)
+	@\$(call echo_CHROOT_request)
+	@( sudo \$(CHROOT1) "cd \$(SCRIPT_ROOT) && make BOOTSCRIPT")
+	@touch \$@
 
-chapter8:  chapter7 $bootabletools
+mk_BOOTABLE: mk_BOOTSCRIPT
+	@\$(call echo_PHASE, Make bootable )
+	@( sudo \$(CHROOT1) "cd \$(SCRIPT_ROOT) && make BOOTABLE")
+	@touch \$@
 
-clean-all:  clean
-	rm -rf ./{clfs-commands,logs,Makefile,*.xsl,makefile-functions,packages,patches}
+EOF
+) >> $MKFILE
+fi
 
-clean:  clean-chapter4 clean-chapter3 clean-chapter2
+################### BOOT #####################
 
-restart:
-	@echo "This feature does not exist for the CLFS makefile. (yet)"
+if [[ "${METHOD}" = "boot" ]]; then
+(
+cat << EOF
 
-clean-chapter2:
-	-if [ ! -f luser-exist ]; then \\
-		userdel \$(LUSER); \\
-		rm -rf /home/\$(LUSER); \\
-	fi;
-	rm -rf \$(MOUNT_PT)/tools
-	rm -f /tools
-	rm -rf \$(MOUNT_PT)/cross-tools
-	rm -f /cross-tools
-	rm -f envars luser-exist
-	rm -f 02* logs/02*.log
+all:	mk_SETUP mk_CROSS mk_TEMP mk_SYSTOOLS $orphan_scripts restore-luser-env
+	@\$(call echo_boot_finished,$VERSION)
 
-clean-chapter3:
-	rm -rf \$(MOUNT_PT)/tools/*
-	rm -f $cross_tools sources-dir
-	cd logs && rm -f $cross_tools && cd ..
+makesys: mk_FINAL mk_BOOTSCRIPT mk_BOOTABLE
+	@\$(call echo_finished,$VERSION)
 
-clean-chapter4:
-	-umount \$(MOUNT_PT)/sys
-	-umount \$(MOUNT_PT)/proc
-	-umount \$(MOUNT_PT)/dev/shm
-	-umount \$(MOUNT_PT)/dev/pts
-	-umount \$(MOUNT_PT)/dev
-	rm -rf \$(MOUNT_PT)/{bin,boot,dev,etc,home,lib,lib64,media,mnt,opt,proc,root,sbin,srv,sys,tmp,usr,var}
-	rm -f $temptools
-	cd logs && rm -f $temptools && cd ..
+#---------------AS ROOT
 
+mk_SETUP:
+	@\$(call echo_SU_request)
+	@sudo make SETUP
+	@touch \$@
 
+#---------------AS LUSER
+	
+mk_CROSS: mk_SETUP
+	@\$(call echo_PHASE,Cross Tool)
+	@( \$(SU_LUSER) "source .bashrc && cd \$(MOUNT_PT)/\$(SCRIPT_ROOT) && make CROSS" )
+	@touch \$@
+
+mk_TEMP: mk_CROSS
+	@\$(call echo_PHASE,Temporary Tools)
+	@( \$(SU_LUSER) "source .bashrc && cd \$(MOUNT_PT)/\$(SCRIPT_ROOT) && make TEMP" )
+	@touch \$@
+
+mk_SYSTOOLS: mk_TEMP
+	@\$(call echo_PHASE,Minimal Boot system)
+	@( \$(SU_LUSER) "source .bashrc && cd \$(MOUNT_PT)/\$(SCRIPT_ROOT) && make SYSTOOLS" )
+	@touch \$@
+
+#---------------AS ROOT
+
+mk_FINAL:
+	@\$(call echo_PHASE,Final System)
+	@( make FINAL )
+	@touch \$@
+
+mk_BOOTSCRIPT: mk_FINAL
+	@\$(call echo_PHASE,Bootscript)
+	@( make BOOTSCRIPT )
+	@touch \$@
+
+mk_BOOTABLE: mk_BOOTSCRIPT
+	@\$(call echo_PHASE,Making Bootable)
+	@( make BOOTABLE )
+	@touch \$@
+
+EOF
+) >> $MKFILE
+fi
+
+(
+ cat << EOF
+
+SETUP:      $host_prep
+CROSS:      $cross_tools
+TEMP:       $temptools
+SYSTOOLS:   ${chroottools}${boottools}
+FINAL:      $testsuitetools $basicsystem
+BOOTSCRIPT: $bootscripttools
+BOOTABLE:   $bootabletools
+
+restart:
+	@echo "This feature does not exist for the CLFS makefile. (yet)"
+
 restore-luser-env:
 	@\$(call echo_message, Building)
 	@if [ -f /home/\$(LUSER)/.bashrc.XXX ]; then \\
@@ -1138,89 +1334,15 @@
 		rm -rf /home/\$(LUSER); \\
 	fi;
 
-EOF
-) >> $MKFILE
-fi
+########################################################
 
 
-if [[ "${METHOD}" = "boot" ]]; then
-(
-	cat << EOF
-
-all:	makeboot
-
-makeboot: 023-creatingtoolsdir 024-creatingcrossdir 025-addinguser 026-settingenvironment \
-	$cross_tools\
-	$temptools \
-	$chroottools \
-	$boottools restore-luser-env
-	@\$(call echo_boot_finished,$VERSION)
-
-makesys:  $testsuitetools $basicsystem $bootscripttools $bootabletools
-	@\$(call echo_finished,$VERSION)
-
-
-clean-all:  clean
-	rm -rf ./{clfs-commands,logs,Makefile,*.xsl,makefile-functions,packages,patches}
-
-clean:  clean-makesys clean-makeboot clean-jhalfs
-
-restart:
-	@echo "This feature does not exist for the CLFS makefile. (yet)"
-
-clean-jhalfs:
-	-if [ ! -f luser-exist ]; then \\
-		userdel \$(LUSER); \\
-		rm -rf /home/\$(LUSER); \\
-	fi;
-	rm -rf \$(MOUNT_PT)/tools
-	rm -f /tools
-	rm -rf \$(MOUNT_PT)/cross-tools
-	rm -f /cross-tools
-	rm -f envars luser-exist
-	rm -f 02* logs/02*.log
-
-clean-makeboot:
-	rm -rf /tools/*
-	rm -f $cross_tools && rm -f $temptools && rm -f $chroottools && rm -f $boottools
-	rm -f restore-luser-env sources-dir
-	cd logs && rm -f $cross_tools && rm -f $temptools && rm -f $chroottools && rm -f $boottools && cd ..
-
-clean-makesys:
-	-umount \$(MOUNT_PT)/sys
-	-umount \$(MOUNT_PT)/proc
-	-umount \$(MOUNT_PT)/dev/shm
-	-umount \$(MOUNT_PT)/dev/pts
-	-umount \$(MOUNT_PT)/dev
-	rm -rf \$(MOUNT_PT)/{bin,boot,dev,etc,home,lib,lib64,media,mnt,opt,proc,root,sbin,srv,sys,tmp,usr,var}
-	rm -f $basicsystem
-	rm -f $bootscripttools
-	rm -f $bootabletools
-	cd logs && rm -f $basicsystem && rm -f $bootscripttools && rm -f $bootabletools && cd ..
-
-
-restore-luser-env:
-	@\$(call echo_message, Building)
-	@if [ -f /home/\$(LUSER)/.bashrc.XXX ]; then \\
-		mv -fv /home/\$(LUSER)/.bashrc.XXX /home/\$(LUSER)/.bashrc; \\
-	fi;
-	@if [ -f /home/\$(LUSER)/.bash_profile.XXX ]; then \\
-		mv -v /home/\$(LUSER)/.bash_profile.XXX /home/\$(LUSER)/.bash_profile; \\
-	fi;
-	@chown \$(LUSER):\$(LGROUP) /home/\$(LUSER)/.bash* && \\
-	touch \$@ && \\
-	echo " "\$(BOLD)Target \$(BLUE)\$@ \$(BOLD)OK && \\
-	echo --------------------------------------------------------------------------------\$(WHITE)
-
-
 EOF
 ) >> $MKFILE
-fi
 
   # Bring over the items from the Makefile.tmp
   cat $MKFILE.tmp >> $MKFILE
   rm $MKFILE.tmp
+
   echo "Creating Makefile... ${BOLD}DONE${OFF}"
-
 }
-

Modified: jhalfs/branches/experimental/common/common-functions
===================================================================
--- jhalfs/branches/experimental/common/common-functions	2006-08-30 22:46:21 UTC (rev 3096)
+++ jhalfs/branches/experimental/common/common-functions	2006-09-02 03:04:03 UTC (rev 3097)
@@ -102,8 +102,44 @@
 #------------------------------------------------------#
 #------------------------------------------------------#
 
+#----------------------------------#
+ROOT_RunAsRoot() {                 # 
+#----------------------------------#
+  local file=$1
+(
+cat << EOF
+	@( time { source envars && \$(CMDSDIR)/$file >>logs/$this_script 2>&1 ; } ) 2>>logs/$this_script && \\
+	\$(PRT_DU_CR) >>logs/$this_script
+EOF
+) >> $MKFILE.tmp
+}
 
 #----------------------------------#
+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_target() {               # Create target and initialize log file
 #----------------------------------#
   local i=$1

Modified: jhalfs/branches/experimental/common/makefile-functions
===================================================================
--- jhalfs/branches/experimental/common/makefile-functions	2006-08-30 22:46:21 UTC (rev 3096)
+++ jhalfs/branches/experimental/common/makefile-functions	2006-09-02 03:04:03 UTC (rev 3097)
@@ -14,6 +14,14 @@
 REVERSE = ""
 
 
+define echo_PHASE
+  @clear
+  @echo $(BOLD)--------------------------------------------------------------------------------
+  @echo Executing $(BLUE)$(1)$(WHITE) scripts
+  @echo $(BOLD)--------------------------------------------------------------------------------
+  #echo $(WHITE)
+endef
+
 define echo_SU_request
   @echo $(BOLD)--------------------------------------------------------------------------------
   @echo $(BLUE)$@




More information about the alfs-log mailing list