Use of a script in the autotools breaks github CI
Define the API version in configure and reuse it in the code

Benefits:
removes dependence on scripts to build
removes scripts and the make file from odp/scripts
removes generated .scmversion file
places api versioning right next to lib versioning in the configure.ac
allows github to auto build odp repos

Signed-off-by: Mike Holmes <mike.hol...@linaro.org>
---
 .gitignore                                       |  1 -
 Makefile.am                                      |  5 ++--
 configure.ac                                     | 21 +++++++++++++++--
 include/odp/api/spec/.gitignore                  |  1 +
 include/odp/api/spec/{version.h => version.h.in} |  6 ++---
 platform/Makefile.inc                            |  3 +--
 scripts/Makefile.am                              |  1 -
 scripts/get_impl_str.sh                          | 11 ---------
 scripts/git_hash.sh                              | 29 ------------------------
 9 files changed, 26 insertions(+), 52 deletions(-)
 create mode 100644 include/odp/api/spec/.gitignore
 rename include/odp/api/spec/{version.h => version.h.in} (93%)
 delete mode 100644 scripts/Makefile.am
 delete mode 100755 scripts/get_impl_str.sh
 delete mode 100755 scripts/git_hash.sh

diff --git a/.gitignore b/.gitignore
index d4e7d02..fbc0eab 100644
--- a/.gitignore
+++ b/.gitignore
@@ -12,7 +12,6 @@
 .deps/
 .dirstamp
 .libs/
-.scmversion
 CUnit-Memory-Dump.xml
 ID
 Makefile
diff --git a/Makefile.am b/Makefile.am
index 625748a..2a9a658 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -11,9 +11,8 @@ SUBDIRS = @platform_with_platform@ \
          test \
          helper/test \
          doc \
-         example \
-         scripts
+         example
 
 @DX_RULES@
 
-EXTRA_DIST = bootstrap $(DX_CONFIG) CHANGELOG config/README .scmversion
+EXTRA_DIST = bootstrap $(DX_CONFIG) CHANGELOG config/README
diff --git a/configure.ac b/configure.ac
index f081c51..ab19084 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1,5 +1,23 @@
 AC_PREREQ([2.5])
-AC_INIT([OpenDataPlane], m4_esyscmd(./scripts/git_hash.sh .), 
[lng-odp@lists.linaro.org])
+##########################################################################
+# Set correct API version
+##########################################################################
+m4_define([odpapi_generation_version], [1])
+m4_define([odpapi_major_version], [11])
+m4_define([odpapi_minor_version], [0])
+m4_define([odpapi_point_version], [0])
+m4_define([odpapi_version],
+    
[odpapi_generation_version.odpapi_major_version.odpapi_minor_version.odpapi_point_version])
+AC_INIT([OpenDataPlane],[odpapi_version],[lng-odp@lists.linaro.org])
+
+ODP_VERSION_API_GENERATION=odpapi_generation_version
+AC_SUBST(ODP_VERSION_API_GENERATION)
+ODP_VERSION_API_MAJOR=odpapi_major_version
+AC_SUBST(ODP_VERSION_API_MAJOR)
+ODP_VERSION_API_MINOR=odpapi_minor_version
+AC_SUBST(ODP_VERSION_API_MINOR)
+AC_CONFIG_FILES([include/odp/api/spec/version.h])
+
 AM_INIT_AUTOMAKE([1.9 tar-pax subdir-objects])
 AC_CONFIG_SRCDIR([helper/config.h.in])
 AM_CONFIG_HEADER([helper/config.h])
@@ -271,7 +289,6 @@ AC_CONFIG_FILES([Makefile
                 helper/test/Makefile
                 pkgconfig/libodp-linux.pc
                 pkgconfig/libodphelper-linux.pc
-                scripts/Makefile
                 ])
 
 AC_SEARCH_LIBS([timer_create],[rt posix4])
