# Contact <francois.fleuret@epfl.ch> for comments & bug reports #
#============================================================================#
-# CXX=g++-3.3
-
ifeq ($(DEBUG),yes)
- CXXFLAGS = -Wall -g -DDEBUG
+ CXXFLAGS = -fPIC -Wall -g -DDEBUG
else
# Optimized compilation
-# CXXFLAGS = -Wall -g -O3 -pg --coverage
- CXXFLAGS = -Wall -g -O3
+ # CXXFLAGS = -Wall -g -O3 -pg --coverage
+ CXXFLAGS = -fPIC -Wall -g -O3
endif
-LDFLAGS = -L/usr/X11R6/lib/
+LDFLAGS = -lz -ldl
+
+# Do we use X11?
+CXXFLAGS += -DX11_SUPPORT
+LDFLAGS += -L/usr/X11R6/lib/
+
+# Do we use cairo?
+CXXFLAGS += -I/usr/include/cairo -DCAIRO_SUPPORT
+LDFLAGS += -lcairo
TASK_SRC = dummy.cc move_square.cc hit_shape.cc
-TASK_OBJ = $(TASK_SRC:.cc=.task)
+TASK_OBJ = $(TASK_SRC:.cc=.so)
all: main TAGS $(TASK_OBJ)
TAGS: *.cc *.h
etags *.cc *.h
-main: main.o misc.o simple_window.o universe.o polygon.o map.o \
- task.o retina.o manipulator.o approximer.o intelligence.o
- $(CXX) -lX11 $(CXXFLAGS) -o $@ $^ $(LDFLAGS)
-
-art: art.o misc.o simple_window.o universe.o polygon.o map.o \
- task.o retina.o manipulator.o approximer.o intelligence.o
- $(CXX) -lX11 $(CXXFLAGS) -o $@ $^ $(LDFLAGS)
+main: main.o misc.o \
+ simple_window.o \
+ universe.o \
+ polygon.o \
+ xfig_tracer.o \
+ map.o \
+ task.o \
+ retina.o \
+ manipulator.o \
+ approximer.o \
+ intelligence.o
+ $(CXX) $(CXXFLAGS) $(LDFLAGS) -lX11 -o $@ $^
-%.task: %.cc misc.o universe.o polygon.o map.o task.o manipulator.o
+%.so: %.cc misc.o universe.o polygon.o xfig_tracer.o map.o task.o manipulator.o
$(CXX) $(CXXFLAGS) -shared -Wl,-soname,$@ -o $@ $^
Makefile.depend: *.h *.cc Makefile
$(CC) -M *.cc > Makefile.depend
clean:
- \rm main *.o *.task Makefile.depend
+ \rm -f main *.o *.so Makefile.depend
-include Makefile.depend