From faf46536c152ebe6831c7343b3fd3023be6ad1e3 Mon Sep 17 00:00:00 2001
From: Mark Olesen <Mark.Olesen@esi-group.com>
Date: Wed, 19 Mar 2025 15:02:47 +0100
Subject: [PATCH] CONFIG: inject -no-recursion into the argument list (#3198)

- sourcing a file with '-no-recursion "$@"' does not work with dash.
  Need to modify the argument list directly.
---
 Allwmake-modules                                | 6 ++++--
 Allwmake-plugins                                | 6 ++++--
 applications/test/00-dummy/library/Allwmake-mpi | 5 +++--
 src/Pstream/Allwmake-mpi                        | 5 +++--
 src/parallel/decompose/Allwmake-mpi             | 5 +++--
 5 files changed, 17 insertions(+), 10 deletions(-)

diff --git a/Allwmake-modules b/Allwmake-modules
index 4a9dc1e022c..ed57ffe524b 100755
--- a/Allwmake-modules
+++ b/Allwmake-modules
@@ -1,13 +1,15 @@
 #!/bin/sh
+cd "${0%/*}" || exit            # Run from this directory
+set -- -no-recursion "$@"       # Parse arguments only
+
 # Run from OPENFOAM top-level directory only
-cd "${0%/*}" || exit
 wmake -check-dir "$WM_PROJECT_DIR" 2>/dev/null || {
     echo "Error (${0##*/}) : not located in \$WM_PROJECT_DIR"
     echo "    Check your OpenFOAM environment and installation"
     exit 1
 }
 if [ -f "$WM_PROJECT_DIR"/wmake/scripts/AllwmakeParseArguments ]
-then  . "$WM_PROJECT_DIR"/wmake/scripts/AllwmakeParseArguments -no-recursion "$@" || \
+then  . "$WM_PROJECT_DIR"/wmake/scripts/AllwmakeParseArguments || \
     echo "Argument parse error"
 else
     echo "Error (${0##*/}) : WM_PROJECT_DIR appears to be incorrect"
diff --git a/Allwmake-plugins b/Allwmake-plugins
index c5aa93794cb..33ab65246f0 100755
--- a/Allwmake-plugins
+++ b/Allwmake-plugins
@@ -1,13 +1,15 @@
 #!/bin/sh
+cd "${0%/*}" || exit            # Run from this directory
+set -- -no-recursion "$@"       # Parse arguments only
+
 # Run from OPENFOAM top-level directory only
-cd "${0%/*}" || exit
 wmake -check-dir "$WM_PROJECT_DIR" 2>/dev/null || {
     echo "Error (${0##*/}) : not located in \$WM_PROJECT_DIR"
     echo "    Check your OpenFOAM environment and installation"
     exit 1
 }
 if [ -f "$WM_PROJECT_DIR"/wmake/scripts/AllwmakeParseArguments ]
-then  . "$WM_PROJECT_DIR"/wmake/scripts/AllwmakeParseArguments -no-recursion "$@" || \
+then  . "$WM_PROJECT_DIR"/wmake/scripts/AllwmakeParseArguments || \
     echo "Argument parse error"
 else
     echo "Error (${0##*/}) : WM_PROJECT_DIR appears to be incorrect"
diff --git a/applications/test/00-dummy/library/Allwmake-mpi b/applications/test/00-dummy/library/Allwmake-mpi
index 9b72d0f821c..0cb69118963 100755
--- a/applications/test/00-dummy/library/Allwmake-mpi
+++ b/applications/test/00-dummy/library/Allwmake-mpi
@@ -1,6 +1,7 @@
 #!/bin/sh
-cd "${0%/*}" || exit                                # Run from this directory
-. ${WM_PROJECT_DIR:?}/wmake/scripts/AllwmakeParseArguments -no-recursion "$@"
+cd "${0%/*}" || exit            # Run from this directory
+set -- -no-recursion "$@"       # Parse arguments only
+. ${WM_PROJECT_DIR:?}/wmake/scripts/AllwmakeParseArguments
 . ${WM_PROJECT_DIR:?}/wmake/scripts/wmakeFunctions  # Require wmake functions
 
 #------------------------------------------------------------------------------
diff --git a/src/Pstream/Allwmake-mpi b/src/Pstream/Allwmake-mpi
index 4f2ae200e0a..9a109189edd 100755
--- a/src/Pstream/Allwmake-mpi
+++ b/src/Pstream/Allwmake-mpi
@@ -1,6 +1,7 @@
 #!/bin/sh
-cd "${0%/*}" || exit                                # Run from this directory
-. ${WM_PROJECT_DIR:?}/wmake/scripts/AllwmakeParseArguments -no-recursion "$@"
+cd "${0%/*}" || exit            # Run from this directory
+set -- -no-recursion "$@"       # Parse arguments only
+. ${WM_PROJECT_DIR:?}/wmake/scripts/AllwmakeParseArguments
 . ${WM_PROJECT_DIR:?}/wmake/scripts/wmakeFunctions  # Require wmake functions
 
 #------------------------------------------------------------------------------
diff --git a/src/parallel/decompose/Allwmake-mpi b/src/parallel/decompose/Allwmake-mpi
index ceb23ce3f1a..2f5b994173f 100755
--- a/src/parallel/decompose/Allwmake-mpi
+++ b/src/parallel/decompose/Allwmake-mpi
@@ -1,6 +1,7 @@
 #!/bin/sh
-cd "${0%/*}" || exit                                # Run from this directory
-. ${WM_PROJECT_DIR:?}/wmake/scripts/AllwmakeParseArguments -no-recursion "$@"
+cd "${0%/*}" || exit            # Run from this directory
+set -- -no-recursion "$@"       # Parse arguments only
+. ${WM_PROJECT_DIR:?}/wmake/scripts/AllwmakeParseArguments
 . ${WM_PROJECT_DIR:?}/wmake/scripts/wmakeFunctions  # Require wmake functions
 . ${WM_PROJECT_DIR:?}/wmake/scripts/have_scotch
 
-- 
GitLab