diff options
-rw-r--r-- | README | 11 | ||||
-rw-r--r-- | cgit.mk | 36 |
2 files changed, 16 insertions, 31 deletions
diff --git a/README b/README index 9f26959..faf1851 100644 --- a/README +++ b/README | |||
@@ -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 |
diff --git a/cgit.mk b/cgit.mk index 3b8b79a..2e2992f 100644 --- a/cgit.mk +++ b/cgit.mk | |||
@@ -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 |