]> granicus.if.org Git - cgit/commitdiff
makefile: auto-detect presence of various Lua, bsd
authorJason A. Donenfeld <Jason@zx2c4.com>
Tue, 14 Jan 2014 00:50:31 +0000 (01:50 +0100)
committerJason A. Donenfeld <Jason@zx2c4.com>
Tue, 14 Jan 2014 01:00:07 +0000 (02:00 +0100)
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>
cgit.mk

diff --git a/cgit.mk b/cgit.mk
index 25f2eabadc696f8f54230109639f4f6d0b0bf170..deef9a723c479819581f540fb235203c97b21ec3 100644 (file)
--- a/cgit.mk
+++ b/cgit.mk
@@ -25,23 +25,50 @@ ifdef NO_C99_FORMAT
        CFLAGS += -DNO_C99_FORMAT
 endif
 
+nullstring :=
+fourspace := $(nullstring)    
 ifdef NO_LUA
-       CFLAGS += -DNO_LUA
+       $(info $(fourspace)* building without specified Lua support)
+       CGIT_CFLAGS += -DNO_LUA
 else
-
-ifeq (VANILLA,$(LUA_IMPLEMENTATION))
-       CFLAGS += -llua
-else
-       LUAJIT_LIBS := $(shell pkg-config --libs luajit)
-       LUAJIT_CFLAGS := $(shell pkg-config --cflags luajit)
+LUAJIT_CFLAGS := $(shell pkg-config --cflags luajit 2>/dev/null)
+LUAJIT_LIBS := $(shell pkg-config --libs luajit 2>/dev/null)
+LUA_LIBS := $(shell pkg-config --libs lua 2>/dev/null)
+LUA_CFLAGS := $(shell pkg-config --cflags lua 2>/dev/null)
+ifeq (JIT,$(LUA_IMPLEMENTATION))
+       ifeq ($(strip $(LUAJIT_LIBS)),)
+               $(error LuaJIT specified via LUA_IMPLEMENTATION=JIT, but library could not be found.)
+       endif
+       $(info $(fourspace)* building with selected LuaJIT)
+       CGIT_LIBS += $(LUAJIT_LIBS)
+       CGIT_CFLAGS += $(LUAJIT_CFLAGS)
+else ifeq (VANILLA,$(LUA_IMPLEMENTATION))
+       ifeq ($(strip $(LUA_LIBS)),)
+               $(error Lua specified via LUA_IMPLEMENTATION=VANILLA, but library could not be found.)
+       endif
+       $(info $(fourspace)* building with selected Lua)
+       CGIT_LIBS += $(LUA_LIBS)
+       CGIT_LIBS += $(LUA_CFLAGS)
+else ifneq ($(strip $(LUAJIT_LIBS)),)
+       $(info $(fourspace)* building with autodetected LuaJIT)
        CGIT_LIBS += $(LUAJIT_LIBS)
-       CFLAGS += $(LUAJIT_CFLAGS)
+       CGIT_CFLAGS += $(LUAJIT_CFLAGS)
+else ifneq ($(strip $(LUA_LIBS)),)
+       $(info $(fourspace)* building with autodetected Lua)
+       CGIT_LIBS += $(LUA_LIBS)
+       CGIT_CFLAGS += $(LUA_CFLAGS)
+else
+       $(info $(fourspace)* building without autodetected Lua support)
+       NO_LUA := YesPlease
+       CGIT_CFLAGS += -DNO_LUA
 endif
 
 endif
 
-CGIT_LIBS += -ldl
-
+# Add -ldl to linker flags on non-BSD systems.
+ifeq ($(findstring BSD,$(uname_S)),)
+       CGIT_LIBS += -ldl
+endif
 
 
 CGIT_OBJ_NAMES += cgit.o