diff options
| author | Fuwn <[email protected]> | 2024-05-26 18:01:25 -0700 |
|---|---|---|
| committer | Fuwn <[email protected]> | 2024-05-26 18:01:25 -0700 |
| commit | fa3595d69f817ad1a67b7189ed65dbde1ba9f77d (patch) | |
| tree | ae85e0ba5f132ce89021cc1e4bcea4e642ffee6c /Makefile | |
| download | cst_136_assignment_eight-fa3595d69f817ad1a67b7189ed65dbde1ba9f77d.tar.xz cst_136_assignment_eight-fa3595d69f817ad1a67b7189ed65dbde1ba9f77d.zip | |
feat: initial commit
Diffstat (limited to 'Makefile')
| -rw-r--r-- | Makefile | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..a962a6f --- /dev/null +++ b/Makefile @@ -0,0 +1,35 @@ +SOURCE_DIRECTORY = source +INCLUDE_DIRECTORY = include +BUILD_DIRECTORY = build +CC = clang++ +CC_EXTENSION = cc +CC_FLAGS = -std=c++23 -I $(INCLUDE_DIRECTORY) -Weverything -Wno-padded -Wno-c++98-compat -MMD +CLANG_TIDY_CHECKS = '-*,bugprone-*,clang-analyzer-*,concurrency-*,cppcoreguildelines-*,llvm-*,misc-*,modernize-*,performance-*,portability-*,readability-*,-readability-magic-numbers,-llvm-header-guard' +CLANG_TIDY_FLAGS = -checks=$(CLANG_TIDY_CHECKS) -header-filter=.* -warnings-as-errors=* -system-headers=0 +SOURCES = $(wildcard $(SOURCE_DIRECTORY)/*.$(CC_EXTENSION)) +OBJECTS = $(SOURCES:$(SOURCE_DIRECTORY)/%.$(CC_EXTENSION)=$(BUILD_DIRECTORY)/%.o) +DEPS = $(OBJECTS:.o=.d) + +all: $(BUILD_DIRECTORY)/book_store + +format: + clang-format -i $(SOURCES) $(wildcard $(INCLUDE_DIRECTORY)/*.hh) + +tidy: + clang-tidy $(SOURCES) $(CLANG_TIDY_FLAGS) -- $(CC_FLAGS) + +$(BUILD_DIRECTORY)/%.o: $(SOURCE_DIRECTORY)/%.$(CC_EXTENSION) | $(BUILD_DIRECTORY) + $(CC) $(CC_FLAGS) -MF $(@:.o=.d) -c $< -o $@ + +$(BUILD_DIRECTORY)/book_store: $(OBJECTS) + $(CC) $^ -o $@ + +$(BUILD_DIRECTORY): + mkdir -p $(BUILD_DIRECTORY) + +clean: + rm -rf $(BUILD_DIRECTORY) + +-include $(DEPS) + +.PHONY: all format tidy clean |