Author: pierre
Date: Wed Mar 15 02:16:40 2017
New Revision: 3916

Log:
Add the possibility to install BLFS tools to a running LFS from the jhalfs
menu:
- Add the possibility to choose BOOK_BLFS from menu. That hides all the
  irrelevant parameters
- Adapt install-blfs-tools.sh
- Change slightly mconf.c so that there is a better alignement in menus

Modified:
   jhalfs/trunk/Config.in
   jhalfs/trunk/install-blfs-tools.sh
   jhalfs/trunk/menu/mconf.c

Modified: jhalfs/trunk/Config.in
==============================================================================
--- jhalfs/trunk/Config.in      Sun Mar 12 06:41:39 2017        (r3915)
+++ jhalfs/trunk/Config.in      Wed Mar 15 02:16:40 2017        (r3916)
@@ -1,1125 +1,1104 @@
-menu "--- BOOK Settings"
+menu "BOOK Settings"
 
-       #--- BOOK/script
-       choice
-               prompt "Use BOOK"
-               default BOOK_LFS
-               help
-                       #-- Select the BOOK/Build style you wish to configure.
-
-               config  BOOK_LFS
-                       bool "Linux From Scratch System V"
-
-               config  BOOK_LFS_SYSD
-                       bool "Linux From Scratch systemd"
-
-               config  BOOK_CLFS
-                       bool "Cross-Compiled Linux From Scratch"
-
-               config  BOOK_CLFS2
-                       bool "Cross-Compiled Linux From Scratch (Sysroot 
method)"
-
-               config  BOOK_CLFS3
-                       bool "Cross-Compiled Linux From Scratch (Embedded 
Systems)"
-
-#              config  BOOK_HLFS
-#                      bool "Hardened Linux From Scratch"
-       endchoice
-
-       config  INITSYS
-               string
-               default "sysv"          if BOOK_LFS
-               default "systemd"       if BOOK_LFS_SYSD
-
-       config  PROGNAME
-               string
-               default "lfs"           if BOOK_LFS || BOOK_LFS_SYSD
-               default "clfs"          if BOOK_CLFS
-               default "clfs2"         if BOOK_CLFS2
-               default "clfs3"         if BOOK_CLFS3
-               default "hlfs"          if BOOK_HLFS
-
-       config  RUN_ME
-               string
-               default "./jhalfs run"
-       #--- End BOOK/script
-
-       #--- Book version
-       choice
-               prompt  "Release"
-               default relSVN  if BOOK_LFS || BOOK_HLFS || BOOK_LFS_SYSD
-               default relGIT  if BOOK_CLFS || BOOK_CLFS2 || BOOK_CLFS3
-               config  relSVN
-                       bool    "SVN"
-                       depends on BOOK_LFS || BOOK_HLFS || BOOK_LFS_SYSD
-                       help
-                               #-- Current development version as in trunk
-
-               config  relGIT
-                       bool    "GIT"
-                       depends on BOOK_CLFS || BOOK_CLFS2 || BOOK_CLFS3
-                       help
-                               #-- Current development git master branch
-
-               config  WORKING_COPY
-                       bool    "Working Copy"
-                       help
-                               #-- A local working copy
-
-               config  BRANCH
-                       bool    "Branch or stable book" if !BOOK_CLFS2 && 
!BOOK_CLFS3
-                       help
-                               #-- A supported SVN/GIT branch or stable 
released book
-       endchoice
-
-       config  BRANCH_ID
-               string  "Stable Version or branch (preceded by branch-)"
-               default "**EDIT ME**"
-               depends BRANCH
-               help
-                       #-- A list of valid branches and stable book IDs is 
available here:
-                       #   
http://wiki.linuxfromscratch.org/alfs/wiki/SupportedBooks
-                       #   Enter branch-XXX for branch XXX, and just YYY for 
tag YYY or
-                       #   stable YYY version
-
-       config  BOOK
-               string  "Loc of working copy (mandatory)"
-               default "**EDIT ME**"
-               depends WORKING_COPY
-               help
-                       #-- The full path to a local copy of the book XML 
sources
-                       #
-       #--- End BOOK version
-
-       #--- CLFS specific params
-       choice
-               prompt  "Target architecture"
-               default ARCH_X86
-               depends BOOK_CLFS || BOOK_CLFS2 || BOOK_CLFS3
-               help
-                       #-- Choose the target system base architecture
-
-               config  ARCH_X86
-                       bool    "x86"
-
-               config  ARCH_MIPS
-                       bool    "mips"  if !BOOK_CLFS2
-
-               config  ARCH_PPC
-                       bool    "ppc"   if BOOK_CLFS
-
-               config  ARCH_SPARC
-                       bool    "sparc" if BOOK_CLFS
-
-               config  ARCH_ALPHA
-                       bool    "alpha" if !BOOK_CLFS3
-
-               config  ARCH_ARM
-                       bool    "arm"   if !BOOK_CLFS
-
-               config  ARCH_HPPA
-                       bool    "hppa"  if BOOK_CLFS2
-       endchoice
-
-       choice
-               prompt  "Hardware Platform"
-               depends BOOK_CLFS3 && ARCH_MIPS
-               default PLATFORM_GENERIC
-               help
-                       # Choose a destination platform
-                       # Platform specific files will be included
-
-               config  PLATFORM_GENERIC
-                       bool    "Generic platform"
-
-               config  PLATFORM_WRT
-                       bool    "WRT - MIPS based wireless router" if ARCH_MIPS
-       endchoice
-
-       choice
-               prompt  "Library"
-               depends (BOOK_CLFS && !ARCH_ALPHA) || (BOOK_CLFS3 && ARCH_MIPS)
-               default DATA_32
-               help
-                       #-- Choose the target system libraries type
-
-               config  DATA_32
-                       bool    "32-bit"
-
-               config  DATA_64
-                       bool    "64-bit"
-
-               config  DATA_MULTI
-                       bool    "multilib"      if !(BOOK_CLFS3 && ARCH_MIPS )
-       endchoice
-
-       choice
-               prompt  "Processor type"
-               depends (BOOK_CLFS || BOOK_CLFS2 || BOOK_CLFS3) && ((ARCH_X86 
&& !(DATA_64 || DATA_MULTI)) || ARCH_MIPS || ARCH_HPPA || ARCH_ALPHA || 
(ARCH_SPARC && (DATA_64 || DATA_MULTI)) || (ARCH_ARM && BOOK_CLFS3))
-               help
-                       #-- Choose the target system processor
-
-               config  PROC_i486
-                       bool    "486 Compatibles"                               
        if ARCH_X86
-
-               config  PROC_i586
-                       bool    "Pentium, K6, 586 Compatibles"                  
        if ARCH_X86
-
-               config  PROC_i686
-                       bool    "Pentium II, Pentium III, Pentium 4, Athlon, 
Duron"     if ARCH_X86
-
-               config  PROC_mipsel
-                       bool    "MIPS Little Endian"                            
        if ARCH_MIPS
-
-               config  PROC_mips
-                       bool    "MIPS Big Endian"                               
        if ARCH_MIPS
-
-               config  PROC_unknown
-                       bool    "Unknown"                                       
        if ARCH_HPPA || ARCH_ALPHA
-
-               config  PROC_hppa1
-                       bool    "PA 7000 Series"                                
        if ARCH_HPPA
-
-               config  PROC_hppa2
-                       bool    "PA 8000 Series"                                
        if ARCH_HPPA
-
-               config  PROC_EV5
-                       bool    "EV5 Series"                                    
        if ARCH_ALPHA
-
-               config  PROC_EV56
-                       bool    "EV56 Series"                                   
        if ARCH_ALPHA
-
-               config  PROC_PCA56
-                       bool    "PCA56 Series"                                  
        if ARCH_ALPHA
-
-               config  PROC_PCA57
-                       bool    "PCA57 Series"                                  
        if ARCH_ALPHA
-
-               config  PROC_EV6
-                       bool    "EV6 Series"                                    
        if ARCH_ALPHA
-
-               config  PROC_EV67
-                       bool    "EV67 Series"                                   
        if ARCH_ALPHA
-
-               config  PROC_EV68
-                       bool    "EV68 Series"                                   
        if ARCH_ALPHA
-
-               config  PROC_ARM
-                       bool    "Generic arm, little endian"                    
        if ARCH_ARM
-
-               config  PROC_ARM5L
-                       bool    "Generic arm, version 5, little endian"         
        if ARCH_ARM
-
-               config  PROC_ARM5B
-                       bool    "Generic arm, version 5, big endian"            
        if ARCH_ARM
-
-               config  PROC_ULTRA1
-                       bool    "UtraSparc"                                     
        if ARCH_SPARC && (DATA_64 || DATA_MULTI)
-
-               config  PROC_ULTRA2
-                       bool    "UtraSparc2"                                    
        if ARCH_SPARC && (DATA_64 || DATA_MULTI)
-
-               config  PROC_ULTRA3
-                       bool    "UtraSparc3"                                    
        if ARCH_SPARC && (DATA_64 || DATA_MULTI)
