# 
#   grotto - a roguelike RPG
#   Copyright (C) 2006 Tobias Heinzen
# 
#    This program is free software; you can redistribute it and/or modify
#    it under the terms of the GNU General Public License as published by
#    the Free Software Foundation; either version 2 of the License, or
#    (at your option) any later version.
# 
#    This program is distributed in the hope that it will be useful,
#    but WITHOUT ANY WARRANTY; without even the implied warranty of
#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#    GNU General Public License for more details.
# 
#    You should have received a copy of the GNU General Public License
#    along with this program; if not, write to the Free Software
#    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
#

# ----------------------------------------------------------------------------
# Special flags for the compiler/linker
# ----------------------------------------------------------------------------
LDFLAGS=  -lncurses  
CXXFLAGS= -Wall -Werror -pedantic    

# ----------------------------------------------------------------------------
# Source listing and derived objects
# ----------------------------------------------------------------------------
SOURCES= \
 	src/map.cpp          \
 	src/game.cpp		 \
 	src/character.cpp	 \
 	src/inventory.cpp	 \
 	src/messagebox.cpp	 \
 	src/list.cpp		 \
 	src/menu.cpp		 \
 	src/box.cpp			 \
 	src/fight.cpp		 \
 	src/monster.cpp	 	 \
 	src/seller.cpp		 \
 	src/trainer.cpp		 \
 	src/wizard.cpp		 \
 	src/main.cpp         
 	
OBJECTS=$(SOURCES:.cpp=.o)

# ----------------------------------------------------------------------------
# Main target definition
# ----------------------------------------------------------------------------
MAIN_TARGET=bin/grotto


# ----------------------------------------------------------------------------
# Rules
# ----------------------------------------------------------------------------
all: $(MAIN_TARGET)

$(MAIN_TARGET): $(OBJECTS)
	@echo "  Link: $(@D)/$(@F)"
	@g++ $(LDFLAGS) $(OBJECTS) -o $@
	@strip $(MAIN_TARGET)
	@echo "done!"
	
.cpp.o:
	@echo "  Compile: $(@D)/$(<F)"
	@gcc $(CXXFLAGS) -c -o $@ $<
                                                                                
clean:
	@echo "  Clean: Object files and target binary"
	@rm -rf $(OBJECTS) $(MAIN_TARGET)