diff --git a/include/odp/api/spec/.gitignore b/include/odp/api/spec/.gitignore
new file mode 100644
index 0000000..6702033
--- /dev/null
+++ b/include/odp/api/spec/.gitignore
@@ -0,0 +1 @@
+version.h
diff --git a/include/odp/api/spec/version.h b/include/odp/api/spec/version.h.in
similarity index 93%
rename from include/odp/api/spec/version.h
rename to include/odp/api/spec/version.h.in
index aa3f3ab..4b16dcc 100644
--- a/include/odp/api/spec/version.h
+++ b/include/odp/api/spec/version.h.in
@@ -37,7 +37,7 @@ extern "C" {
  * very significant changes to the API. APIs with different
  * versions are likely not backward compatible.
  */
-#define ODP_VERSION_API_GENERATION 1
+#define ODP_VERSION_API_GENERATION @ODP_VERSION_API_GENERATION@
 
 /**
  * ODP API major version
@@ -45,7 +45,7 @@ extern "C" {
  * Introduction of major new features or changes. APIs with different major
  * versions are likely not backward compatible.
  */
-#define ODP_VERSION_API_MAJOR 10
+#define  ODP_VERSION_API_MAJOR @ODP_VERSION_API_MAJOR@
 
 /**
  * ODP API minor version
@@ -54,7 +54,7 @@ extern "C" {
  * to the API. For an API with common generation and major version, but with
  * different minor numbers the two versions are backward compatible.
  */
-#define ODP_VERSION_API_MINOR 1
+#define ODP_VERSION_API_MINOR @ODP_VERSION_API_MINOR@
 
 /**
  * ODP API version string
diff --git a/platform/Makefile.inc b/platform/Makefile.inc
index a44f88f..432d1fd 100644
--- a/platform/Makefile.inc
+++ b/platform/Makefile.inc
@@ -10,8 +10,7 @@ lib_LTLIBRARIES = $(LIB)/libodp-linux.la
 
 AM_LDFLAGS += -version-number '$(ODP_LIBSO_VERSION)'
 
-GIT_DESC = `$(top_srcdir)/scripts/get_impl_str.sh $(top_srcdir)`
-AM_CFLAGS += "-DGIT_HASH=$(GIT_DESC)"
+AM_CFLAGS += "-DGIT_HASH=$(VERSION)"
 AM_CFLAGS += $(VISIBILITY_CFLAGS)
 
 #The implementation will need to retain the deprecated implementation
diff --git a/scripts/Makefile.am b/scripts/Makefile.am
deleted file mode 100644
index 189b3ef..0000000
--- a/scripts/Makefile.am
+++ /dev/null
@@ -1 +0,0 @@
-EXTRA_DIST = get_impl_str.sh git_hash.sh
diff --git a/scripts/get_impl_str.sh b/scripts/get_impl_str.sh
deleted file mode 100755
index d765a53..0000000
--- a/scripts/get_impl_str.sh
+++ /dev/null
@@ -1,11 +0,0 @@
-#!/bin/bash
-
-if [ -z ${1} ]; then
-       echo "should be called with a path"
-       exit
-fi
-ROOTDIR=${1}
-
-CUSTOM_STR=${CUSTOM_STR:-https://git.linaro.org/lng/odp.git}
-
-echo -n "'${CUSTOM_STR}' ($(cat ${ROOTDIR}/.scmversion))"
diff --git a/scripts/git_hash.sh b/scripts/git_hash.sh
deleted file mode 100755
index 336eb01..0000000
--- a/scripts/git_hash.sh
+++ /dev/null
@@ -1,29 +0,0 @@
-#!/bin/bash
-
-if [ -z ${1} ]; then
-       echo "should be called with a path"
-       exit
-fi
-ROOTDIR=${1}
-
-if [ -d ${ROOTDIR}/.git ]; then
-       hash=$(git --git-dir=${ROOTDIR}/.git describe --match 
'v[0-9]*\.[0-9]*\.[0-9]*\.[0-9]*'\
-              | tr -d "\n")
-       if [[ $(git --git-dir=${ROOTDIR}/.git diff --shortstat 2> /dev/null \
-               | tail -n1) != "" ]]; then
-               dirty=.dirty
-       fi
-
-       echo -n "${hash}${dirty}">${ROOTDIR}/.scmversion
-
-       sed -i "s|-|.git|" ${ROOTDIR}/.scmversion
-       sed -i "s|-|.|g" ${ROOTDIR}/.scmversion
-       sed -i "s|^v||g" ${ROOTDIR}/.scmversion
-elif [ ! -d ${ROOTDIR}/.git -a ! -f ${ROOTDIR}/.scmversion ]; then
-       echo -n "File ROOTDIR/.scmversion not found, "
-       echo "and not inside a git repository"
-       echo "Bailing out! Not recoverable!"
-       exit 1
-fi
-
-cat ${ROOTDIR}/.scmversion
-- 
2.7.4

Reply via email to