-
Notifications
You must be signed in to change notification settings - Fork 0
/
Makefile
36 lines (25 loc) · 802 Bytes
/
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
# Common variables
CC = g++
DEPFLAGS = -MT $@ -MMD -MP -MF $*.d
CPPFLAGS = -c -std=c++11 -Wall -Wextra -Wshadow -O3
LDFLAGS = -pthread
SOURCES = $(wildcard *.cpp)
DEPENDS = $(SOURCES:.cpp=.d)
OBJECTS = $(SOURCES:.cpp=.o)
EXECUTABLE = mandelbrot
# Arguments for GTKMM
LDFLAGS += $(shell pkg-config --libs gtkmm-3.0)
SOURCES_GUI = $(wildcard gui*.cpp)
$(SOURCES_GUI:.cpp=.o) : EXTRACPPFLAGS = $(shell pkg-config --cflags gtkmm-3.0 | sed s/-I/-isystem/g)
.PHONY: all clean
all : $(SOURCES) $(EXECUTABLE)
$(EXECUTABLE) : $(OBJECTS)
$(CC) $(LDFLAGS) $(OBJECTS) -o $@
%.o : %.cpp %.d
$(CC) $(CPPFLAGS) $(EXTRACPPFLAGS) $(DEPFLAGS) $< -o $@
%.d : ;
clean :
$(RM) $(EXECUTABLE) $(wildcard *.o) $(wildcard *.d)
ifneq ($(MAKECMDGOALS),clean)
-include $(patsubst %,%.d,$(basename $(SOURCES)))
endif