-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathMakefile
More file actions
59 lines (46 loc) · 1.08 KB
/
Makefile
File metadata and controls
59 lines (46 loc) · 1.08 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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
TARGET = raytracer
ROOTDIR := $(shell dirname $(realpath $(lastword $(MAKEFILE_LIST))))/
SRCDIR = src
OBJDIR = obj
# Debug is the default for Eclipse, so let's not use it... Eclipse keeps
# overwriting stuff
BINDIR = bin
SRCS := $(wildcard $(SRCDIR)/*.cpp)
INCL := $(wildcard $(SRCDIR)/*.hpp)
OBJS := $(SRCS:$(SRCDIR)/%.cpp=$(OBJDIR)/%.o)
CXX = g++
LINKERXX = g++
CCFLAGS = -Wall -pedantic -std=c++0x
LFLAGS = -Wall -pedantic -std=c++0x
rm = rm -vf
CCACHE_EXISTS := $(shell ccache -V)
ifdef CCACHE_EXISTS
CXX := ccache $(CXX)
LINKERXX := ccache $(LINKERXX)
endif
-include Makefile.local
ifdef PNG
LFLAGS += -lpng
CCFLAGS += -D IMAGE_FORMAT=0
endif
ifdef PRODUCTION
FLAGS = -O3 -g3
else
FLAGS = -O0 -g3
endif
CCFLAGS += $(FLAGS)
LFLAGS += $(FLAGS)
$(BINDIR)/$(TARGET): $(OBJS)
@echo "Linking "$<
@mkdir -p $(dir $@)
$(LINKERXX) $(OBJS) $(LFLAGS) -o $@
$(OBJS): $(OBJDIR)/%.o : $(SRCDIR)/%.cpp
@echo "Compiling "$<
@mkdir -p $(dir $@)
$(CXX) -c $< -o $@ $(CCFLAGS)
.PHONEY: clean
clean:
@$(rm) $(OBJS) $(BINDIR)/$(TARGET)
all: $(BINDIR)/$(TARGET)
run: all
$(BINDIR)/$(TARGET)