allow building without help when lua interpreter is not available

fixes #10696
cute-signatures
Timo Teräs 2020-05-19 10:50:57 +03:00
parent 5e251b21fd
commit 12fdf6fc21
2 changed files with 21 additions and 6 deletions

View File

@ -1,8 +1,14 @@
PKG_CONFIG ?= pkg-config
LUAAPK ?= yes
PKG_CONFIG ?= pkg-config
LUA ?= $(firstword $(wildcard /usr/bin/lua5.3 /usr/bin/lua5.2))
ifeq ($(LUA),no)
LUAAPK ?= no
else ifneq ($(LUA),)
LUAAPK ?= yes
else
$(error Lua interpreter not found. Please specify LUA interpreter, or use LUA=no to build without help.)
endif
OPENSSL_CFLAGS := $(shell $(PKG_CONFIG) --cflags openssl)
OPENSSL_LIBS := $(shell $(PKG_CONFIG) --libs openssl)
@ -86,10 +92,14 @@ LIBS := -Wl,--as-needed \
# Help generation
quiet_cmd_genhelp = GENHELP $@
ifneq ($(LUA),no)
cmd_genhelp = $(LUA) $(src)/genhelp.lua $(filter %.scd, $^) > $@
else
cmd_genhelp = echo \\\#define NO_HELP > $@
endif
$(obj)/help.h: $(src)/genhelp.lua $(wildcard doc/apk*.8.scd)
@$(call echo-cmd,genhelp) $(cmd_genhelp)
$(obj)/help.h: $(src)/genhelp.lua $(wildcard doc/apk*.8.scd) FORCE
$(call if_changed,genhelp)
CFLAGS_help.o := -I$(obj)

View File

@ -10,7 +10,7 @@
#include "apk_applet.h"
#include "apk_print.h"
static int is_group(struct apk_applet *applet, const char *topic)
static inline int is_group(struct apk_applet *applet, const char *topic)
{
if (!applet) return strcasecmp(topic, "apk") == 0;
if (strcasecmp(topic, applet->name) == 0) return 1;
@ -23,6 +23,7 @@ void apk_help(struct apk_applet *applet)
{
#include "help.h"
#ifndef NO_HELP
char buf[uncompressed_help_size], *ptr, *msg;
unsigned long len = sizeof buf;
int num = 0;
@ -38,4 +39,8 @@ void apk_help(struct apk_applet *applet)
}
}
if (num == 0) apk_error("Help not found");
#else
fputc('\n', stdout);
apk_error("This apk-tools has been built without help");
#endif
}