summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile9
-rw-r--r--ltunify.c23
2 files changed, 25 insertions, 7 deletions
diff --git a/Makefile b/Makefile
index b68ddfd..8116950 100644
--- a/Makefile
+++ b/Makefile
@@ -9,6 +9,13 @@ udevrulesdir ?= /etc/udev/rules.d
udevrule = 42-logitech-unify-permissions.rules
+PACKAGE_VERSION ?= $(shell git describe --dirty 2>/dev/null | sed s/^v//)
+ifeq (PACKAGE_VERSION, "")
+ LTUNIFY_DEFINES :=
+else
+ LTUNIFY_DEFINES := -DPACKAGE_VERSION=\"$(PACKAGE_VERSION)\"
+endif
+
%: %.c
$(CC) $(CFLAGS) -o $(OUTDIR)$@ $<
@@ -17,7 +24,7 @@ all: ltunify read-dev-usbmon
read-dev-usbmon: read-dev-usbmon.c hidraw.c
ltunify: ltunify.c hidpp20.c
- $(CC) $(CFLAGS) -o $(OUTDIR)$@ $< -lrt
+ $(CC) $(CFLAGS) -o $(OUTDIR)$@ $< -lrt $(LTUNIFY_DEFINES)
.PHONY: all clean install-home install install-udevrule uninstall
clean:
diff --git a/ltunify.c b/ltunify.c
index 7c2b373..ee99a17 100644
--- a/ltunify.c
+++ b/ltunify.c
@@ -1010,6 +1010,13 @@ void get_device_names(int fd) {
}
}
}
+
+static void print_version(void) {
+ fprintf(stderr,
+"Logitech Unifying tool version " PACKAGE_VERSION "\n"
+"Copyright (C) 2013 Peter Wu <lekensteyn@gmail.com>\n");
+}
+
void print_all_devices(void) {
unsigned i;
puts("Connected devices:");
@@ -1025,9 +1032,10 @@ void print_all_devices(void) {
}
static void print_usage(const char *program_name) {
- fprintf(stderr, "Usage: %s [options] cmd [cmd options]\n"
-"Logitech Unifying tool version %s\n"
-"Copyright (C) 2013 Peter Wu <lekensteyn@gmail.com>\n"
+ fprintf(stderr, "Usage: %s [options] cmd [cmd options]\n",
+ program_name);
+ print_version();
+ fprintf(stderr,
"\n"
"Generic options:\n"
" -d, --device path Bypass detection, specify custom hidraw device.\n"
@@ -1043,8 +1051,7 @@ static void print_usage(const char *program_name) {
" receiver-info - Show information about the receiver\n"
"In the above lines, \"idx\" refers to the device number shown in the\n"
" first column of the list command (between 1 and 6). Alternatively, you\n"
-" can use the following names (case-insensitive):\n"
- , program_name, PACKAGE_VERSION);
+" can use the following names (case-insensitive):\n");
print_device_types();
}
@@ -1067,12 +1074,13 @@ static int validate_args(int argc, char **argv, char ***argsp, char **hidraw_pat
struct option longopts[] = {
{ "device", 1, NULL, 'd' },
{ "help", 0, NULL, 'h' },
+ { "version", 0, NULL, 'V' },
{ 0, 0, 0, 0 },
};
*argsp = NULL;
- while ((opt = getopt_long(argc, argv, "+Dd:h", longopts, NULL)) != -1) {
+ while ((opt = getopt_long(argc, argv, "+Dd:hV", longopts, NULL)) != -1) {
switch (opt) {
case 'D':
debug_enabled = true;
@@ -1080,6 +1088,9 @@ static int validate_args(int argc, char **argv, char ***argsp, char **hidraw_pat
case 'd':
*hidraw_path = optarg;
break;
+ case 'V':
+ print_version();
+ return 0;
case 'h':
print_usage(*argv);
return 0;