118 lines
2.2 KiB
Bash
Executable File
118 lines
2.2 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
#ESCAPE SEQUENCES
|
|
CLEAR="\033[0m"
|
|
BOLD="\033[1"
|
|
FG_BLACK="\033[30"
|
|
FG_RED="\033[31"
|
|
FG_GREEN="\033[32"
|
|
FG_YELLOW="\033[33"
|
|
FG_BLUE="\033[34"
|
|
FG_MAGENTA="\033[35"
|
|
FG_CYAN="\033[36"
|
|
FG_WHITE="\033[37"
|
|
FG_BR_BLACK="\033[90"
|
|
FG_BR_RED="\033[91"
|
|
FG_BR_GREEN="\033[92"
|
|
FG_BR_YELLOW="\033[93"
|
|
FG_BR_BLUE="\033[94"
|
|
FG_BR_MAGENTA="\033[95"
|
|
FG_BR_CYAN="\033[96"
|
|
FG_BR_WHITE="\033[97"
|
|
|
|
CC=gcc
|
|
CFLAGS="-Wall -Werror -pedantic -Iinclude -Iintern/c-cpp-aliases -Iintern/cpath/include "
|
|
|
|
PCKR_SRC="\
|
|
intern/cpath/src/cpath.c \
|
|
src/argparse.c \
|
|
src/io.c \
|
|
src/darr.c \
|
|
src/pak.c \
|
|
src/pckr.c \
|
|
src/main.c"
|
|
|
|
PAKRD_SRC="\
|
|
intern/cpath/src/cpath.c \
|
|
src/io.c \
|
|
src/darr.c \
|
|
src/pak.c"
|
|
PAKRD_FLAGS="-fPIC -rdynamic -shared "
|
|
|
|
PCKR_TEST_SRC="\
|
|
intern/cpath/src/cpath.c \
|
|
src/io.c \
|
|
src/pckr_test.c"
|
|
PCKR_TEST_OUT="pckr_test"
|
|
|
|
PAKRD_TEST_SRC="\
|
|
intern/cpath/src/cpath.c \
|
|
src/io.c \
|
|
src/darr.c \
|
|
src/pak.c \
|
|
src/pakrd_test.c"
|
|
PAKRD_TEST_OUT="pakrd_test"
|
|
|
|
BUILD_TYPE="debug"
|
|
|
|
|
|
while [[ $# -gt 0 ]]; do
|
|
case $1 in
|
|
-r|--release)
|
|
BUILD_TYPE="release"
|
|
shift # past argument
|
|
;;
|
|
-*|--*|*)
|
|
echo "Usage: build [-r | --release]"
|
|
exit 1
|
|
;;
|
|
esac
|
|
done
|
|
|
|
|
|
if [[ $BUILD_TYPE == "debug" ]]; then
|
|
CFLAGS+="-g "
|
|
PCKR_OUT="pckr"
|
|
PAKRD_OUT="libpakrd.so"
|
|
else
|
|
mkdir -p dist
|
|
cp ./include/pak.h dist
|
|
CFLAGS+="-O3 "
|
|
PCKR_OUT="dist/pckr"
|
|
PAKRD_OUT="dist/libpakrd.so"
|
|
fi
|
|
|
|
|
|
# Build pckr executable
|
|
(set -x ; $CC $CFLAGS $PCKR_SRC -o $PCKR_OUT)
|
|
|
|
|
|
# Build pakrd shared library
|
|
(set -x ; $CC $CFLAGS $PAKRD_FLAGS $PAKRD_SRC -o $PAKRD_OUT)
|
|
|
|
|
|
# Build pckr_test executable
|
|
(set -x ; $CC $CFLAGS $PCKR_TEST_SRC -o $PCKR_TEST_OUT)
|
|
|
|
|
|
# Build pakrd_test executable
|
|
(set -x ; $CC $CFLAGS $PAKRD_TEST_SRC -o $PAKRD_TEST_OUT)
|
|
|
|
|
|
# Create test pak
|
|
./pckr ./test_assets ./assets
|
|
|
|
|
|
# Run pckr_test
|
|
(./$PCKR_TEST_OUT && echo -e "\npckr_test [${FG_BR_GREEN}m${BOLD}m SUCCESS $CLEAR]") || echo -e "\npckr_test [${FG_BR_RED}m${BOLD}m FAILURE $CLEAR]"
|
|
|
|
|
|
# Run pakrd_test
|
|
(./$PAKRD_TEST_OUT && echo -e "pakrd_test [${FG_BR_GREEN}m${BOLD}m SUCCESS $CLEAR]") || echo -e "pakrd_test [${FG_BR_RED}m${BOLD}m FAILURE $CLEAR]"
|
|
|
|
|
|
# Clean test assets
|
|
rm ./assets.pak
|
|
rm pckr_test
|
|
rm pakrd_test
|