From fb14ff365d92e39a9a370072023d47824a3e909b Mon Sep 17 00:00:00 2001 From: Sami Kerola Date: Sun, 14 Jan 2018 11:05:33 +0000 Subject: [PATCH] build-sys: make version number to update at each commit This make version number to be based on git tag. In same go get rid of SNAPSHOT.h in favour of config.h that most of developers expect to see, and make these build system generated headers to be included automatically via -include compiler option so that each file is guaranteed to get them as a first include. Signed-off-by: Sami Kerola --- arping.c | 4 +--- git-version.h.meson | 2 ++ meson.build | 33 ++++++++++++++++++++++----------- ninfod/meson.build | 2 +- ninfod/ni_ifaddrs.c | 2 -- ninfod/ninfod.c | 2 -- ninfod/ninfod_addrs.c | 2 -- ninfod/ninfod_core.c | 2 -- ninfod/ninfod_name.c | 2 -- ping.c | 2 +- ping.h | 1 - rdisc.c | 4 +--- traceroute6.c | 4 +--- 13 files changed, 29 insertions(+), 33 deletions(-) create mode 100644 git-version.h.meson diff --git a/arping.c b/arping.c index cf928eda..ddc6264b 100644 --- a/arping.c +++ b/arping.c @@ -10,8 +10,6 @@ * YOSHIFUJI Hideaki */ -#include "SNAPSHOT.h" - #include #include #include @@ -1041,7 +1039,7 @@ main(int argc, char **argv) source = optarg; break; case 'V': - printf("arping utility, iputils-%s\n", SNAPSHOT); + printf(IPUTILS_VERSION("arping")); exit(0); case 'h': case '?': diff --git a/git-version.h.meson b/git-version.h.meson new file mode 100644 index 00000000..406a9785 --- /dev/null +++ b/git-version.h.meson @@ -0,0 +1,2 @@ +#define PACKAGE_VERSION "@VCS_TAG@" +#define IPUTILS_VERSION(_prog) "%s from %s %s\n", _prog, PACKAGE_NAME, PACKAGE_VERSION diff --git a/meson.build b/meson.build index e93a0208..eaa63bc3 100644 --- a/meson.build +++ b/meson.build @@ -3,12 +3,18 @@ project('iputils', 'c', 'c_std=c99', 'warning_level=2', ], - version : '20170717') # version hardcoded + version : 's20161105') # keep in sync with: git describe | awk -F- '{print $1}' cc = meson.get_compiler('c') +add_project_arguments( + '-include', 'config.h', + '-include', 'git-version.h', + language : 'c' +) + conf = configuration_data() -conf.set_quoted('SNAPSHOT', meson.project_version()) +conf.set_quoted('PACKAGE_NAME', meson.project_name()) if cc.compiles(''' #include @@ -145,53 +151,58 @@ if build_ninfod == true endif endif +git_version_h = vcs_tag( + input : 'git-version.h.meson', + output : 'git-version.h' +) + config_h = configure_file( - output : 'SNAPSHOT.h', + output : 'config.h', configuration : conf) ############################################################ if build_ping == true - executable('ping', ['ping.c', 'ping_common.c', 'ping6_common.c'], + executable('ping', ['ping.c', 'ping_common.c', 'ping6_common.c', git_version_h], dependencies : [m_dep, cap_dep, idn_dep, crypto_dep, resolv_dep], install: true) endif if build_tracepath == true - executable('tracepath', 'tracepath.c', + executable('tracepath', ['tracepath.c', git_version_h], dependencies : idn_dep, install: true) endif if build_traceroute6 == true - executable('traceroute6', 'traceroute6.c', + executable('traceroute6', ['traceroute6.c', git_version_h], dependencies : [cap_dep, idn_dep], install: true) endif if build_clockdiff == true - executable('clockdiff', 'clockdiff.c', + executable('clockdiff', ['clockdiff.c', git_version_h], dependencies : [cap_dep], install: true) endif if build_rinfod == true - executable('rdisc', 'rdisc.c', + executable('rdisc', ['rdisc.c', git_version_h], install: true) endif if build_arping == true - executable('arping', 'arping.c', + executable('arping', ['arping.c', git_version_h], dependencies : [rt_dep, cap_dep, idn_dep], install: true) endif if build_tftpd == true - executable('tftpd', ['tftpd.c', 'tftpsubs.c'], + executable('tftpd', ['tftpd.c', 'tftpsubs.c', git_version_h], install: true) endif if build_rarpd == true - executable('rarpd', 'rarpd.c', + executable('rarpd', ['rarpd.c', git_version_h], install: true) endif diff --git a/ninfod/meson.build b/ninfod/meson.build index 8c85dd64..97ae3190 100644 --- a/ninfod/meson.build +++ b/ninfod/meson.build @@ -11,7 +11,7 @@ ninfod_sources = files(''' ninfod_name.c '''.split()) gcrypt_dep = cc.find_library('gcrypt') -executable('ninfod', ninfod_sources, +executable('ninfod', [ninfod_sources, git_version_h], dependencies : [cap_dep, gcrypt_dep, rt_dep, threads], include_directories : inc, install: true, diff --git a/ninfod/ni_ifaddrs.c b/ninfod/ni_ifaddrs.c index 54fb5776..ed73754c 100644 --- a/ninfod/ni_ifaddrs.c +++ b/ninfod/ni_ifaddrs.c @@ -60,8 +60,6 @@ * SUCH DAMAGE. */ -#include "SNAPSHOT.h" - #include #include #include diff --git a/ninfod/ninfod.c b/ninfod/ninfod.c index 19f94efb..0e88ff3f 100644 --- a/ninfod/ninfod.c +++ b/ninfod/ninfod.c @@ -32,8 +32,6 @@ * YOSHIFUJI Hideaki */ -#include "SNAPSHOT.h" - #if HAVE_SYS_TYPES_H # include #endif diff --git a/ninfod/ninfod_addrs.c b/ninfod/ninfod_addrs.c index c17a2ba8..a9c7129d 100644 --- a/ninfod/ninfod_addrs.c +++ b/ninfod/ninfod_addrs.c @@ -32,8 +32,6 @@ * YOSHIFUJI Hideaki */ -#include "SNAPSHOT.h" - #if HAVE_SYS_TYPES_H # include #endif diff --git a/ninfod/ninfod_core.c b/ninfod/ninfod_core.c index 5f67ea39..7fb0fb8d 100644 --- a/ninfod/ninfod_core.c +++ b/ninfod/ninfod_core.c @@ -32,8 +32,6 @@ * YOSHIFUJI Hideaki */ -#include "SNAPSHOT.h" - #if HAVE_SYS_TYPES_H # include #endif diff --git a/ninfod/ninfod_name.c b/ninfod/ninfod_name.c index 232e8bb4..3e9147af 100644 --- a/ninfod/ninfod_name.c +++ b/ninfod/ninfod_name.c @@ -32,8 +32,6 @@ * YOSHIFUJI Hideaki */ -#include "SNAPSHOT.h" - #if HAVE_SYS_TYPES_H # include #endif diff --git a/ping.c b/ping.c index 38df7a27..f981bf8a 100644 --- a/ping.c +++ b/ping.c @@ -445,7 +445,7 @@ main(int argc, char **argv) options |= F_VERBOSE; break; case 'V': - printf("ping utility, iputils-%s\n", SNAPSHOT); + printf(IPUTILS_VERSION("ping")); exit(0); case 'w': deadline = atoi(optarg); diff --git a/ping.h b/ping.h index d341a899..4cbc586f 100644 --- a/ping.h +++ b/ping.h @@ -62,7 +62,6 @@ #include #include "in6_flowlabel.h" -#include "SNAPSHOT.h" #ifndef SCOPE_DELIMITER #define SCOPE_DELIMITER '%' diff --git a/rdisc.c b/rdisc.c index d2e0589a..cb640630 100644 --- a/rdisc.c +++ b/rdisc.c @@ -62,8 +62,6 @@ #include #include -#include "SNAPSHOT.h" - struct interface { struct in_addr address; /* Used to identify the interface */ @@ -337,7 +335,7 @@ int main(int argc, char **argv) forever = 1; break; case 'V': - printf("rdisc utility, iputils-%s\n", SNAPSHOT); + printf(IPUTILS_VERSION("rdisc")); exit(0); #ifdef RDISC_SERVER case 'T': diff --git a/traceroute6.c b/traceroute6.c index e631f5fe..af519653 100644 --- a/traceroute6.c +++ b/traceroute6.c @@ -266,8 +266,6 @@ #include #include -#include "SNAPSHOT.h" - #ifndef SOL_IPV6 #define SOL_IPV6 IPPROTO_IPV6 #endif @@ -428,7 +426,7 @@ int main(int argc, char *argv[]) } break; case 'V': - printf("traceroute6 utility, iputils-%s\n", SNAPSHOT); + printf(IPUTILS_VERSION("traceroute6")); exit(0); default: usage();