From fddeaf94ebd560370a445afc34b591ae044703e3 Mon Sep 17 00:00:00 2001 From: Shreenidhi Shedi Date: Sun, 12 Feb 2023 16:16:01 +0000 Subject: [PATCH] Make `synce4l -v` option actually work Signed-off-by: Shreenidhi Shedi --- Makefile | 10 +++++++++- synce4l.c | 10 +++++++--- util.h | 3 +++ 3 files changed, 19 insertions(+), 4 deletions(-) diff --git a/Makefile b/Makefile index 6472f52..7b2fe14 100644 --- a/Makefile +++ b/Makefile @@ -11,8 +11,16 @@ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. +VERSION := "$(shell git describe --abbrev=4 --dirty --always --tags)" +ifndef VERSION + $(error VERSION is unset) +endif +ifeq ($(VERSION), "") + $(error VERSION is empty) +endif + CC = gcc -CFLAGS = -Wall $(EXTRA_CFLAGS) -pthread +CFLAGS = -Wall $(EXTRA_CFLAGS) -pthread -DVERSION=$(VERSION) LDLIBS = -lm -lrt -pthread $(EXTRA_LDFLAGS) OBJS = esmc_socket.o synce_clock.o synce_dev.o synce_dev_ctrl.o \ diff --git a/synce4l.c b/synce4l.c index a8eabd5..9ee5c2a 100644 --- a/synce4l.c +++ b/synce4l.c @@ -15,6 +15,7 @@ #include "synce_clock.h" #include "config.h" #include "print.h" +#include "util.h" static void usage(char *progname) { @@ -40,9 +41,12 @@ static void synce4l_cleanup(struct config *cfg) config_destroy(cfg); } -static void version_show() +static void version_show(void) { - // TODO: add version +#ifndef VERSION + #error VERSION macro not defined, failing compilation. +#endif + printf("synce4l version: %s\n", xstr(VERSION)); } int unused() @@ -89,7 +93,7 @@ int main(int argc, char *argv[]) config_set_int(cfg, "use_syslog", 0); break; case 'v': - version_show(stdout); + version_show(); synce4l_cleanup(cfg); return 0; case 'h': diff --git a/util.h b/util.h index ecb8921..6bc24c4 100644 --- a/util.h +++ b/util.h @@ -30,6 +30,9 @@ #include "address.h" +#define xstr(s) str(s) +#define str(s) #s + #define PACKED __attribute__((packed)) #define MAX_PRINT_BYTES 16