Nimbin[12]?Mirrors & Forks / jhalfs / commits / 1b02a9a

jhalfs git · trunk

jhalfs LFS build automation (mirror)

lfs mirror bash · first commit 2005-09-11 · last commit 2024-02-13 (2 years ago) · synced 3 days ago · upstream: git.linuxfromscratch.org/jhalfs

Python 78.4% Shell 19.8% Makefile 1.8%
git clone https://git.christianimmanuel.de/mirrors-forks/jhalfs.gitwget https://git.christianimmanuel.de/mirrors-forks/jhalfs/archive/jhalfs.tar.gz

Replace $(nproc || echo 1) and $(nproc)

Xi Ruoyao · 2023-09-11 06:38 · 1b02a9acff9b511fc0b563ade142600723dc5a97

 LFS/lfs.xsl                  | 18 ++++++++++++++++++
 common/chroot.xsl            |  9 +++++++++
 common/libs/func_book_parser | 12 +++++++++++-
 3 files changed, 38 insertions(+), 1 deletion(-)

diff --git a/LFS/lfs.xsl b/LFS/lfs.xsl
index c6075d6..99174fc 100644
--- a/LFS/lfs.xsl
+++ b/LFS/lfs.xsl
@@ -28,6 +28,10 @@
   -->
   <xsl:param name="testsuite" select="1"/>
 
+  <!-- Parallelism (LFS >= 12.1) -->
+  <xsl:param name="jobs_1" select="1"/>
+  <xsl:param name="jobs_2" select="1"/>
+
   <!-- Install non wide character ncurses 5? -->
   <xsl:param name="ncurses5" select="'n'"/>
 
@@ -615,6 +619,12 @@ unset OLD_PKGDIR
       <xsl:when test="contains(string(.),'&lt;lfs&gt;')">
         <xsl:value-of select="$hostname"/>
       </xsl:when>
+      <xsl:when test="contains(string(.),'$(nproc || echo 1)')">
+        <xsl:value-of select="$jobs_1"/>
+      </xsl:when>
+      <xsl:when test="contains(string(.),'$(nproc)')">
+        <xsl:value-of select="$jobs_2"/>
+      </xsl:when>
       <xsl:otherwise>
         <xsl:text>**EDITME</xsl:text>
         <xsl:apply-templates/>
@@ -1080,6 +1090,14 @@ LOGLEVEL="</xsl:text>
     <xsl:param name="instructions" select="''"/>
     <xsl:param name="eof-seen" select="false()"/>
     <xsl:choose>
+      <xsl:when test="contains($instructions, '$(nproc)')">
+        <xsl:call-template name="comment-test">
+          <xsl:with-param
+            name="instructions"
+            select="concat(substring-before($instructions, '$(nproc)'), $jobs_2, substring-after($instructions, '$(nproc)'))"/>
+          <xsl:with-param name="eof-seen" select="$eof-seen"/>
+        </xsl:call-template>
+      </xsl:when>
       <xsl:when test="contains($instructions,'&#xA;')">
         <xsl:call-template name="comment-test">
           <xsl:with-param name="instructions"
diff --git a/common/chroot.xsl b/common/chroot.xsl
index 75371c0..54e8601 100644
--- a/common/chroot.xsl
+++ b/common/chroot.xsl
@@ -6,6 +6,8 @@
       extension-element-prefixes="exsl"
       version="1.0">
 
+  <xsl:param name="jobs_2" select="1"/>
+
   <xsl:template match="/">
     <xsl:apply-templates select="//sect1"/>
   </xsl:template>
@@ -55,6 +57,13 @@
   <xsl:template name="extract-chroot">
     <xsl:param name="instructions" select="''"/>
     <xsl:choose>
+      <xsl:when test="contains($instructions, '$(nproc || echo 1)')">
+        <xsl:call-template name="extract-chroot">
+          <xsl:with-param
+            name="instructions"
+            select="concat(substring-before($instructions, '$(nproc || echo 1)'), $jobs_2, substring-after($instructions, '$(nproc || echo 1)'))"/>
+        </xsl:call-template>
+      </xsl:when>
       <xsl:when test="not(starts-with($instructions,'&#xA;chroot')) and
                       contains($instructions, '&#xA;chroot')">
         <xsl:call-template name="extract-chroot">
diff --git a/common/libs/func_book_parser b/common/libs/func_book_parser
index 10115b8..5dbd502 100644
--- a/common/libs/func_book_parser
+++ b/common/libs/func_book_parser
@@ -63,6 +63,13 @@ extract_commands() {         #
   fi
   popd > /dev/null
 
+  JOBS_1=1
+  JOBS_2=1
+  case "$OPTIMIZE" in
+    "1") JOBS_2="$N_PARALLEL";;
+    "2") JOBS_1="$N_PARALLEL"; JOBS_2="$N_PARALLEL";;
+  esac
+
   # First profile the book, for revision and arch. Note that
   # MULTIBLIB is set to "default" if pure 64 bit book. In this case,
   # profiling on arch is useless, but does not hurt either.
@@ -102,6 +109,8 @@ extract_commands() {         #
            --stringparam local          "$LOCAL"        \
            --stringparam log-level      "$LOG_LEVEL"    \
            --stringparam script-root    "$SCRIPT_ROOT"  \
+           --stringparam jobs_1         "$JOBS_1"       \
+           --stringparam jobs_2         "$JOBS_2"       \
            --output "./${COMMANDS}/"                    \
            $XSL                                         \
            prbook.xml >> $LOGDIR/$LOG 2>&1
@@ -141,7 +150,8 @@ create_chroot_scripts() {    #
   if [ ! -z $ARCH ] ; then echo -n " $ARCH" ; fi
   echo -n "... "
   xsltproc --nonet --xinclude \
-           -o chroot-scripts/ chroot.xsl \
+           --stringparam jobs_2 "$JOBS_2" \
+           -o chroot-scripts/ chroot.xsl  \
            $BOOK/chapter0?/*chroot*.xml >> $LOGDIR/$LOG 2>&1
   echo "done"