# fotoxx makefile 

PROGRAM = fotoxx
VERSION = 9.2
SOURCE = $(PROGRAM)-$(VERSION).cpp

# replace CFLAGS and LFLAGS -O3 with -g for GDB debugging
CFLAGS = -O3 -Wall -c `pkg-config --cflags gtk+-2.0`
LFLAGS = -O3 -Wall -rdynamic `pkg-config --libs gtk+-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)
	cp -f data/desktop $(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

