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();