diff options
Diffstat (limited to 'makefile')
| -rw-r--r-- | makefile | 22 |
1 files changed, 18 insertions, 4 deletions
@@ -2,7 +2,9 @@ .DEFAULT_GOAL := all # ====== Configurations and Binaries ====== # +CC := clang CXX := clang++ +CMAKE := cmake RM := rm -f PRINTF := printf @@ -11,14 +13,21 @@ CCXX_FLAGS := \ -Wall -Wextra -Werror -pedantic \ -MMD -MP -I$(SRC_DIR) -CXX_FLAGS := -std=c++14 -nostdlib++ \ +CXX_FLAGS := -std=c++14 \ $(CCXX_FLAGS) -fno-rtti -fno-exceptions -LD_FLAGS := -lc +LD_FLAGS := -lc -nostdlib++ + +MI_FLAGS := -G"Unix Makefiles" -DCMAKE_C_COMPILER=$(CC) \ + -DMI_BUILD_TESTS=OFF -DMI_BUILD_STATIC=OFF -DMI_BUILD_SHARED=OFF -DMI_BUILD_OBJECT=ON \ + -DMI_OVERRIDE=ON -DMI_NO_USE_CXX=ON -DMI_DEBUG=0 # ====== Sources ====== # TOP_DIR := . SRC_DIR := $(TOP_DIR)/src +MI_DIR := $(TOP_DIR)/mimalloc + +MI_O := $(MI_DIR)/mimalloc.o VOIDC_CXX := $(SRC_DIR)/voidc.cc VOIDC_O := $(VOIDC_CXX:.cc=.o) @@ -29,9 +38,13 @@ VOIDC := $(TOP_DIR)/voidc .PHONY: all all: $(VOIDC) -$(VOIDC): $(VOIDC_O) +$(MI_O): $(MI_DIR) + $(CMAKE) $(MI_FLAGS) -S $(MI_DIR) -B $(MI_DIR) + $(MAKE) -C $(MI_DIR) + +$(VOIDC): $(VOIDC_O) $(MI_O) $(PRINTF) " CXXLD %s\n" $< - $(CXX) $< -o $@ $(LD_FLAGS) + $(CXX) $^ -o $@ $(LD_FLAGS) %.o: %.cc $(PRINTF) " CXX %s\n" $< @@ -39,6 +52,7 @@ $(VOIDC): $(VOIDC_O) .PHONY: clean clean: + $(MAKE) -C $(MI_DIR) clean $(RM) $(VOIDC_O) $(VOIDC_D) $(VOIDC) -include $(VOIDC_D) |
