# Makefile for GNU/Linux

ifndef PREFIX
	PREFIX=/home/user/.dstroy/
endif

# TODO: split install dir from data dir compiled in the sources
BINDIR = /home/user/.dstroy/

ifndef DATADIR
	DATADIR = /home/user/.dstroy/data
endif

ifndef DOCDIR
	DOCDIR = $(PREFIX)/doc
endif

CONFIGDIR = /home/user/.dstroy

CROSS_COMPILE = 
SDL_BASE = 
LDFLAGS = 

OWNER=
GROUP=

ifdef BINDIR
CONFIG_BINDIR = -DBINDIR="\"$(BINDIR)\""
endif

ifdef DATADIR
CONFIG_DATADIR = -DDATADIR="\"$(DATADIR)\""
endif

ifdef CONFIGDIR
CONFIG_CONFIGDIR = -DCONFIGDIR="\"$(CONFIGDIR)\""
endif

CC = $(CROSS_COMPILE)gcc
CXX = $(CROSS_COMPILE)g++
STRIP = $(CROSS_COMPILE)strip
INSTALL = install

CFLAGS = `$(SDL_BASE)sdl-config --cflags` -O2 -Wall -DLINUX $(CONFIG_BINDIR) $(CONFIG_DATADIR) $(CONFIG_CONFIGDIR)
CXXFLAGS = `$(SDL_BASE)sdl-config --cflags` -O2 -Wall -DLINUX $(CONFIG_BINDIR) $(CONFIG_DATADIR) $(CONFIG_CONFIGDIR)
LIBS = `$(SDL_BASE)sdl-config --libs` -lSDLmain -lSDL_mixer -lSDL_image -lSDL_net -lpthread
CPPFILES	:=	$(foreach dir,src,$(wildcard $(dir)/*.cpp))

SDLTEST_TARGET = dstroy
SDLTEST_OBJS = $(CPPFILES:.cpp=.o)
#SDLTEST_OBJS=DstroyGlobals.o TGIFile.o DstroyMenuGP2XCommands.o DstroyBonusText.o PadTest.o PadTestItem.o DstroyFloor.o DstroyGame.o DstroyItem.o DstroyMonster.o DstroyPlayer.o DstroyWall.o stdafx.o TGIGlobals.o TGIInputMessage.o TGIMain.o TGIObject.o TGISprite.o TGISurface.o TGITime.o DstroyExplosion.o DstroySoftWall.o DstroyBomb.o TGIScreen.o DstroyBonus.o TGISound.o DstroyMenuAdventure.o DstroyMenuItem.o DstroyMenuMain.o DstroyMenuManager.o DstroyMenu.o dstroy.o DstroyMenuFight.o DstroyTeleporting.o DstroyGameParams.o DstroyMenuOptions.o DstroyMenuCommandConfig.o DstroyMenuLoad.o DstroyMenuPause.o DstroyPressFire.o DstroyPressFireItem.o TGIFont2.o DstroyIntro.o DstroyAI.o DstroyNest.o DstroyEndGame.o DstroyOptions.o DstroyIntro2.o DstroyTitle.o DstroyMenuNetServer.o DstroyNetClient.o DstroyNetServer.o TGINetClient.o TGINetServer.o TGIRect.o TGIReserve.o

DOC_FILES=LICENSE.txt
DOC_DATA_FILES=LICENSE-data.txt

all : $(SDLTEST_TARGET)

$(SDLTEST_TARGET) : $(SDLTEST_OBJS)
	$(CXX) $(LDFLAGS) -o $(SDLTEST_TARGET) $(SDLTEST_OBJS) $(LIBS)
	$(STRIP) $(SDLTEST_TARGET)

install : install-bin install-data

install-bin : install-doc
	$(INSTALL) -c -o $(OWNER) -g $(GROUP) -m 750 -d $(DESTDIR)/$(BINDIR)
	$(INSTALL) -c -o $(OWNER) -g $(GROUP) -m 750 $(SDLTEST_TARGET) $(DESTDIR)/$(BINDIR)

install-data : install-data-doc
	$(INSTALL) -c -o $(OWNER) -g $(GROUP) -m 750 -d $(DESTDIR)/$(DATADIR)
	$(INSTALL) -c -o $(OWNER) -g $(GROUP) -m 640 dstroydata/* $(DESTDIR)/$(DATADIR)

install-doc :
	$(INSTALL) -c -o $(OWNER) -g $(GROUP) -m 750 -d $(DESTDIR)/$(DOCDIR)/dstroy
	$(INSTALL) -c -o $(OWNER) -g $(GROUP) -m 650 $(DOC_FILES) $(DESTDIR)/$(DOCDIR)/dstroy/

install-data-doc :
	$(INSTALL) -c -o $(OWNER) -g $(GROUP) -m 750 -d $(DESTDIR)/$(DOCDIR)/dstroy
	$(INSTALL) -c -o $(OWNER) -g $(GROUP) -m 650 $(DOC_DATA_FILES) $(DESTDIR)/$(DOCDIR)/dstroy/

clean:
	rm -f $(ALL_TARGETS) $(SDLTEST_TARGET) src/*.o src/*~
