summaryrefslogtreecommitdiff
path: root/makefile
diff options
context:
space:
mode:
Diffstat (limited to 'makefile')
-rw-r--r--makefile35
1 files changed, 21 insertions, 14 deletions
diff --git a/makefile b/makefile
index dacc687..c8b11e2 100644
--- a/makefile
+++ b/makefile
@@ -2,26 +2,14 @@
.DEFAULT_GOAL := all
# ====== Configurations and Binaries ====== #
+RELEASE ?= 0
+
CC := clang
CXX := clang++
CMAKE := cmake
RM := rm -f
PRINTF := printf
-# ====== Flags ====== #
-CCXX_FLAGS := \
- -Wall -Wextra -Werror -pedantic \
- -MMD -MP -I$(SRC_DIR)
-
-CXX_FLAGS := -std=c++14 \
- $(CCXX_FLAGS) -fno-rtti -fno-exceptions
-
-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
@@ -35,6 +23,25 @@ VOIDC_O := $(VOIDC_CXX:.cc=.o)
VOIDC_D := $(VOIDC_CXX:.cc=.d)
VOIDC := $(TOP_DIR)/voidc
+# ====== Flags ====== #
+CXX_FLAGS := -std=c++14 -Wall -Wextra -Werror -pedantic \
+ -MMD -MP -fno-rtti -fno-exceptions \
+ -I$(SRC_DIR)
+
+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
+
+ifeq ($(RELEASE),1)
+ CXX_FLAGS += -flto=auto -O2
+ MI_FLAGS += -DMI_DEBUG=0
+else
+ CCXX_FLAGS += -g3
+ MI_FLAGS += -DMI_DEBUG=2
+endif
+
# ====== Rules ====== #
.PHONY: all
all: $(VOIDC)