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=	luajit2-$(LUAJIT2_VERSION).tar.gz \
			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 \
			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=ngx_devel_kit-$(NGX_DEVEL_KIT_VERSION) \
			--add-dynamic-module=lua-nginx-module-$(LUA_NGINX_MODULE_VERSION) \
			--add-dynamic-module=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 $@

define MODULE_DEFINITIONS_lua
Requires: $(NDK_DEPENDENCY_TAG)
%define LUAJIT_INC %{bdir}/luajit2-$(LUAJIT2_VERSION)/usr/include/nginx-luajit-2.1
%define LUAJIT_LIB %{bdir}/luajit2-$(LUAJIT2_VERSION)/usr/lib
endef
export MODULE_DEFINITIONS_lua

define MODULE_PREBUILD_lua
cd %{bdir}/luajit2-$(LUAJIT2_VERSION)
DESTDIR="%{bdir}/luajit2-$(LUAJIT2_VERSION)" CFLAGS="-fPIC" make %{?_smp_mflags} install
mv %{bdir}/luajit2-$(LUAJIT2_VERSION)/usr/bin/luajit %{bdir}/luajit2-$(LUAJIT2_VERSION)/usr/bin/nginx-luajit
endef
export MODULE_PREBUILD_lua

define MODULE_ENV_lua
LUAJIT_INC="%{LUAJIT_INC}" \\
LUAJIT_LIB="%{LUAJIT_LIB}" \\
endef
export MODULE_ENV_lua

define MODULE_PREINSTALL_lua
%{__rm} -f %{bdir}/objs/ndk_http_module.so %{bdir}/objs/ndk_http_module-debug.so
%{__mkdir} -p $$RPM_BUILD_ROOT%{_bindir}
%{__install} -m755 %{bdir}/luajit2-$(LUAJIT2_VERSION)/usr/bin/nginx-luajit \
   $$RPM_BUILD_ROOT%{_bindir}/
%{__mkdir} -p $$RPM_BUILD_ROOT%{_datadir}/nginx-luajit-2.1/jit
for f in `find %{bdir}/luajit2-$(LUAJIT2_VERSION)/usr/share/nginx-luajit-2.1/jit/ -type f`; do
    %{__install} -m644 $${f} $$RPM_BUILD_ROOT%{_datadir}/nginx-luajit-2.1/jit/
done
%{__mkdir} -p $$RPM_BUILD_ROOT%{_includedir}/nginx-luajit-2.1
for f in `find %{bdir}/luajit2-$(LUAJIT2_VERSION)/usr/include/nginx-luajit-2.1/ -type f`; do
    %{__install} -m644 $${f} $$RPM_BUILD_ROOT%{_includedir}/nginx-luajit-2.1/
done
%{__mkdir} -p $$RPM_BUILD_ROOT%{_includedir}/nginx-luajit-2.1/resty
cd %{bdir}/lua-resty-core-$(LUA_RESTY_CORE_VERSION) \&\& \
    LUA_LIB_DIR=$$RPM_BUILD_ROOT%{_datadir}/nginx-luajit-2.1 make install
cd %{bdir}/lua-resty-lrucache-$(LUA_RESTY_LRUCACHE_VERSION) \&\& \
    LUA_LIB_DIR=$$RPM_BUILD_ROOT%{_datadir}/nginx-luajit-2.1 make install
endef
export MODULE_PREINSTALL_lua

define MODULE_FILES_lua
%{_bindir}/nginx-luajit
%dir %{_datadir}/nginx-luajit-2.1/jit
%{_datadir}/nginx-luajit-2.1/jit/*
%dir %{_datadir}/nginx-luajit-2.1/ngx
%{_datadir}/nginx-luajit-2.1/ngx/*
%dir %{_datadir}/nginx-luajit-2.1/resty
%{_datadir}/nginx-luajit-2.1/resty/*
%dir %{_includedir}/nginx-luajit-2.1
%{_includedir}/nginx-luajit-2.1/*
endef
export MODULE_FILES_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
