PROG = blobwars
PAKNAME = blobwars.pk3
DOCS = doc/*
ICONS = icons/

VERSION = 0.52
RELEASE = 1
USEPAK = 1

PREFIX=$(DESTDIR)/usr
BINDIR = $(PREFIX)/games/
DATADIR = $(PREFIX)/share/games/parallelrealities/
DOCDIR = $(PREFIX)/share/doc/$(PROG)-$(VERSION)-$(RELEASE)/
ICONDIR = $(PREFIX)/share/icons/
KDE = $(PREFIX)/share/applnk/Games/Arcade/
GNOME = $(PREFIX)/share/gnome/apps/Games/

CFLAGS += `sdl-config --cflags` -DVERSION=$(VERSION) -DRELEASE=$(RELEASE) -DUSEPAK=$(USEPAK)
CFLAGS += -DPAKNAME=\"$(PAKNAME)\" -DPAKLOCATION=\"$(DATADIR)\" -DUNIX -DTEMPDIR=\"/tmp/\" -DGAMEPLAYMANUAL=\"$(DOCDIR)index.html\" -Wall
LIBS = `sdl-config --libs` -lSDL_mixer -lSDL_image -lSDL_ttf -lz

OBJS = bosses.o bullets.o
OBJS += CAudio.o CCollision.o CData.o CEffect.o CEngine.o CEntity.o CFileData.o CGame.o CGameData.o CGameObject.o
OBJS += CGraphics.o CHub.o CJoystick.o CLineDef.o CList.o CMap.o CMath.o CObjective.o CPak.o CParticle.o 
OBJS += CRadarBlip.o CSpawnPoint.o CSprite.o CSwitch.o CTeleporter.o CTrain.o CTrap.o CWeapon.o CWidget.o
OBJS += effects.o enemies.o entities.o explosions.o game.o graphics.o hub.o info.o init.o intro.o items.o lineDefs.o
OBJS += loadSave.o map.o mias.o mission.o objectives.o obstacles.o particles.o player.o resources.o spawnPoints.o
OBJS += switches.o teleporters.o title.o trains.o translation.o traps.o triggers.o weapons.o widgets.o

GAMEOBJS = $(OBJS) main.o
MAPOBJS = $(OBJS) mapEditor.o

# top-level rule to create the program.
all: $(PROG)

# compiling other source files.
%.o: code/%.cpp code/%.h code/defs.h code/headers.h
	$(CXX) $(CFLAGS) -c $<

# linking the program.
$(PROG): $(GAMEOBJS)
	$(CXX) $(LIBS) $(GAMEOBJS) -o $(PROG)

mapeditor: $(MAPOBJS)
	$(CXX) $(LIBS) $(MAPOBJS) -o mapeditor
	strip mapeditor

# cleaning everything that can be automatically recreated with "make".
clean:
	$(RM) $(GAMEOBJS) mapEditor.o

# install
install:
	mkdir -p $(BINDIR)
	mkdir -p $(DATADIR)
	mkdir -p $(DOCDIR)
	mkdir -p $(ICONDIR)
	mkdir -p $(ICONDIR)mini
	mkdir -p $(ICONDIR)large
	mkdir -p $(KDE)
	mkdir -p $(GNOME)

	strip $(PROG)
	install -o root -g games -m 755 $(PROG) $(BINDIR)$(PROG)
	install -o root -g games -m 644 $(PAKNAME) $(DATADIR)$(PAKNAME)
	cp $(DOCS) $(DOCDIR)
	cp $(ICONS)$(PROG).png $(ICONDIR)
	cp $(ICONS)$(PROG)-mini.png $(ICONDIR)mini/$(PROG).png
	cp $(ICONS)$(PROG)-large.png $(ICONDIR)large/$(PROG).png
	cp $(ICONS)$(PROG).desktop $(KDE)
	cp $(ICONS)$(PROG).desktop $(GNOME)
