10669ed547e401b382e5fd1bc9073e88780ebf8a
[universe.git] / Makefile
1
2 #============================================================================#
3 # This program is free software; you can redistribute it and/or              #
4 # modify it under the terms of the GNU General Public License                #
5 # version 2 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 # Written and (C) by François Fleuret                                        #
13 # Contact <francois.fleuret@epfl.ch> for comments & bug reports              #
14 #============================================================================#
15
16 # CXX=g++-3.3
17
18 ifeq ($(DEBUG),yes)
19  CXXFLAGS = -Wall -g -DDEBUG
20 else
21  # Optimized compilation
22 #  CXXFLAGS = -Wall -g -O3 -pg --coverage
23  CXXFLAGS = -Wall -g -O3
24 endif
25
26 LDFLAGS = -L/usr/X11R6/lib/
27
28 TASK_SRC = dummy.cc move_square.cc hit_shape.cc
29 TASK_OBJ = $(TASK_SRC:.cc=.task)
30
31 all: main TAGS $(TASK_OBJ)
32
33 TAGS: *.cc *.h
34         etags *.cc *.h
35
36 main: main.o misc.o simple_window.o universe.o polygon.o map.o \
37       task.o retina.o manipulator.o approximer.o intelligence.o
38         $(CXX) -lX11 $(CXXFLAGS) -o $@ $^ $(LDFLAGS)
39
40 %.task: %.cc misc.o universe.o polygon.o map.o task.o manipulator.o
41         $(CXX) $(CXXFLAGS) -shared -Wl,-soname,$@ -o $@ $^
42
43 Makefile.depend: *.h *.cc Makefile
44         $(CC) -M *.cc > Makefile.depend
45
46 clean:
47         \rm main *.o *.task Makefile.depend
48
49 -include Makefile.depend