summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFabrice <fabrice@schaub-dev.xyz>2026-03-01 22:32:17 +0100
committerFabrice <fabrice@schaub-dev.xyz>2026-03-01 22:32:17 +0100
commit6224b633ffd1692fdb4e9422fe5ee7d9db37d565 (patch)
tree683eeda82f004b1e7907bdc7ea21e793515d172b
parentb212ec381850232efb2f7ce30e1924796ab15c3c (diff)
building mimalloc
-rw-r--r--.gitmodules4
-rw-r--r--makefile22
m---------mimalloc0
3 files changed, 22 insertions, 4 deletions
diff --git a/.gitmodules b/.gitmodules
new file mode 100644
index 0000000..127463a
--- /dev/null
+++ b/.gitmodules
@@ -0,0 +1,4 @@
+[submodule "mimalloc"]
+ path = mimalloc
+ url = https://github.com/microsoft/mimalloc.git
+ branch = dev3
diff --git a/makefile b/makefile
index 00c2408..aee39a2 100644
--- a/makefile
+++ b/makefile
@@ -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)
diff --git a/mimalloc b/mimalloc
new file mode 160000
+Subproject b88ce9c8fd6b7c9208a43bcdb705de9f499dbad