diff options
author | Natanael Copa <ncopa@alpinelinux.org> | 2014-01-22 21:15:08 (JST) |
---|---|---|
committer | Jason A. Donenfeld <Jason@zx2c4.com> | 2014-01-22 23:41:17 (JST) |
commit | 44ccae4227060f91c60ad45de1188e728ce8af0d (patch) | |
tree | ce250c0410f9ee4060029484b7d84d2422a7025e | |
parent | f759cc0f08c195940de05d5394f7b1ad4d44365e (diff) | |
download | cgit-44ccae4227060f91c60ad45de1188e728ce8af0d.zip cgit-44ccae4227060f91c60ad45de1188e728ce8af0d.tar.gz |
makefile: use LUA_PKGCONFIG to set Lua implementation
This breaks compat with the previous LUA_IMPLEMENTATION but gives more
flexibility in that user can specify the pkg-config package name
directly.
Signed-off-by: Natanael Copa <ncopa@alpinelinux.org>
-rw-r--r-- | README | 11 | ||||
-rw-r--r-- | cgit.mk | 36 |
2 files changed, 16 insertions, 31 deletions
@@ -38,14 +38,11 @@ If you'd like to compile without Lua support, you may use: | |||
38 | 38 | ||
39 | And if you'd like to specify a Lua implementation, you may use: | 39 | And if you'd like to specify a Lua implementation, you may use: |
40 | 40 | ||
41 | $ make LUA_IMPLEMENTATION=JIT | 41 | $ make LUA_PKGCONFIG=lua5.1 |
42 | 42 | ||
43 | for using the LuaJIT project. Or: | 43 | If this is not specified, the Lua implementation will be auto-detected, |
44 | 44 | preferring LuaJIT if many are present. Acceptable values are generally "lua", | |
45 | $ make LUA_IMPLEMENTATION=VANILLA | 45 | "luajit", "lua5.1", and "lua5.2". |
46 | |||
47 | for the mainline Lua project. If you specify neither implementation, it will | ||
48 | be auto-detected, preferring LuaJIT if both are present. | ||
49 | 46 | ||
50 | 47 | ||
51 | Dependencies | 48 | Dependencies |
@@ -29,30 +29,18 @@ ifdef NO_LUA | |||
29 | LUA_MESSAGE := linking without specified Lua support | 29 | LUA_MESSAGE := linking without specified Lua support |
30 | CGIT_CFLAGS += -DNO_LUA | 30 | CGIT_CFLAGS += -DNO_LUA |
31 | else | 31 | else |
32 | LUAJIT_CFLAGS := $(shell pkg-config --cflags luajit 2>/dev/null) | 32 | ifeq ($(LUA_PKGCONFIG),) |
33 | LUAJIT_LIBS := $(shell pkg-config --libs luajit 2>/dev/null) | 33 | LUA_PKGCONFIG := $(shell for pc in luajit lua lua5.2 lua5.1; do \ |
34 | LUA_LIBS := $(shell pkg-config --libs lua 2>/dev/null) | 34 | pkg-config --exists $$pc && echo $$pc && break; \ |
35 | LUA_CFLAGS := $(shell pkg-config --cflags lua 2>/dev/null) | 35 | done) |
36 | ifeq (JIT,$(LUA_IMPLEMENTATION)) | 36 | LUA_MODE := autodetected |
37 | ifeq ($(strip $(LUAJIT_LIBS)),) | 37 | else |
38 | $(error LuaJIT specified via LUA_IMPLEMENTATION=JIT, but library could not be found.) | 38 | LUA_MODE := specified |
39 | endif | 39 | endif |
40 | LUA_MESSAGE := linking with selected LuaJIT | 40 | ifneq ($(LUA_PKGCONFIG),) |
41 | CGIT_LIBS += $(LUAJIT_LIBS) | 41 | LUA_MESSAGE := linking with $(LUA_MODE) $(LUA_PKGCONFIG) |
42 | CGIT_CFLAGS += $(LUAJIT_CFLAGS) | 42 | LUA_LIBS := $(shell pkg-config --libs $(LUA_PKGCONFIG) 2>/dev/null) |
43 | else ifeq (VANILLA,$(LUA_IMPLEMENTATION)) | 43 | LUA_CFLAGS := $(shell pkg-config --cflags $(LUA_PKGCONFIG) 2>/dev/null) |
44 | ifeq ($(strip $(LUA_LIBS)),) | ||
45 | $(error Lua specified via LUA_IMPLEMENTATION=VANILLA, but library could not be found.) | ||
46 | endif | ||
47 | LUA_MESSAGE := linking with selected Lua | ||
48 | CGIT_LIBS += $(LUA_LIBS) | ||
49 | CGIT_LIBS += $(LUA_CFLAGS) | ||
50 | else ifneq ($(strip $(LUAJIT_LIBS)),) | ||
51 | LUA_MESSAGE := linking with autodetected LuaJIT | ||
52 | CGIT_LIBS += $(LUAJIT_LIBS) | ||
53 | CGIT_CFLAGS += $(LUAJIT_CFLAGS) | ||
54 | else ifneq ($(strip $(LUA_LIBS)),) | ||
55 | LUA_MESSAGE := linking with autodetected Lua | ||
56 | CGIT_LIBS += $(LUA_LIBS) | 44 | CGIT_LIBS += $(LUA_LIBS) |
57 | CGIT_CFLAGS += $(LUA_CFLAGS) | 45 | CGIT_CFLAGS += $(LUA_CFLAGS) |
58 | else | 46 | else |