aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJason A. Donenfeld2014-01-14 01:50:31 +0100
committerJason A. Donenfeld2014-01-14 02:00:07 +0100
commit3488d124052f5c3ddef303ed5306ad6a458794c1 (patch)
tree5cf1db9e99eae07c64158f9464a6c25e5882008b
parentd3c0370a3f108121642d02bbd190ce676bb4772b (diff)
downloadcgit-3488d124052f5c3ddef303ed5306ad6a458794c1.tar.gz
cgit-3488d124052f5c3ddef303ed5306ad6a458794c1.tar.bz2
cgit-3488d124052f5c3ddef303ed5306ad6a458794c1.zip
makefile: auto-detect presence of various Lua, bsd
We favor LuaJIT over Lua. We disable Lua if neither can be found. We error out if a particular Lua is specified via LUA_IMPLEMENTATION=JIT or LUA_IMPLEMENTATION=VANILLA, but cannot be found. We print a status message depending on what happens. Also, we do not link against libdl on the BSDs, since they include it as part of libc. Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
-rw-r--r--cgit.mk47
1 files changed, 37 insertions, 10 deletions
diff --git a/cgit.mk b/cgit.mk
index 25f2eab..deef9a7 100644
--- a/cgit.mk
+++ b/cgit.mk
@@ -25,23 +25,50 @@ ifdef NO_C99_FORMAT
25 CFLAGS += -DNO_C99_FORMAT 25 CFLAGS += -DNO_C99_FORMAT
26endif 26endif
27 27
28nullstring :=
29fourspace := $(nullstring)
28ifdef NO_LUA 30ifdef NO_LUA
29 CFLAGS += -DNO_LUA 31 $(info $(fourspace)* building without specified Lua support)
32 CGIT_CFLAGS += -DNO_LUA
30else 33else
31 34LUAJIT_CFLAGS := $(shell pkg-config --cflags luajit 2>/dev/null)
32ifeq (VANILLA,$(LUA_IMPLEMENTATION)) 35LUAJIT_LIBS := $(shell pkg-config --libs luajit 2>/dev/null)
33 CFLAGS += -llua 36LUA_LIBS := $(shell pkg-config --libs lua 2>/dev/null)
34else 37LUA_CFLAGS := $(shell pkg-config --cflags lua 2>/dev/null)
35 LUAJIT_LIBS := $(shell pkg-config --libs luajit) 38ifeq (JIT,$(LUA_IMPLEMENTATION))
36 LUAJIT_CFLAGS := $(shell pkg-config --cflags luajit) 39 ifeq ($(strip $(LUAJIT_LIBS)),)
40 $(error LuaJIT specified via LUA_IMPLEMENTATION=JIT, but library could not be found.)
41 endif
42 $(info $(fourspace)* building with selected LuaJIT)
43 CGIT_LIBS += $(LUAJIT_LIBS)
44 CGIT_CFLAGS += $(LUAJIT_CFLAGS)
45else ifeq (VANILLA,$(LUA_IMPLEMENTATION))
46 ifeq ($(strip $(LUA_LIBS)),)
47 $(error Lua specified via LUA_IMPLEMENTATION=VANILLA, but library could not be found.)
48 endif
49 $(info $(fourspace)* building with selected Lua)
50 CGIT_LIBS += $(LUA_LIBS)
51 CGIT_LIBS += $(LUA_CFLAGS)
52else ifneq ($(strip $(LUAJIT_LIBS)),)
53 $(info $(fourspace)* building with autodetected LuaJIT)
37 CGIT_LIBS += $(LUAJIT_LIBS) 54 CGIT_LIBS += $(LUAJIT_LIBS)
38 CFLAGS += $(LUAJIT_CFLAGS) 55 CGIT_CFLAGS += $(LUAJIT_CFLAGS)
56else ifneq ($(strip $(LUA_LIBS)),)
57 $(info $(fourspace)* building with autodetected Lua)
58 CGIT_LIBS += $(LUA_LIBS)
59 CGIT_CFLAGS += $(LUA_CFLAGS)
60else
61 $(info $(fourspace)* building without autodetected Lua support)
62 NO_LUA := YesPlease
63 CGIT_CFLAGS += -DNO_LUA
39endif 64endif
40 65
41endif 66endif
42 67
43CGIT_LIBS += -ldl 68# Add -ldl to linker flags on non-BSD systems.
44 69ifeq ($(findstring BSD,$(uname_S)),)
70 CGIT_LIBS += -ldl
71endif
45 72
46 73
47CGIT_OBJ_NAMES += cgit.o 74CGIT_OBJ_NAMES += cgit.o