3 # Build a sanitized version with clang.
4 # Author: Emil Mikulic <emikulic@gmail.com>
10 RULER
=${GRAY}$
(for i
in $
(seq $
(tput cols
)); do echo -n -; done)${NORMAL}
11 notice
() { echo "${BOLD}==> $*${NORMAL}"; }
12 fatal() { echo "${RED}==> FATAL: $*${NORMAL}" >&2; exit 1; }
15 echo -n "${BOLD}==> $*: "
16 if [[ $RET = 0 ]]; then
19 echo ${RED}FAILURE
${NORMAL}
24 notice
"[$0] run from [$RUNDIR]"
26 SRCDIR
=$
(cd $
(dirname $0)/..
; pwd)
27 notice
"src dir is [$SRCDIR]"
31 MY_CLANG
=$HOME/llvm
/install
/bin
/clang
32 if [[ -z $CLANG ]]; then
33 # No CLANG env var set, try to guess.
34 if [[ -e $MY_CLANG ]]; then
40 if ! which $CLANG >/dev
/null
; then
41 fatal
"can't find clang as [$CLANG]"
43 notice
"clang is [$CLANG]"
47 notice build
: clang with sanitizer
48 CFLAGS
="-g -O0 -fno-omit-frame-pointer \
49 -fsanitize=address-full \
51 -fsanitize=undefined \
52 -fsanitize=unsigned-integer-overflow \
57 env
"CC=$CLANG" "CFLAGS=$CFLAGS" make
60 # vim:set ts=2 sw=2 et tw=80: