[dpdk-dev,1/3] scripts: support parallel building in validate-abi.sh via -j[N] option

Message ID c48db14f5764bcef620f19a1fa8d5eed1493cafd.1457607217.git.pmatilai@redhat.com (mailing list archive)
State Accepted, archived
Delegated to: Thomas Monjalon
Headers

Commit Message

Panu Matilainen March 10, 2016, 10:53 a.m. UTC
  Signed-off-by: Panu Matilainen <pmatilai@redhat.com>
---
 doc/guides/contributing/versioning.rst |  4 +++-
 scripts/validate-abi.sh                | 13 ++++++++++---
 2 files changed, 13 insertions(+), 4 deletions(-)
  

Comments

Ferruh Yigit March 10, 2016, 12:52 p.m. UTC | #1
On 3/10/2016 10:53 AM, Panu Matilainen wrote:
> Signed-off-by: Panu Matilainen <pmatilai@redhat.com>
> ---
>  doc/guides/contributing/versioning.rst |  4 +++-
>  scripts/validate-abi.sh                | 13 ++++++++++---
>  2 files changed, 13 insertions(+), 4 deletions(-)
> 
> diff --git a/doc/guides/contributing/versioning.rst b/doc/guides/contributing/versioning.rst
> index ae10a98..33b03a1 100644
> --- a/doc/guides/contributing/versioning.rst
> +++ b/doc/guides/contributing/versioning.rst
> @@ -469,11 +469,13 @@ utilities which can be installed via a package manager. For example::
>  
>  The syntax of the ``validate-abi.sh`` utility is::
>  
> -   ./scripts/validate-abi.sh <REV1> <REV2> <TARGET>
> +   ./scripts/validate-abi.sh [-j[N]] <REV1> <REV2> <TARGET>
>  
>  Where ``REV1`` and ``REV2`` are valid gitrevisions(7)
>  https://www.kernel.org/pub/software/scm/git/docs/gitrevisions.html
>  on the local repo and target is the usual DPDK compilation target.
> +The optional -j[N] switch enables parallel building with at most
> +N simultaneous jobs, ie the same as -j option of ``make``.
>  
>  For example:
>  
> diff --git a/scripts/validate-abi.sh b/scripts/validate-abi.sh
> index c36ad61..f094582 100755
> --- a/scripts/validate-abi.sh
> +++ b/scripts/validate-abi.sh
> @@ -27,13 +27,20 @@
>  #   (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
>  #   OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
>  
> +case "$1" in
> +    -j*)
> +        MAKEJOBS="$1"
> +        shift
> +        ;;
> +esac
> +
>  TAG1=$1
>  TAG2=$2
>  TARGET=$3
>  ABI_DIR=`mktemp -d -p /tmp ABI.XXXXXX`
>  
>  usage() {
> -	echo "$0 <REV1> <REV2> <TARGET>"
> +	echo "$0 [-j[N]] <REV1> <REV2> <TARGET>"
>  }
>  
>  log() {
> @@ -183,7 +190,7 @@ log "INFO" "Configuring DPDK $TAG1"
>  make config T=$TARGET O=$TARGET > $VERBOSE 2>&1
>  
>  log "INFO" "Building DPDK $TAG1. This might take a moment"
> -make O=$TARGET > $VERBOSE 2>&1
> +make $MAKEJOBS O=$TARGET > $VERBOSE 2>&1
>  
>  if [ $? -ne 0 ]
>  then
> @@ -214,7 +221,7 @@ log "INFO" "Configuring DPDK $TAG2"
>  make config T=$TARGET O=$TARGET > $VERBOSE 2>&1
>  
>  log "INFO" "Building DPDK $TAG2. This might take a moment"
> -make O=$TARGET > $VERBOSE 2>&1
> +make $MAKEJOBS O=$TARGET > $VERBOSE 2>&1
>  
>  if [ $? -ne 0 ]
>  then
> 

This is something good to have.

I also found following is also working, not sure if need to document in
script:
"MAKEFLAGS="-j32" ./validate-abi.sh X Y Z"

And was just thinking if needs to address "-j N" usage (space after -j),
it is your call. Other than this,

Acked-by: Ferruh Yigit <ferruh.yigit@intel.com>
  

Patch

diff --git a/doc/guides/contributing/versioning.rst b/doc/guides/contributing/versioning.rst
index ae10a98..33b03a1 100644
--- a/doc/guides/contributing/versioning.rst
+++ b/doc/guides/contributing/versioning.rst
@@ -469,11 +469,13 @@  utilities which can be installed via a package manager. For example::
 
 The syntax of the ``validate-abi.sh`` utility is::
 
-   ./scripts/validate-abi.sh <REV1> <REV2> <TARGET>
+   ./scripts/validate-abi.sh [-j[N]] <REV1> <REV2> <TARGET>
 
 Where ``REV1`` and ``REV2`` are valid gitrevisions(7)
 https://www.kernel.org/pub/software/scm/git/docs/gitrevisions.html
 on the local repo and target is the usual DPDK compilation target.
+The optional -j[N] switch enables parallel building with at most
+N simultaneous jobs, ie the same as -j option of ``make``.
 
 For example:
 
diff --git a/scripts/validate-abi.sh b/scripts/validate-abi.sh
index c36ad61..f094582 100755
--- a/scripts/validate-abi.sh
+++ b/scripts/validate-abi.sh
@@ -27,13 +27,20 @@ 
 #   (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 #   OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
+case "$1" in
+    -j*)
+        MAKEJOBS="$1"
+        shift
+        ;;
+esac
+
 TAG1=$1
 TAG2=$2
 TARGET=$3
 ABI_DIR=`mktemp -d -p /tmp ABI.XXXXXX`
 
 usage() {
-	echo "$0 <REV1> <REV2> <TARGET>"
+	echo "$0 [-j[N]] <REV1> <REV2> <TARGET>"
 }
 
 log() {
@@ -183,7 +190,7 @@  log "INFO" "Configuring DPDK $TAG1"
 make config T=$TARGET O=$TARGET > $VERBOSE 2>&1
 
 log "INFO" "Building DPDK $TAG1. This might take a moment"
-make O=$TARGET > $VERBOSE 2>&1
+make $MAKEJOBS O=$TARGET > $VERBOSE 2>&1
 
 if [ $? -ne 0 ]
 then
@@ -214,7 +221,7 @@  log "INFO" "Configuring DPDK $TAG2"
 make config T=$TARGET O=$TARGET > $VERBOSE 2>&1
 
 log "INFO" "Building DPDK $TAG2. This might take a moment"
-make O=$TARGET > $VERBOSE 2>&1
+make $MAKEJOBS O=$TARGET > $VERBOSE 2>&1
 
 if [ $? -ne 0 ]
 then