simple-sso/Makefile

112 lines
4.1 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
clean:
rm -rf target/*
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_mods}/base64.lua ${lua_cmods}/bit32.so ${lua_cmods}/cjson.so ${lua_cmods}/luagcrypt.so ${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_mods}/base64.lua: ${lua_root}/bin/luarocks
${lua_root}/bin/luarocks install base64
${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_cmods}/luagcrypt.so: ${lua_root}/bin/luarocks
${lua_root}/bin/luarocks install luagcrypt
${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 clean run-env test-env test