diff options
| author | 2014-01-14 09:50:31 (JST) | |
|---|---|---|
| committer | 2014-01-14 10:00:07 (JST) | |
| commit | 3488d124052f5c3ddef303ed5306ad6a458794c1 (patch) | |
| tree | 5cf1db9e99eae07c64158f9464a6c25e5882008b | |
| parent | d3c0370a3f108121642d02bbd190ce676bb4772b (diff) | |
| download | cgit-3488d124052f5c3ddef303ed5306ad6a458794c1.zip cgit-3488d124052f5c3ddef303ed5306ad6a458794c1.tar.gz | |
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 | |||
| 25 | CFLAGS += -DNO_C99_FORMAT | 25 | CFLAGS += -DNO_C99_FORMAT |
| 26 | endif | 26 | endif |
| 27 | 27 | ||
| 28 | nullstring := | ||
| 29 | fourspace := $(nullstring) | ||
| 28 | ifdef NO_LUA | 30 | ifdef NO_LUA |
| 29 | CFLAGS += -DNO_LUA | 31 | $(info $(fourspace)* building without specified Lua support) |
| 32 | CGIT_CFLAGS += -DNO_LUA | ||
| 30 | else | 33 | else |
| 31 | 34 | LUAJIT_CFLAGS := $(shell pkg-config --cflags luajit 2>/dev/null) | |
| 32 | ifeq (VANILLA,$(LUA_IMPLEMENTATION)) | 35 | LUAJIT_LIBS := $(shell pkg-config --libs luajit 2>/dev/null) |
| 33 | CFLAGS += -llua | 36 | LUA_LIBS := $(shell pkg-config --libs lua 2>/dev/null) |
| 34 | else | 37 | LUA_CFLAGS := $(shell pkg-config --cflags lua 2>/dev/null) |
| 35 | LUAJIT_LIBS := $(shell pkg-config --libs luajit) | 38 | ifeq (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) | ||
| 45 | else 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) | ||
| 52 | else 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) |
| 56 | else ifneq ($(strip $(LUA_LIBS)),) | ||
| 57 | $(info $(fourspace)* building with autodetected Lua) | ||
| 58 | CGIT_LIBS += $(LUA_LIBS) | ||
| 59 | CGIT_CFLAGS += $(LUA_CFLAGS) | ||
| 60 | else | ||
| 61 | $(info $(fourspace)* building without autodetected Lua support) | ||
| 62 | NO_LUA := YesPlease | ||
| 63 | CGIT_CFLAGS += -DNO_LUA | ||
| 39 | endif | 64 | endif |
| 40 | 65 | ||
| 41 | endif | 66 | endif |
| 42 | 67 | ||
| 43 | CGIT_LIBS += -ldl | 68 | # Add -ldl to linker flags on non-BSD systems. |
| 44 | 69 | ifeq ($(findstring BSD,$(uname_S)),) | |
| 70 | CGIT_LIBS += -ldl | ||
| 71 | endif | ||
| 45 | 72 | ||
| 46 | 73 | ||
| 47 | CGIT_OBJ_NAMES += cgit.o | 74 | CGIT_OBJ_NAMES += cgit.o |
