120 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			120 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=clang
 | 
						|
AR=ar
 | 
						|
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="-c -fPIC"
 | 
						|
 | 
						|
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.a"
 | 
						|
else
 | 
						|
	mkdir dist
 | 
						|
	cp ./include/pak.h dist
 | 
						|
	CFLAGS+="-O3 "
 | 
						|
	PCKR_OUT="dist/pckr"
 | 
						|
	PAKRD_OUT="dist/libpakrd.a"
 | 
						|
fi
 | 
						|
 | 
						|
 | 
						|
# Build pckr executable
 | 
						|
(set -x ; $CC $CFLAGS $PCKR_SRC -o $PCKR_OUT)
 | 
						|
 | 
						|
 | 
						|
# Build pakrd static library
 | 
						|
(set -x ; $CC $CFLAGS $PAKRD_FLAGS $PAKRD_SRC ; $AR r $PAKRD_OUT *.o)
 | 
						|
rm *.o
 | 
						|
 | 
						|
 | 
						|
# 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
 |