diff options
author | Коренберг Марк (дома) <socketpair@gmail.com> | 2012-08-29 22:55:14 +0600 |
---|---|---|
committer | Коренберг Марк (дома) <socketpair@gmail.com> | 2012-08-30 03:19:04 +0600 |
commit | 582a32433ca03dd2ca78dc485329cb81d391a192 (patch) | |
tree | adeca4c6beb49792c013625d637405768092b5f2 | |
parent | d10d9633a5b673641eebe3f33c89a334d1972aa2 (diff) | |
download | libnl-582a32433ca03dd2ca78dc485329cb81d391a192.tar.gz |
Run-time version information is now available
Run-time version information is available as exported four integers:
- const int nl_ver_num = LIBNL_VER_NUM;
- const int nl_ver_maj = LIBNL_VER_MAJ;
- const int nl_ver_min = LIBNL_VER_MIN;
- const int nl_ver_mic = LIBNL_VER_MIC;
The purpose of this is to get version of compiled library as run time.
Use cases:
- To know exact version of the library in Python's ctypes module,
Say, to find out if nl_cache_mngr_alloc() allow sk=NULL
- To make sure that the version of the loaded library corresponds to the
version of headers (for the paranoid). Say, to check:
if (LIBNL_VER_NUM != nl_ver_num)
exit(1);
-rw-r--r-- | include/netlink/version.h.in | 11 | ||||
-rw-r--r-- | lib/Makefile.am | 3 | ||||
-rw-r--r-- | lib/version.c | 36 |
3 files changed, 48 insertions, 2 deletions
diff --git a/include/netlink/version.h.in b/include/netlink/version.h.in index ac56799..35bf2aa 100644 --- a/include/netlink/version.h.in +++ b/include/netlink/version.h.in @@ -1,5 +1,5 @@ /* - * netlink/version.h Compile Time Versioning Information + * netlink/version.h Versioning Information * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -12,6 +12,8 @@ #ifndef NETLINK_VERSION_H_ #define NETLINK_VERSION_H_ +/* Compile Time Versioning Information */ + #define LIBNL_STRING "@PACKAGE_STRING@" #define LIBNL_VERSION "@PACKAGE_VERSION@" @@ -25,4 +27,11 @@ #define LIBNL_REVISION @LT_REVISION@ #define LIBNL_AGE @LT_AGE@ +/* Run-time version information */ + +extern const int nl_ver_num; +extern const int nl_ver_maj; +extern const int nl_ver_min; +extern const int nl_ver_mic; + #endif diff --git a/lib/Makefile.am b/lib/Makefile.am index aee8d0f..9e5efd8 100644 --- a/lib/Makefile.am +++ b/lib/Makefile.am @@ -17,7 +17,8 @@ lib_LTLIBRARIES = \ libnl_3_la_SOURCES = \ addr.c attr.c cache.c cache_mngr.c cache_mngt.c data.c \ - error.c handlers.c msg.c nl.c object.c socket.c utils.c + error.c handlers.c msg.c nl.c object.c socket.c utils.c \ + version.c libnl_genl_3_la_LIBADD = libnl-3.la libnl_genl_3_la_SOURCES = \ diff --git a/lib/version.c b/lib/version.c new file mode 100644 index 0000000..0dcafa0 --- /dev/null +++ b/lib/version.c @@ -0,0 +1,36 @@ +/* + * lib/version.c Run-time version information + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation version 2.1 + * of the License. + * + * Copyright (c) 2003-2012 Thomas Graf <tgraf@suug.ch> + */ + +/** + * @ingroup core + * @defgroup utils Utilities + * + * Run-time version information + * + * @{ + */ + + +/** + * @name Run-time version information + * @{ + */ + +#include <netlink/version.h> + +const int nl_ver_num = LIBNL_VER_NUM; +const int nl_ver_maj = LIBNL_VER_MAJ; +const int nl_ver_min = LIBNL_VER_MIN; +const int nl_ver_mic = LIBNL_VER_MIC; + +/** @} */ + +/** @} */ |