###############################################################################
# 
#  Copyright (c) 2005, 2006, 2007, 2008
#  University of Rochester
#  Department of Computer Science
#  All rights reserved.
# 
#  Redistribution and use in source and binary forms, with or without
#  modification, are permitted provided that the following conditions are met:
# 
#     * Redistributions of source code must retain the above copyright notice,
#       this list of conditions and the following disclaimer.
# 
#     * Redistributions in binary form must reproduce the above copyright
#       notice, this list of conditions and the following disclaimer in the
#       documentation and/or other materials provided with the distribution.
# 
#     * Neither the name of the University of Rochester nor the names of its
#       contributors may be used to endorse or promote products derived from
#       this software without specific prior written permission.
# 
# 
#  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
#  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
#  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
#  ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
#  LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
#  CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
#  SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
#  INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
#  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
#  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
#  POSSIBILITY OF SUCH DAMAGE.

# Pull in the standard RSTM makefile
include ../Makefile.inc

GOAL 	   = swarm
DEPEND     = Makefile.depend
STMPATH    = ../

CXXFLAGS  += -I$(STMPATH)
LDFLAGS   += -L$(STMPATH)stm/obj

# Mac OS links GLUT differently than Linux and Windows
OS         = $(shell gcc -dumpmachine | sed -e 's/.*-//' -e 's/[0-9].*//')
ifeq ($(OS), darwin)
    LOADLIBES += -lstm -framework GLUT -framework OpenGL
else
    LOADLIBES += -lstm -lglut -lGLU -lGL -lXmu -lXi -lXext -lX11 -lm
endif

# Header files have no .cpp implementation
HEADERS    = MatrixMath

# Sources have both .hpp and .cpp files
SOURCES    = Game Spatial GameState my_thread UpdateThread RenderThread \
             Profiler Renderer Material GameObject World \
             Animation PhysicsProperty GameObjectController STMList \
             ObjectBound Collide

HFILES     = $(patsubst %, %.hpp, $(HEADERS)) $(patsubst %, %.hpp, $(SOURCES))
CFILES     = $(patsubst %, %.cpp, $(SOURCES))
OFILES     = $(patsubst %, %.o, $(SOURCES)) 

.PHONY: all clean depend

all: $(GOAL)

$(GOAL): $(OFILES)
	$(CXX) $^ $(LDFLAGS) $(LOADLIBES) -o $@

clean:
	-rm -f $(GOAL) $(OFILES)


# Old fashioned dependency builder
depend: $(DEPEND)

$(DEPEND): ../config.h
	echo '# DO NOT EDIT THIS FILE -- it is automatically generated' > $@
	echo '' >> $@
	$(CXX) -MM $(CXXFLAGS) $(CFILES) >> $@
	'||| Dependencies have changed and been updated. Please re-run make. !!!'

include $(DEPEND)
