FIXME THIS COMMIT NEEDS TO BE REORDERED FIXME THIS COMMIT NEEDS TO BE REORDERED FIXME THIS COMMIT NEEDS TO BE REORDERED FIXME THIS COMMIT NEEDS TO BE REORDERED
55 lines
1.3 KiB
Makefile
55 lines
1.3 KiB
Makefile
.PHONY: all clean clean-objects clean-reports run sanitize validate fuzz
|
|
|
|
CC=clang
|
|
LD=clang
|
|
CFLAGS=-Wall -Wextra -Wpedantic -O0 -g3 -std=c23 -fno-omit-frame-pointer -fno-optimize-sibling-calls -D_POSIX_C_SOURCE=200809L
|
|
LDFLAGS?=
|
|
|
|
SOURCES = $(shell find src/ -type f -name '*.c')
|
|
OBJECTS = $(SOURCES:.c=.o)
|
|
DEPENDENCIES = $(SOURCES:.c=.d)
|
|
TARGET?=oas
|
|
OUTPUTS=oas oas-asan oas-msan oas-afl
|
|
RUNARGUMENTS?=ast tests/input/valid.asm
|
|
|
|
all: $(TARGET)
|
|
|
|
|
|
run: $(TARGET)
|
|
./$(TARGET) $(RUNARGUMENTS)
|
|
|
|
fuzz:
|
|
make CC="afl-clang-fast" LD="afl-clang-fast" TARGET="oas-afl" clean-objects all
|
|
make clean-objects
|
|
mkdir -p reports/afl
|
|
afl-fuzz -i tests/input -o reports/afl -m none -- ./oas-afl -tokens @@
|
|
|
|
sanitize:
|
|
make CFLAGS="$(CFLAGS) -fsanitize=address,undefined" \
|
|
LDFLAGS="-fsanitize=address,undefined" \
|
|
TARGET="oas-asan" clean-objects all
|
|
make CFLAGS="$(CFLAGS) -fsanitize=memory -fsanitize-memory-track-origins=2" \
|
|
LDFLAGS="-fsanitize=memory -fsanitize-memory-track-origins=2" \
|
|
TARGET="oas-msan" clean-objects all
|
|
make clean-objects
|
|
|
|
validate:
|
|
./validate.sh
|
|
|
|
$(TARGET): $(OBJECTS)
|
|
$(LD) $(LDFLAGS) -o $@ $^
|
|
|
|
%.o: %.c
|
|
$(CC) $(CFLAGS) -MMD -MP -c $< -o $@
|
|
|
|
-include $(DEPENDENCIES)
|
|
|
|
clean-objects:
|
|
rm -f $(OBJECTS) $(DEPENDENCIES)
|
|
|
|
clean-reports:
|
|
rm -rf reports/
|
|
|
|
clean: clean-objects
|
|
rm -f $(TARGET) $(OUTPUTS)
|