-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathMakefile
79 lines (66 loc) · 2.15 KB
/
Makefile
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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
# dir
BASE_DIR=/Users/neroyang/project/Ceno-GL
# include
INCLUDE_DIR=$(BASE_DIR)/gl/include/
INCLUDE_DIR+=$(BASE_DIR)/app/include/
INCLUDE_DIR+=$(BASE_DIR)/glm/include/
# app
SRC=$(wildcard $(BASE_DIR)/app/src/*.cpp)
# gl
SRC+=$(wildcard $(BASE_DIR)/gl/src/*.cpp)
# build dir
BUILD_DIR=$(BASE_DIR)/app/build
# objs dir
OBJS_DIR=$(BASE_DIR)/app/obj
# asm dir
ASM_DIR=$(BASE_DIR)/app/asm
# compiler
CXX=g++
# build flags
CPP_FLAGS=-I$(INCLUDE_DIR) -std=c++11 -Wall -O3
LINK_FLAGS=
# NO_PARALLEL:
# PARALLEL_SIMD:
# PARALLEL_CUDA:
# PARALLEL_OPENCL:
PARALLEL_MODE=PARALLEL_SIMD
PARALLEL_MODE_FLAG=-D$(PARALLEL_MODE)
# extera lib
LIB=-lstdc++ -ljpeg -lSDL2 -lSDL2main `sdl2-config --cflags --libs` -lpthread
run: clean all
$(BUILD_DIR)/CenoGL
all: CenoGL.o pixel.o pixel_matrix_buf.o graphics_base_hal.o glm.o gl2d.o gl3d.o glut.o window.o
$(CXX) -o $(BUILD_DIR)/CenoGL \
$(OBJS_DIR)/CenoGL.o \
$(OBJS_DIR)/pixel.o \
$(OBJS_DIR)/pixel_matrix_buf.o \
$(OBJS_DIR)/glm.o \
$(OBJS_DIR)/gl2d.o \
$(OBJS_DIR)/gl3d.o \
$(OBJS_DIR)/glut.o \
$(OBJS_DIR)/graphics_base_hal.o \
$(OBJS_DIR)/window.o \
$(LIB) -mhvx -march=native
CenoGL.o:
$(CXX) $(CPP_FLAGS) -o $(OBJS_DIR)/CenoGL.o -c $(BASE_DIR)/app/src/CenoGL.cpp $(LIB)
pixel.o:
$(CXX) $(CPP_FLAGS) -o $(OBJS_DIR)/pixel.o -c $(BASE_DIR)/gl/src/pixel.cpp $(LIB)
pixel_matrix_buf.o:
$(CXX) $(CPP_FLAGS) -o $(OBJS_DIR)/pixel_matrix_buf.o -c $(BASE_DIR)/gl/src/pixel_matrix_buf.cpp $(LIB)
glm.o:
$(CXX) $(CPP_FLAGS) -o $(OBJS_DIR)/glm.o -c $(BASE_DIR)/glm/src/glm.cpp $(LIB) $(PARALLEL_MODE_FLAG)
$(CXX) -o $(BASE_DIR)/app/asm/glm.S -S $(BASE_DIR)/glm/src/glm.cpp -O3
gl2d.o:
$(CXX) $(CPP_FLAGS) -o $(OBJS_DIR)/gl2d.o -c $(BASE_DIR)/gl/src/gl2d.cpp $(LIB)
gl3d.o:
$(CXX) $(CPP_FLAGS) -o $(OBJS_DIR)/gl3d.o -c $(BASE_DIR)/gl/src/gl3d.cpp $(LIB)
glut.o:
$(CXX) $(CPP_FLAGS) -o $(OBJS_DIR)/glut.o -c $(BASE_DIR)/gl/src/glut.cpp $(LIB)
graphics_base_hal.o:
$(CXX) $(CPP_FLAGS) -o $(OBJS_DIR)/graphics_base_hal.o -c $(BASE_DIR)/gl/src/graphics_base_hal.cpp $(LIB)
window.o:
$(CXX) $(CPP_FLAGS) -o $(OBJS_DIR)/window.o -c $(BASE_DIR)/gl/src/window.cpp $(LIB)
clean:
rm -rf $(OBJS_DIR)
rm -rf $(BUILD_DIR)/CenoGL
mkdir $(OBJS_DIR)