-       endchoice
-
-       choice
-               prompt  "MIPS 64 ABI"
-               depends BOOK_CLFS3 && ARCH_MIPS && DATA_64
-               default ABI_64
-               help
-                       #-- Choose the target system ABI to use
-
-               config  ABI_32
-                       bool    "o32"
-
-               config  ABI_N32
-                       bool    "n32"
-
-               config  ABI_64
-                       bool    "n64"
-       endchoice
-
-       config TARGET
-               string
-               default "i486-pc-linux-gnu"             if !BOOK_CLFS3 && 
PROC_i486
-               default "i586-pc-linux-gnu"             if !BOOK_CLFS3 && 
PROC_i586
-               default "i686-pc-linux-gnu"             if !BOOK_CLFS3 && 
PROC_i686
-
-               default "i486-pc-linux-uclibc"          if  BOOK_CLFS3 && 
PROC_i486
-               default "i586-pc-linux-uclibc"          if  BOOK_CLFS3 && 
PROC_i586
-               default "i686-pc-linux-uclibc"          if  BOOK_CLFS3 && 
PROC_i686
-
-               default "x86_64-unknown-linux-gnu"      if  ARCH_X86   && 
(DATA_64 || DATA_MULTI)
-
-               default "mipsel-unknown-linux-gnu"      if !BOOK_CLFS3 && 
PROC_mipsel && DATA_32
-               default "mips-unknown-linux-gnu"        if !BOOK_CLFS3 && 
PROC_mips   && DATA_32
-               default "mips64el-unknown-linux-gnu"    if !BOOK_CLFS3 && 
PROC_mipsel && (DATA_64 || DATA_MULTI)
-               default "mips64-unknown-linux-gnu"      if !BOOK_CLFS3 && 
PROC_mips   && (DATA_64 || DATA_MULTI)
-
-               default "mipsel-unknown-linux-uclibc"   if  BOOK_CLFS3 && 
PROC_mipsel && DATA_32
-               default "mips-unknown-linux-uclibc"     if  BOOK_CLFS3 && 
PROC_mips   && DATA_32
-               default "mips64el-unknown-linux-uclibc" if  BOOK_CLFS3 && 
PROC_mipsel && DATA_64
-               default "mips64-unknown-linux-uclibc"   if  BOOK_CLFS3 && 
PROC_mips   && DATA_64
-
-               default "powerpc-unknown-linux-gnu"     if  ARCH_PPC && DATA_32
-               default "powerpc64-unknown-linux-gnu"   if  ARCH_PPC && 
(DATA_MULTI || DATA_64)
-
-               default "sparc-unknown-linux-gnu"       if  ARCH_SPARC && 
DATA_32
-               default "sparc64-unknown-linux-gnu"     if  ARCH_SPARC && 
(DATA_64 || DATA_MULTI)
-
-               default "hppa-unknown-linux-gnu"        if  PROC_unknown && 
ARCH_HPPA
-               default "hppa1.1-unknown-linux-gnu"     if  PROC_hppa1
-               default "hppa2.0-unknown-linux-gnu"     if  PROC_hppa2
-
-               default "arm-unknown-linux-gnueabi"     if  ARCH_ARM && 
BOOK_CLFS2
-
-               default "arm-unknown-linux-uclibc"      if  PROC_ARM
-               default "armv5l-unknown-linux-uclibc"   if  PROC_ARM5L
-               default "armv5b-unknown-linux-uclibc"   if  PROC_ARM5B
-
-               default "alpha-unknown-linux-gnu"       if  PROC_unknown && 
ARCH_ALPHA
-               default "alphaev5-unknown-linux-gnu"    if  PROC_EV5
-               default "alphaev56-unknown-linux-gnu"   if  PROC_EV56
-               default "alphapca56-unknown-linux-gnu"  if  PROC_PCA56
-               default "alphapca57-unknown-linux-gnu"  if  PROC_PCA57
-               default "alphaev6-unknown-linux-gnu"    if  PROC_EV6
-               default "alphaev67-unknown-linux-gnu"   if  PROC_EV67
-               default "alphaev68-unknown-linux-gnu"   if  PROC_EV68
-
-       config TARGET32
-               string
-               depends DATA_MULTI
-               default "i686-pc-linux-gnu"             if ARCH_X86
-               default "mipsel-unknown-linux-gnu"      if PROC_mipsel
-               default "mips-unknown-linux-gnu"        if PROC_mips
-               default "sparc-unknown-linux-gnu"       if ARCH_SPARC
-               default "powerpc-unknown-linux-gnu"     if ARCH_PPC
-
-       config  PLATFORM
-               string
-               default "GENERIC"                       if (!BOOK_CLFS3) || 
PLATFORM_GENERIC
-               default "WRT - Wireless Router"         if PLATFORM_WRT
-
-       config  SPARC64_PROC
-               string
-               default "none"                          if !(ARCH_SPARC && 
(DATA_64 || DATA_MULTI))
-               default "1"                             if PROC_ULTRA1
-               default "2"                             if PROC_ULTRA2
-               default "3"                             if PROC_ULTRA3
-
-       config  ARCH
-               string
-               default "x86"           if ARCH_X86   && (DATA_32 || BOOK_CLFS2 
|| BOOK_CLFS3)
-               default "x86_64"        if ARCH_X86   && DATA_MULTI
-               default "x86_64-64"     if ARCH_X86   && DATA_64
-
-               default "wrt"           if PLATFORM_WRT && BOOK_CLFS3
-
-               default "mips"          if ARCH_MIPS  && (DATA_32 || BOOK_CLFS3)
-               default "mips64"        if ARCH_MIPS  && DATA_MULTI
-               default "mips64-64"     if ARCH_MIPS  && DATA_64 && BOOK_CLFS
-
-
-               default "ppc"           if ARCH_PPC   && DATA_32
-               default "ppc64"         if ARCH_PPC   && DATA_MULTI
-               default "ppc64-64"      if ARCH_PPC   && DATA_64
-
-               default "sparc"         if ARCH_SPARC && DATA_32
-               default "sparc64"       if ARCH_SPARC && DATA_MULTI
-               default "sparc64-64"    if ARCH_SPARC && DATA_64
-
-               default "alpha"         if ARCH_ALPHA
-               default "arm"           if ARCH_ARM
-               default "hppa"          if ARCH_HPPA
-
-       config  MIPS_LEVEL
-               string
-               depends BOOK_CLFS3 && ARCH_MIPS
-               default "1"             if DATA_32
-               default "3"             if DATA_64
-
-       config  ABI
-               string
-               depends BOOK_CLFS3
-               default "-m32"          if ARCH_X86 || ARCH_ARM
-#              default "-m64"          if NO USED YET IN THE BOOK
-               default "-mabi=32"      if ABI_32 || (ARCH_MIPS && DATA_32)
-               default "-mabi=n32"     if ABI_N32
-               default "-mabi=64"      if ABI_64
-
-       config  ENDIAN
-               string
-               depends BOOK_CLFS3 && (ARCH_MIPS || ARCH_ARM)
-               default "little"        if PROC_mipsel || PROC_ARM || PROC_ARM5L
-               default "big"           if PROC_mips || PROC_ARM5B
-
-       choice
-               prompt  "Build method"
-               depends BOOK_CLFS
-               help
-                       #-- What build method should be used: a chroot jail or 
minimal boot system
-                       #   Review the Cross-LFS book chap6 "TO BOOT OR CHROOT" 
for a full explanation.
-
-               config  BUILD_CHROOT
-                       bool    "chroot"
-
-               config  BUILD_BOOT
-                       bool    "boot"
-       endchoice
-
-       config  METHOD
-               string
-               default "chroot"        if BUILD_CHROOT
-               default "boot"          if BUILD_BOOT
-
-       config  BOOT_CONFIG
-               string  "BOOT kernel config file (mandatory)"
-               default "***EDIT ME***"
-               depends on BUILD_BOOT
-               help
-                       #-- If METHOD=boot, location of boot-kernel config file
-                       #   The config file will be copied to 
${BUILD_DIR}/sources
-                       #   and renamed 'bootkernel-config'
-                       #
-                       # NOTE: this setting is required
-       #--- End CLFS specific params
-
-       #--- HLFS specific params
-       config  GRSECURITY_HOST
-               bool    "Building on grsecurity enabled host?"
-               default n
-               depends on BOOK_HLFS
-               help
-                       #-- If your build system has grsecurity patches applied
-                       #   you MUST enable this switch.
-
-       choice
-               prompt "Library"
-               depends on BOOK_HLFS
-               help
-                       #-- Which library model to use: uClibc/glibc
-
-               config  LIB_GLIBC
-                       bool "glibc"
-
-               config  LIB_UCLIBC
-                       bool "uClibc"
-       endchoice
-
-       config  MODEL
-               depends on BOOK_HLFS
-               string
-               default "glibc"         if LIB_GLIBC
-               default "uclibc"        if LIB_UCLIBC
-
-       choice
-               prompt "Kernel series"
-               depends on BOOK_HLFS
-               help
-                       #-- Which kernel series to use: 2.6/2.4
-
-               config  KERNEL_26
-                       bool "2.6 kernel series"
-
-               config  KERNEL_24
-                       bool "2.4 kernel series"
-       endchoice
-
-       config  KERNEL
-               depends on BOOK_HLFS
-               string
-               default "2.6"           if KERNEL_26
-               default "2.4"           if KERNEL_24
-
-       #--- Custom Tools support
-       config CUSTOM_TOOLS
-               bool    "Add custom tools support"
-               default n
-               help
-                       #--- Activating this option additional packages you 
create
-                       #    will be installed after finished the xLFS system 
build.
-                       #
-       #--- End Custom Tools support
-
-       #--- blfs-tool Support
-       config BLFS_TOOL
-               bool    "Add blfs-tool support"
-               default n
-               depends on !BOOK_CLFS3
-               help
-                       #--- Activating this option will install additional
-                       #    packages needed to use blfs-tool when booting
-                       #    the new system.
-                       #
-                       #    The blfs-tool files will be installed under
-                       #    $BUILD_DIR/blfs_root.
-
-                       #    After booting the new xLFS system, but before using
-                        #    blfs-tool,  you should create a user account and
-                        #    move the /blfs-root directory to the user's home,
-                       #    making them the directory and files owner.
-                       #
-                       #    Also, be sure to give the user read and write
-                       #    privileges on the $TRACKING_DIR directory and
-                       #    the files that it contains.
-                       #
-                       #    Don't forget to configure sudo properly.
-
-       choice
-               prompt  "BLFS Release"
-               default BLFS_SVN
-               depends on BLFS_TOOL
-               config  BLFS_SVN
-                       bool    "BLFS SVN"
-                       help
-                               #-- Current development version as in trunk
-
-               config  BLFS_WORKING_COPY
-                       bool    "BLFS working copy"
-                       help
-                               #-- A local working copy of the BLFS book.
-
-               config  BLFS_BRANCH
-                       bool    "BLFS Branch or stable book"
-                       help
-                               #-- A supported SVN branch or stable book 
release
-       endchoice
-
-       config  BLFS_WC_LOCATION
-               string  "Location of the local BLFS working copy (mandatory)"
-               default "**EDIT ME**"
-               depends on BLFS_WORKING_COPY
-               help
-                       #-- Full path to the BLFS book working copy"
-
-       config  BLFS_BRANCH_ID
-               string  "BLFS Book Version (mandatory)"
-               default "**EDIT ME**"
-               depends on BLFS_BRANCH
-               help
-                       #-- A list of valid branches and stable book IDs is 
available here.
-                       #   
http://wiki.linuxfromscratch.org/alfs/wiki/SupportedBooks
-
-       menu "blfs-tool dependencies"
-               depends on BLFS_TOOL
-
-               config  DEP_LIBXML
-               bool    "libxml2 (required)"
-               default y
-
-               config  DEP_LIBXSLT
-               bool    "libxslt (required)"
-               default y
-
-               config  DEP_DBXML
-               bool    "DocBook XML DTD (required)"
-               default y
-
-               #config DEP_DBXSL
-               #bool   "DocBook XSL (required)"
-               #default        y
-
-               config  DEP_LYNX
-               bool    "lynx (optional, for reading the generated book)"
-               default y
-
-               config  DEP_SUDO
-               bool    "sudo (recommended)"
-               default y
-
-               config  DEP_WGET
-               bool    "wget (recommended)"
-               default y
-
-               config  DEP_GPM
-               bool    "GPM (optional, see help)"
-               default n
-               help
-                       #-- if you install gpm, it will be started
-                       #   automatically on boot. You'll have to edit
-                       #   /etc/sysconfig/mouse for your system
-
-               config  DEP_SVN
-               bool    "SVN client (optional, see help)"
-               default n
-               help
-                       #-- Subversion is needed for updating the book
-                       #   sources. If you want ssl support, select
-                       #   OPENSSL below.
-
-               config  DEP_OPENSSL
-               bool    "OPENSSL (optional, see help)"
-               default n
-               help
-                       #-- selecting OPENSSL here allows to build
-                       #   subversion with ssl support, avoiding a later
-                       #   recompilation
-
-               config  DEP_PYTHON
-               bool    "PYTHON 2 (optional, see help)"
-               default n
-               help
-                       #-- selecting PYTHON 2 here allows to build
-                       #   the libxml2 and libxslt python modules,
-                       #   avoiding a later recompilation
-
-       endmenu
-       #--- End blfs-tool Support
-
-       #--- BLFS specific params
-       config  BLFS_ROOT
-               string "Directory root"
-               default "/blfs_root"
-               depends on BLFS_TOOL
-               help
-                       #-- Full path to the directory where all required
-                       #   files and scripts will be stored.
-
-       config  BLFS_XML
-               string "BLFS sources directory"
-               default "blfs-xml"
-               depends BLFS_TOOL
-               help
-                       #-- The directory name under $BLFS_ROOT where the BLFS
-                        #   book sources will be checkout.
-
-       config  TRACKING_DIR
-               string "Installed packages database directory"
-               default "/var/lib/jhalfs/BLFS"
-               depends on BLFS_TOOL || CUSTOM_TOOLS
-               help
-                       #-- Full path to the directory where the database of
-                        #   installed packages will be created.
-                       #
-                       #   If you are installing blfs-tool on a running xLFS 
system
-                        #   you MUST create this directory manually.
-                        #
-                        #   If you are installing blfs-tool as part of an xLFS 
build
-                        #   and/or using the customized scripts feature, you 
will
-                        #   need to fix this directory's permissions after 
booting
-                        #   the new system.
-                       #
-                       #   Note that the user that will build the packages must
-                       #   have read and write privileges on this directory.
-       #--- End BLFS specific params
+    #--- BOOK/script
+    choice
+        prompt "Use BOOK"
+        default BOOK_LFS
+        help
+            Select the book where build instructions are retrieved.
+
+        config    BOOK_LFS
+            bool "Linux From Scratch System V"
+            help
+                Set up the tools to build LFS with Sys V init.
+
+        config    BOOK_LFS_SYSD
+            bool "Linux From Scratch systemd"
+            help
+                Set up the tools to build LFS with systemd init.
+
+        config    BOOK_CLFS
+            bool "Cross-Compiled Linux From Scratch"
+            help
+                Set up the tools to build CLFS.
+
+        config    BOOK_CLFS2
+            bool "Cross-Compiled Linux From Scratch (Sysroot method)"
+            help
+                Set up the tools to build CLFS by the sysroot method.
+
+        config    BOOK_CLFS3
+            bool "Cross-Compiled Linux From Scratch (Embedded Systems)"
+            help
+                Set up the tools to build CLFS with tools for embedded systems.
+
+        config    BOOK_BLFS
+            bool "Beyond Linux From Scratch (see help)"
+            help
+                if the (C)LFS system has already been built, install the tools
+                to build BLFS packages.
+    endchoice
+
+    config    INITSYS
+        string
+        default "sysv"         if BOOK_LFS
+        default "systemd"      if BOOK_LFS_SYSD
+
+    config    PROGNAME
+        string
+        default "lfs"          if BOOK_LFS || BOOK_LFS_SYSD
+        default "clfs"         if BOOK_CLFS
+        default "clfs2"        if BOOK_CLFS2
+        default "clfs3"        if BOOK_CLFS3
+
+    config    RUN_ME
+        string
+        default "./jhalfs run" if BOOK_LFS || BOOK_LFS_SYSD || BOOK_CLFS || \
+                                  BOOK_CLFS2 || BOOK_CLFS_3
+        default "./install-blfs-tools.sh auto" if BOOK_BLFS
+    #--- End BOOK/script
+
+    #--- Book version
+    choice
+        prompt   "Release"
+        default   relSVN    if BOOK_LFS || BOOK_LFS_SYSD || BOOK_BLFS
+        default   relGIT    if BOOK_CLFS || BOOK_CLFS2 || BOOK_CLFS3
+
+        config    relSVN
+            bool    "SVN"
+            depends on BOOK_LFS || BOOK_BLFS || BOOK_LFS_SYSD
+            help
+                Current development version as in trunk
+
+        config    relGIT
+            bool    "GIT"
+            depends on BOOK_CLFS || BOOK_CLFS2 || BOOK_CLFS3
+            help
+                Current development git master branch
+
+        config    WORKING_COPY
+            bool    "Working Copy"
+            help
+                A local working copy
+
+        config    BRANCH
+            bool    "Branch or stable book" if !BOOK_CLFS2 && !BOOK_CLFS3
+            help
+                A supported SVN/GIT branch or stable released book
+    endchoice
+
+    config    BRANCH_ID
+        string    "Branch (preceded by \"branch-\"), stable Version, or tag"
+        default    "**EDIT ME**"
+        depends    BRANCH
+        help
+            A list of valid branches and stable book IDs is available at
+            http://wiki.linuxfromscratch.org/alfs/wiki/SupportedBooks
+            
+            Enter "branch-XXX" for branch XXX, or just "YYY" for stable (or 
tag)
+            YYY version.
+
+    config    BOOK
+        string    "Loc of working copy (mandatory)"
+        default    "**EDIT ME**"
+        depends    WORKING_COPY
+        help
+            The full path to a local copy of the book XML sources
+
+    #--- End BOOK version
+
+    #--- CLFS specific params
+    choice
+        prompt    "Target architecture"
+        default    ARCH_X86
+        depends    BOOK_CLFS || BOOK_CLFS2 || BOOK_CLFS3
+        help
+            Choose the target system base architecture
+
+        config    ARCH_X86
+            bool    "x86"
+
+        config    ARCH_MIPS
+            bool    "mips"    if !BOOK_CLFS2
+
+        config    ARCH_PPC
+            bool    "ppc"    if BOOK_CLFS
+
+        config    ARCH_SPARC
+            bool    "sparc"    if BOOK_CLFS
+
+        config    ARCH_ALPHA
+            bool    "alpha"    if !BOOK_CLFS3
+
+        config    ARCH_ARM
+            bool    "arm"    if !BOOK_CLFS
+
+        config    ARCH_HPPA
+            bool    "hppa"    if BOOK_CLFS2
+    endchoice
+
+    choice
+        prompt    "Hardware Platform"
+        depends    BOOK_CLFS3 && ARCH_MIPS
+        default    PLATFORM_GENERIC
+        help
+            Choose a destination platform
+            Platform specific files will be included
+
+        config    PLATFORM_GENERIC
+            bool    "Generic platform"
+
+        config    PLATFORM_WRT
+            bool    "WRT - MIPS based wireless router" if ARCH_MIPS
+    endchoice
+
+    choice
+        prompt    "Library"
+        depends    (BOOK_CLFS && !ARCH_ALPHA) || (BOOK_CLFS3 && ARCH_MIPS)
+        default    DATA_32
+        help
+            Choose the target system libraries type
+
+        config    DATA_32
+            bool    "32-bit"
+
+        config    DATA_64
+            bool    "64-bit"
+
+        config    DATA_MULTI
+            bool    "multilib"    if !(BOOK_CLFS3 && ARCH_MIPS )
+    endchoice
+
+    choice
+        prompt    "Processor type"
+        depends    (BOOK_CLFS || BOOK_CLFS2 || BOOK_CLFS3) && ((ARCH_X86 && 
!(DATA_64 || DATA_MULTI)) || ARCH_MIPS || ARCH_HPPA || ARCH_ALPHA || 
(ARCH_SPARC && (DATA_64 || DATA_MULTI)) || (ARCH_ARM && BOOK_CLFS3))
+        help
+            Choose the target system processor
+
+        config    PROC_i486
+            bool    "486 Compatibles"                    if ARCH_X86
+
+        config    PROC_i586
+            bool    "Pentium, K6, 586 Compatibles"                if ARCH_X86
+
+        config    PROC_i686
+            bool    "Pentium II, Pentium III, Pentium 4, Athlon, Duron"    if 
ARCH_X86
+
+        config    PROC_mipsel
+            bool    "MIPS Little Endian"                    if ARCH_MIPS
+
+        config    PROC_mips
+            bool    "MIPS Big Endian"                    if ARCH_MIPS
+
+        config    PROC_unknown
+            bool    "Unknown"                        if ARCH_HPPA || ARCH_ALPHA
+
+        config    PROC_hppa1
+            bool    "PA 7000 Series"                    if ARCH_HPPA
+
+        config    PROC_hppa2
+            bool    "PA 8000 Series"                    if ARCH_HPPA
+
+        config    PROC_EV5
+            bool    "EV5 Series"                        if ARCH_ALPHA
+
+        config    PROC_EV56
+            bool    "EV56 Series"                        if ARCH_ALPHA
+
+        config    PROC_PCA56
+            bool    "PCA56 Series"                        if ARCH_ALPHA
+
+        config    PROC_PCA57
+            bool    "PCA57 Series"                        if ARCH_ALPHA
+
+        config    PROC_EV6
+            bool    "EV6 Series"                        if ARCH_ALPHA
+
+        config    PROC_EV67
+            bool    "EV67 Series"                        if ARCH_ALPHA
+
+        config    PROC_EV68
+            bool    "EV68 Series"                        if ARCH_ALPHA
+
+        config    PROC_ARM
+            bool    "Generic arm, little endian"                if ARCH_ARM
+
+        config    PROC_ARM5L
+            bool    "Generic arm, version 5, little endian"            if 
ARCH_ARM
+
+        config    PROC_ARM5B
+            bool    "Generic arm, version 5, big endian"            if ARCH_ARM
+
+        config    PROC_ULTRA1
+            bool    "UtraSparc"                        if ARCH_SPARC && 
(DATA_64 || DATA_MULTI)
+
+        config    PROC_ULTRA2
+            bool    "UtraSparc2"                        if ARCH_SPARC && 
(DATA_64 || DATA_MULTI)
+
+        config    PROC_ULTRA3
+            bool    "UtraSparc3"                        if ARCH_SPARC && 
(DATA_64 || DATA_MULTI)
+    endchoice
+
+    choice
+        prompt    "MIPS 64 ABI"
+        depends    BOOK_CLFS3 && ARCH_MIPS && DATA_64
+        default    ABI_64
+        help
+            Choose the target system ABI to use
+
+        config    ABI_32
+            bool    "o32"
+
+        config    ABI_N32
+            bool    "n32"
+
+        config    ABI_64
+            bool    "n64"
+    endchoice
+
+    config TARGET
+        string
+        default "i486-pc-linux-gnu"        if !BOOK_CLFS3 && PROC_i486
+        default "i586-pc-linux-gnu"        if !BOOK_CLFS3 && PROC_i586
+        default "i686-pc-linux-gnu"        if !BOOK_CLFS3 && PROC_i686
+
+        default "i486-pc-linux-uclibc"     if  BOOK_CLFS3 && PROC_i486
+        default "i586-pc-linux-uclibc"     if  BOOK_CLFS3 && PROC_i586
+        default "i686-pc-linux-uclibc"     if  BOOK_CLFS3 && PROC_i686
+
+        default "x86_64-unknown-linux-gnu" if  ARCH_X86   && (DATA_64 || 
DATA_MULTI)
+
+        default "mipsel-unknown-linux-gnu" if !BOOK_CLFS3 && PROC_mipsel && 
DATA_32
+        default "mips-unknown-linux-gnu"   if !BOOK_CLFS3 && PROC_mips   && 
DATA_32
+        default "mips64el-unknown-linux-gnu" if !BOOK_CLFS3 && PROC_mipsel && 
(DATA_64 || DATA_MULTI)
+        default "mips64-unknown-linux-gnu" if !BOOK_CLFS3 && PROC_mips   && 
(DATA_64 || DATA_MULTI)
+
+        default "mipsel-unknown-linux-uclibc" if  BOOK_CLFS3 && PROC_mipsel && 
DATA_32
+        default "mips-unknown-linux-uclibc" if  BOOK_CLFS3 && PROC_mips   && 
DATA_32
+        default "mips64el-unknown-linux-uclibc" if  BOOK_CLFS3 && PROC_mipsel 
&& DATA_64
+        default "mips64-unknown-linux-uclibc" if  BOOK_CLFS3 && PROC_mips   && 
DATA_64
+
+        default "powerpc-unknown-linux-gnu" if  ARCH_PPC && DATA_32
+        default "powerpc64-unknown-linux-gnu" if  ARCH_PPC && (DATA_MULTI || 
DATA_64)
+
+        default "sparc-unknown-linux-gnu"   if  ARCH_SPARC && DATA_32
+        default "sparc64-unknown-linux-gnu" if  ARCH_SPARC && (DATA_64 || 
DATA_MULTI)
+
+        default "hppa-unknown-linux-gnu"    if  PROC_unknown && ARCH_HPPA
+        default "hppa1.1-unknown-linux-gnu" if  PROC_hppa1
+        default "hppa2.0-unknown-linux-gnu" if  PROC_hppa2
+
+        default "arm-unknown-linux-gnueabi" if  ARCH_ARM && BOOK_CLFS2
+
+        default "arm-unknown-linux-uclibc"  if  PROC_ARM
+        default "armv5l-unknown-linux-uclibc" if  PROC_ARM5L
+        default "armv5b-unknown-linux-uclibc" if  PROC_ARM5B
+
+        default "alpha-unknown-linux-gnu"   if  PROC_unknown && ARCH_ALPHA
+        default "alphaev5-unknown-linux-gnu" if  PROC_EV5
+        default "alphaev56-unknown-linux-gnu" if  PROC_EV56
+        default "alphapca56-unknown-linux-gnu" if  PROC_PCA56
+        default "alphapca57-unknown-linux-gnu" if  PROC_PCA57
+        default "alphaev6-unknown-linux-gnu" if  PROC_EV6
+        default "alphaev67-unknown-linux-gnu" if  PROC_EV67
+        default "alphaev68-unknown-linux-gnu" if  PROC_EV68
+
+    config TARGET32
+        string
+        depends    DATA_MULTI
+        default "i686-pc-linux-gnu"        if ARCH_X86
+        default "mipsel-unknown-linux-gnu" if PROC_mipsel
+        default "mips-unknown-linux-gnu"   if PROC_mips
+        default "sparc-unknown-linux-gnu"  if ARCH_SPARC
+        default "powerpc-unknown-linux-gnu" if ARCH_PPC
+
+    config  PLATFORM
+        string
+        default "GENERIC"               if (!BOOK_CLFS3) || PLATFORM_GENERIC
+        default "WRT - Wireless Router" if PLATFORM_WRT
+
+    config  SPARC64_PROC
+        string
+        default "none"                if !(ARCH_SPARC && (DATA_64 || 
DATA_MULTI))
+        default    "1"                if PROC_ULTRA1
+        default    "2"                if PROC_ULTRA2
+        default    "3"                if PROC_ULTRA3
+
+    config    ARCH
+        string
+        default   "x86"        if ARCH_X86   && (DATA_32 || BOOK_CLFS2 || 
BOOK_CLFS3)
+        default   "x86_64"     if ARCH_X86   && DATA_MULTI
+        default   "x86_64-64"  if ARCH_X86   && DATA_64
+
+        default   "wrt"        if PLATFORM_WRT && BOOK_CLFS3
+
+        default   "mips"       if ARCH_MIPS  && (DATA_32 || BOOK_CLFS3)
+        default   "mips64"     if ARCH_MIPS  && DATA_MULTI
+        default   "mips64-64"  if ARCH_MIPS  && DATA_64 && BOOK_CLFS
+
+
+        default   "ppc"        if ARCH_PPC   && DATA_32
+        default   "ppc64"      if ARCH_PPC   && DATA_MULTI
+        default   "ppc64-64"   if ARCH_PPC   && DATA_64
+
+        default   "sparc"      if ARCH_SPARC && DATA_32
+        default   "sparc64"    if ARCH_SPARC && DATA_MULTI
+        default   "sparc64-64" if ARCH_SPARC && DATA_64
+
+        default   "alpha"      if ARCH_ALPHA
+        default   "arm"        if ARCH_ARM
+        default   "hppa"       if ARCH_HPPA
+
+    config  MIPS_LEVEL
+        string
+        depends BOOK_CLFS3 && ARCH_MIPS
+        default "1"        if DATA_32
+        default "3"        if DATA_64
+
+    config    ABI
+        string
+        depends BOOK_CLFS3
+        default "-m32"      if ARCH_X86 || ARCH_ARM
+#        default "-m64"     if NO USED YET IN THE BOOK
+        default "-mabi=32"  if ABI_32 || (ARCH_MIPS && DATA_32)
+        default "-mabi=n32" if ABI_N32
+        default "-mabi=64"  if ABI_64
+
+    config    ENDIAN
+        string
+        depends BOOK_CLFS3 && (ARCH_MIPS || ARCH_ARM)
+        default "little"    if PROC_mipsel || PROC_ARM || PROC_ARM5L
+        default "big"       if PROC_mips || PROC_ARM5B
+
+    choice
+        prompt    "Build method"
+        depends    BOOK_CLFS
+        help
+            What build method should be used: a chroot jail or minimal boot
+            system. Review the Cross-LFS book chap6 "TO BOOT OR CHROOT" for
+            a full explanation.
+
+        config    BUILD_CHROOT
+            bool    "chroot"
+
+        config    BUILD_BOOT
+            bool    "boot"
+    endchoice
+
+    config    METHOD
+        string
+        default "chroot"    if BUILD_CHROOT
+        default "boot"      if BUILD_BOOT
+
+    config    BOOT_CONFIG
+        string  "BOOT kernel config file (mandatory)"
+        default "***EDIT ME***"
+        depends on BUILD_BOOT
+        help
+            If METHOD=boot, location of boot-kernel config file
+            The config file will be copied to ${BUILD_DIR}/sources
+            and renamed 'bootkernel-config'
+            NOTE: this setting is required
+    #--- End CLFS specific params
+
+    #--- blfs-tool Support
+    config BLFS_TOOL
+        bool    "Add blfs-tool support"
+        default    n
+        depends on !BOOK_CLFS3 && !BOOK_BLFS
+        help
+            Activating this option will install additional packages needed
+            to use blfs tools after booting the new system.
+            The blfs-tool files will be installed under $BUILD_DIR/blfs_root
+            (see below).
+            After booting the new xLFS system, but before using the blfs tools,
+            you should create a user account, move the /blfs_root directory
+            to that user's home, and change its ownership to that of the user.
+            Also, be sure to give the user read and write access on the
+            $TRACKING_DIR directory and the files that it contains.
+            Don't forget to configure sudo properly on the new system.
+
+    config DUMMY # Avoid indenting the items below
+    bool
+
+    if BLFS_TOOL
+        menu "blfs-tool dependencies"
+
+            config    DEP_LIBXML
+            bool    "libxml2 (required)"
+            default    y
+
+            config    DEP_LIBXSLT
+            bool    "libxslt (required)"
+            default    y
+
+            config    DEP_DBXML
+            bool    "DocBook XML DTD (required)"
+            default    y
+
+            config    DEP_LYNX
+            bool    "lynx (optional, for reading the generated book)"
+            default    y
+
+            config    DEP_SUDO
+            bool    "sudo (recommended)"
+            default    y
+
+            config    DEP_WGET
+            bool    "wget (recommended)"
+            default    y
+
+            config    DEP_GPM
+            bool    "GPM (optional, see help)"
+            default    n
+            help
+                if you install gpm, it will be started
+                automatically on boot. You'll have to edit
+                /etc/sysconfig/mouse for your system
+
+            config    DEP_SVN
+            bool    "SVN client (optional, see help)"
+            default    n
+            help
+                Subversion is needed for updating the book
+                sources. If you want ssl support, select
+                OPENSSL below.
+
+            config    DEP_OPENSSL
+            bool    "OPENSSL (optional, see help)"
+            default    n
+            help
+                selecting OPENSSL here allows to build
+                subversion with ssl support, avoiding a later
+                recompilation
+
+            config    DEP_PYTHON
+            bool    "PYTHON 2 (optional, see help)"
+            default    n
+            help
+                selecting PYTHON 2 here allows to build
+                the libxml2 and libxslt python modules,
+                avoiding a later recompilation
+
+        endmenu
+
+        choice
+        prompt    "BLFS Release"
+        default    BLFS_SVN
+
+            config    BLFS_SVN
+            bool    "BLFS SVN"
+            help
+                Current development version as in trunk
+
+            config    BLFS_WORKING_COPY
+            bool    "BLFS working copy"
+            help
+                A local working copy of the BLFS book.
+
+            config    BLFS_BRANCH
+            bool    "BLFS Branch or stable book"
+            help
+                A supported SVN branch or stable book release
+        endchoice
+
+        config    BLFS_WC_LOCATION
+        string    "Location of the local BLFS working copy (mandatory)"
+        default    "**EDIT ME**"
+        depends on BLFS_WORKING_COPY
+        help
+            Full path to the BLFS book working copy"
+
+        config    BLFS_BRANCH_ID
+        string    "BLFS Book Version (mandatory)"
+        default    "**EDIT ME**"
+        depends on BLFS_BRANCH
+        help
+            A list of valid branches and stable book IDs is available at
+            http://wiki.linuxfromscratch.org/alfs/wiki/SupportedBooks.
+    endif
+    #--- End blfs-tool Support
+
+    #--- BLFS params (Used for installing the tools, either after a jhalfs run
+    #    or directly)
+        config    BLFS_ROOT
+        string "Root of the tools directory (see help)"
+        default "/blfs_root"
+        depends on BLFS_TOOL || BOOK_BLFS
+        help
+            Path to the directory where all required files and scripts
+            will be stored.
+            
+            This path must begin with a slash, and:
+            - is relative to the user's HOME directory when installing the
+              blfs tools on an already existing LFS system.
+            - is relative to the root of the build directory (`/' in chroot)
+              when adding the tools after a jhalfs run
+            
+            CAUTION: this directory will be removed if it already exists.
+
+        config    BLFS_XML
+        string "BLFS sources directory (internal parameter)"
+        default "blfs-xml"
+        depends BLFS_TOOL || BOOK_BLFS
+        help
+            The directory name under $BLFS_ROOT where the BLFS
+            book sources will be copied or checked out. Do not change that
+            unless you know what you are doing...
+    # End of BLFS parameters
+
+    #--- Custom Tools support
+    config CUSTOM_TOOLS
+        depends !BOOK_BLFS
+        bool    "Add custom tools support"
+        default    n
+        help
+            Activating this option additional packages you create
+            will be installed after finished the xLFS system build.
+    #--- End Custom Tools support
+
+    #--- This direcotry is needed for blfs tools installation and custom tools
+    #    As well.
+    config    TRACKING_DIR
+        string "Installed packages database directory"
+        default "/var/lib/jhalfs/BLFS"
+        depends on BOOK_BLFS || BLFS_TOOL || CUSTOM_TOOLS
+        help
+            Full path to the directory where the database of
+            installed packages will be created.
+            
+            If the blfs tools are installed on a running xLFS system,
+            the user must have enough privileges to create this directory.
+            It may be necessary to create the /var/lib/jhalfs directory as
+            root, and make it writable by the user before running this tool.
+            
+            If you are installing the blfs tools as part of an xLFS build
+            and/or using the customized scripts feature, you will
+            need to fix this directory's permissions after booting
+            the new system.
+            
+            Note that the user that will build the packages must
+            have read and write access to this directory.
 
 #--- End BOOK Settings
 endmenu
 
-menu "--- General Settings"
+menu "General Settings"
+depends !BOOK_BLFS
 
-       #--- Set User Account
-       config  CONFIG_USER
-               bool    "Change the default user/group and homedir for this 
build"
-               default n
-               help    #-- Unprivileged user and group name
-                       #   If you do not have the privilege to create/delete
-                       #   users and groups you can specify your own
-                       #   user ID for the build
-                       #
-                       # default values for each book
-                       # LFS    lfs
-                       # CLFS*  clfs
-                       # HLFS   hlfs
-                       #
-                       # Also, if your host places users' home dirs into a
-                       # directory other than /home you can specify it here.
-
-       config  DEF_USER
-               string
-               default "lfs"   if BOOK_LFS || BOOK_LFS_SYSD
-               default "clfs"  if BOOK_CLFS || BOOK_CLFS2 || BOOK_CLFS3
-               default "hlfs"  if BOOK_HLFS
-
-       config  SET_USER
-               string  "User account"
-               depends CONFIG_USER
-               default DEF_USER
-
-       config  CONFIG_GROUP
-               bool    "Set Group?"
-               default n
-               depends CONFIG_USER
-
-       config  SET_GROUP
-               string  "GROUP account"
-               depends CONFIG_GROUP
-               default DEF_USER
-
-       config  CONFIG_HOME
-               bool    "Set home dir?"
-               default n
-               depends CONFIG_USER
-
-       config  SET_HOME
-               string  "Path to the directory under which the user's home 
directory will be created"
-               depends CONFIG_HOME
-               default "/home"
-
-       config  LUSER
-               string
-               default DEF_USER        if !CONFIG_USER
-               default SET_USER        if  CONFIG_USER
-
-       config  LGROUP
-               string
-               default LUSER           if !CONFIG_GROUP
-               default SET_GROUP       if  CONFIG_GROUP
-
-       config  LHOME
-               string
-               default "/home"         if !CONFIG_HOME
-               default SET_HOME        if  CONFIG_HOME
-       #--- End Set User Account
-
-       config BUILDDIR
-               string "Build Directory"
-               default "/mnt/build_dir"
-               help
-                       #-- The directory where the created system will be 
located.
-                       #   NOTE: A working directory named jhalfs will be 
created
-                       #   here, so ensure this does not conflict with the 
jhalfs
-                       #   source directory.
-
-       config  GETPKG
-               bool "Retrieve source files"
-               default n
-               help
-                       #-- Download all packages and patches required by the 
selected book
-                       #   NOTE: Looks for files in the local archive defined 
by SRC_ARCHIVE
-                       #   first and if necessary retrieves them from the 'net.
-                       #   Files will be transferred to $BUILDDIR/sources.
-
-       config SRC_ARCHIVE
-               string "Package Archive Directory"
-               default "$SRC_ARCHIVE"
-               depends GETPKG
-               help
-                       #-- A local archive for packages/files (not 
$BUILDDIR/sources)
-                       #   Any missing file will be downloaded and archived 
here,
-                       #   if the user has the right privileges.
-
-       config RETRYSRCDOWNLOAD
-               bool "Retry on 'connection refused' failure"
-               default n
-               depends GETPKG
-               help
-                       #-- Attempt to download a source package again if it 
fails
-                       #   with a 'connection refused' error. This can happen 
on
-                       #   servers that are overloaded.
-
-       config RETRYDOWNLOADCNT
-               int "Number of retry attempts on download failures"
-               default 20
-               depends GETPKG
-               help
-                       #-- Number of times to retry a failed download.
-
-       config DOWNLOADTIMEOUT
-               int "Download timeout (in seconds)"
-               default 30
-               depends GETPKG
-               help
-                       #-- Number of seconds to wait for a download to start 
before
-                       #   timing out.
-
-       config SERVER
-               string "FTP mirror"
-               default "ftp://ftp.lfs-matrix.net";
-               depends GETPKG
-               help
-                       #-- FTP mirror to download packages and patches if not 
found
-                       #   in $SRC_ARCHIVE
-                       #   As a last resort, the files will downloaded from 
upstream,
-                        #   if possible.
-
-       config  RUNMAKE
-               bool    "Run the makefile"
-               default n
-               help
-                       #-- Automatically run the makefile once it has been 
created
-
-       config  CLEAN
-               bool    "Rebuild files"
-               default n
-               help
-                       #-- Clean the build directory before performing any 
other task.
-                       #   The directory is cleaned only if it was populated 
by a
-                       #   previous JHALFS run.
-                       #
+    #--- Set User Account
+    config    CONFIG_USER
+        bool    "Change the default user/group and homedir for this build"
+        default    n
+        help    #-- Unprivileged user and group name
+            #   If you do not have the privilege to create/delete
+            #   users and groups you can specify your own
+            #   user ID for the build
+            #
+            # default values for each book
+            # LFS    lfs
+            # CLFS*  clfs
+            # HLFS   hlfs
+            #
+            # Also, if your host places users' home dirs into a
+            # directory other than /home you can specify it here.
+
+    config    DEF_USER
+        string
+        default    "lfs"    if BOOK_LFS || BOOK_LFS_SYSD
+        default    "clfs"    if BOOK_CLFS || BOOK_CLFS2 || BOOK_CLFS3
+        default "hlfs"    if BOOK_HLFS
+
+    config    SET_USER
+        string    "User account"
+        depends    CONFIG_USER
+        default    DEF_USER
+
+    config    CONFIG_GROUP
+        bool    "Set Group?"
+        default    n
+        depends    CONFIG_USER
+
+    config    SET_GROUP
+        string    "GROUP account"
+        depends    CONFIG_GROUP
+        default    DEF_USER
+
+    config    CONFIG_HOME
+        bool    "Set home dir?"
+        default    n
+        depends    CONFIG_USER
+
+    config    SET_HOME
+        string    "Path to the directory under which the user's home directory 
will be created"
+        depends    CONFIG_HOME
+        default    "/home"
+
+    config    LUSER
+        string
+        default    DEF_USER    if !CONFIG_USER
+        default    SET_USER    if  CONFIG_USER
+
+    config    LGROUP
+        string
+        default    LUSER        if !CONFIG_GROUP
+        default    SET_GROUP    if  CONFIG_GROUP
+
+    config    LHOME
+        string
+        default    "/home"        if !CONFIG_HOME
+        default    SET_HOME    if  CONFIG_HOME
+    #--- End Set User Account
+
+    config BUILDDIR
+        string "Build Directory"
+        default "/mnt/build_dir"
+        help
+            #-- The directory where the created system will be located.
+            #   NOTE: A working directory named jhalfs will be created
+            #   here, so ensure this does not conflict with the jhalfs
+            #   source directory.
+
+    config    GETPKG
+        bool "Retrieve source files"
+        default n
+        help
+            #-- Download all packages and patches required by the selected book
+            #   NOTE: Looks for files in the local archive defined by 
SRC_ARCHIVE
+            #   first and if necessary retrieves them from the 'net.
+            #   Files will be transferred to $BUILDDIR/sources.
+
+    config SRC_ARCHIVE
+        string "Package Archive Directory"
+        default "$SRC_ARCHIVE"
+        depends GETPKG
+        help
+            #-- A local archive for packages/files (not $BUILDDIR/sources)
+            #   Any missing file will be downloaded and archived here,
+            #   if the user has the right privileges.
+
+    config RETRYSRCDOWNLOAD
+        bool "Retry on 'connection refused' failure"
+        default n
+        depends GETPKG
+        help
+            #-- Attempt to download a source package again if it fails
+            #   with a 'connection refused' error. This can happen on
+            #   servers that are overloaded.
+
+    config RETRYDOWNLOADCNT
+        int "Number of retry attempts on download failures"
+        default 20
+        depends GETPKG
+        help
+            #-- Number of times to retry a failed download.
+
+    config DOWNLOADTIMEOUT
+        int "Download timeout (in seconds)"
+        default 30
+        depends GETPKG
+        help
+            #-- Number of seconds to wait for a download to start before
+            #   timing out.
+
+    config SERVER
+        string "FTP mirror"
+        default "http://ftp.osuosl.org";
+        depends GETPKG
+        help
+            #-- FTP mirror to download packages and patches if not found
+            #   in $SRC_ARCHIVE
+            #   As a last resort, the files will downloaded from upstream,
+            #   if possible.
+
+    config    RUNMAKE
+        bool    "Run the makefile"
+        default n
+        help
+            #-- Automatically run the makefile once it has been created
+
+    config    CLEAN
+        bool    "Rebuild files"
+        default    n
+        help
+            #-- Clean the build directory before performing any other task.
+            #   The directory is cleaned only if it was populated by a
+            #   previous JHALFS run.
 
 #--- End General Settings
 endmenu
 
-menu "--- Build Settings"
+menu "Build Settings"
+depends !BOOK_BLFS
 
-       #--- Test Suites
-       config  CONFIG_TESTS
-               bool    "Run testsuites"
-               depends !BOOK_CLFS2 && !BOOK_CLFS3
-               default y
-               help
-                       #-- Run test suites
-                       #
-                       #  You will have to select between:
-                       #
-                       #  - Only final system Glibc, GCC and Binutils 
testsuites
-                       #  - All final system testsuites
-                       #  - Both temporary tools and final system testsuites
-                       #
-                       #  HLFS and CLFS have no testsuites available in the
-                       #  temporary tools phase
-
-                       #  You will be prompted also about the "flavour" of the
-                       #  testsuites run:
-                       #
-                       #  - Don't stop on test suite failures
-                       #  - Abort the build at the first test suite failure
-                       #
-
-       choice
-               prompt  "Tests level"
-               depends  CONFIG_TESTS
-               default TST_1
-
-               config  TST_1
-                       bool    "Only final critical testsuites" if !BOOK_CLFS2 
&& !BOOK_CLFS3
-
-               config  TST_2
-                       bool    "All final system testsuites"
-
-               config  TST_3
-                       bool    "Both temporary tools and final system 
testsuites" if !BOOK_HLFS && !BOOK_CLFS
-       endchoice
-
-       config  TEST
-               int
-               default "0"     if !CONFIG_TESTS
-               default "1"     if TST_1
-               default "2"     if TST_2
-               default "3"     if TST_3
-
-       choice
-               prompt  "Flavour"
-               depends CONFIG_TESTS
-
-               config  NO_BOMB
-                       bool    "Don't stop on testsuite failures"
-
-               config  BOMB
-                       bool    "Abort the build on the first testsuite failure"
-       endchoice
-
-       config  BOMB_TEST
-               bool
-               default n if NO_BOMB
-               default y if BOMB
-
-       #--- End Test Suites
-
-       #--- Package Management
-       config  PKGMNGT
-               bool    "Package management"
-               depends BOOK_LFS || BOOK_LFS_SYSD
-               default n
-               help
-                       #-- Use package management
-                       #
-                       #  If set, the packages in the final phase are built
-                       #  in a separate directory, PKG_DEST.
-                       #  You should provide a bash function for packing
-                       #  and installing the package.
-                       #  Also, you have to provide the instructions
-                       #  to build the package manager during the
-                       #  temporary tools phase, in the form of a
-                       #  sect1 of the book identical to a package
-                       #  sect1. See README.PACKAGE_MANAGEMENT
-                       #
-                       #  For now, this only works with LFS
-
-       #--- End package management
-
-       #--- Installed files logs
-       config  INSTALL_LOG
-               bool    "Create a log of installed files for each package"
-               default n
-               help
-                       #-- Select this if you want to create logs of the files
-                       #   installed by each package on the final system.
-
-       #--- End Installed files logs
-
-       #--- FSTAB
-       config  HAVE_FSTAB
-               bool    "Use a custom fstab file"
-               default n
-               help
-                       #-- Select this if you have an fstab file with entries
+    #--- Test Suites
+    config    CONFIG_TESTS
+        bool    "Run testsuites"
+        depends    !BOOK_CLFS2 && !BOOK_CLFS3
+        default    y
+        help
+            #-- Run test suites
+            #
+            #  You will have to select between:
+            #
+            #  - Only final system Glibc, GCC and Binutils testsuites
+            #  - All final system testsuites
+            #  - Both temporary tools and final system testsuites
+            #
+            #  HLFS and CLFS have no testsuites available in the
+            #  temporary tools phase
+
+            #  You will be prompted also about the "flavour" of the
+            #  testsuites run:
+            #
+            #  - Don't stop on test suite failures
+            #  - Abort the build at the first test suite failure
+            #
+
+    choice
+        prompt    "Tests level"
+        depends     CONFIG_TESTS
+        default    TST_1
+
+        config  TST_1
+            bool    "Only final critical testsuites" if !BOOK_CLFS2 && 
!BOOK_CLFS3
+
+        config    TST_2
+            bool    "All final system testsuites"
+
+        config    TST_3
+            bool    "Both temporary tools and final system testsuites" if 
!BOOK_HLFS && !BOOK_CLFS
+    endchoice
+
+    config    TEST
+        int
+        default    "0"    if !CONFIG_TESTS
+        default    "1"    if TST_1
+        default    "2"    if TST_2
+        default    "3"    if TST_3
+
+    choice
+        prompt    "Flavour"
+        depends    CONFIG_TESTS
+
+        config    NO_BOMB
+            bool    "Don't stop on testsuite failures"
+
+        config    BOMB
+            bool    "Abort the build on the first testsuite failure"
+    endchoice
+
+    config    BOMB_TEST
+        bool
+        default    n if NO_BOMB
+        default    y if BOMB
+
+    #--- End Test Suites
+
+    #--- Package Management
+    config  PKGMNGT
+        bool    "Package management"
+        depends BOOK_LFS || BOOK_LFS_SYSD
+        default n
+        help
+            #-- Use package management
+            #
+            #  If set, the packages in the final phase are built
+            #  in a separate directory, PKG_DEST.
+            #  You should provide a bash function for packing
+            #  and installing the package.
+            #  Also, you have to provide the instructions
+            #  to build the package manager during the
+            #  temporary tools phase, in the form of a
+            #  sect1 of the book identical to a package
+            #  sect1. See README.PACKAGE_MANAGEMENT
+            #
+            #  For now, this only works with LFS
+
+    #--- End package management
+
+    #--- Installed files logs
+    config    INSTALL_LOG
+        bool    "Create a log of installed files for each package"
+        default    n
+        help
+            #-- Select this if you want to create logs of the files
+            #   installed by each package on the final system.
+
+    #--- End Installed files logs
+
+    #--- FSTAB
+    config    HAVE_FSTAB
+        bool    "Use a custom fstab file"
+        default    n
+        help
+            #-- Select this if you have an fstab file with entries
                         #   for the target system
 
-       config  FSTAB
-               string  "Fstab file (optional)"
-               default "***EDIT ME***"
-               depends on HAVE_FSTAB
-               help
-                       #-- The location of fstab file (if empty, a template is 
created)
-       #--- End FSTAB
-
-       #--- Kernel
-       config  CONFIG_BUILD_KERNEL
-               bool    "Build the kernel"
-               default n
-               help
-                       #-- Select this option if you wish to build the kernel.
-                       #
-                       #   You will be prompted for the full path to the 
.config
-                       #   file. It will be copied to the 'sources' directory 
and
-                       #   renamed kernel-config
-
-       config  CONFIG
-               string  "Kernel config file"
-               default "***EDIT ME***"
-               depends on CONFIG_BUILD_KERNEL
-               help
-                       #-- Fully qualified path to a kernel config file
-                       #   The config file will be copied to 
${BUILD_DIR}/sources
-                       #   and renamed 'kernel-config'
-       #--- End Kernel
-
-       config  STRIP
-               bool "Strip Installed Binaries/Libraries"
-               default n
-               depends on !BOOK_CLFS3
-
-       config  VIMLANG
-               bool "Install vim-lang package"
-               default n
-               depends on !BOOK_HLFS && !BOOK_CLFS3
-               help
-                       #-- Install the optional vim-lang package
-                       #   NOTE: This option is obsolete with the 7.3 release 
of Vim
-                       #   which is included in all recent releases of LFS.
-
-       config  NO_PROGRESS_BAR
-               bool "DO NOT use/display progress_bar "
-               default n
-               help
-                       #-- Do not use the progress bar routine. On slower 
machines
-                       #   this function consumes precious CPU cycles.
-
-       config  TIMEZONE
-               string "TimeZone"
-               default "GMT"
-               help
-                       #-- The timezone as output by tzselect
-                       #   This will be copied to /etc/localtime
-
-       config  LANG
-               string "Language"
-               default "$LANG"
-               help
-                       #-- LANG variable set in /etc/profile
-                       #   See 
http://sourceware.org/git/?p=glibc.git;a=blob;f=localedata/SUPPORTED
-                       #   for values (or the file localedata/SUPPORTED in 
glibc tarball)
-
-       config  FULL_LOCALE
-               bool "Install the full set of locales"
-               default n
-               help
-                       #-- If set to y, the full set of supported locales
-                       #   will be installed. Otherwise, only the minimal set
-                       #   necessary for the tests will be installed,
-                       #   together with the locale associated with the
-                       #   LANG you have chosen, if not in the minimal set.
-
-       #--- Groff page
-       choice
-               prompt  "Groff page size"
-               default PAGE_LETTER
-               help
-                       #-- Page definition for groff: letter or A4
-
-               config  PAGE_LETTER
-                       bool    "letter"
-
-               config  PAGE_A4
-                       bool    "A4"
-       endchoice
-
-       config  PAGE
-               string
-               default "letter"        if PAGE_LETTER
-               default "A4"            if PAGE_A4
-       #--- End Groff page
+    config    FSTAB
+        string    "Fstab file (optional)"
+        default    "***EDIT ME***"
+        depends on HAVE_FSTAB
+        help
+            #-- The location of fstab file (if empty, a template is created)
+    #--- End FSTAB
+
+    #--- Kernel
+    config    CONFIG_BUILD_KERNEL
+        bool    "Build the kernel"
+        default    n
+        help
+            #-- Select this option if you wish to build the kernel.
+            #
+            #   You will be prompted for the full path to the .config
+            #   file. It will be copied to the 'sources' directory and
+            #   renamed kernel-config
+
+    config    CONFIG
+        string    "Kernel config file"
+        default    "***EDIT ME***"
+        depends on CONFIG_BUILD_KERNEL
+        help
+            #-- Fully qualified path to a kernel config file
+            #   The config file will be copied to ${BUILD_DIR}/sources
+            #   and renamed 'kernel-config'
+    #--- End Kernel
+
+    config    STRIP
+        bool "Strip Installed Binaries/Libraries"
+        default n
+        depends on !BOOK_CLFS3
+
+    config    VIMLANG
+        bool "Install vim-lang package"
+        default n
+        depends on !BOOK_HLFS && !BOOK_CLFS3
+        help
+            #-- Install the optional vim-lang package
+            #   NOTE: This option is obsolete with the 7.3 release of Vim
+            #   which is included in all recent releases of LFS.
+
+    config    NO_PROGRESS_BAR
+        bool "DO NOT use/display progress_bar "
+        default n
+        help
+            #-- Do not use the progress bar routine. On slower machines
+            #   this function consumes precious CPU cycles.
+
+    config    TIMEZONE
+        string "TimeZone"
+        default "GMT"
+        help
+            #-- The timezone as output by tzselect
+            #   This will be copied to /etc/localtime
+
+    config    LANG
+        string "Language"
+        default "$LANG"
+        help
+            #-- LANG variable set in /etc/profile
+            #   See 
http://sourceware.org/git/?p=glibc.git;a=blob;f=localedata/SUPPORTED
+            #   for values (or the file localedata/SUPPORTED in glibc tarball)
+
+    config  FULL_LOCALE
+        bool "Install the full set of locales"
+        default n
+        help
+            #-- If set to y, the full set of supported locales
+            #   will be installed. Otherwise, only the minimal set
+            #   necessary for the tests will be installed,
+            #   together with the locale associated with the
+            #   LANG you have chosen, if not in the minimal set.
+
+    #--- Groff page
+    choice
+        prompt    "Groff page size"
+        default    PAGE_LETTER
+        help
+            #-- Page definition for groff: letter or A4
+
+        config    PAGE_LETTER
+            bool    "letter"
+
+        config    PAGE_A4
+            bool    "A4"
+    endchoice
+
+    config    PAGE
+        string
+        default    "letter"    if PAGE_LETTER
+        default    "A4"        if PAGE_A4
+    #--- End Groff page
 
 #--- End Build Settings
 endmenu
 
-menu "--- Advanced Features"
+menu "Advanced Features"
+depends !BOOK_BLFS
 
-       config  REPORT
-               bool "Create SBU and disk usage report"
-               default y
-
-       #--- ICA/farce
-       config  COMPARE
-               bool "Run comparison analysis on final stage"
-               depends !BOOK_CLFS2 && !BOOK_CLFS3
-               default n
-               help
-                       #-- Should an iterative comparison analysis be 
performed?
-                       #
-                       #   Unless you are familiar with ICA and/or FARCE do not
-                       #   select this option
-                       #
-                       #  ICA and FARCE are analysis tools for comparing one
-                       #  build to the next. Builds mays differ from one 
iteration
-                       #  to another due to the build order and these tools try
-                       #  to ferret out those differences by examining the 
stored
-                       #  build logs and binary files.
-                       #
-                       #  The scripts are well commented and can be found in 
./extras/*
-                       #
-
-       config  ITERATIONS
-               int     "Number of test runs (2,3,4,5)" if COMPARE
-               depends on COMPARE
-               range   2 5
-               default 3
-
-       config  RUN_ICA
-               bool    "ICA testing"
-               depends on COMPARE
-               default y
-               help
-                       #-- Run ICA testing
-
-       config  RUN_FARCE
-               bool    "farce testing"
-               depends on COMPARE
-               default n
-               help
-                       #-- Run farce testing
-       #--- End ICA/farce
+    config    REPORT
+        bool "Create SBU and disk usage report"
+        default y
+
+    #--- ICA/farce
+    config    COMPARE
+        bool "Run comparison analysis on final stage"
+        depends    !BOOK_CLFS2 && !BOOK_CLFS3
+        default n
+        help
+            #-- Should an iterative comparison analysis be performed?
+            #
+            #   Unless you are familiar with ICA and/or FARCE do not
+            #   select this option
+            #
+            #  ICA and FARCE are analysis tools for comparing one
+            #  build to the next. Builds mays differ from one iteration
+            #  to another due to the build order and these tools try
+            #  to ferret out those differences by examining the stored
+            #  build logs and binary files.
+            #
+            #  The scripts are well commented and can be found in ./extras/*
+            #
+
+    config    ITERATIONS
+        int    "Number of test runs (2,3,4,5)"    if COMPARE
+        depends on COMPARE
+        range    2 5
+        default    3
+
+    config    RUN_ICA
+        bool    "ICA testing"
+        depends on COMPARE
+        default y
+        help
+            #-- Run ICA testing
+
+    config    RUN_FARCE
+        bool    "farce testing"
+        depends on COMPARE
+        default n
+        help
+            #-- Run farce testing
+    #--- End ICA/farce
 
-       #--- Optimizations
+    #--- Optimizations
 if !BOOK_CLFS2 && !BOOK_CLFS3
-       config  CONFIG_OPTIMIZE
-               bool    "Optimization and parallelization"
-               default n
-               help
-                       #   Opens a menu for various optimization settings:
-                       #   Actual optimization flags MUST be defined in 
./optimize/*
-                       #   before activating this option.
-                       #
-                       # WARNING: The use of build optimizations may lead to 
build issues.
-                       #   If the system doesn't work as expected, please 
rebuild
-                       #   without optimizations before asking for support.
-       menu    "Optimization settings"
-               depends on CONFIG_OPTIMIZE
-
-       config  N_PARALLEL
-               int "Number of parallel `make' jobs"
-               default 1
-               help
-                       #-- The usual recommandation is (number of CPU cores)+1
-                       #   Do not set for meaningful SBU calculations.
-
-       choice
-               prompt "Optimization level "
-               default OPT_1
-               help
-                       #-- Optimization values are set in optimize/* files
-
-               config  OPT_1
-                       bool    "Final system only"
-
-               config  OPT_2
-                       bool    "Both temp tools and final system"
-
-               config  OPT_3
-                       bool    "Cross tools (only MAKEFLAGS), temp tools and 
final system" if BOOK_CLFS
-       endchoice
+    config    CONFIG_OPTIMIZE
+        bool    "Optimization and parallelization"
+        default    n
+        help
+            #   Opens a menu for various optimization settings:
+            #   Actual optimization flags MUST be defined in ./optimize/*
+            #   before activating this option.
+            #
+            # WARNING: The use of build optimizations may lead to build issues.
+            #   If the system doesn't work as expected, please rebuild
+            #   without optimizations before asking for support.
+    menu    "Optimization settings"
+        depends on CONFIG_OPTIMIZE
+
+    config    N_PARALLEL
+        int "Number of parallel `make' jobs"
+        default 1
+        help
+            #-- The usual recommandation is (number of CPU cores)+1
+            #   Do not set for meaningful SBU calculations.
+
+    choice
+        prompt "Optimization level "
+        default OPT_1
+        help
+            #-- Optimization values are set in optimize/* files
+
+        config    OPT_1
+            bool    "Final system only"
+
+        config    OPT_2
+            bool    "Both temp tools and final system"
+
+        config    OPT_3
+            bool    "Cross tools (only MAKEFLAGS), temp tools and final 
system" if BOOK_CLFS
+    endchoice
 endmenu
-       config  OPTIMIZE
-               int
-               default "0"     if !CONFIG_OPTIMIZE
-               default "1"     if OPT_1
-               default "2"     if OPT_2
-               default "3"     if OPT_3
+    config    OPTIMIZE
+        int
+        default    "0"    if !CONFIG_OPTIMIZE
+        default    "1"    if OPT_1
+        default    "2"    if OPT_2
+        default    "3"    if OPT_3
 endif
-       #--- End Optimizations
+    #--- End Optimizations
 
-       #-- Internal Settings
-       menu "Internal Settings (WARNING: for jhalfs developers only)"
+    #-- Internal Settings
+    menu "Internal Settings (WARNING: for jhalfs developers only)"
 
-               config  SCRIPT_ROOT
-                       string  "Scripts root"
-                       default "jhalfs"
+        config    SCRIPT_ROOT
+            string    "Scripts root"
+            default "jhalfs"
 
-               config  JHALFSDIR
-                       string "jhalfs directory"
-                       default "$BUILDDIR/$SCRIPT_ROOT"
+        config    JHALFSDIR
+            string "jhalfs directory"
+            default "$BUILDDIR/$SCRIPT_ROOT"
 
-               config  LOGDIRBASE
-                       string "Build logs directory basename"
-                       default "logs"
+        config    LOGDIRBASE
+            string "Build logs directory basename"
+            default "logs"
 
-               config  LOGDIR
-                       string "Build logs directory"
-                       default "$JHALFSDIR/$LOGDIRBASE"
+        config    LOGDIR
+            string "Build logs directory"
+            default "$JHALFSDIR/$LOGDIRBASE"
 
-               config  TESTLOGDIRBASE
-                       string "Test suites logs directory basename"
-                       default "test-logs"
+        config    TESTLOGDIRBASE
+            string "Test suites logs directory basename"
+            default "test-logs"
 
-               config  TESTLOGDIR
-                       string "Test suites logs directory"
-                       default "$JHALFSDIR/$TESTLOGDIRBASE"
+        config    TESTLOGDIR
+            string "Test suites logs directory"
+            default "$JHALFSDIR/$TESTLOGDIRBASE"
 
-               config  FILELOGDIRBASE
-                       string "Installed files logs directory basename"
-                       default "installed-files"
+        config    FILELOGDIRBASE
+            string "Installed files logs directory basename"
+            default "installed-files"
 
-               config  FILELOGDIR
-                       string "Installed files logs directory"
-                       default "$JHALFSDIR/$FILELOGDIRBASE"
+        config    FILELOGDIR
+            string "Installed files logs directory"
+            default "$JHALFSDIR/$FILELOGDIRBASE"
 
-               config  ICALOGDIR
-                       string "ICA logs directory"
-                       default "$LOGDIR/ICA"
+        config    ICALOGDIR
+            string "ICA logs directory"
+            default "$LOGDIR/ICA"
 
-               config  FARCELOGDIR
-                       string "farce logs directory"
-                       default "$LOGDIR/farce"
+        config    FARCELOGDIR
+            string "farce logs directory"
+            default "$LOGDIR/farce"
 
-               config  MKFILE
-                       string "Makefile"
-                       default "$JHALFSDIR/Makefile"
+        config    MKFILE
+            string "Makefile"
+            default "$JHALFSDIR/Makefile"
 
-               config  XSL
-                       string "XSL stylesheet"
-                       default "$PROGNAME.xsl"
+        config    XSL
+            string "XSL stylesheet"
+            default "$PROGNAME.xsl"
 
-               config  PKG_LST
-                       string "Package contents list"
-                       default "unpacked"
+        config    PKG_LST
+            string "Package contents list"
+            default "unpacked"
 
-       #--- End Internal Settings
-       endmenu
+    #--- End Internal Settings
+    endmenu
 
 #--- End Advanced Features
 endmenu
 
 config REBUILD_MAKEFILE
-       bool "Rebuild the Makefile (see help)"
-       default n
-       help
-               #-- Rebuild the Makefile
-               #
-               #   This option allows to rebuild the Makefile after
-               #   customizing the base system build scripts.
-               #
-               #   See README.CUSTOM for more info about this feature.
+    depends !BOOK_BLFS
+    bool "Rebuild the Makefile (see help)"
+    default n
+    help
+        #-- Rebuild the Makefile
+        #
+        #   This option allows to rebuild the Makefile after
+        #   customizing the base system build scripts.
+        #
+        #   See README.CUSTOM for more info about this feature.
 

Modified: jhalfs/trunk/install-blfs-tools.sh
==============================================================================
--- jhalfs/trunk/install-blfs-tools.sh  Sun Mar 12 06:41:39 2017        (r3915)
+++ jhalfs/trunk/install-blfs-tools.sh  Wed Mar 15 02:16:40 2017        (r3916)
@@ -19,6 +19,9 @@
 (as user) INIT_SYSTEM=<your system> ./install-blfs-tools.sh
 2 - To install with only user privileges (default to sysv):
 TRACKING_DIR=$HOME/blfs_root/trackdir ./install-blfs-tools.sh
+
+This script can also be called automatically after running make in this
+directory. The parameters will then be taken from the configuration file.
 inline_doc
 
 
@@ -45,20 +48,63 @@
 declare -r   
DD_BORDER="${BOLD}==============================================================================${OFF}"
 declare -r   
SD_BORDER="${BOLD}------------------------------------------------------------------------------${OFF}"
 declare -r 
STAR_BORDER="${BOLD}******************************************************************************${OFF}"
+declare -r dotSTR=".................." # Format display of parameters and 
versions
 
 # bold yellow > <  pair
 declare -r R_arrow=$'\e[1;33m>\e[0m'
 declare -r L_arrow=$'\e[1;33m<\e[0m'
-
 VERBOSITY=1
 
+# Take parameters from "configuration" if $1="auto"
+if [ "$1" = auto ]; then
+  [[ $VERBOSITY > 0 ]] && echo -n "Loading configuration ... "
+  source configuration
+  [[ $? > 0 ]] && echo -e "\nconfiguration could not be loaded" && exit 2
+  [[ $VERBOSITY > 0 ]] && echo "OK"
+fi
+
+if [ "$BOOK_BLFS" = y ]; then
+## Read variables and sanity checks
+  [[ "$relSVN" = y ]] && BLFS_BRANCH_ID=development
+  [[ "$BRANCH" = y ]] && BLFS_BRANCH_ID=$BRANCH_ID
+  [[ "$WORKING_COPY" = y ]] && BLFS_BOOK=$BOOK
+  [[ "$BRANCH_ID" = "**EDIT ME**" ]] &&
+    echo You have not set the book version or branch && exit 1
+  [[ "$BOOK" = "**EDIT ME**" ]] &&
+    echo You have not set the working copy location && exit 1
+fi
+
 COMMON_DIR="common"
+# blfs-tool envars
 BLFS_TOOL='y'
 BUILDDIR=$(cd ~;pwd)
 BLFS_ROOT="${BLFS_ROOT:=/blfs_root}"
 TRACKING_DIR="${TRACKING_DIR:=/var/lib/jhalfs/BLFS}"
 INIT_SYSTEM="${INIT_SYSTEM:=sysv}"
+BLFS_BRANCH_ID=${BLFS_BRANCH_ID:=development}
+BLFS_XML=${BLFS_XML:=blfs-xml}
+
+# Validate the configuration:
+PARAMS="BLFS_ROOT TRACKING_DIR INIT_SYSTEM BLFS_XML"
+if [ "$WORKING_COPY" = y ]; then
+  PARAMS="$PARAMS WORKING_COPY BOOK"
+else
+  PARAMS="$PARAMS BLFS_BRANCH_ID"
+fi
+# Format for displaying parameters:
+declare -r PARAM_VALS='${config_param}${dotSTR:${#config_param}} 
${L_arrow}${BOLD}${!config_param}${OFF}${R_arrow}'
+
+for config_param in $PARAMS; do
+  echo -e "`eval echo $PARAM_VALS`"
+done
 
+echo "${SD_BORDER}${nl_}"
+echo -n "Are you happy with these settings? yes/no (no): "
+read ANSWER
+if [ x$ANSWER != "xyes" ] ; then
+  echo "${nl_}Rerun make and fix your settings.${nl_}"
+  exit
+fi
 [[ $VERBOSITY > 0 ]] && echo "${SD_BORDER}${nl_}"
 
 #*******************************************************************#
@@ -69,8 +115,6 @@
 
 [[ $VERBOSITY > 0 ]] && echo "${SD_BORDER}${nl_}"
 
-# blfs-tool envars
-BLFS_BRANCH_ID=${BLFS_BRANCH_ID:=development}
 case $BLFS_BRANCH_ID in
   development )  BLFS_TREE=trunk/BOOK ;;
      branch-* )  BLFS_TREE=branches/${BLFS_BRANCH_ID#branch-} ;;
@@ -78,7 +122,6 @@
 esac
 
 # Check for build prerequisites.
-declare -r dotSTR=".................." # needed for proper display of versions
 echo
   check_alfs_tools
   check_blfs_tools
@@ -87,6 +130,7 @@
 # Install the files
 [[ $VERBOSITY > 0 ]] && echo -n Populating the ${BUILDDIR}${BLFS_ROOT} 
directory
 [[ ! -d ${BUILDDIR}${BLFS_ROOT} ]] && mkdir -pv ${BUILDDIR}${BLFS_ROOT}
+rm -rf ${BUILDDIR}${BLFS_ROOT}/*
 cp -r BLFS/* ${BUILDDIR}${BLFS_ROOT}
 cp -r menu ${BUILDDIR}${BLFS_ROOT}
 cp $COMMON_DIR/progress_bar.sh ${BUILDDIR}${BLFS_ROOT}
@@ -101,7 +145,7 @@
 rm -rf ${BUILDDIR}${BLFS_ROOT}/menu/.svn
 rm -rf ${BUILDDIR}${BLFS_ROOT}/menu/lxdialog/.svn
 # We do not want to keep an old version of the book:
-rm -rf ${BUILDDIR}${BLFS_ROOT}/blfs-xml
+rm -rf ${BUILDDIR}${BLFS_ROOT}/$BLFS_XML
 
 # Set some harcoded envars to their proper values
 sed -i s@tracking-dir@$TRACKING_DIR@ \
@@ -114,10 +158,17 @@
 mkdir -p $TRACKING_DIR
 [[ $VERBOSITY > 0 ]] && echo "... OK"
 
-[[ $VERBOSITY > 0 ]] && echo "Downloading and validating the book (may take 
some time)"
+[[ $VERBOSITY > 0 ]] &&
+echo "Retrieving and validating the book (may take some time)"
+
+[[ -z "$BLFS_BOOK" ]] ||
+[[ $BLFS_BOOK = $BUILDDIR$BLFS_ROOT/$BLFS_XML ]] ||
+cp -a $BLFS_BOOK $BUILDDIR$BLFS_ROOT/$BLFS_XML
+
 make -j1 -C $BUILDDIR$BLFS_ROOT \
      TRACKING_DIR=$TRACKING_DIR \
      REV=$INIT_SYSTEM            \
+     BLFS_XML=$BUILDDIR$BLFS_ROOT/$BLFS_XML      \
      SVN=svn://svn.linuxfromscratch.org/BLFS/$BLFS_TREE \
      $BUILDDIR$BLFS_ROOT/packages.xml
 [[ $VERBOSITY > 0 ]] && echo "... OK"

Modified: jhalfs/trunk/menu/mconf.c
==============================================================================
--- jhalfs/trunk/menu/mconf.c   Sun Mar 12 06:41:39 2017        (r3915)
+++ jhalfs/trunk/menu/mconf.c   Wed Mar 15 02:16:40 2017        (r3916)
@@ -473,7 +473,8 @@
        struct symbol *sym;
        struct property *prop;
        struct menu *child;
-       int type, tmp, doint = 2;
+/*     int type, tmp, doint = 2; */
+       int type, doint = 2;
        tristate val;
        char ch;
 
@@ -595,13 +596,16 @@
                                break;
                        default:
                                cprint_tag("s%p", menu);
-                               tmp = cprint_name("(%s)", 
sym_get_string_value(sym));
+/*                             tmp = cprint_name("(%s)", 
sym_get_string_value(sym));
                                tmp = indent - tmp + 4;
                                if (tmp < 0)
-                                       tmp = 0;
-                               cprint_name("%*c%s%s", tmp, ' ', 
menu_get_prompt(menu),
-                                       (sym_has_value(sym) || 
!sym_is_changable(sym)) ?
-                                       "" : " (NEW)");
+                                       tmp = 0; */
+                               cprint_name("   %*c%s (%s)%s",
+                                   indent+1, ' ',
+                                   menu_get_prompt(menu),
+                                   sym_get_string_value(sym),
+                                   (sym_has_value(sym) || 
!sym_is_changable(sym)) ?
+                                     "" : " (NEW)");
                                goto conf_childs;
                        }
                }
-- 
http://lists.linuxfromscratch.org/listinfo/alfs-log
Unsubscribe: See the above information page

Reply via email to