summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--config/common_base14
-rw-r--r--config/meson.build16
-rw-r--r--config/rte_config.h3
-rw-r--r--lib/librte_eal/common/include/rte_version.h32
-rw-r--r--mk/rte.sdkconfig.mk7
5 files changed, 40 insertions, 32 deletions
diff --git a/config/common_base b/config/common_base
index 0b09a93..6292bc4 100644
--- a/config/common_base
+++ b/config/common_base
@@ -2,6 +2,20 @@
# Copyright(c) 2010-2017 Intel Corporation
#
+# String that appears before the version number
+#
+CONFIG_RTE_VER_PREFIX="DPDK"
+
+#
+# Version information completed when this file is processed for a build
+#
+CONFIG_RTE_VER_YEAR=__YEAR
+CONFIG_RTE_VER_MONTH=__MONTH
+CONFIG_RTE_VER_MINOR=__MINOR
+CONFIG_RTE_VER_SUFFIX=__SUFFIX
+CONFIG_RTE_VER_RELEASE=__RELEASE
+
+#
# define executive environment
# RTE_EXEC_ENV values are the directories in mk/exec-env/
#
diff --git a/config/meson.build b/config/meson.build
index 999dea9..30a7261 100644
--- a/config/meson.build
+++ b/config/meson.build
@@ -6,6 +6,22 @@
pver = meson.project_version().split('.')
major_version = '@0@.@1@'.format(pver.get(0), pver.get(1))
+# extract all version information into the build configuration
+dpdk_conf.set('RTE_VER_YEAR', pver.get(0).to_int())
+dpdk_conf.set('RTE_VER_MONTH', pver.get(1).to_int())
+if pver.get(2).contains('-rc')
+ rc_ver = pver.get(2).split('-rc')
+ dpdk_conf.set('RTE_VER_MINOR', rc_ver.get(0).to_int())
+ dpdk_conf.set_quoted('RTE_VER_SUFFIX', '-rc')
+ dpdk_conf.set('RTE_VER_RELEASE', rc_ver.get(1).to_int())
+else
+ dpdk_conf.set('RTE_VER_MINOR', pver.get(2).to_int())
+ dpdk_conf.set_quoted('RTE_VER_SUFFIX', '')
+# for actual, non-rc releases, set the release value to 99 to ensure releases
+# have higher version numbers than their respective release candidates
+ dpdk_conf.set('RTE_VER_RELEASE', 99)
+endif
+
pmd_subdir_opt = get_option('drivers_install_subdir')
if pmd_subdir_opt.contains('<VERSION>')
pmd_subdir_opt = major_version.join(pmd_subdir_opt.split('<VERSION>'))
diff --git a/config/rte_config.h b/config/rte_config.h
index 1690f4d..cda51af 100644
--- a/config/rte_config.h
+++ b/config/rte_config.h
@@ -26,6 +26,9 @@
#define RTE_EXEC_ENV_BSDAPP 1
#endif
+/* String that appears before the version number */
+#define RTE_VER_PREFIX "DPDK"
+
/****** library defines ********/
/* compat defines */
diff --git a/lib/librte_eal/common/include/rte_version.h b/lib/librte_eal/common/include/rte_version.h
index a7eed7a..50867ea 100644
--- a/lib/librte_eal/common/include/rte_version.h
+++ b/lib/librte_eal/common/include/rte_version.h
@@ -20,38 +20,6 @@ extern "C" {
#include <rte_common.h>
/**
- * String that appears before the version number
- */
-#define RTE_VER_PREFIX "DPDK"
-
-/**
- * Major version/year number i.e. the yy in yy.mm.z
- */
-#define RTE_VER_YEAR 19
-
-/**
- * Minor version/month number i.e. the mm in yy.mm.z
- */
-#define RTE_VER_MONTH 5
-
-/**
- * Patch level number i.e. the z in yy.mm.z
- */
-#define RTE_VER_MINOR 0
-
-/**
- * Extra string to be appended to version number
- */
-#define RTE_VER_SUFFIX "-rc"
-
-/**
- * Patch release number
- * 0-15 = release candidates
- * 16 = release
- */
-#define RTE_VER_RELEASE 0
-
-/**
* Macro to compute a version number usable for comparisons
*/
#define RTE_VERSION_NUM(a,b,c,d) ((a) << 24 | (b) << 16 | (c) << 8 | (d))
diff --git a/mk/rte.sdkconfig.mk b/mk/rte.sdkconfig.mk
index 46ec9e7..f538649 100644
--- a/mk/rte.sdkconfig.mk
+++ b/mk/rte.sdkconfig.mk
@@ -74,9 +74,16 @@ else
# To do so the temp config is checked for duplicate keys with cut/sort/uniq
# Then for each of those identified duplicates as long as there are more than
# just one left the last match is removed.
+# Part of the config includes the version information taken from "VERSION"
+# in the repo. This needs to be split into the various parts using sed and awk.
+# To ensure correct version comparison, we append ".99" to the version number
+# so that the version of a release is higher than that of its rc's.
$(RTE_OUTPUT)/.config: $(RTE_CONFIG_TEMPLATE) FORCE | $(RTE_OUTPUT)
$(Q)if [ "$(RTE_CONFIG_TEMPLATE)" != "" -a -f "$(RTE_CONFIG_TEMPLATE)" ]; then \
$(CPP) -undef -P -x assembler-with-cpp \
+ `cat $(RTE_SRCDIR)/VERSION | \
+ sed -e 's/-rc/.-rc./' -e 's/$$/..99/' | \
+ awk -F '.' '{print "-D__YEAR="int($$1), "-D__MONTH="int($$2), "-D__MINOR="int($$3), "-D__SUFFIX=\""$$4"\"", "-D__RELEASE="int($$5)}'` \
-ffreestanding \
-o $(RTE_OUTPUT)/.config_tmp $(RTE_CONFIG_TEMPLATE) ; \
config=$$(cat $(RTE_OUTPUT)/.config_tmp) ; \