-# $Id$
-# Makefile for lablgtk.
-
-EXE = .exe
-TARGETS = var2conv var2def lablgtk$(EXE) lablgtk_t$(EXE) \
- lablgtkrun$(EXE) config.make
-
-all: $(TARGETS)
-
-opt: lablgtkopt
-
-CAMLC = ocamlc
-CAMLOPT = ocamlopt
-COMPILER = $(CAMLC) $(MLFLAGS) -w s -labels -c
-LINKER = $(CAMLC) $(MLFLAGS)
-COMPOPT = $(CAMLOPT) $(MLFLAGS) -w s -labels -c
-LINKOPT = $(CAMLOPT) $(MLFLAGS)
-
-TOPLEVEL = ocamlmktop $(MLFLAGS)
-### How to invoke the librarian
-MKLIB=lib /nologo /debugtype:CV /out:
-
-!include config.make.nt
-
-INSTALLDIR = $(LIBDIR:/=\)\lablgtk
-BINDIR = $(LIBDIR:/=\)\..\bin
-LABLGLDIR = $(LIBDIR)/lablGL
-
-CFLAGS = -O -DGTK_NO_CHECK_CASTS -DGTK_DISABLE_COMPAT_H $(GTKCFLAGS)
-LDFLAGS = $(GTKLIBS)
-
-THFLAGS = -thread
-THLIBS = unix.cma threads.cma
-
-!if $(USE_CC) == 1
-CCOMPILER = $(CC) -c -I$(LIBDIR) $(CFLAGS)
-!else
-CCOMPILER = ocamlc -c -ccopt "$(CFLAGS)"
-!endif
-
-!if $(USE_GL) == 1
-MLFLAGS = $(MLFLAGS) -I $(LIBDIR)/lablGL
-GLLINK = -I $(LABLGLDIR) lablgl.cma -cclib -lgtkgl
-GLMLOBJS = glGtk.cmo
-GLCOBJS = ml_gtkgl.o
-!endif
-
-# Rules
-.SUFFIXES: .ml .mli .cmo .cmi .cmx .c .obj .var .h .opt .def
-.c.obj:
- $(CCOMPILER) $<
-.ml.cmo:
- $(COMPILER) $<
-.mli.cmi:
- $(COMPILER) $<
-.ml.cmx:
- $(COMPOPT) $<
-.var.h:
- ocamlrun ./var2def < $< > $@
-.var.c:
- ocamlrun ./var2conv < $< > $@
-
-# Targets
-COBJS = ml_gtk.obj ml_gdk.obj ml_glib.obj wrappers.obj $(GLCOBJS)
-OLDMLOBJS = misc.cmo glib.cmo gdk.cmo gtk.cmo gdkObj.cmo gtkObj.cmo gtkExt.cmo
-MLOBJS = misc.cmo glib.cmo gdk.cmo gdkEvent.cmo gdkKeysyms.cmo \
- gtk.cmo gtkArgv.cmo gtkSignal.cmo \
- gtkData.cmo gtkBase.cmo gtkPack.cmo gtkButton.cmo \
- gtkMenu.cmo gtkMisc.cmo gtkWindow.cmo gtkTree.cmo gtkList.cmo \
- gtkFrame.cmo gtkEdit.cmo gtkRange.cmo gtkMain.cmo gtkNew.cmo \
- gDraw.cmo \
- gObj.cmo gMain.cmo gData.cmo gContainer.cmo gPack.cmo gButton.cmo \
- gMenu.cmo gMisc.cmo gWindow.cmo gTree.cmo gList.cmo gFrame.cmo \
- gEdit.cmo gRange.cmo gUtil.cmo $(GLMLOBJS)
-THOBJS = gtkThread.cmo threadObj.cmo
-INITOBJS = gtkInit.cmo
-THINITOBJS = gtkThInit.cmo
-ALLOBJS = $(MLOBJS) $(THOBJS) $(INITOBJS) $(THINITOBJS)
-
-lablgtk$(EXE): liblablgtk.lib lablgtk.cma $(INITOBJS)
- $(TOPLEVEL) -custom -o $@ unix.cma str.cma $(GLLINK) \
- lablgtk.cma $(INITOBJS)
-
-lablgtk_t$(EXE): liblablgtk.lib lablgtk.cma $(THOBJS) $(INITOBJS) $(THINITOBJS)
- $(TOPLEVEL) -custom $(THFLAGS) -o $@ $(THLIBS) str.cma $(GLLINK) \
- lablgtk.cma $(THOBJS) $(INITOBJS) $(THINITOBJS)
-
-lablgtkrun$(EXE): liblablgtk.lib lablgtk.cma
- $(LINKER) -o $@ -make-runtime $(GLLINK) lablgtk.cma
-
-lablgtkopt: liblablgtk.lib lablgtk.cmxa gtkInit.cmx
-
-install:
- if not exist $(INSTALLDIR) mkdir $(INSTALLDIR)
- cp $(ALLOBJS:.cmo=.cmi) $(INSTALLDIR)
- cp *.mli $(INSTALLDIR)
- cp $(ALLOBJS:.cmo=.ml) $(INSTALLDIR)
- cp lablgtk.cma $(THOBJS) $(INITOBJS) $(THINITOBJS) $(INSTALLDIR)
- cp liblablgtk.lib $(INSTALLDIR)
- cp lablgtk$(EXE) lablgtk_t$(EXE) lablgtkrun$(EXE) $(BINDIR)
- if exist lablgtk.cmxa cp lablgtk.cmxa lablgtk.lib gtkInit.cmx gtkInit.obj $(INSTALLDIR)
-
-liblablgtk.lib: $(COBJS)
- $(MKLIB)$@ $(COBJS)
-
-lablgtk.cma: $(MLOBJS)
- $(LINKER) -a -custom -o $@ $(MLOBJS) \
- -cclib -llablgtk $(GTKLIBS)
-
-lablgtk.cmxa: $(MLOBJS:.cmo=.cmx)
- $(LINKOPT) -a -o $@ $(MLOBJS:.cmo=.cmx) \
- -cclib -llablgtk $(GTKLIBS)
-
-gtkThread.cmo: gtkThread.ml
- $(COMPILER) $(THFLAGS) gtkThread.ml
-
-threadObj.cmo: threadObj.ml
- $(COMPILER) $(THFLAGS) threadObj.ml
-
-gtkThread.cmx: gtkThread.ml
- $(COMPOPT) $(THFLAGS) gtkThread.ml
-
-threadObj.cmx: threadObj.ml
- $(COMPOPT) $(THFLAGS) threadObj.ml
-
-var2conv: var2conv.cmo
- $(LINKER) -o $@ var2conv.cmo
- rm -f *_tags.c
-
-var2def: var2def.cmo
- $(LINKER) -o $@ var2def.cmo
- rm -f *_tags.h
-
-clean:
- rm -f *.cm* *.obj *.lib *_tags.[ch] $(TARGETS)
-
-config.make: config.make.nt
- cp config.make.nt config.make
-
-depend .depend:
- ocamldep *.ml *.mli > .depend
-
-ml_gtk.obj: gtk_tags.c gtk_tags.h ml_gtk.h ml_gdk.h wrappers.h
-ml_gdk.obj: gdk_tags.c gdk_tags.h ml_gdk.h wrappers.h
-ml_gtkgl.obj: gtkgl_tags.c gtkgl_tags.h ml_gtk.h ml_gdk.h wrappers.h
-
-!include .depend