diff options
-rw-r--r-- | config.mk | 4 | ||||
-rw-r--r-- | libsimple-arg.h | 12 |
2 files changed, 14 insertions, 2 deletions
@@ -1,6 +1,8 @@ -PREFIX = /usr +PREFIX = /usr MANPREFIX = $(PREFIX)/share/man +CC = cc + CPPFLAGS = -D_DEFAULT_SOURCE -D_BSD_SOURCE -D_XOPEN_SOURCE=700 CFLAGS = -std=c11 -Wall -Wextra -O2 $(CPPFLAGS) LDFLAGS = -s diff --git a/libsimple-arg.h b/libsimple-arg.h index 3ffc3ed..bc7d4ae 100644 --- a/libsimple-arg.h +++ b/libsimple-arg.h @@ -7,6 +7,15 @@ #include <string.h> +#ifdef LIBSIMPLY_CONFIG_MULTICALL_BINARY /* Define by the application */ +# define _LIBSIMPLY_IF_MULTICALL_BINARY(...) __VA_ARGS__ +# define _LIBSIMPLY_UNLESS_MULTICALL_BINARY(...) +#else +# define _LIBSIMPLY_IF_MULTICALL_BINARY(...) +# define _LIBSIMPLY_UNLESS_MULTICALL_BINARY(...) __VA_ARGS__ +#endif + + /** * The zeroth command line argument, the name of the process, * set by the command line parsing macros @@ -467,7 +476,8 @@ struct longopt { fprintf(stderr, "usage: %s%s%s\n", argv0, *syn ? " " : "", syn);\ exit(STATUS);\ }\ - char *argv0 = NULL + _LIBSIMPLY_UNLESS_MULTICALL_BINARY(char *argv0 = NULL)\ + _LIBSIMPLY_IF_MULTICALL_BINARY(int main(int, char *[])) #endif |