summaryrefslogtreecommitdiff
path: root/build.sh
blob: e60f258ea2b7ecdcd700105200119a113f5b6017 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#!/bin/sh
set -e

CC=cc
SAN="$SAN -fsanitize=address -fsanitize=undefined -fsanitize=leak"
CFLAGS="$CFLAGS -g -O0 -DENABLE_ASSERT=1 -DENABLE_DEBUG=1"

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/sf.*); do
    $CC $CFLAGS $SAN src/*.c src/module/module.c $i/*.c $LDFLAGS -o $(basename $i)
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