54 lines
1.3 KiB
Makefile
54 lines
1.3 KiB
Makefile
# 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)
|