-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathMakefile
65 lines (48 loc) · 1.04 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
## paths
SRCDIR := Sources
INCDIR := $(SRCDIR) $(SRCDIR)/bloblib
OUTDIR := .
## compilation options
CXX := g++
INCFLAGS := $(addprefix -I,$(INCDIR))
CXXFLAGS := -W -Wall -Wextra -pedantic -std=c++14 \
$(INCFLAGS)
## link options
LINKER := $(CXX)
LDFLAGS :=
LDLIBS := boost_system boost_filesystem pthread \
opencv_highgui opencv_imgcodecs opencv_imgproc opencv_core
LDLIBS := $(addprefix -l, $(LDLIBS))
## binary options
NAME := $(OUTDIR)/lettrine
SRC := main.cpp \
Extractor.cpp \
ThreadConductor.cpp \
bloblib/BlobContour.cpp \
bloblib/blob.cpp \
bloblib/BlobOperators.cpp \
bloblib/BlobResult.cpp \
bloblib/ComponentLabeling.cpp
SRC := $(addprefix $(SRCDIR)/,$(SRC))
OBJ := $(SRC:.cpp=.o)
#
# build rules
#
all: $(NAME)
$(NAME): $(OBJ)
$(LINKER) -o $@ $^ $(LDFLAGS) $(LDLIBS)
@printf "=== $@ BUILD COMPELTE ===\n\n"
%.o: %.cpp
$(CXX) -c $(CXXFLAGS) -o $@ $<
#
# clean rules
#
RM := @$(RM) -v
clean:; $(RM) $(OBJ)
fclean: clean
$(RM) $(NAME)
re: fclean all
#
# special rules
#
.PHONY: all clean fclean re