From 12fdf6fc219321d22825042ae08efd322acc0310 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20Ter=C3=A4s?= Date: Tue, 19 May 2020 10:50:57 +0300 Subject: [PATCH] allow building without help when lua interpreter is not available fixes #10696 --- src/Makefile | 20 +++++++++++++++----- src/help.c | 7 ++++++- 2 files changed, 21 insertions(+), 6 deletions(-) diff --git a/src/Makefile b/src/Makefile index bea4cdf..4a055ce 100644 --- a/src/Makefile +++ b/src/Makefile @@ -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) diff --git a/src/help.c b/src/help.c index e148f26..3034da2 100644 --- a/src/help.c +++ b/src/help.c @@ -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 }