#!/bin/sh

if [ "$(uname)" = "Linux" ]
then
    CC=gcc
    CXX=g++
    PLATFORM=linux
    LINUXFLAG=-ldl
else
    CC=cc
    CXX=c++
    PLATFORM=bsd
fi

# current directory
ROOT="$PWD"

# your install directory
INSTALL_DIR="$ROOT"/build_$CC/luadch

# hopefully nothing to edit below

echo Copy core...
mkdir -p "$INSTALL_DIR"/log
mkdir -p "$INSTALL_DIR"/lib/adclib
mkdir -p "$INSTALL_DIR"/lib/unicode
mkdir -p "$INSTALL_DIR"/lib/luasocket/socket
mkdir -p "$INSTALL_DIR"/lib/luasocket/mime
mkdir -p "$INSTALL_DIR"/lib/luasocket/lua
mkdir -p "$INSTALL_DIR"/lib/luasec/ssl
mkdir -p "$INSTALL_DIR"/lib/luasec/lua
mkdir -p "$INSTALL_DIR"/lib/basexx
rsync -a "$ROOT"/core "$INSTALL_DIR"/
rsync -a "$ROOT"/scripts "$INSTALL_DIR"/
rsync -a "$ROOT"/examples/cfg "$INSTALL_DIR"/
rsync -a "$ROOT"/examples/certs "$INSTALL_DIR"/
rsync -a "$ROOT"/examples/lang "$INSTALL_DIR"/
rsync -a "$ROOT"/docs "$INSTALL_DIR"/

LUA_DIR="$ROOT"/lua/src

echo Building lua...
cd "$ROOT"/lua/src
make -j CC="$CC" INSTALL_DIR="$INSTALL_DIR"

clean() {
    if [ "$1" = "clean" ]
    then
        make clean
    fi
}

echo Building adclib...
cd "$ROOT"/adclib
make -j CXX="$CXX" LUAINCLUDE_DIR="$LUA_DIR" LUALIB_DIR="$INSTALL_DIR" INSTALL_DIR="$INSTALL_DIR"/lib/adclib/adclib.so
clean $1

echo Building slnunicode...
cd "$ROOT"/slnunicode
make -j CC="$CC" LUAINCLUDE_DIR="$LUA_DIR" LUALIB_DIR="$INSTALL_DIR" INSTALL_DIR="$INSTALL_DIR"/lib/unicode/unicode.so
clean $1

echo Building luasocket...
cd "$ROOT"/luasocket/
make -j PLAT="$PLATFORM" LUAINC_linux="$LUA_DIR" LUAINC_bsd="$LUA_DIR"
cp ./src/socket*.so "$INSTALL_DIR"/lib/luasocket/socket/socket.so
cp ./src/mime*.so "$INSTALL_DIR"/lib/luasocket/mime/mime.so
cp ./src/*.lua "$INSTALL_DIR"/lib/luasocket/lua/

echo Building luasec...
cd "$ROOT"/luasec
make -j "$PLATFORM" INC_PATH=-I"$LUA_DIR" LIB_PATH=-L"$INSTALL_DIR"
cp ./src/ssl.so "$INSTALL_DIR"/lib/luasec/ssl/ssl.so
cp ./src/*.lua "$INSTALL_DIR"/lib/luasec/lua/
clean $1

echo Building basexx...
cd "$ROOT"/basexx
make -j CC="$CC" LUAINCLUDE_DIR="$LUA_DIR" LUALIB_DIR="$INSTALL_DIR" INSTALL_DIR="$INSTALL_DIR"/lib/basexx/
clean $1

LUAFLAG=-llua

echo Building hub...
cd "$ROOT"/hub
make -j CC="$CC" LUAFLAG="$LUAFLAG" LINUXFLAG="$LINUXFLAG" LUAINCLUDE_DIR="$LUA_DIR" LUALIB_DIR="$INSTALL_DIR" INSTALL_DIR="$INSTALL_DIR"
clean $1

