-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathMakefile
41 lines (32 loc) · 974 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
36
37
38
39
40
# Copyright (c) 2015, Ming Wen
.SUFFIXES:
CXX := g++
CXXFLAGS := -Wall -g
INCLUDES := -Iinclude -I/usr/local/include
LIBDIR := -L/usr/local/lib
LIBS := -l opencv_core -l opencv_highgui -l opencv_features2d -l opencv_nonfree
TARGET := fys
INCLUDEDIR := include
OBJDIR := bin
SRCDIR := src
TESTDIR := test
INCLUDESOURCE := $(wildcard $(INCLUDEDIR)/*.hpp)
SRCOBJ := $(patsubst %.cpp, %.o, $(wildcard $(SRCDIR)/*.cpp))
TESTOBJ := $(patsubst %.cpp, %.o, $(wildcard $(TESTDIR)/*.cpp))
.PHONY: all clean`
# make target
all: $(TARGET)
$(TARGET): $(SRCOBJ) $(TESTOBJ)
$(CXX) $(INCLUDES) $(CXXFLAGS) $^ -o $@ `pkg-config opencv --cflags --libs`
@mkdir -p bin
@mv $@ bin/$@
$(SRCOBJ): $(SRCDIR)/%.o: $(SRCDIR)/%.cpp
$(CXX) $(INCLUDES) $(CXXFLAGS) -c $< -o $@
$(TESTOBJ): $(TESTDIR)/%.o: $(TESTDIR)/%.cpp
$(CXX) $(INCLUDES) $(CXXFLAGS) -c $< -o $@
$(SRCDIR)/%.cpp: $(INCLUDESOURCE)
$(TESTDIR)/%.cpp: $(INCLUDESOURCE)
clean:
@rm -f bin/*
@rm -f src/*.o
@rm -f test/*.o