X-Git-Url: http://git.archive.openwrt.org/?p=project%2Fuci.git;a=blobdiff_plain;f=lua%2FMakefile;h=ba5205fbcd728b1b028a7d649fa7df533874a888;hp=29d7fbd02bb53bd5b48a8c859e022ed35684f506;hb=7115636d1cfa690480ab2d92a75f30656bb8aa9a;hpb=42c5188ed499746fc09917707c929bd96339be14 diff --git a/lua/Makefile b/lua/Makefile index 29d7fbd..ba5205f 100644 --- a/lua/Makefile +++ b/lua/Makefile @@ -1,27 +1,44 @@ -CC=gcc -LD=ld -CFLAGS=-O2 -Wall -Werror -pedantic --std=gnu99 -Wno-unused -CPPFLAGS=-I.. -LIBS=-L.. -luci -OS=$(shell uname) -LINK=$(CC) +include ../Makefile.inc +LUA_VERSION=5.1 +PREFIX_SEARCH=/usr /usr/local /opt/local +LUA_PLUGINDIR=$(firstword \ + $(foreach ldir,$(subst ;, ,$(shell lua -e 'print(package.cpath)')), \ + $(if $(findstring lib/lua/,$(ldir)),$(patsubst %/?.so,%,$(ldir))) \ + ) \ +) + +# find lua prefix +LUA_PREFIX=$(firstword \ + $(foreach prefix,$(PREFIX_SEARCH),\ + $(if $(wildcard $(prefix)/include/lua.h),$(prefix)) \ + ) \ +) + +libdir=$(prefix)/libs +luadir=$(if $(LUA_PLUGINDIR),$(LUA_PLUGINDIR),$(libdir)/lua/$(LUA_VERSION)) +luainc=$(shell pkg-config --silence-errors --cflags lua$(LUA_VERSION)) + +CPPFLAGS=-I.. $(if $(luainc),$(luainc), -I$(LUA_PREFIX)/include) +LIBS=-L.. -luci $(shell pkg-config --silence-errors --libs lua$(LUA_VERSION)) + +PLUGIN_LD=$(CC) ifeq ($(OS),Darwin) - SHLIB_FLAGS=-bundle -undefined dynamic_lookup + PLUGIN_LDFLAGS=-bundle -undefined dynamic_lookup else - SHLIB_FLAGS=-shared -Wl,-soname,$(SHLIB_FILE) + PLUGIN_LDFLAGS=-shared -Wl,-soname,$(SHLIB_FILE) endif all: uci.so uci.so: uci.o - $(LINK) $(SHLIB_FLAGS) -o $@ $^ $(LIBS) + $(PLUGIN_LD) $(PLUGIN_LDFLAGS) -o $@ $^ $(LIBS) %.o: %.c - $(CC) $(CPPFLAGS) $(CFLAGS) -c -o $@ $< + $(CC) $(CPPFLAGS) $(CFLAGS) $(FPIC) -c -o $@ $< install: - mkdir -p $(DESTDIR)/usr/lib/lua - install -m0644 uci.so $(DESTDIR)/usr/lib/lua/ + mkdir -p $(DESTDIR)$(luadir) + $(INSTALL) -m0644 uci.so $(DESTDIR)$(luadir)/ clean: rm -f *.so *.o uci.so