Xinqi Bao's Git

README.md: updated paper url
[XbSlicer.git] / Makefile
1 EXE = xbslicer
2
3 DIR = $(shell pwd)
4 SRC_DIR = $(DIR)/src
5 BUILD_DIR = $(DIR)/build
6
7 vpath %.cc $(SRC_DIR)
8 vpath %.hh $(SRC_DIR)
9 vpath %.o $(BUILD_DIR)
10
11 CXX := g++
12 OPTIONS = -std=c++11
13 MODE ?= debug
14
15 OBJ := main.o Slicer.o Slicing.o GCode.o STL.o \
16 Configurations.o BufferReadBinary.o BufferWrite.o \
17 Vec2d.o Vec3d.o Triangle.o Cross.o Loop.o Layer.o \
18 DoubleToString.o
19
20 ifeq ($(strip $(MODE)), release)
21 OPTIONS += -O2
22 TARGET = $(EXE)
23 else
24 OPTIONS += -g
25 TARGET = $(EXE)-staging
26 endif
27
28 all: $(TARGET)
29
30 $(TARGET): $(OBJ)
31 @echo $(strip $(MODE))
32 $(CXX) $(OPTIONS) -pthread $(addprefix $(BUILD_DIR)/, $(OBJ)) -o $@
33
34 %.o:%.cc
35 @mkdir -p $(BUILD_DIR)
36 $(CXX) $(OPTIONS) -c $< -o $(BUILD_DIR)/$@
37
38 main.o: Slicer.o
39 Slicer.o: STL.o Slicing.o BufferWrite.o Slicer.hh
40 STL.o: Configurations.o BufferReadBinary.o Triangle.o STL.hh
41 Slicing.o: STL.o GCode.o Slicing.hh
42 GCode.o: Configurations.o Layer.o GCode.hh
43 Configurations.o: Configurations.hh
44 BufferReadBinary.o: BufferReadBinary.hh
45 BufferWrite.o: DoubleToString.o BufferWrite.hh
46 Vec2d.o: Vec3d.o Vec2d.hh
47 Vec3d.o: Configurations.o BufferReadBinary.o Vec3d.hh
48 Triangle.o: Vec3d.o Triangle.hh
49 Cross.o: Vec2d.o Cross.hh
50 Loop.o: Loop.hh
51 Layer.o: Loop.o Cross.o BufferWrite.o Layer.hh
52 DoubleToString.o: DoubleToString.hh
53
54 .PHONY: clean
55 clean:
56 @rm -rf $(BUILD_DIR) $(EXE)*
57 @echo "Clean finished!"