build: Add Makefile with sanitizer support (#71)
This commit is contained in:
53
Makefile
Normal file
53
Makefile
Normal file
@@ -0,0 +1,53 @@
|
||||
# TurboQuant Build System
|
||||
# Supports: normal, debug, sanitizer builds
|
||||
|
||||
CC = g++
|
||||
CFLAGS = -Wall -Wextra -O2 -std=c++11 -std=c++11
|
||||
CFLAGS_DEBUG = -Wall -Wextra -O0 -g -std=c++11 -std=c++11
|
||||
CFLAGS_ASAN = -Wall -Wextra -O1 -g -std=c++11 -fsanitize=address -fsanitize=undefined -fno-omit-frame-pointer
|
||||
LDFLAGS = -lm
|
||||
LDFLAGS_ASAN = -lm -fsanitize=address -fsanitize=undefined
|
||||
|
||||
SRCS = llama-turbo.cpp
|
||||
OBJS = $(SRCS:.cpp=.o)
|
||||
TEST_SRC = tests/test_polar_quant.c
|
||||
TEST_BIN = test_polar_quant
|
||||
|
||||
.PHONY: all clean test test-asan test-ubsan
|
||||
|
||||
all: $(TEST_BIN)
|
||||
|
||||
# Normal build
|
||||
$(TEST_BIN): $(TEST_SRC) $(SRCS)
|
||||
$(CC) $(CFLAGS) -o $@ $^ $(LDFLAGS)
|
||||
|
||||
# Debug build
|
||||
debug: $(TEST_SRC) $(SRCS)
|
||||
$(CC) $(CFLAGS_DEBUG) -o $(TEST_BIN)_debug $^ $(LDFLAGS)
|
||||
|
||||
# AddressSanitizer build
|
||||
asan: $(TEST_SRC) $(SRCS)
|
||||
$(CC) $(CFLAGS_ASAN) -o $(TEST_BIN)_asan $^ $(LDFLAGS_ASAN)
|
||||
|
||||
# UBSan only build
|
||||
ubsan: $(TEST_SRC) $(SRCS)
|
||||
$(CC) -Wall -Wextra -O1 -g -fsanitize=undefined -fno-omit-frame-pointer \
|
||||
-o $(TEST_BIN)_ubsan $^ $(LDFLAGS)
|
||||
|
||||
# Run tests
|
||||
test: $(TEST_BIN)
|
||||
./$(TEST_BIN)
|
||||
|
||||
# Run tests with AddressSanitizer
|
||||
test-asan: asan
|
||||
./$(TEST_BIN)_asan
|
||||
|
||||
# Run tests with UBSan
|
||||
test-ubsan: ubsan
|
||||
./$(TEST_BIN)_ubsan
|
||||
|
||||
# Run all sanitizer tests
|
||||
test-sanitizers: test-asan test-ubsan
|
||||
|
||||
clean:
|
||||
rm -f $(TEST_BIN) $(TEST_BIN)_debug $(TEST_BIN)_asan $(TEST_BIN)_ubsan $(OBJS)
|
||||
Reference in New Issue
Block a user