Skip to content

Commit

Permalink
configure.in: Extract API version from zmq.h
Browse files Browse the repository at this point in the history
* Added a version.sh and relevant changes to configure.in to extract the API
  version from zmq.h at the time autogen.sh is run.
* Moved the version macros to be next to zmq_version in zmq.h and improved
  the comments.
* Modified ZMQ_MAKE_VERSION to use (x) instead of plain x when expanding
  macro parameters.

Signed-off-by: Martin Lucina <mato@kotelna.sk>
  • Loading branch information
mato authored and sustrik committed Oct 15, 2010
1 parent 26d7669 commit 3b3df73
Show file tree
Hide file tree
Showing 4 changed files with 38 additions and 13 deletions.
1 change: 1 addition & 0 deletions Makefile.am
Expand Up @@ -4,6 +4,7 @@ SUBDIRS = src doc perf devices
DIST_SUBDIRS = src doc perf devices builds/msvc DIST_SUBDIRS = src doc perf devices builds/msvc


EXTRA_DIST = \ EXTRA_DIST = \
$(top_srcdir)/version.sh \
$(top_srcdir)/foreign/openpgm/@pgm_basename@.tar.gz \ $(top_srcdir)/foreign/openpgm/@pgm_basename@.tar.gz \
$(top_srcdir)/foreign/xmlParser/xmlParser.cpp \ $(top_srcdir)/foreign/xmlParser/xmlParser.cpp \
$(top_srcdir)/foreign/xmlParser/xmlParser.hpp $(top_srcdir)/foreign/xmlParser/xmlParser.hpp
Expand Down
8 changes: 5 additions & 3 deletions configure.in
Expand Up @@ -2,11 +2,13 @@
# Process this file with autoconf to produce a configure script. # Process this file with autoconf to produce a configure script.
AC_PREREQ(2.61) AC_PREREQ(2.61)
# #
# Change the version number below after doing a public release. # The 0MQ version number is extracted from include/zmq.h using
# the version.sh script. Hence, it should be updated there.
# The version in git should reflect the *next* version planned. # The version in git should reflect the *next* version planned.
# Version must be MAJOR.MINOR.PATCH otherwise things will break.
# #
AC_INIT([zeromq],[2.0.10],[zeromq-dev@lists.zeromq.org]) AC_INIT([zeromq],
m4_esyscmd([./version.sh | tr -d '\n']),
[zeromq-dev@lists.zeromq.org])


AC_CONFIG_AUX_DIR(config) AC_CONFIG_AUX_DIR(config)
AC_CONFIG_MACRO_DIR(config) AC_CONFIG_MACRO_DIR(config)
Expand Down
21 changes: 11 additions & 10 deletions include/zmq.h
Expand Up @@ -30,16 +30,6 @@ extern "C" {
#include "winsock2.h" #include "winsock2.h"
#endif #endif


/* Version macros */
#define ZMQ_VERSION_MAJOR 2
#define ZMQ_VERSION_MINOR 0
#define ZMQ_VERSION_PATCH 10

#define ZMQ_MAKE_VERSION(major, minor, patch) \
(major * 10000 + minor * 100 + patch)
#define ZMQ_VERSION \
ZMQ_MAKE_VERSION(ZMQ_VERSION_MAJOR, ZMQ_VERSION_MINOR, ZMQ_VERSION_PATCH)

/* Win32 needs special handling for DLL exports */ /* Win32 needs special handling for DLL exports */
#if defined _WIN32 #if defined _WIN32
# if defined DLL_EXPORT # if defined DLL_EXPORT
Expand All @@ -55,6 +45,17 @@ extern "C" {
/* 0MQ versioning support. */ /* 0MQ versioning support. */
/******************************************************************************/ /******************************************************************************/


/* Version macros for compile-time API version detection */
#define ZMQ_VERSION_MAJOR 2
#define ZMQ_VERSION_MINOR 0
#define ZMQ_VERSION_PATCH 10

#define ZMQ_MAKE_VERSION(major, minor, patch) \
((major) * 10000 + (minor) * 100 + (patch))
#define ZMQ_VERSION \
ZMQ_MAKE_VERSION(ZMQ_VERSION_MAJOR, ZMQ_VERSION_MINOR, ZMQ_VERSION_PATCH)

/* Run-time API version detection */
ZMQ_EXPORT void zmq_version (int *major, int *minor, int *patch); ZMQ_EXPORT void zmq_version (int *major, int *minor, int *patch);


/******************************************************************************/ /******************************************************************************/
Expand Down
21 changes: 21 additions & 0 deletions version.sh
@@ -0,0 +1,21 @@
#!/bin/sh
#
# This script extracts the 0MQ version from include/zmq.h, which is the master
# location for this information.
#
if [ ! -f include/zmq.h ]; then
echo "version.sh: error: include/zmq.h does not exist" 1>&2
exit 1
fi
MAJOR=`egrep '^#define +ZMQ_VERSION_MAJOR +[0-9]+$' include/zmq.h`
MINOR=`egrep '^#define +ZMQ_VERSION_MINOR +[0-9]+$' include/zmq.h`
PATCH=`egrep '^#define +ZMQ_VERSION_PATCH +[0-9]+$' include/zmq.h`
if [ -z "$MAJOR" -o -z "$MINOR" -o -z "$PATCH" ]; then
echo "version.sh: error: could not extract version from include/zmq.h" 1>&2
exit 1
fi
MAJOR=`echo $MAJOR | awk '{ print $3 }'`
MINOR=`echo $MINOR | awk '{ print $3 }'`
PATCH=`echo $PATCH | awk '{ print $3 }'`
echo $MAJOR.$MINOR.$PATCH

0 comments on commit 3b3df73

Please sign in to comment.