Index: BLFS/xsl/gen_config.xsl
===================================================================
--- BLFS/xsl/gen_config.xsl	(revision 610a5c4a0e55b7e042e939e896191c133567860c)
+++ BLFS/xsl/gen_config.xsl	(revision 2b3edd2e77466dcd05a6833e309491c5c6359e72)
@@ -11,8 +11,8 @@
     <xsl:text>comment ""
 
-menu    "Default package for resolving MTA dependency"
-
-choice
-        prompt  "Mail server"
+menu    "Build settings"
+
+    choice
+        prompt  "Mail server for resolving the MTA dependency"
         config  MS_sendmail
                 bool    "sendmail"
@@ -21,6 +21,6 @@
         config  MS_exim
                 bool    "exim"
-endchoice
-config  MAIL_SERVER
+    endchoice
+    config  MAIL_SERVER
         string
         default "sendmail"        if MS_sendmail
@@ -28,9 +28,11 @@
         default "exim"            if MS_exim
 
-endmenu
-
-choice
+    choice
         prompt  "Dependency level"
         default DEPLVL_2
+        help
+            Packages included in the dependency graph. Note that the graph
+            itself contains all the dependency information relating those
+            packages.
 
         config  DEPLVL_1
@@ -46,6 +48,6 @@
         bool    "All non external dependencies"
 
-endchoice
-config  optDependency
+    endchoice
+    config  optDependency
         int
         default 1       if DEPLVL_1
@@ -54,49 +56,121 @@
         default 4       if DEPLVL_4
 
-config  LANGUAGE
+    config  LANGUAGE
         string "LANG variable in the form ll_CC.charmap[@modifiers]"
         default "en_US.UTF-8"
         help
             Because of the book layout, the 3 fields, ll, CC and charmap are
-            mandatory. The @modfier is honoured if present.
-
-config  KBLAYOUT
-        string "Keyboard layout (to be used in GDM)"
-        default "us"
-        help
-            Used in GDM for setting the login screen keyboard layout.
-            See the GDM page in the book for what to put into this field
-
-config  SUDO
+            mandatory. The @modifier is honoured if present.
+
+    config  SUDO
         bool "Build as User"
         default y
         help
-                Select if sudo will be used (you build as a normal user)
-                        otherwise sudo is not needed (you build as root)
-
-
-config  WRAP_INSTALL
+            Select if sudo will be used (you build as a normal user)
+                    otherwise sudo is not needed (you build as root)
+
+    config  WRAP_INSTALL
         bool "Use `porg style' package management"
         default n
         help
