# fotoxx makefile 

FOTOXX = fotoxx-14.07.1.cc

# defaults for parameters that may be pre-defined
CXXFLAGS ?= -O2 -Wall -ggdb

LDFLAGS ?= -rdynamic 
PREFIX ?= /usr

# target install directories
BINDIR = $(PREFIX)/bin
SHAREDIR = $(PREFIX)/share/fotoxx
DATADIR = $(SHAREDIR)/data
ICONDIR = $(SHAREDIR)/icons
LOCALESDIR = $(SHAREDIR)/locales
DOCDIR = $(PREFIX)/share/doc/fotoxx
MANDIR = $(PREFIX)/share/man/man1
APPDATADIR = $(PREFIX)/share/appdata
MENUFILE = $(PREFIX)/share/applications/fotoxx.desktop

CFLAGS = $(CXXFLAGS) -c `pkg-config --cflags gtk+-3.0`
LIBS = `pkg-config --libs gtk+-3.0` 

ALLFILES = fotoxx.o f.widgets.o f.file.o f.tools.o f.area.o f.meta.o    \
           f.edit.o f.repair.o f.color.o f.bend.o f.effects.o f.combine.o zfuncs.o

fotoxx: $(ALLFILES)
	$(CXX) $(LDFLAGS) -o fotoxx $(ALLFILES) $(LIBS)    \
                     -ltiff -lpng -llcms2 -lpthread

fotoxx.o: $(FOTOXX) fotoxx.h
	$(CXX) $(CFLAGS) -o fotoxx.o $(FOTOXX)

f.widgets.o: f.widgets.cc fotoxx.h
	$(CXX) $(CFLAGS) f.widgets.cc

f.file.o: f.file.cc fotoxx.h
	$(CXX) $(CFLAGS) f.file.cc

f.tools.o: f.tools.cc fotoxx.h
	$(CXX) $(CFLAGS) f.tools.cc

f.area.o: f.area.cc fotoxx.h
	$(CXX) $(CFLAGS) f.area.cc

f.meta.o: f.meta.cc fotoxx.h
	$(CXX) $(CFLAGS) f.meta.cc

f.edit.o: f.edit.cc fotoxx.h
	$(CXX) $(CFLAGS) f.edit.cc

f.repair.o: f.repair.cc fotoxx.h
	$(CXX) $(CFLAGS) f.repair.cc

f.color.o: f.color.cc fotoxx.h
	$(CXX) $(CFLAGS) f.color.cc

f.bend.o: f.bend.cc fotoxx.h
	$(CXX) $(CFLAGS) f.bend.cc

f.effects.o: f.effects.cc fotoxx.h
	$(CXX) $(CFLAGS) f.effects.cc

f.combine.o: f.combine.cc fotoxx.h
	$(CXX) $(CFLAGS) f.combine.cc

zfuncs.o: zfuncs.cc zfuncs.h
	$(CXX) $(CFLAGS) zfuncs.cc    \
          -D PREFIX=\"$(PREFIX)\" -D DOCDIR=\"$(DOCDIR)\"  

install: fotoxx
	rm -f  $(DESTDIR)$(BINDIR)/fotoxx
	rm -f -R  $(DESTDIR)$(SHAREDIR)
	rm -f -R  $(DESTDIR)$(DOCDIR)
	rm -f  $(DESTDIR)$(MANDIR)/fotoxx.1.gz
	xdg-desktop-menu uninstall $(DESTDIR)$(MENUFILE)
	rm -f  $(DESTDIR)$(MENUFILE)
	mkdir -p  $(DESTDIR)$(BINDIR)
	mkdir -p  $(DESTDIR)$(DATADIR)
	mkdir -p  $(DESTDIR)$(ICONDIR)
	mkdir -p  $(DESTDIR)$(LOCALESDIR)
	mkdir -p  $(DESTDIR)$(DOCDIR)
	mkdir -p  $(DESTDIR)$(MANDIR)
	mkdir -p  $(DESTDIR)$(PREFIX)/share/applications
	cp -f  fotoxx $(DESTDIR)$(BINDIR)
	cp -f -R  data/* $(DESTDIR)$(DATADIR)
	cp -f -R  icons/* $(DESTDIR)$(ICONDIR)
	cp -f -R  locales/* $(DESTDIR)$(LOCALESDIR)
	cp -f -R  doc/* $(DESTDIR)$(DOCDIR)
	cp -f -R  appdata/* $(DESTDIR)$(APPDATADIR)
	gzip -f -9 $(DESTDIR)$(DOCDIR)/changelog
	# man page
	cp -f doc/fotoxx.man fotoxx.1
	gzip -f -9 fotoxx.1
	cp fotoxx.1.gz $(DESTDIR)$(MANDIR)
	rm -f fotoxx.1.gz
	# menu (desktop) file
	cp -f desktop $(DESTDIR)$(MENUFILE)
	# chmod +x $(DESTDIR)$(MENUFILE)
	xdg-desktop-menu install --novendor $(DESTDIR)$(MENUFILE)

uninstall:
	rm -f  $(DESTDIR)$(BINDIR)/fotoxx
	rm -f -R  $(DESTDIR)$(SHAREDIR)
	rm -f -R  $(DESTDIR)$(DOCDIR)
	rm -f  $(DESTDIR)$(MANDIR)/fotoxx.1.gz
	xdg-desktop-menu uninstall $(DESTDIR)$(MENUFILE)
	rm -f  $(DESTDIR)$(MENUFILE)

clean: 
	rm -f  fotoxx
	rm -f  *.o


