#!/bin/sh set -e version="$(git describe --tags --first-parent --abbrev=40 --long --dirty --always)" CC=cc SAN="$SAN -fsanitize=address -fsanitize=undefined -fsanitize=leak" CFLAGS="$CFLAGS -g -O0 -DENABLE_ASSERT=1 -DENABLE_DEBUG=1 -DVERSION=\"$version\"" CFLAGS="$CFLAGS -Wall -Wextra -Weverything -pedantic" CFLAGS="$CFLAGS -Wno-unsafe-buffer-usage -Wno-gnu-zero-variadic-macro-arguments -Wno-format-non-iso -Wno-declaration-after-statement -Wno-padded -Wno-covered-switch-default -Wno-gnu-empty-struct -Wno-c++-compat -Wno-alloca -Wno-zero-length-array" CFLAGS="$CFLAGS -I/usr/local/include" LDFLAGS="$LDFLAGS -L/usr/local/lib -lucl -lnetgraph -ljail -lutil getmntopts.o" $CC -c /usr/src/sbin/mount/getmntopts.c -o getmntopts.o for i in $(ls -d src/module.*); do name="$(basename $i)" $CC $CFLAGS $SAN src/*.c src/module/module.c $i/*.c $LDFLAGS -o "sf.${name##*.}" done $CC $CFLAGS $SAN src/*.c src/base/*.c $LDFLAGS $LIBS -o sf.base $CC $CFLAGS $SAN src/*.c src/lamina/*.c $LDFLAGS $LIBS -o sf.lamina