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-$(NGX_DEVEL_KIT_VERSION).tar.gz \
			lua-nginx-module-$(LUA_NGINX_MODULE_VERSION).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)

.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 $@

prerequisites-for-module-lua: module-ndk

MODULE_DEPENDS_lua=$(NDK_DEPENDENCY_TAG)

define MODULE_PREBUILD_lua
	cd ../luajit2-$(LUAJIT2_VERSION) \&\& \
	DESTDIR=`pwd` CFLAGS="-fPIC" make $$_make_opts install
endef
export MODULE_PREBUILD_lua

define MODULE_ENV_lua
LUAJIT_INC="../luajit2-$(LUAJIT2_VERSION)/usr/include/nginx-luajit-2.1" LUAJIT_LIB="../luajit2-$(LUAJIT2_VERSION)/usr/lib"
endef
export MODULE_ENV_lua

define MODULE_PREINSTALL_lua
	rm -f objs/ndk_http_module-debug.so
	rm -f objs/ndk_http_module.so
	mkdir -p "$$pkgdir"/usr/bin
	mkdir -p "$$pkgdir"/usr/share/man/man1
        install -m755 ../luajit2-$(LUAJIT2_VERSION)/usr/bin/luajit "$$pkgdir"/usr/bin/nginx-luajit
        install -m644 ../luajit2-$(LUAJIT2_VERSION)/usr/share/man/man1/luajit.1 "$$pkgdir"/usr/share/man/man1/nginx-luajit.1
	if [ -z "`echo $subpackages | grep -- -doc`" ]; then
		gzip "$$pkgdir"/usr/share/man/man1/nginx-luajit.1
	fi
	mkdir -p "$$pkgdir"/usr/share/nginx-luajit-2.1/jit
        for f in `find ../luajit2-$(LUAJIT2_VERSION)/usr/share/nginx-luajit-2.1/jit/ -type f`; do \
                install -m644 $${f} "$$pkgdir"/usr/share/nginx-luajit-2.1/jit/ ; \
        done
	mkdir -p "$$pkgdir"/usr/include/nginx-luajit-2.1
        for f in `find ../luajit2-$(LUAJIT2_VERSION)/usr/include/nginx-luajit-2.1/ -type f`; do \
                install -m644 $${f} "$$pkgdir"/usr/include/nginx-luajit-2.1/ ; \
        done
	mkdir -p "$$pkgdir"/usr/share/nginx-luajit-2.1/resty
	( cd ../lua-resty-core-$(LUA_RESTY_CORE_VERSION) \&\& \
		LUA_LIB_DIR="$$pkgdir"/usr/share/nginx-luajit-2.1 make install )
	( cd ../lua-resty-lrucache-$(LUA_RESTY_LRUCACHE_VERSION) \&\& \
		LUA_LIB_DIR="$$pkgdir"/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
