# fotoxx makefile 

PROGRAM = fotoxx
VERSION = 8.7
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
MANDIR = $(PREFIX)/share/man/man1

$(PROGRAM): $(PROGRAM).o zfuncs.o
	@ ./dependencies.sh
	@ g++ $(LFLAGS) -lfreeimage -o $(PROGRAM) $(PROGRAM).o zfuncs.o

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

zfuncs.o: zfuncs.cpp
	@ 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
	mkdir -p $(DESTDIR)$(MANDIR) 
	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=Graphics" >> $(DESKTOP)
	@echo "Type=Application" >> $(DESKTOP)
	@echo "Terminal=false" >> $(DESKTOP)
	@echo "Exec=$(BINDIR)/$(PROGRAM)" >> $(DESKTOP)
	@echo "Icon=$(DATADIR)/icons/$(PROGRAM).png" >> $(DESKTOP)
	@echo "GenericName=Digital Photo Editor" >> $(DESKTOP)
	xdg-desktop-menu install $(DESKTOP)
	#  install man page
	cp -f doc/$(PROGRAM).man $(PROGRAM).1
	gzip -f -9 $(PROGRAM).1
	cp $(PROGRAM).1.gz $(DESTDIR)$(MANDIR)
	rm -f $(PROGRAM).1.gz

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

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

