From c8ee5cbc3b2bdbd0069797bfe04a5fc4e058d55e Mon Sep 17 00:00:00 2001
From: Moe Jette <jette1@llnl.gov>
Date: Mon, 26 Jan 2004 23:29:08 +0000
Subject: [PATCH] Minor tweaks to SLURM API version number processing. Added
 new field "API" to META file.

---
 META                  |  1 +
 acinclude.m4          | 12 ++++++++----
 slurm/slurm.h.in      | 18 +++++++-----------
 src/api/config_info.c |  2 +-
 4 files changed, 17 insertions(+), 16 deletions(-)

diff --git a/META b/META
index ec015ae3f80..45b1684f752 100644
--- a/META
+++ b/META
@@ -10,3 +10,4 @@
   Micro:        0
   Version:	0.3.0
   Release:	0.pre5
+  API:		0x000100
diff --git a/acinclude.m4 b/acinclude.m4
index 6fbf93b15c7..02cfbc06285 100644
--- a/acinclude.m4
+++ b/acinclude.m4
@@ -115,7 +115,11 @@ AC_SUBST(PROJECT)
 # Automake desires "PACKAGE" variable instead of PROJECT
 PACKAGE=$PROJECT
 
-# rpm make target needs Version in META, not major and minor version nubmers
+# rpm make target needs Version in META, not major and minor version numbers
+API="`perl -ne 'print,exit if s/^\s*API:\s*(\S*).*/\1/i' $srcdir/META`"
+AC_DEFINE_UNQUOTED(SLURM_API_VERSION, $API, [Define the API's version.])
+AC_SUBST(SLURM_API_VERSION)
+
 VERSION="`perl -ne 'print,exit if s/^\s*VERSION:\s*(\S*).*/\1/i' $srcdir/META`"
 AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Define the project's version.])
 AC_SUBST(VERSION)
@@ -139,11 +143,11 @@ else
    SLURM_VERSION="$MAJOR.$MINOR.$MICRO"
    test $RELEASE = "1" || SLURM_VERSION="$SLURM_VERSION-$SLURM_RELEASE"
 fi
-AC_DEFINE_UNQUOTED(SLURM_MAJOR, $MAJOR, 
+AC_DEFINE_UNQUOTED(SLURM_MAJOR, "$MAJOR", 
                    [Define the project's major version.])
-AC_DEFINE_UNQUOTED(SLURM_MINOR, $MINOR,
+AC_DEFINE_UNQUOTED(SLURM_MINOR, "$MINOR",
                    [Define the project's minor version.])
-AC_DEFINE_UNQUOTED(SLURM_MICRO, $MICRO,
+AC_DEFINE_UNQUOTED(SLURM_MICRO, "$MICRO",
                    [Define the project's micro version.])
 AC_DEFINE_UNQUOTED(RELEASE, "$RELEASE", [Define the project's release.])
 AC_DEFINE_UNQUOTED(SLURM_VERSION, "$SLURM_VERSION",
diff --git a/slurm/slurm.h.in b/slurm/slurm.h.in
index de970272f78..9ea9d6ee5cf 100644
--- a/slurm/slurm.h.in
+++ b/slurm/slurm.h.in
@@ -96,22 +96,18 @@ BEGIN_C_DECLS
  *      DEFINITIONS FOR VERSION MANAGEMENT
 \*****************************************************************************/
 
-#ifndef SLURM_MAJOR
-/* Define the project's major version. */
-#undef SLURM_MAJOR
-
-/* Define the project's minor version. */
-#undef SLURM_MINOR
-
-/* Define the project's micro version. */
-#undef SLURM_MICRO
-#endif
-
 #define SLURM_VERSION_NUM(a,b,c) (((a) << 16) + ((b) << 8) + (c))
 #define SLURM_VERSION_MAJOR(a)   (((a) >> 16) & 0xff)
 #define SLURM_VERSION_MINOR(a)   (((a) >>  8) & 0xff)
 #define SLURM_VERSION_MICRO(a)    ((a)        & 0xff)
 
+/* Define the API's version. Update in META as needed. 
+ * High-order byte is major version. Update when existing APIs change.
+ * Middle byte     is minor version. Update when new functions are added.
+ * Low-order byte  is micro version. Update on patches and bug fixes. */
+
+#undef SLURM_API_VERSION
+
 /*****************************************************************************\
  *	DEFINITIONS FOR INPUT VALUES
 \*****************************************************************************/
diff --git a/src/api/config_info.c b/src/api/config_info.c
index 2a0b50d9fb5..040d861c970 100644
--- a/src/api/config_info.c
+++ b/src/api/config_info.c
@@ -45,7 +45,7 @@
  */
 extern long slurm_api_version (void)
 {
-	return (long) SLURM_VERSION_NUM(SLURM_MAJOR, SLURM_MINOR, SLURM_MICRO);
+	return (long) SLURM_API_VERSION;
 }
 
 /*
-- 
GitLab