# picpuz makefile 

PROGRAM = picpuz
VERSION = 2.1.1
SOURCE = $(PROGRAM)-$(VERSION).cpp

# replace CFLAGS and LFLAGS -O (oh) with -g for GDB debugging
CFLAGS = -O -Wall -c `pkg-config --cflags gtk+-2.0`
LFLAGS = -O -Wall -rdynamic `pkg-config --libs gtk+-2.0 gthread-2.0`

# use $PREFIX if defined, else assume /usr/local
ifeq "$(PREFIX)" ""
	PREFIX = /usr/local
endif

BINDIR = $(PREFIX)/bin
DATADIR = $(PREFIX)/share/$(PROGRAM)
DOCDIR = $(PREFIX)/share/doc/$(PROGRAM)
DESKTOP = $(DATADIR)/kornelix-$(PROGRAM).desktop

$(PROGRAM): $(PROGRAM).o zfuncs.o
	@ g++ $(LFLAGS) -o $(PROGRAM) $(PROGRAM).o zfuncs.o

$(PROGRAM).o: $(SOURCE) zfuncs.h
	@ g++ $(CFLAGS) -o $(PROGRAM).o $(SOURCE)		\
	  -D "DATADIR=\"$(DATADIR)\"" -D "DOCDIR=\"$(DOCDIR)\""

zfuncs.o: zfuncs.cpp zfuncs.h
	@ g++ $(CFLAGS) zfuncs.cpp	\
	  -D "DATADIR=\"$(DATADIR)\"" -D "DOCDIR=\"$(DOCDIR)\"" -D "BINDIR=\"$(BINDIR)\""

install: $(PROGRAM)
	mkdir -p $(DESTDIR)$(DOCDIR) 
	mkdir -p $(DESTDIR)$(BINDIR)
	mkdir -p $(DESTDIR)$(DATADIR)
	mkdir -p $(DESTDIR)$(DATADIR)/locales
	cp -R doc/* $(DESTDIR)$(DOCDIR)
	cp -R data/* $(DESTDIR)$(DATADIR)
	cp $(PROGRAM) $(DESTDIR)$(BINDIR)
	cp -R locales/* $(DESTDIR)$(DATADIR)/locales
	#  install .desktop file (menu entry)
	@echo "[Desktop Entry]" > $(DESKTOP)
	@echo "Name=$(PROGRAM)" >> $(DESKTOP)
	@echo "Categories=Game" >> $(DESKTOP)
	@echo "Type=Application" >> $(DESKTOP)
	@echo "Terminal=false" >> $(DESKTOP)
	@echo "Exec=$(BINDIR)/$(PROGRAM)" >> $(DESKTOP)
	@echo "Icon=$(DATADIR)/icons/$(PROGRAM).png" >> $(DESKTOP)
	@echo "GenericName=Jigsaw Puzzle" >> $(DESKTOP)
	xdg-desktop-menu install $(DESKTOP)

uninstall:
	xdg-desktop-menu uninstall $(DESKTOP)
	rm -f $(DESTDIR)$(BINDIR)/$(PROGRAM)
	rm -R -f $(DESTDIR)$(DOCDIR)
	rm -R -f $(DESTDIR)$(DATADIR)

clean: 
	rm -f $(PROGRAM)
	rm -f *.o

