blob: f80ecca610c78331afe0e5675f93d680a67edf70 [file] [log] [blame]
MODULES+= lua
MODULE_SUMMARY_lua= 3rd-party Lua dynamic modules
include $(CONTRIB)/src/luajit2/version
include $(CONTRIB)/src/ngx_devel_kit/version
include $(CONTRIB)/src/lua-nginx-module/version
include $(CONTRIB)/src/stream-lua-nginx-module/version
include $(CONTRIB)/src/lua-resty-core/version
include $(CONTRIB)/src/lua-resty-lrucache/version
MODULE_VERSION_lua= $(LUA_NGINX_MODULE_VERSION)
MODULE_RELEASE_lua= 1
MODULE_VERSION_PREFIX_lua=$(MODULE_TARGET_PREFIX)
MODULE_SOURCES_lua= ngx_devel_kit-$(MODULE_VERSION_ndk).tar.gz \
lua-nginx-module-$(MODULE_VERSION_lua).tar.gz \
stream-lua-nginx-module-$(STREAM_LUA_NGINX_MODULE_VERSION).tar.gz \
luajit2-$(LUAJIT2_VERSION).tar.gz \
lua-resty-core-$(LUA_RESTY_CORE_VERSION).tar.gz \
lua-resty-lrucache-$(LUA_RESTY_LRUCACHE_VERSION).tar.gz
MODULE_PATCHES_lua= $(CONTRIB)/src/luajit2/Makefile.patch \
$(CONTRIB)/src/luajit2/src-luaconf.h.patch \
$(CONTRIB)/src/lua-nginx-module/config.patch \
$(CONTRIB)/src/stream-lua-nginx-module/config.patch
MODULE_CONFARGS_lua= --with-http_dav_module \
--with-http_realip_module \
--with-http_ssl_module \
--with-http_v2_module \
--with-stream \
--with-stream_ssl_module \
--add-dynamic-module=$(MODSRC_PREFIX)ngx_devel_kit-$(NGX_DEVEL_KIT_VERSION) \
--add-dynamic-module=$(MODSRC_PREFIX)lua-nginx-module-$(LUA_NGINX_MODULE_VERSION) \
--add-dynamic-module=$(MODSRC_PREFIX)stream-lua-nginx-module-$(STREAM_LUA_NGINX_MODULE_VERSION)
MODULE_BUILD_DEPENDS_lua=,libpcre3-dev
.deps-module-lua:
cd $(CONTRIB) && make \
.sum-luajit2 \
.sum-ngx_devel_kit \
.sum-lua-nginx-module \
.sum-stream-lua-nginx-module \
.sum-lua-resty-core \
.sum-lua-resty-lrucache
touch $@
MODULE_DEPENDS_lua=,$(NDK_DEPENDENCY_TAG)
define MODULE_DEFINITIONS_lua
USE_LUAJIT = 1
LUAJIT_INC_nginx=$$(BUILDDIR_nginx)/extra/luajit2-$(LUAJIT2_VERSION)/usr/include/nginx-luajit-2.1
LUAJIT_LIB_nginx=$$(BUILDDIR_nginx)/extra/luajit2-$(LUAJIT2_VERSION)/usr/lib
LUAJIT_INC_nginx_debug=$$(BUILDDIR_nginx_debug)/extra/luajit2-$(LUAJIT2_VERSION)/usr/include/nginx-luajit-2.1
LUAJIT_LIB_nginx_debug=$$(BUILDDIR_nginx_debug)/extra/luajit2-$(LUAJIT2_VERSION)/usr/lib
endef
export MODULE_DEFINITIONS_lua
define MODULE_PREBUILD_lua
cd $$(BUILDDIR_nginx)/extra/luajit2-$(LUAJIT2_VERSION) \&\& \
DESTDIR="$$(BUILDDIR_nginx)/extra/luajit2-$(LUAJIT2_VERSION)" CFLAGS="-fPIC" $$(MAKE) -j$$(NUMJOBS) install
mv $$(BUILDDIR_nginx)/extra/luajit2-$(LUAJIT2_VERSION)/usr/bin/luajit $$(BUILDDIR_nginx)/extra/luajit2-$(LUAJIT2_VERSION)/usr/bin/nginx-luajit
mv $$(BUILDDIR_nginx)/extra/luajit2-$(LUAJIT2_VERSION)/usr/share/man/man1/luajit.1 $$(BUILDDIR_nginx)/extra/luajit2-$(LUAJIT2_VERSION)/usr/share/man/man1/nginx-luajit.1
endef
export MODULE_PREBUILD_lua
MODULE_LD_OPT_lua=-lpcre
MODULE_LD_OPT_DEBUG_lua=$(MODULE_LD_OPT_lua)
define MODULE_ENV_lua
LUAJIT_INC="$$(LUAJIT_INC_$$(shell echo $$@ | cut -d '.' -f 3))" LUAJIT_LIB="$$(LUAJIT_LIB_$$(shell echo $$@ | cut -d '.' -f 3))"
endef
export MODULE_ENV_lua
define MODULE_PREINSTALL_lua
rm -f $$(BUILDDIR_nginx_debug)/objs/ndk_http_module-debug.so
rm -f $$(BUILDDIR_nginx)/objs/ndk_http_module.so
mkdir -p $$(INSTALLDIR)/usr/bin
mkdir -p $$(INSTALLDIR)/usr/share/man/man1
install -m755 $$(BUILDDIR_nginx)/extra/luajit2-$(LUAJIT2_VERSION)/usr/bin/nginx-luajit $$(INSTALLDIR)/usr/bin/
install -m644 $$(BUILDDIR_nginx)/extra/luajit2-$(LUAJIT2_VERSION)/usr/share/man/man1/nginx-luajit.1 $$(INSTALLDIR)/usr/share/man/man1/
mkdir -p $$(INSTALLDIR)/usr/share/nginx-luajit-2.1/jit
for f in `find $$(BUILDDIR_nginx)/extra/luajit2-$(LUAJIT2_VERSION)/usr/share/nginx-luajit-2.1/jit/ -type f`; do \
install -m644 $$$${f} $$(INSTALLDIR)/usr/share/nginx-luajit-2.1/jit/ ; \
done
mkdir -p $$(INSTALLDIR)/usr/include/nginx-luajit-2.1
for f in `find $$(BUILDDIR_nginx)/extra/luajit2-$(LUAJIT2_VERSION)/usr/include/nginx-luajit-2.1/ -type f`; do \
install -m644 $$$${f} $$(INSTALLDIR)/usr/include/nginx-luajit-2.1/ ; \
done
mkdir -p $$(INSTALLDIR)/usr/share/nginx-luajit-2.1/resty
cd $$(BUILDDIR_nginx)/extra/lua-resty-core-$(LUA_RESTY_CORE_VERSION) \&\& \
LUA_LIB_DIR=$$(INSTALLDIR)/usr/share/nginx-luajit-2.1 make install
cd $$(BUILDDIR_nginx)/extra/lua-resty-lrucache-$(LUA_RESTY_LRUCACHE_VERSION) \&\& \
LUA_LIB_DIR=$$(INSTALLDIR)/usr/share/nginx-luajit-2.1 make install
endef
export MODULE_PREINSTALL_lua
define MODULE_POST_lua
cat <<BANNER
----------------------------------------------------------------------
The $(MODULE_SUMMARY_lua) for $(MODULE_SUMMARY_PREFIX) have been installed.
To enable these modules, add the following to /etc/nginx/nginx.conf
and reload nginx:
load_module modules/ndk_http_module.so;
load_module modules/ngx_http_lua_module.so;
load_module modules/ngx_stream_lua_module.so;
Note that ndk_http_module.so must be placed first.
These modules are compiled with LuaJIT 2.1 library.
The following binary should be used for testing and bytecode generation:
/usr/bin/nginx-luajit
Please refer to the modules documentation for further details:
https://github.com/openresty/lua-nginx-module
https://github.com/openresty/stream-lua-nginx-module
----------------------------------------------------------------------
BANNER
endef
export MODULE_POST_lua