compile.sh 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. #!/bin/sh
  2. set -euo pipefail
  3. #IFS=$'\n\t'
  4. CFLAGS=${CFLAGS:-}
  5. LDFLAGS=${LDFLAGS:-}
  6. ASAN=
  7. DEBUG=
  8. RPI=
  9. RPI_ROOT=${RPI_ROOT:-'/opt/raspberry-pi'}
  10. SOURCES='src/OpenSource.c src/bsp.c src/atlas.c src/filemap.c src/collection.c src/material.c src/texture.c src/cache.c src/dxt.c'
  11. WERROR='-Werror'
  12. CFLAGS="-D_GNU_SOURCE $CFLAGS"
  13. while [ $# -gt 0 ]
  14. do
  15. case "$1" in
  16. -D) DEBUG=1;;
  17. -P) RPI=1;;
  18. -S) ASAN=1;;
  19. -W) WERROR='';;
  20. esac
  21. shift
  22. done
  23. if [ $ASAN ]
  24. then
  25. CFLAGS="-fsanitize=address $CFLAGS"
  26. fi
  27. if [ $DEBUG ]
  28. then
  29. CFLAGS="-O0 -g $CFLAGS"
  30. else
  31. CFLAGS="-O3 $CFLAGS"
  32. fi
  33. if [ $RPI ]
  34. then
  35. RPI_TOOLCHAIN=${RPI_TOOLCHAIN:-"gcc-linaro-arm-linux-gnueabihf-raspbian-x64"}
  36. RPI_TOOLCHAINDIR=${RPI_TOOLCHAINDIR:-"$RPI_ROOT/raspberry-tools/arm-bcm2708/$RPI_TOOLCHAIN"}
  37. RPI_VCDIR=${RPI_VCDIR:-"$RPI_ROOT/raspberry-firmware/hardfp/opt/vc"}
  38. CC=${CC:-"$RPI_TOOLCHAINDIR/bin/arm-linux-gnueabihf-gcc"}
  39. CFLAGS="-std=gnu99 -Wall -Wextra $WERROR $CFLAGS"
  40. CFLAGS="-I$RPI_VCDIR/include -I$RPI_VCDIR/include/interface/vcos/pthreads $CFLAGS"
  41. CFLAGS="-I$RPI_VCDIR/include/interface/vmcs_host/linux -DATTO_PLATFORM_RPI $CFLAGS"
  42. LDFLAGS="-lGLESv2 -lEGL -lbcm_host -lvcos -lvchiq_arm -L$RPI_VCDIR/lib -lrt -lm $LDFLAGS"
  43. SOURCES+=' 3p/atto/src/app_linux.c 3p/atto/src/app_rpi.c'
  44. else
  45. CC=${CC:-clang}
  46. CFLAGS="-std=c99 -Wall -Wextra -pedantic $WERROR $CFLAGS"
  47. LDFLAGS="-lm -lGL -lX11 -lXfixes $LDFLAGS"
  48. SOURCES+=' 3p/atto/src/app_linux.c 3p/atto/src/app_x11.c'
  49. fi
  50. CFLAGS="-I3p/atto -fPIE -pie $CFLAGS"
  51. echo $CC $CFLAGS $SOURCES $LDFLAGS -o OpenSource
  52. $CC $CFLAGS $SOURCES $LDFLAGS -o OpenSource