-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile
More file actions
42 lines (29 loc) · 1.21 KB
/
Copy pathMakefile
File metadata and controls
42 lines (29 loc) · 1.21 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
MESHOPTDIR?=${HOME}/dev/EXT/zeux/meshoptimizer
LTO=-flto=auto -fuse-linker-plugin
OPT=-O3 -fomit-frame-pointer -funroll-loops -fstrict-aliasing -march=native -mtune=native
WARNFLAGS=-Wall -Wextra -Wshadow -Wstrict-aliasing -Wcast-qual -Wcast-align -Wpointer-arith -Wredundant-decls -Wfloat-equal -Wswitch-enum
MISCFLAGS=-fvisibility=hidden -fstack-protector
DEVFLAGS=-ggdb -DDEBUG -D_FORTIFY_SOURCE=3 -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function
CXXFLAGS=-std=gnu++20 -fno-rtti $(OPT) $(LTO) $(WARNFLAGS) $(ARCHFLAGS) $(MISCFLAGS)
YELLOW='\033[1;33m'
NC='\033[0m'
INCS:=-I$(MESHOPTDIR)/src
MESHOPTOBJDIR:=build
MESHOPTSRCS:=$(wildcard $(MESHOPTDIR)/src/*.cpp)
MESHOPTOBJS:=$(addprefix $(MESHOPTOBJDIR)/,$(notdir $(MESHOPTSRCS:%.cpp=%.o)))
MESHOPTLIB:= $(MESHOPTOBJDIR)/meshoptimizer.a
.PHONY: clean
all: maze2mesh
maze2mesh: maze2mesh.cpp $(MESHOPTLIB)
$(CXX) $< $(CXXFLAGS) $(INCS) -o $@ -lm $(filter %.a %.o, $^)
$(MESHOPTOBJDIR)/%.o: $(MESHOPTDIR)/src/%.cpp
$(CXX) -c $(CXXFLAGS) -Wno-float-equal -o $@ $<
$(MESHOPTOBJS): | $(MESHOPTOBJDIR)
$(MESHOPTOBJDIR):
@mkdir -p $@
$(MESHOPTLIB): $(MESHOPTOBJS)
@ar rs $@ $^
clean:
@echo -e $(YELLOW)Cleaning$(NC)
rm -f maze2mesh
rm -rf $(MESHOPTOBJDIR)