523a3e4e060914a467746551976a39cfe55ce3d5
[mtp.git] / Makefile
1
2 #########################################################################
3 # This program is free software: you can redistribute it and/or modify  #
4 # it under the terms of the version 3 of the GNU General Public License #
5 # as published by the Free Software Foundation.                         #
6 #                                                                       #
7 # This program is distributed in the hope that it will be useful, but   #
8 # WITHOUT ANY WARRANTY; without even the implied warranty of            #
9 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU      #
10 # General Public License for more details.                              #
11 #                                                                       #
12 # You should have received a copy of the GNU General Public License     #
13 # along with this program. If not, see <http://www.gnu.org/licenses/>.  #
14 #                                                                       #
15 # Written by Francois Fleuret                                           #
16 # Copyright (C) Idiap Research Institute                                #
17 # Contact <francois.fleuret@idiap.ch> for comments & bug reports        #
18 #########################################################################
19
20 ifeq ($(STATIC),yes)
21   LDFLAGS=-static -lm
22 else
23   LDFLAGS=-lm
24 endif
25
26 ifeq ($(DEBUG),yes)
27   OPTIMIZE_FLAG = -ggdb3 -DDEBUG -fno-omit-frame-pointer
28 else
29   OPTIMIZE_FLAG = -ggdb3 -O3
30 endif
31
32 ifeq ($(VERBOSE),yes)
33   VERBOSE_FLAG = -DVERBOSE
34 endif
35
36 ifeq ($(PROFILE),yes)
37   PROFILE_FLAG = -pg
38 endif
39
40 CXXFLAGS = -Wall $(OPTIMIZE_FLAG) $(PROFILE_FLAG) $(VERBOSE_FLAG)
41
42 all: mtp mtp_example
43
44 TAGS: *.cc *.h
45         etags --members -l c++ *.cc *.h
46
47 random-graph: \
48         random-graph.o
49         $(CXX) $(CXXFLAGS) -o $@ $^ $(LDFLAGS)
50
51 mtp: \
52         path.o mtp_graph.o \
53         tracker.o \
54         mtp.o
55         $(CXX) $(CXXFLAGS) -o $@ $^ $(LDFLAGS)
56
57 mtp_example: \
58         path.o mtp_graph.o \
59         tracker.o \
60         mtp_example.o
61         $(CXX) $(CXXFLAGS) -o $@ $^ $(LDFLAGS)
62
63 Makefile.depend: *.h *.cc Makefile
64         $(CC) $(CXXFLAGS) -M *.cc > Makefile.depend
65
66 clean:
67         \rm -f mtp *.o Makefile.depend TAGS
68
69 -include Makefile.depend