# Copyright (C) 2007  Mikko Sysikaski <mikko.sysikaski@gmail.com>
# This program is free software distributed under GNU General Public License
# version 3 or (at your option) any later version.
# No warranty of any kind is provided. See the accompanying file COPYING for details.

CXX=g++
CXXFLAGS=-O3 -ffast-math -funroll-loops -Wall -Wextra $(shell sdl-config --cflags)
LDFLAGS=$(shell sdl-config --libs) -lGL -lGLU -lboost_filesystem -lSDL_mixer

OBJECTS=board.o main.o renderer.o eventhandler.o physics.o gameapp.o drawutils.o\
	lcd.o lcdcounter.o mainmenu.o glscreen.o dirdata.o gameloop.o options.o\
	ingamemenu.o besttimes.o packhandler.o sound.o menubg.o credits.o\
	modifiableboard.o mazegen.o mazesetter.o optionsmenu.o noisegen.o menuitems.o

all: kuula
	@$(MAKE) -C editor all
	ln -sf editor/editor edit

kuula: $(OBJECTS)
	$(CXX) $(OBJECTS) $(CXXFLAGS) $(LDFLAGS) -o $@

$(OBJECTS): %.o: %.cpp
	$(CXX) $< $(CXXFLAGS) -c -o $@

clean:
	rm -rf $(OBJECTS) kuula

board.o: board.h
renderer.o: renderer.h physics.h board.h drawutils.h glscreen.h lcdcounter.h common.h noisegen.h
eventhandler.o: eventhandler.h physics.h glscreen.h lcdcounter.h common.h
physics.o: physics.h common.h board.h lcdcounter.h
gameapp.o: gameapp.h physics.h renderer.h eventhandler.h glscreen.h mainmenu.h actionmenu.h options.h menubase.h besttimes.h lcdcounter.h sound.h common.h credits.h
drawutils.o: drawutils.h
lcd.o: lcd.h
lcdcounter.o: lcdcounter.h lcd.h glscreen.h common.h
mainmenu.o: mainmenu.h actionmenu.h lcd.h glscreen.h dirdata.h boardpicker.h itempicker.h gameloop.h menubase.h optionsmenu.h gameapp.h lcdcounter.h common.h packpicker.h packhandler.h sound.h menubg.h renderer.h mazesetter.h varyingmenu.h menuitems.h physics.h
glscreen.o: glscreen.h common.h
main.o: gameapp.h
gameloop.o: gameloop.h physics.h board.h renderer.h idler.h gameapp.h eventhandler.h ingamemenu.h actionmenu.h menubase.h common.h besttimes.h lcdcounter.h sound.h glscreen.h common.h renderer.h
options.o: options.h
ingamemenu.o: ingamemenu.h actionmenu.h menubase.h common.h renderer.h gameapp.h glscreen.h lcd.h besttimes.h
besttimes.o: besttimes.h
packhandler.o: packhandler.h gameloop.h board.h physics.h common.h lcdcounter.h glscreen.h sound.h
sound.o: sound.h
menubg.o: menubg.h common.h
credits.o: credits.h menubg.h idler.h lcd.h common.h
modifiableboard.o: modifiableboard.h board.h
mazegen.o: mazegen.h modifiableboard.h board.h
mazesetter.o: mazesetter.h menubase.h menubg.h mazegen.h lcd.h common.h gameloop.h physics.h lcdcounter.h board.h glscreen.h sound.h menuitems.h varyingmenu.h
optionsmenu.o: optionsmenu.h lcd.h common.h menubg.h varyingmenu.h menuitems.h glscreen.h options.h gameapp.h sound.h renderer.h eventhandler.h
noisegen.o: noisegen.h
menuitems.o:
