diff options
Diffstat (limited to 'Makefile')
-rw-r--r-- | Makefile | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..40ebce8 --- /dev/null +++ b/Makefile @@ -0,0 +1,29 @@ +CC1=clang++ +CC2=g++ +CFLAGS_CLANG=-O0 -Wfatal-errors -Wall -Werror -Wextra -g3 -fsanitize=address -fsanitize=leak -Wpedantic -Wformat=2 -Wshadow -fno-common -std=c++11 +CFLAGS_GCC=-O0 -Wfatal-errors -Wall -Werror -Wextra -g3 -fsanitize=address -fsanitize=leak -Wpedantic -Wformat=2 -Wshadow -fno-common -std=c++11 -Wformat-truncation=2 -Wformat-overflow +BINDIR=bin +SRCS=$(wildcard *.cpp) +OBJS_CLANG=$(patsubst %.cpp, $(BINDIR)/clang/%, $(SRCS)) +OBJS_GCC=$(patsubst %.cpp, $(BINDIR)/gcc/%, $(SRCS)) +MAKEFLAGS += -j$(nproc) + +all: clang gcc + +clean: + rm -rf $(BINDIR)/gcc/* + rm -rf $(BINDIR)/clang/* + +clang: $(OBJS_CLANG) + +gcc: $(OBJS_GCC) + +$(BINDIR)/clang/%: %.cpp + @mkdir -p $(BINDIR)/clang + $(CC1) $(CFLAGS_CLANG) -o $@ $< + +$(BINDIR)/gcc/%: %.cpp + @mkdir -p $(BINDIR)/gcc + $(CC2) $(CFLAGS_GCC) -o $@ $< + +.PHONY: all clean clang gcc |