# makefile for configuring lablGTK

# Default compilers
ifdef USE_DOTOPT
CAMLC = ocamlc.opt
CAMLOPT = ocamlopt.opt
else
CAMLC = ocamlc
CAMLOPT = ocamlopt
endif

CAMLMKTOP = ocamlmktop
CAMLMKLIB = ocamlmklib
CAMLP4O = camlp4o
# Default installation directories
BINDIR = $$\(DESTDIR\)`$(GETLIBDIR) \
	| sed -e 's|/lib/[^/]*$$|/bin|' -e 's|/lib$$|/bin|'`
INSTALLDIR = $$\(DESTDIR\)$(LIBDIR)/lablgtk2
DLLDIR = $$\(DESTDIR\)$(LIBDIR)/stublibs

# Autoconf
GETLIBDIR = ocamlc -where
LIBDIR = `$(GETLIBDIR)`
RANLIB = `which ranlib 2>/dev/null \
	| sed -e 's|.*/ranlib$$|!|' -e 's/^[^!]*$$/:/' -e 's/!/ranlib/'`

PKG_CONFIG = pkg-config

GTKPKG = gtk+-2.0 
# gthread-2.0

GTKLIBS = `$(PKG_CONFIG) $(GTKPKG) --libs`

ifdef USE_GL
GTKGLPKG = gtkgl-2.0
GTKGLLIBS = `$(PKG_CONFIG) $(GTKGLPKG) --libs`
endif

ifdef USE_GLADE
GLADEPKG = libglade-2.0
GLADELIBS = `$(PKG_CONFIG) $(GLADEPKG) --libs`
endif

ifdef USE_RSVG
RSVGPKG = librsvg-2.0
RSVGLIBS = `$(PKG_CONFIG) $(RSVGPKG) --libs`
endif

ifdef USE_GNOMECANVAS
GNOMECANVASPKG = libgnomecanvas-2.0
GNOMECANVASLIBS = `$(PKG_CONFIG) $(GNOMECANVASPKG) --libs`
endif

GTKCFLAGS = `$(PKG_CONFIG) $(GTKPKG) $(GTKGLPKG) $(GLADEPKG) $(RSVGPKG) $(GNOMECANVASPKG) --cflags`

all: config.make
	cd src && $(MAKE) $@

opt install clean depend:
	cd src && $(MAKE) $@

config.make:
	@echo "You must first configure: make configure <options>"
	@echo "Options are:"
	@echo "  USE_GL=1       build GtkGLArea support. Requires LablGL"
	@echo "  USE_GLADE=1    build libglade support"
	@echo "  USE_RSVG=1     build librsvg support"
	@echo "  USE_GNOMECANVAS=1     build libgnomecanvas support"
	@echo "  USE_DOTOPT=1   use ocamlc.opt and ocamlopt.opt"
	@exit 2

configure:
	@if test -z "$(GTKLIBS)"; then echo "$(GTK_CONFIG) failed"; exit 2; fi
	@if test "$(USE_GLADE)" = 1 && test -z "$(GLADELIBS)"; then \
	  echo "$(GLADE_CONFIG) failed"; exit 2; fi
	@if test "$(USE_GNOME)" = 1 && test -z "$(GNOMELIBS)"; then \
	  echo "$(GNOME_CONFIG) failed"; exit 2; fi
	@echo "# config.make, generated by make configure" > config.make
	@echo CAMLC=$(CAMLC) >> config.make
	@echo CAMLOPT=$(CAMLOPT) >> config.make
	@echo CAMLMKTOP=$(CAMLMKTOP) >> config.make
	@echo CAMLMKLIB=$(CAMLMKLIB) >> config.make
	@echo CAMLP4O=$(CAMLP4O) >> config.make
	@echo USE_GL=$(USE_GL) >> config.make
	@echo USE_GNOME=$(USE_GNOME) >> config.make
	@echo USE_GLADE=$(USE_GLADE) >> config.make
	@echo USE_RSVG=$(USE_RSVG) >> config.make
	@echo USE_GNOMECANVAS=$(USE_GNOMECANVAS) >> config.make
	@echo USE_CC=$(USE_CC) >> config.make
	@echo DEBUG=$(DEBUG) >> config.make
	@echo CC=$(CC) >> config.make
	@echo RANLIB=$(RANLIB) >> config.make
	@echo LIBDIR=$(LIBDIR) >> config.make
	@echo BINDIR=$(BINDIR) >> config.make
	@echo INSTALLDIR=$(INSTALLDIR) >> config.make
	@echo DLLDIR=$(DLLDIR) >> config.make
	@echo GTKCFLAGS=$(GTKCFLAGS) >> config.make
	@echo GTKLIBS=$(GTKLIBS) >> config.make
	@echo GTKGLLIBS=$(GTKGLLIBS) >> config.make
	@echo GLADELIBS=$(GLADELIBS) >> config.make
	@echo RSVGLIBS=$(RSVGLIBS) >> config.make
	@echo GNOMECANVASLIBS=$(GNOMECANVASLIBS) >> config.make
	@cat config.make
