summaryrefslogtreecommitdiffstats
path: root/pdatools.c.in
diff options
context:
space:
mode:
authorMattias Andrée <maandree@kth.se>2021-04-06 03:38:11 +0200
committerMattias Andrée <maandree@kth.se>2021-04-06 03:38:11 +0200
commite99553d3609956d1ecb2b28ceefe28e1b68aecb9 (patch)
tree50ebdc8a2818ecf73893d7b94172de0b8a057a90 /pdatools.c.in
parentUse libsimple instead of libcore (diff)
downloadpdatools-e99553d3609956d1ecb2b28ceefe28e1b68aecb9.tar.gz
pdatools-e99553d3609956d1ecb2b28ceefe28e1b68aecb9.tar.bz2
pdatools-e99553d3609956d1ecb2b28ceefe28e1b68aecb9.tar.xz
Add (default) ability to build multicall binary
Signed-off-by: Mattias Andrée <maandree@kth.se>
Diffstat (limited to 'pdatools.c.in')
-rw-r--r--pdatools.c.in30
1 files changed, 30 insertions, 0 deletions
diff --git a/pdatools.c.in b/pdatools.c.in
new file mode 100644
index 0000000..b297951
--- /dev/null
+++ b/pdatools.c.in
@@ -0,0 +1,30 @@
+/* See LICENSE file for copyright and license details. */
+#include <stdio.h>
+#include <string.h>
+
+#define X(NAM) int main__##NAM(int, char *[]);
+LIST_COMMANDS
+#undef X
+
+char *argv0 = NULL;
+
+int
+main(int argc, char *argv[])
+{
+ char *name, *p;
+
+ name = strrchr(*argv, '/');
+ if (!name++)
+ name = *argv;
+ for (p = name; (p = strchr(p, '-'));)
+ *p++ = '_';
+
+#define X(NAM)\
+ if (!strcmp(name, #NAM))\
+ return main__##NAM(argc, argv);
+ LIST_COMMANDS;
+#undef X
+
+ fprintf(stderr, "%s: unrecognised command for multicall binary\n", *argv);
+ return 127;
+}