-                Select if you want the installation commands to be wrapped
-		between "wrapInstall '" and "' ; packInstall" functions,
-		where wrapInstall is used to set up a LD_PRELOAD library (for
-		example using porg), and packInstall makes the package tarball
-
-config	DEL_LA_FILES
+            Select if you want the installation commands to be wrapped
+            between "wrapInstall '" and "' ; packInstall" functions,
+            where wrapInstall is used to set up a LD_PRELOAD library (for
+            example using porg), and packInstall makes the package tarball
+
+        config  PACK_INSTALL
+            string     "Location of the packInstall.sh script"
+            default    "/blfs_root/packInstall.sh" if !SUDO
+            default    "$HOME/blfs_root/packInstall.sh" if SUDO
+            depends on WRAP_INSTALL
+            help
+                This script is needed for the proper operation of the
+                `porg style' package management. Provide an absolute
+                path.
+
+    config	DEL_LA_FILES
 	bool "Remove libtool .la files after package installation"
 	default y
 	help
-		This option should be active on any system mixing libtool
-		and meson build systems. ImageMagick .la files are preserved.
-
-config	STATS
+            This option should be active on any system mixing libtool
+            and meson build systems. ImageMagick .la files are preserved.
+
+    config	STATS
 	bool "Generate statistics for the requested package(s)"
 	default n
 	help
-		If you want timing and memory footprint statistics to be
-                generated for the packages you build (not their dependencies),
-		set this option to y.
+            If you want timing and memory footprint statistics to be
+            generated for the packages you build (not their dependencies),
+            set this option to y. Due to the book layout, several scripts
+            are not functional in this case. Please review them.
+
+endmenu
+
+menu "Build Layout"
+    config  SRC_ARCHIVE
+        string  "Directory of sources"
+        default "/sources"
+    config  SRC_SUBDIRS
+        bool    "Downloads sources to subdirectories"
+        default n
+        help
+            If this option is set, the sources will be downloaded and archived
+            into a subdirectory of the source directory, one for each page
+            of the book. Otherwise they are downloaded and archived directly
+            into the source directory
+    config  BUILD_ROOT
+        string  "Build directory"
+        default "/sources"
+        help
+            Directory where the build occurs. It can be the same as the
+            source directory, provided the setting of subdirectories is
+            different
+    config  BUILD_SUBDIRS
+        bool    "Build into subdirectories"
+        default y
+        help
+            If this option is set, the sources will be extracted into
+            subdirectories of the build directory. Otherwise, they will be
+            directly extracted into the build directory
+    config  KEEP_FILES
+        bool    "Keep source directory"
+        default n
+        help
+            Set this option if you want to keep the build directories
+            for further examination after installing the package
+endmenu
+
+menu    "Optimization"
+    config JOBS
+        int     "Number of parallel jobs"
+        default 0
+        help
+            This number will get passed to make or ninja, unless set
+            to 0, in which case, it is set to the number of processors
+            on line. Note that some packages do not respect this setting.
+            Also, "-j1" is always passed to make for install (and nothing
+            to ninja).
+    config CFG_CFLAGS
+        string  "Content of variable CFLAGS"
+        default "EMPTY"
+        help
+            If set to the special string "EMPTY", then CFLAGS will be
+            unset before starting the script. Otherwise, there is no
+            content check for this variable. Double check for typos!
+    config CFG_CXXFLAGS
+        string  "Content of variable CXXFLAGS"
+        default "EMPTY"
+        help
+            If set to the special string "EMPTY", then CXXFLAGS will be
+            unset before starting the script. Otherwise, there is no
+            content check for this variable. Double check for typos!
+    config CFG_LDFLAGS
+        string  "Content of variable LDFLAGS"
+        default "EMPTY"
+        help
+            If set to the special string "EMPTY", then LDFLAGS will be
+            unset before starting the script. Otherwise, there is no
+            content check for this variable. Double check for typos!
+endmenu
 </xsl:text>
   </xsl:template>
@@ -107,5 +181,5 @@
                     [(version and not(inst-version)) or
                       string(version) != string(inst-version)]">
-      <xsl:text>config&#9;MENU_</xsl:text>
+      <xsl:text>menuconfig&#9;MENU_</xsl:text>
       <xsl:value-of select="@id"/>
       <xsl:text>
@@ -115,8 +189,5 @@
 default&#9;n
 
-menu "</xsl:text>
-      <xsl:value-of select="name"/>
-      <xsl:text>"
-depends on MENU_</xsl:text>
+if&#9;MENU_</xsl:text>
       <xsl:value-of select="@id"/>
       <xsl:text>
@@ -124,5 +195,5 @@
 </xsl:text>
       <xsl:apply-templates select="sublist"/>
-      <xsl:text>endmenu
+      <xsl:text>endif
 
 </xsl:text>
@@ -135,5 +206,5 @@
                     [(version and not(inst-version)) or
                       string(version) != string(inst-version)]">
-      <xsl:text>&#9;config&#9;MENU_</xsl:text>
+      <xsl:text>&#9;menuconfig&#9;MENU_</xsl:text>
       <xsl:value-of select="@id"/>
       <xsl:text>
@@ -143,8 +214,5 @@
 &#9;default&#9;n
 
-&#9;menu "</xsl:text>
-      <xsl:value-of select="name"/>
-      <xsl:text>"
-&#9;depends on MENU_</xsl:text>
+&#9;if&#9;MENU_</xsl:text>
       <xsl:value-of select="@id"/>
       <xsl:text>
@@ -152,5 +220,5 @@
 </xsl:text>
       <xsl:apply-templates select="package"/>
-      <xsl:text>&#9;endmenu
+      <xsl:text>&#9;endif
 
 </xsl:text>
@@ -182,5 +250,5 @@
       test="not(version) and ./module[not(inst-version) or
                       string(version) != string(inst-version)]">
-      <xsl:text>&#9;&#9;config&#9;MENU_</xsl:text>
+      <xsl:text>&#9;&#9;menuconfig&#9;MENU_</xsl:text>
       <xsl:value-of select="translate(name,' ()','___')"/>
       <xsl:text>
@@ -190,8 +258,5 @@
 &#9;&#9;default&#9;n
 
-&#9;&#9;menu "</xsl:text>
-      <xsl:value-of select="name"/>
-      <xsl:text>"
-&#9;&#9;depends on MENU_</xsl:text>
+&#9;&#9;if&#9;MENU_</xsl:text>
       <xsl:value-of select="translate(name,' ()','___')"/>
       <xsl:text>
@@ -199,5 +264,5 @@
 </xsl:text>
       <xsl:apply-templates select="module"/>
-      <xsl:text>&#9;&#9;endmenu
+      <xsl:text>&#9;&#9;endif
 
 </xsl:text>
