Newer
Older
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
BINDIR = bin
SRCDIR = src
INCLUDEDIR = include
APPDIR = application
OBJDIR = build
TESTDIR = test
APPNAME = teste
CC = g++
CFLAGS = -O3 -Wall -std=c++11 -pedantic -I $(INCLUDEDIR)
LDFLAGS =
BIN = ${BINDIR}/$(APPNAME)
APP = ${APPDIR}/main.cpp
SRC = $(wildcard $(SRCDIR)/*.cpp)
OBJS = $(patsubst $(SRCDIR)/%.cpp,$(OBJDIR)/%.o,$(SRC))
APPOBJ = $(patsubst $(APPDIR)/%.cpp,$(OBJDIR)/%.o,$(APP))
_TESTS = $(wildcard $(TESTDIR)/*.cpp)
TESTS = $(patsubst %.cpp,%,$(_TESTS))
$(BIN): $(OBJS) $(APPOBJ)
$(CC) -o $(BIN) $(APPOBJ) $(OBJS) $(CFLAGS) $(LDFLAGS)
$(APPOBJ): $(APP)
$(CC) -c -o $@ $< $(CFLAGS)
${OBJDIR}/%.o: $(SRCDIR)/%.cpp
$(CC) -c -o $@ $< $(CFLAGS)
test: $(TESTS)
$(info ************ Testes concluídos com sucesso! ************)
$(TESTDIR)/t_%: $(TESTDIR)/t_%.cpp $(OBJS)
$(CC) -o $@ $< $(OBJS) $(CFLAGS) $(LDFLAGS)
$@
clean:
rm -f $(BIN) $(OBJS) $(APPOBJ)
rm -f $(TESTS)
run:
./$(BIN)