diff options
| author | Jason A. Donenfeld <Jason@zx2c4.com> | 2014-01-14 01:50:31 +0100 | 
|---|---|---|
| committer | Jason A. Donenfeld <Jason@zx2c4.com> | 2014-01-14 02:00:07 +0100 | 
| commit | 3488d124052f5c3ddef303ed5306ad6a458794c1 (patch) | |
| tree | 5cf1db9e99eae07c64158f9464a6c25e5882008b | |
| parent | filter: style tweaks (diff) | |
| download | cgit-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.mk | 47 | 
1 files changed, 37 insertions, 10 deletions
| @@ -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 | 
