# /* LICENSE:
#   =========================================================================
#     CMPack'03 Source Code Release for OPEN-R SDK v1.0
#     Copyright (C) 2003 Multirobot Lab [Project Head: Manuela Veloso]
#     School of Computer Science, Carnegie Mellon University
#     All rights reserved.
#   ========================================================================= */

C++ := g++
DEP_PROCESS:=dep_process

IFLAGS := -I../..

LIBS := 

LFLAGS := -L/usr/X11R6/lib -lX11 -lMagick++ -lMagick `fltk-config --ldflags`

CXXFLAGS := 
#CXXFLAGS += -Wshadow  -Woverloaded-virtual
CXXFLAGS += -O2
CXXFLAGS += -march=pentium -ffast-math
CXXFLAGS += -g
CXXFLAGS += -DPLATFORM_LINUX -Wall -Wstrict-prototypes
CXXFLAGS += $(IFLAGS)
CXXFLAGS += `fltk-config --cxxflags`

CXXFLAGS_PROFILE := $(CXXFLAGS)
CXXFLAGS_PROFILE += -pg

SRCS := \
	VisionTest.cc \
	../../agent/Main/Events.cc \
	../../agent/Motion/Kinematics.cc \
	../../agent/Vision/DetectBall.cc \
	../../agent/Vision/Radial.cc \
	../../agent/Vision/Vision.cc \
	../../agent/Vision/BWBallDetector.cc \
	../../agent/shared_code/CircBufPacket.cc \
	../../agent/shared_code/Dictionary.cc \
	../../agent/shared_code/FileSystem.cc \
	../../agent/shared_code/random.cc \
	../shared/image.cc \
	../shared/ImageViewer.cc \
	../shared/win.cc \

OBJS := $(SRCS:.cc=.o)
OBJS_PROF := $(SRCS:.cc=_prof.o)

GEN_HS :=
DEPENDS := $(SRCS:%.cc=%.d)

TARGET := vis_test
TARGET_PROF := vis_test_prof

$(TARGET_PROF) : CXXFLAGS := $(CXXFLAGS_PROFILE)
$(OBJS_PROF) : CXXFLAGS := $(CXXFLAGS_PROFILE)

all: $(TARGET)
	(cd ../bin; \rm -rf $(TARGET);ln -s ../vision_test/$(TARGET))

profile: $(TARGET_PROF)
	(cd ../bin; \rm -rf $(TARGET_PROF);ln -s ../vision_test/$(TARGET_PROF))

$(TARGET): $(OBJS) $(LIBS)
	$(C++) -o $@ $(CXXFLAGS) $^ $(LFLAGS)

$(TARGET_PROF): $(OBJS_PROF) $(LIBS)
	$(C++) -o $@ $(CXXFLAGS) $^ $(LFLAGS)

clean:
	rm -f $(OBJS)
	rm -f $(TARGET)
	rm -f $(DEPENDS)
	rm -f ../bin/$(TARGET)
	rm -f $(OBJS_PROF)
	rm -f $(TARGET_PROF)
	rm -f ../bin/$(TARGET_PROF)

dep: depend

depend:
	rm -f $(DEPENDS)

include $(DEPENDS)

%.o: %.cc
	$(C++) -c -o $@ $< $(CXXFLAGS)

%_prof.o: %.cc
	$(C++) -c -o $@ $< $(CXXFLAGS)

%.d: %.cc $(GEN_HS)
	$(C++) -M $(CXXFLAGS) $< >$@.tmp
	$(DEP_PROCESS) $@.tmp $(basename $@).o $(GEN_HS) >$@
	rm $@.tmp
