X-Git-Url: https://gitweb.ps.run/ps-cgit/blobdiff_plain/f43b228d0bca5791be98ff3fbb2f8743219635b6..d6e9200cc35411f3f27426b608bcfdef9348e6d3:/cgit.mk diff --git a/cgit.mk b/cgit.mk index 25f2eab..056c3f9 100644 --- a/cgit.mk +++ b/cgit.mk @@ -26,22 +26,47 @@ ifdef NO_C99_FORMAT endif ifdef NO_LUA - CFLAGS += -DNO_LUA + LUA_MESSAGE := linking 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 + LUA_MESSAGE := linking 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 + LUA_MESSAGE := linking with selected Lua + CGIT_LIBS += $(LUA_LIBS) + CGIT_LIBS += $(LUA_CFLAGS) +else ifneq ($(strip $(LUAJIT_LIBS)),) + LUA_MESSAGE := linking with autodetected LuaJIT CGIT_LIBS += $(LUAJIT_LIBS) - CFLAGS += $(LUAJIT_CFLAGS) + CGIT_CFLAGS += $(LUAJIT_CFLAGS) +else ifneq ($(strip $(LUA_LIBS)),) + LUA_MESSAGE := linking with autodetected Lua + CGIT_LIBS += $(LUA_LIBS) + CGIT_CFLAGS += $(LUA_CFLAGS) +else + LUA_MESSAGE := linking 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 @@ -106,4 +131,5 @@ $(CGIT_OBJS): %.o: %.c GIT-CFLAGS $(CGIT_PREFIX)CGIT-CFLAGS $(missing_dep_dirs) $(QUIET_CC)$(CC) -o $*.o -c $(dep_args) $(ALL_CFLAGS) $(EXTRA_CPPFLAGS) $(CGIT_CFLAGS) $< $(CGIT_PREFIX)cgit: $(CGIT_OBJS) GIT-LDFLAGS $(GITLIBS) + @echo 1>&1 " * $(LUA_MESSAGE)" $(QUIET_LINK)$(CC) $(ALL_CFLAGS) -o $@ $(ALL_LDFLAGS) $(filter %.o,$^) $(LIBS) $(CGIT_LIBS)