compile.sh 556 B

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. #!/bin/sh
  2. arg=-1
  3. if [ -v 1 ]; then
  4. arg=$1
  5. fi
  6. if [ $arg = "clean" ]; then
  7. rm -rf ./target/*
  8. exit
  9. fi
  10. version=$(git rev-parse HEAD)
  11. oflag="-Og"
  12. debug_flag="-ggdb"
  13. if [ $arg = "release" ]; then
  14. oflag="-O3"
  15. debug_flag=""
  16. fi
  17. src="src/*.c"
  18. macros="-DVERSION=\"$version\""
  19. flags="-std=c23 $oflag $debug_flag $macros -Wall -Wextra -Werror -Wpedantic -pedantic-errors"
  20. includes="-I src/headers"
  21. cmd="gcc $flags $includes $src -o target/sanke"
  22. echo $cmd
  23. $cmd
  24. if [ $? -gt 0 ]; then
  25. exit
  26. fi
  27. if [ $arg = "run" ]; then
  28. echo
  29. ./target/sanke
  30. fi