#!/bin/env bash cc="gcc" ld="gcc" ar="ar" proc=$(nproc) rm -rf ./lib/ rm -rf ./bin/ rm -rf ./obj/ mkdir ./lib/ mkdir ./bin/ mkdir ./obj/ echo "[BUILD] ungrateful.c" cflags="-std=c99 -fPIC -Wall -Wextra -g -Wno-error -pedantic" $cc $cflags \ -c -o obj/ungrateful.o \ -g src/ungrateful.c if [[ $? -ne 0 ]]; then exit fi $ar rcs lib/libungrateful.a obj/ungrateful.o # ------------ Tests from here # if [[ $1 == "no_tests" ]]; then exit fi echo for test in tests/*.c; do fname=$(basename -- "$test") fname="${fname%.*}" echo "[BUILD] $test" $cc $cflags -o bin/$fname $test -Llib/ -Isrc/ -lungrateful & if [[ $(jobs -r -p | wc -l) -ge $proc ]]; then wait fi done wait echo for case in bin/*; do if [[ $1 == "quiet" ]]; then $case > /dev/null 2>&1 else $case fi if [[ $? -eq 0 ]]; then echo "[DONE] $case" else echo "[FAIL] $case" fi done