PREFIX      = __META_PREFIX__
BINPATH     = ${PREFIX}/bin
DESKTOPPATH = ${PREFIX}/share/applications
ICONPATH    = ${PREFIX}/share/isomaster/icons
GTKLIBS     = `pkg-config --libs gtk+-2.0`
GTKFLAGS    = `pkg-config --cflags gtk+-2.0`
LOCALEDIR   = $(PREFIX)/share/locale
MYMANPATH   = ${PREFIX}/man/man1
VERSION     = 1.3

export ICONPATH
export LOCALEDIR

# The default editor for files from the image. Users can change this.
# I recommend you set it to a graphical text editor that is likely to
# be installed by default on your distribution.
DEFAULT_EDITOR = leafpad

# The default viewer for files from the image. I recommend you make
# it a web browser because it can display the widest range of files.
DEFAULT_VIEWER = sensible-browser

# To disable i18n completely, uncomment the following line 
# or define WITHOUT_NLS somewhere else.
# This option is desired in the FreeBSD ports guidelines.
WITHOUT_NLS = 1

# This enables overwriting the original iso. Don't uncomment it unless
# you are willing to risk losing data.
#CPPFLAGS += -DENABLE_SAVE_OVERWRITE

# Note:  The _FILE_OFFSET_BITS=64 setting used here enables "stat" for
# large files.
#
GLOBALFLAGS = -D_FILE_OFFSET_BITS=64 -Wall
GLOBALDEPS  = Makefile

export CC      ?= gcc
export AR      = ar
export RM      = rm -f
export INSTALL = install
export CP      = cp
export ECHO    = echo

#---------------------------------------------------------------------

CFLAGS += -Wall -pedantic -std=gnu99 -Wundef -Wcast-align \
    -W -Wpointer-arith -Wwrite-strings -Wno-unused-parameter \
    $(GTKFLAGS)

ifndef WITHOUT_NLS
CFLAGS += -DENABLE_NLS
endif

# Note:  The _FILE_OFFSET_BITS=64 setting used here enables "stat" for
# large files.
#
CPPFLAGS += -D_FILE_OFFSET_BITS=64 \
    -DICONPATH=\"$(ICONPATH)\" \
    -DLOCALEDIR=\"$(LOCALEDIR)\" \
    -DDEFAULT_EDITOR=\"$(DEFAULT_EDITOR)\" \
    -DDEFAULT_VIEWER=\"$(DEFAULT_VIEWER)\" \
    -DVERSION=\"$(VERSION)\"

OBJECTS = isomaster.o window.o browser.o fsbrowser.o \
    isobrowser.o error.o about.o settings.o boot.o editfile.o

all: isomaster

isomaster: $(OBJECTS) iniparser $(GLOBALDEPS)
	@echo 'Linking isomaster'
	@$(CC) $(OBJECTS) $(CFLAGS) $(CPPFLAGS) \
-L/laclin/pkg/libbkisofs/lib -lbkisofs \
iniparser-2.17/libiniparser.a $(GTKLIBS) $(GLOBALFLAGS) \
-o isomaster

# static pattern rule
$(OBJECTS): %.o: %.c %.h Makefile
	@echo 'Compiling' $<
	@$(CC) $< $(CFLAGS) $(CPPFLAGS) -c -o $@

iniparser:
	cd iniparser-2.17 && $(MAKE)

translations:
ifndef WITHOUT_NLS
	cd po && $(MAKE)
endif

isomaster.desktop: isomaster.desktop.src
	$(CP) isomaster.desktop.src isomaster.desktop
	$(ECHO) Icon=$(ICONPATH)/isomaster.png >> isomaster.desktop

clean: 
	cd bk && $(MAKE) clean
	cd iniparser-2.17 && $(MAKE) clean
ifndef WITHOUT_NLS
	cd po && $(MAKE) clean
endif
	$(RM) *.o isomaster isomaster.desktop

install: all
	$(INSTALL) -d $(DESTDIR)$(BINPATH)
	$(INSTALL) isomaster $(DESTDIR)$(BINPATH)
	cd icons && $(MAKE) install
ifndef WITHOUT_NLS
	cd po && $(MAKE) install
endif
	$(INSTALL) -d $(DESTDIR)$(MYMANPATH)
	$(INSTALL) -m 644 isomaster.1 $(DESTDIR)$(MYMANPATH)
	$(INSTALL) -d $(DESTDIR)$(DESKTOPPATH)
#	$(INSTALL) -m 644 isomaster.desktop $(DESTDIR)$(DESKTOPPATH)

uninstall: 
	$(RM) $(DESTDIR)$(BINPATH)/isomaster
	cd icons && $(MAKE) uninstall
ifndef WITHOUT_NLS
	cd po && $(MAKE) uninstall
endif
	$(RM) $(DESTDIR)$(MYMANPATH)/isomaster.1
	$(RM) $(DESTDIR)$(DESKTOPPATH)/isomaster.desktop
