106 lines
4.0 KiB
Makefile
106 lines
4.0 KiB
Makefile
# https://stackoverflow.com/a/23324703
|
|
ROOT_DIR := $(shell dirname $(realpath $(firstword $(MAKEFILE_LIST))))
|
|
|
|
lua_family = 5.1
|
|
lua_version = ${lua_family}.5
|
|
lua_suffix =
|
|
lua_build_platform = linux
|
|
luarocks_version = 3.7.0
|
|
|
|
lua_src = http://www.lua.org/ftp/lua-${lua_version}.tar.gz
|
|
luarocks_src = http://luarocks.github.io/luarocks/releases/luarocks-${luarocks_version}.tar.gz
|
|
|
|
lua_root = ${ROOT_DIR}/target/dist
|
|
lua_mods = ${lua_root}/share/lua/${lua_family}
|
|
lua_cmods = ${lua_root}/lib/lua/${lua_family}
|
|
|
|
run_test_file = env \
|
|
LUA_PATH="${ROOT_DIR}/test/alt/?.lua;${lua_mods}/?.lua;${ROOT_DIR}/target/dist/etc/nginx/ssso/?.lua" \
|
|
LUA_CPATH="${lua_cmods}/?.so" \
|
|
${lua_root}/bin/lua${lua_suffix}
|
|
|
|
all: test
|
|
|
|
test: test-env
|
|
${run_test_file} ${ROOT_DIR}/test/aes.utest.lua
|
|
${run_test_file} ${ROOT_DIR}/test/random.utest.lua
|
|
${run_test_file} ${ROOT_DIR}/test/sha256.utest.lua
|
|
${run_test_file} ${ROOT_DIR}/test/util.utest.lua
|
|
${run_test_file} ${ROOT_DIR}/test/config.utest.lua
|
|
${run_test_file} ${ROOT_DIR}/test/auth.utest.lua
|
|
${run_test_file} ${ROOT_DIR}/test/nginx.utest.lua
|
|
${run_test_file} ${ROOT_DIR}/test/identity.utest.lua
|
|
${run_test_file} ${ROOT_DIR}/test/sites.utest.lua
|
|
${run_test_file} ${ROOT_DIR}/test/crypto.utest.lua
|
|
${run_test_file} ${ROOT_DIR}/test/login.utest.lua
|
|
${run_test_file} ${ROOT_DIR}/test/sessions.utest.lua
|
|
${run_test_file} ${ROOT_DIR}/test/anonymous1.ctest.lua
|
|
${run_test_file} ${ROOT_DIR}/test/anonymous2.ctest.lua
|
|
${run_test_file} ${ROOT_DIR}/test/anonymous3.ctest.lua
|
|
${run_test_file} ${ROOT_DIR}/test/anonymous4.ctest.lua
|
|
${run_test_file} ${ROOT_DIR}/test/anonymous5.ctest.lua
|
|
${run_test_file} ${ROOT_DIR}/test/login1.ctest.lua
|
|
${run_test_file} ${ROOT_DIR}/test/login2.ctest.lua
|
|
${run_test_file} ${ROOT_DIR}/test/login3.ctest.lua
|
|
${run_test_file} ${ROOT_DIR}/test/login4.ctest.lua
|
|
${run_test_file} ${ROOT_DIR}/test/login5.ctest.lua
|
|
${run_test_file} ${ROOT_DIR}/test/login6.ctest.lua
|
|
${run_test_file} ${ROOT_DIR}/test/login7.ctest.lua
|
|
${run_test_file} ${ROOT_DIR}/test/portal1.ctest.lua
|
|
${run_test_file} ${ROOT_DIR}/test/portal2.ctest.lua
|
|
${run_test_file} ${ROOT_DIR}/test/portal3.ctest.lua
|
|
${run_test_file} ${ROOT_DIR}/test/portal4.ctest.lua
|
|
${run_test_file} ${ROOT_DIR}/test/portal5.ctest.lua
|
|
|
|
test-env: run-env target/dist/etc/nginx/ssso ${lua_cmods}/bit32.so ${lua_cmods}/cjson.so ${lua_mods}/resty/easy-crypto.lua ${lua_mods}/luaunit.lua
|
|
|
|
target/dist/etc/nginx/ssso: src test/global.json test/login test/portal test/sites
|
|
rm -rf target/dist/etc/nginx/ssso; \
|
|
mkdir -p target/dist/etc/nginx; \
|
|
cp -rs ${ROOT_DIR}/src target/dist/etc/nginx/ssso; \
|
|
cp -rs ${ROOT_DIR}/test/{global.json,login,portal,sites} target/dist/etc/nginx/ssso/
|
|
|
|
run-env: ${lua_root}/bin/lua${lua_suffix}
|
|
|
|
${lua_root}/bin/lua${lua_suffix}: target/src/lua/lua-${lua_version}.tar.gz
|
|
( \
|
|
cd target/src/lua; \
|
|
rm -rf lua-${lua_version}; \
|
|
tar -xzf lua-${lua_version}.tar.gz; \
|
|
cd lua-${lua_version}; \
|
|
make ${lua_build_platform} test install INSTALL_TOP="${lua_root}" \
|
|
)
|
|
|
|
${lua_root}/bin/luarocks: target/src/luarocks/luarocks-${luarocks_version}.tar.gz
|
|
( \
|
|
cd target/src/luarocks; \
|
|
rm -rf luarocks-${luarocks_version}; \
|
|
tar -xzf luarocks-${luarocks_version}.tar.gz; \
|
|
cd luarocks-${luarocks_version}; \
|
|
./configure --prefix="${lua_root}" --with-lua="${lua_root}" --lua-suffix=${lua_suffix}; \
|
|
make; \
|
|
make install \
|
|
)
|
|
|
|
${lua_cmods}/bit32.so: ${lua_root}/bin/luarocks
|
|
${lua_root}/bin/luarocks install bit32
|
|
|
|
${lua_cmods}/cjson.so: ${lua_root}/bin/luarocks
|
|
${lua_root}/bin/luarocks install lua-cjson
|
|
|
|
${lua_mods}/resty/easy-crypto.lua: ${lua_root}/bin/luarocks
|
|
${lua_root}/bin/luarocks install lua-easy-crypto
|
|
|
|
${lua_mods}/luaunit.lua: ${lua_root}/bin/luarocks
|
|
${lua_root}/bin/luarocks install luaunit
|
|
|
|
target/src/lua/lua-${lua_version}.tar.gz:
|
|
mkdir -p target/src/lua; \
|
|
curl -so target/src/lua/lua-${lua_version}.tar.gz "${lua_src}"
|
|
|
|
target/src/luarocks/luarocks-${luarocks_version}.tar.gz:
|
|
mkdir -p target/src/luarocks; \
|
|
curl -so target/src/luarocks/luarocks-${luarocks_version}.tar.gz "${luarocks_src}"
|
|
|
|
.PHONY: all run-env test-env test
|