PROG = viruskiller
PAKNAME = viruskiller.pak
DOCS = doc/*
ICONS = icons/

VERSION = 1.0
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/

SAFEDIR = /tmp/

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

OBJS += CAudio.o 
OBJS += CBase.o
OBJS += CCollision.o 
OBJS += CData.o CDirectory.o 
OBJS += CEngine.o 
OBJS += CFile.o CFileData.o 
OBJS += CGameData.o CGameObject.o CGraphics.o 
OBJS += CHighScore.o 
OBJS += CItem.o 
OBJS += CList.o 
OBJS += CMath.o 
OBJS += CPak.o CParticle.o
OBJS += CSprite.o 
OBJS += CVirus.o 
OBJS += CWidget.o

OBJS += filesAndDirectories.o 
OBJS += game.o
OBJS += init.o items.o 
OBJS += highscores.o 
OBJS += main.o 
OBJS += particles.o
OBJS += resources.o 
OBJS += title.o 
OBJS += viruses.o 
OBJS += widgets.o

PAKOBJS = CFileData.o pak.o

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

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

# linking the program.
$(PROG): $(OBJS)
	$(CXX) $(LIBS) $(OBJS) -o $(PROG)
	
pak: $(PAKOBJS)
	$(CXX) $(LIBS) $(PAKOBJS) -o pak

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

buildpak:
	./pak data gfx music sound $(PAKNAME)

# install
install:

	./pak data gfx music sound $(PAKNAME)
	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)
