OBJS = main.o snake.o config.o playground.o queue_key.o config-player.o
CC = g++
DEBUG = -g
CFLAGS = -Wall -c -I/usr/include/SDL $(DEBUG)
LFLAGS = -Wall -L/usr/lib -lSDL -lpthread -lSDL_image -lSDL_gfx -lSDL_ttf -lSDL_mixer  $(DEBUG)

ifndef GAMES_BINDIR
GAMES_BINDIR=/usr/games/bin
endif

ifndef GAMES_DATADIR
GAMES_DATADIR=/usr/share/games
endif

CFLAGS+=-DBINDIR="\"$(GAMES_BINDIR)\""
CFLAGS+=-DDATADIR="\"$(GAMES_DATADIR)\""

Release: snake
Debug: snake

snake : $(OBJS)
	$(CC) $(LFLAGS) $(OBJS) -o snake

main.o : src/main.cpp src/config.h src/snake.h
	$(CC) $(CFLAGS) src/main.cpp

snake.o : src/snake.cpp src/snake.h src/config.h src/definitions.h src/koordinate.h src/playground.h src/queue_key.h
	$(CC) $(CFLAGS) src/snake.cpp

config.o : src/config.cpp src/config.h src/config-player.h
	$(CC) $(CFLAGS) src/config.cpp

playground.o : src/playground.cpp src/playground.h src/definitions.h src/config.h
	$(CC) $(CFLAGS) src/playground.cpp

queue_key.o : src/queue_key.cpp src/queue_key.h src/definitions.h
	$(CC) $(CFLAGS) src/queue_key.cpp

config-player.o : src/config-player.cpp src/config-player.h src/config.h src/definitions.h
	$(CC) $(CFLAGS) src/config-player.cpp

clean:
	rm *.o *~ snake


install:
	mkdir -p $(DESTDIR)/$(GAMES_BINDIR)/
	install -g games -m 750 ./snake $(DESTDIR)/$(GAMES_BINDIR)/
	mkdir -p $(DESTDIR)/$(GAMES_DATADIR)/snake/
	install -g games -m 640 ./src/res/* $(DESTDIR)/$(GAMES_DATADIR)/snake/


uninstall:
	rm -r $(GAMES_DATADIR)/snake
	rm $(GAMES_BINDIR)/snake
