diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/ocaml-camlimages-1-fixes.patch | 2383 | ||||
-rw-r--r-- | src/ocaml-camlimages-test.ml | 5 | ||||
-rw-r--r-- | src/ocaml-camlimages.mk | 34 |
3 files changed, 2422 insertions, 0 deletions
diff --git a/src/ocaml-camlimages-1-fixes.patch b/src/ocaml-camlimages-1-fixes.patch new file mode 100644 index 0000000..4f87fa5 --- /dev/null +++ b/src/ocaml-camlimages-1-fixes.patch @@ -0,0 +1,2383 @@ +This file is part of MXE. +See index.html for further information. + +Contains ad hoc patches for cross building. + +From c09e9baa34783c7dd44cc5afc65f1f4b4030ebf2 Mon Sep 17 00:00:00 2001 +From: MXE +Date: Sun, 12 Aug 2012 20:55:49 +0200 +Subject: [PATCH 1/4] set back configure build system that enables cross compilation (instead of OMake) + +this patch and next ones are taken from camlimages bug tracker : +http://modulogic.inria.fr/bugtracker/view.php?id=7 + +diff --git a/Makefile.am b/Makefile.am +new file mode 100644 +index 0000000..cdaf30d +--- /dev/null ++++ b/Makefile.am +@@ -0,0 +1,58 @@ ++#*********************************************************************# ++# # ++# Caml Images # ++# # ++# François Pessaux, projet Cristal, INRIA Rocquencourt # ++# Pierre Weis, projet Cristal, INRIA Rocquencourt # ++# Jun Furuse, projet Cristal, INRIA Rocquencourt # ++# # ++# Copyright 1999-2004, # ++# Institut National de Recherche en Informatique et en Automatique. # ++# Distributed only by permission. # ++# # ++#*********************************************************************# ++ ++#(* $Id: Makefile.am,v 1.9 2010/03/10 14:32:55 remy Exp $ *) ++ ++SUBDIRS = src examples doc ++ ++if HAVE_FREETYPE ++if HAVE_GIF ++SUBDIRS += test ++endif ++endif ++ ++CVSRELEASETAG = Release-$(subst .,_,$(VERSION)) ++ANNOUNCEFILE = Announce-$(VERSION) ++ ++WEBSITEDIR = /net/yquem/infosystems/www/bazaar/$(PACKAGE) ++FTPSITEDIR = /net/yquem/infosystems/ftp/$(PACKAGE) ++CVSROOTDIR = /net/yquem/devel/caml/repository/ ++CVSPKGDIR = bazar-ocaml/$(PACKAGE) ++ ++cvstag: ++ cvs tag -c $(CVSRELEASETAG) ++ ++cvsuntag: ++ cvs tag -d $(CVSRELEASETAG) ++ ++announce: ++ mail -n -s "New release $(VERSION) of $(NAME)" \ ++ caml-announce@inria.fr < $(ANNOUNCEFILE) ++ ++website: dist ++ if [ -d $(WEBSITEDIR) ]; then \ ++ : ; \ ++ else \ ++ $(INSTALL) -d -g caml -m 775 $(WEBSITEDIR); \ ++ fi ++ $(INSTALL) -g caml -m 775 $(DIST_ARCHIVES) $(WEBSITEDIR) ++ $(INSTALL) -g caml -m 775 doc/*.html $(WEBSITEDIR) ++ $(INSTALL) -g caml -m 775 doc/*.jpg $(WEBSITEDIR) ++ cd $(WEBSITEDIR) && ln -sf eng.html index.html ++ ++# ftpsite: dist ++# if [ ! -d $(FTPSITEDIR) ]; then \ ++# $(INSTALL) -d -g caml -m g+w $(FTPSITEDIR); \ ++# done ++# $(INSTALL) -g caml -m g+w $(DISTFILE) $(FTPSITEDIR) +diff --git a/Makefile.rules b/Makefile.rules +new file mode 100644 +index 0000000..a2a41d9 +--- /dev/null ++++ b/Makefile.rules +@@ -0,0 +1,36 @@ ++#*********************************************************************# ++# # ++# Caml Images # ++# # ++# François Pessaux, projet Cristal, INRIA Rocquencourt # ++# Pierre Weis, projet Cristal, INRIA Rocquencourt # ++# Jun Furuse, projet Cristal, INRIA Rocquencourt # ++# # ++# Copyright 1999-2004, # ++# Institut National de Recherche en Informatique et en Automatique. # ++# Distributed only by permission. # ++# # ++#*********************************************************************# ++ ++#(* $Id: Makefile.rules,v 1.22 2007/02/08 07:52:20 rousse Exp $ *) ++ ++SUFFIXES = .ml .mli .cmo .cmi .cmx .c .o ++ ++.ml.cmo: ++ $(OCAMLC) $(OCAMLCFLAGS) $(AM_OCAMLCFLAGS) -o $@ -c $< ++ ++.mli.cmi: ++ $(OCAMLC) $(OCAMLCFLAGS) $(AM_OCAMLCFLAGS) -o $@ -c $< ++ ++.ml.cmx: ++ $(OCAMLOPT) $(OCAMLCFLAGS) $(AM_OCAMLCFLAGS) -o $@ -c $< ++ ++.c.o: $(top_srcdir)/config.h ++ $(OCAMLC) -ccopt "-o $@ $(CFLAGS) $(AM_CFLAGS)" -c $< ++ ++# moving to $(srcdir) is needed in case of VPATH build ++.depend: $(OCAMLSOURCES) $(OCAMLINTERFACES) $(top_srcdir)/config.status ++ (cd $(srcdir) && $(OCAMLDEP) $(OCAMLSOURCES) $(OCAMLINTERFACES)) > .depend ++ ++# ugly stuff for make time include ++@AMDEP_TRUE@@am__include@ @am__quote@.depend@am__quote@ +diff --git a/Makefile.variables b/Makefile.variables +new file mode 100644 +index 0000000..c29c97b +--- /dev/null ++++ b/Makefile.variables +@@ -0,0 +1,49 @@ ++#*********************************************************************# ++# # ++# Caml Images # ++# # ++# François Pessaux, projet Cristal, INRIA Rocquencourt # ++# Pierre Weis, projet Cristal, INRIA Rocquencourt # ++# Jun Furuse, projet Cristal, INRIA Rocquencourt # ++# # ++# Copyright 1999-2004, # ++# Institut National de Recherche en Informatique et en Automatique. # ++# Distributed only by permission. # ++# # ++#*********************************************************************# ++ ++#(* $Id: Makefile.variables,v 1.9 2008/02/17 23:24:15 furuse Exp $ *) ++ ++OCAMLBYTOBJS = $(OCAMLBUILTSOURCES:.ml=.cmo) $(OCAMLSOURCES:.ml=.cmo) ++OCAMLOPTOBJS = $(OCAMLBUILTSOURCES:.ml=.cmx) $(OCAMLSOURCES:.ml=.cmx) ++COBJS = $(CSOURCES:.c=.o) ++ ++# flags needed to build examples ++CAMLIMAGES_INCLUDES = -I $(top_builddir)/src ++CAMLIMAGES_LIBS = ++ ++if HAVE_LABLGTK2 ++CAMLIMAGES_INCLUDES += -I $(LABLGTK2DIR) ++CAMLIMAGES_LIBS += lablgtk.cma ++endif ++ ++if HAVE_LABLGTK ++CAMLIMAGES_INCLUDES += -I $(LABLGTKDIR) ++CAMLIMAGES_LIBS += lablgtk.cma ++endif ++ ++CAMLIMAGES_LIBS_CORE = camlimages_core.cma ++CAMLIMAGES_LIBS += graphics.cma camlimages.cma ++ ++DLLPATHS = -dllpath $(top_srcdir)/src ++AM_OCAMLCFLAGS = $(CAMLIMAGES_INCLUDES) ++AM_LINKFLAGS = $(CAMLIMAGES_INCLUDES) ++ ++OCAMLLIBS = $(CAMLIMAGES_LIBS) $(OTHER_LIBS) ++OCAMLLIBS_CORE = $(CAMLIMAGES_LIBS_CORE) $(OTHER_LIBS) ++ ++CLEANFILES = $(OCAMLBYTOBJS) \ ++ $(OCAMLOPTOBJS) \ ++ $(OCAMLOPTOBJS:.cmx=.o) \ ++ $(OCAMLSOURCES:.ml=.cmi) \ ++ $(COBJS) +diff --git a/configure.ac b/configure.ac +index 06464b3..12269c9 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -1,68 +1,62 @@ + # Process this file with autoconf to produce a configure script. + m4_include([ocaml.m4]) + AC_PREREQ(2.59) +-AC_INIT(camlimages, 3.2.0, use-omake-to-be-supported@nowhere.com) ++AC_INIT(camlimages, 4.0.1, use-omake-to-be-supported@nowhere.com) + AM_INIT_AUTOMAKE([foreign]) + AM_MAINTAINER_MODE + + # Check ocaml + AC_PROG_OCAML([3.08]) +-AC_PROG_OCAML_TOOL(OCAMLMKLIB, ocamlmklib) + AC_SUBST(OCAMLLIB) + + # Check versions to build + AC_ARG_ENABLE( + [native-library], +- AC_HELP_STRING( +- [--enable-native-library], +- [build native version of library (default)] +- ), +- [case "$enableval" in +- yes) enable_native=$enableval;; +- no) enable_native=$enableval;; +- *) AC_MSG_ERROR([bad value $enableval for --enable-native-library]);; +- esac], +- [enable_native=yes] ++ AS_HELP_STRING([--disable-native-library], ++ [do not build native version of library]), ++ [], ++ [] + ) + AC_MSG_CHECKING([wether to build native library]) +-build_native=no +-if test -n "$OCAMLOPT" && test "$enable_native" = yes; then ++if test -n "$OCAMLOPT" && test "x$enable_native_library" != xno; then + AC_MSG_RESULT([yes]) +- build_native=yes ++ enable_native_library=yes + else + AC_MSG_RESULT([no]) +- build_native=no ++ enable_native_library=no + fi +-AM_CONDITIONAL([BUILD_NATIVE], [test "$build_native" = yes]) ++AM_CONDITIONAL(BUILD_NATIVE, test x$enable_native_library = xyes) + + AC_ARG_ENABLE( + [bytecode-library], +- AC_HELP_STRING( +- [--enable-bytecode-library], +- [build bytecode version of library (default)] +- ), +- [case "$enableval" in +- yes) enable_bytecode=$enableval;; +- no) enable_bytecode=$enableval;; +- *) AC_MSG_ERROR([bad value $enableval for --enable-bytecode-library]);; +- esac], +- [enable_bytecode=yes] ++ AS_HELP_STRING([--disable-bytecode-library], ++ [do not build bytecode version of library]), ++ [], ++ [] + ) + AC_MSG_CHECKING([wether to build bytecode library]) +-build_bytecode=no +-if test -n "$OCAMLC" && test "$enable_bytecode" = yes; then ++if test -n "$OCAMLOPT" && test "x$enable_bytecode_library" != xno; then + AC_MSG_RESULT([yes]) +- build_bytecode=yes ++ enable_bytecode_library=yes + else + AC_MSG_RESULT([no]) +- build_bytecode=no ++ enable_bytecode_library=no + fi +-AM_CONDITIONAL([BUILD_BYTECODE], [test "$build_bytecode" = yes]) ++AM_CONDITIONAL(BUILD_BYTECODE, test x$enable_bytecode_library = xyes) + +-if test "$build_native" = no && test "$build_bytecode" = no; then ++if test x$enable_native_library = xno && test x$enable_bytecode_library = xno; then + AC_MSG_ERROR([neither native nor bytecode library selected]) + fi + ++AC_ARG_ENABLE( ++ [shared], ++ AS_HELP_STRING([--disable-shared], ++ [do not build dynamic shared libraries]), ++ [], ++ [] ++) ++AM_CONDITIONAL(BUILD_SHARED, test x$enable_shared != xno) ++ + # Checks other programs + AC_PROG_CC + +@@ -78,7 +72,8 @@ AC_PATH_XTRA + SUPPORT_LABLGTK="false" + LABLGTKDIR= + +-AC_PATH_PROG(PATH_OCAMLFIND, ocamlfind, no) ++AC_CHECK_TOOL([OCAMLFIND],[ocamlfind],[no]) ++AC_PATH_PROG(PATH_OCAMLFIND, [$OCAMLFIND], no) + + if test "x$PATH_OCAMLFIND" = "x"; then + with_ocamlfind_default="no" +@@ -100,11 +95,12 @@ AC_ARG_WITH( + [with_ocamlfind=$with_ocamlfind_default] + ) + +-if test "$with_ocamlfind" = "no"; then +- OCAMLSITELIBDIR=$OCAMLLIB/camlimages +-else +- OCAMLSITELIBDIR=$OCAMLLIB/site-lib/camlimages +-fi ++#if test "$with_ocamlfind" = "no"; then ++# OCAMLSITELIBDIR=$OCAMLLIB/camlimages ++#else ++# OCAMLSITELIBDIR=$OCAMLLIB/site-lib/camlimages ++#fi ++OCAMLSITELIBDIR=$OCAMLLIB/camlimages + AC_SUBST(OCAMLSITELIBDIR) + + AC_ARG_WITH( +@@ -168,15 +164,8 @@ LABLGTK2DIR= + + AC_ARG_WITH( + [lablgtk2], +- [AC_HELP_STRING( +- [--with-lablgtk2], +- [enable lablgtk2 support (default: yes)] +- )], +- [case "$withval" in +- yes) with_lablgtk2=yes;; +- no) with_lablgtk2=no;; +- *) AC_MSG_ERROR([bad value $withval for --with-lablgtk2]);; +- esac], ++ [AS_HELP_STRING([--with-lablgtk2],[enable lablgtk2 support (default: yes)])], ++ [], + [with_lablgtk2=yes] + ) + +@@ -202,7 +191,7 @@ else + [lablgtk2dir="$OCAMLLIB/lablgtk2"] + ) + +- if test -f "$lablgtk2dir/gtk.ml"; then ++ if test -d "$lablgtk2dir"; then + AC_MSG_RESULT([found at $lablgtk2dir]) + SUPPORT_LABLGTK2="true" + LABLGTK2DIR="$lablgtk2dir" +@@ -256,7 +245,7 @@ else + AC_MSG_CHECKING([if gif bug is fixed]) + save_LDFLAGS="$LDFLAGS" + LDFLAGS="$LDFLAGS $LIBGIF" +- AC_TRY_RUN( ++ AC_RUN_IFELSE( + [ + #include <stdio.h> + #include <gif_lib.h> +@@ -269,7 +258,8 @@ main() + [AC_DEFINE([GIFLIB_BUG_FIXED], [1], [Define if the bug in gif library has been fixed.]) + AC_MSG_RESULT([yes])], + [AC_MSG_WARN([buggy gif library, consider rebuilding it with gcc option -fwritable-strings]) +- AC_MSG_RESULT([no])] ++ AC_MSG_RESULT([no])], ++ [] + ) + LDFLAGS=$save_LDFLAGS + fi +@@ -356,34 +346,20 @@ LIBTIFF="" + + AC_ARG_WITH( + [tiff], +- [AC_HELP_STRING( +- [--with-tiff], +- [enable tiff support (default: yes)] +- )], +- [case "$withval" in +- yes) with_tiff=yes;; +- no) with_tiff=no;; +- *) AC_MSG_ERROR([bad value $withval for --with-tiff]);; +- esac], ++ [AS_HELP_STRING([--with-tiff],[enable tiff support (default: yes)])], ++ [], + [with_tiff=yes] + ) + +-if test "$with_tiff" = "no" ; then +- AC_MSG_RESULT([disabled]) +-else +- AC_CHECK_HEADER( +- [tiffio.h], +- [AC_CHECK_LIB( +- [tiff], +- [TIFFOpen], +- [LIBTIFF="-ltiff -lz -ljpeg" +- SUPPORT_TIFF="true"], +- [], +- [-lz -ljpeg] +- )] +- ) +-fi +-AC_SUBST(LIBTIFF) ++AS_IF( ++ [test "x$with_tiff" = "xno"], ++ [AC_MSG_RESULT([disabled])], ++ [PKG_CHECK_MODULES(LIBTIFF, ++ [libtiff-4], ++ [SUPPORT_TIFF="true"], ++ [SUPPORT_TIFF="false"])] ++) ++ + AC_SUBST(SUPPORT_TIFF) + AM_CONDITIONAL(HAVE_TIFF, test x$SUPPORT_TIFF = xtrue) + +@@ -433,36 +409,24 @@ AC_SUBST(SUPPORT_XPM) + AM_CONDITIONAL(HAVE_XPM, test x$SUPPORT_XPM = xtrue) + + # Checks freetype support ++#AC_DEFINE([SUPPORT_FREETYPE], ["false"], []) + SUPPORT_FREETYPE="false" +-LIBFREETYPE="" +-INCFREETYPE="" + + AC_ARG_WITH( + [freetype], +- [AC_HELP_STRING( +- [--with-freetype], +- [enable freetype support (default: yes)] +- )], +- [case "$withval" in +- yes) with_freetype=yes;; +- no) with_freetype=no;; +- *) AC_MSG_ERROR([bad value $withval for --with-freetype]);; +- esac], ++ [AS_HELP_STRING([--with-freetype],[enable freetype support (default: yes)])], ++ [], + [with_freetype=yes] + ) + +-if test "$with_freetype" = "no" ; then +- AC_MSG_RESULT([disabled]) +-else +- AC_PATH_PROG(FREETYPE_CONFIG, freetype-config) +- if test -n "$FREETYPE_CONFIG"; then +- LIBFREETYPE=`freetype-config --libs` +- INCFREETYPE=`freetype-config --cflags` +- SUPPORT_FREETYPE="true" +- fi +-fi +-AC_SUBST(INCFREETYPE) +-AC_SUBST(LIBFREETYPE) ++AS_IF( ++ [test "x$with_freetype" = "xno"],[AC_MSG_RESULT([disabled])], ++ [PKG_CHECK_MODULES(FREETYPE2, ++ [freetype2 >= 0.1], ++ [SUPPORT_FREETYPE="true"], ++ [AC_MSG_FAILURE([freetype2 not found])])] ++) ++ + AC_SUBST(SUPPORT_FREETYPE) + AM_CONDITIONAL(HAVE_FREETYPE, test x$SUPPORT_FREETYPE = xtrue) + +@@ -521,7 +485,7 @@ AC_CONFIG_HEADER([config.h]) + AC_CONFIG_FILES([src/META + Makefile + src/Makefile +- doc/Makefile ++ doc/Makefile + test/Makefile + examples/Makefile + examples/converter/Makefile +@@ -535,7 +499,7 @@ AC_CONFIG_FILES([src/META + examples/resize/Makefile + examples/tiffps/Makefile + examples/ttfimg/Makefile]) +-AC_OUTPUT() ++AC_OUTPUT + + cat <<EOF + Configuration summary +@@ -543,7 +507,10 @@ Configuration summary + Language: $OCAMLVERSION + Bytecode compiler: $OCAMLC + Native compiler: $OCAMLOPT +-OCamlfind: $with_ocamlfind ++bytecode : $enable_bytecode_library ++native : $enable_native_library ++shared libraries : $enable_shared ++ocamlfind: $OCAMLFIND + Installed in: $OCAMLSITELIBDIR + Lablgtk support: $SUPPORT_LABLGTK + Lablgtk2 support: $SUPPORT_LABLGTK2 +diff --git a/doc/Makefile.am b/doc/Makefile.am +new file mode 100644 +index 0000000..3c4ac76 +--- /dev/null ++++ b/doc/Makefile.am +@@ -0,0 +1,36 @@ ++#*********************************************************************# ++# # ++# Caml Images # ++# # ++# Pierre Weis, projet Cristal, INRIA Rocquencourt # ++# # ++# Copyright 2004 Institut National de Recherche en Informatique et # ++# en Automatique. Distributed only by permission. # ++# # ++#*********************************************************************# ++ ++#(* $Id: Makefile.am,v 1.2 2007/01/08 16:44:30 rousse Exp $ *) ++ ++noinst_DATA = eng.html ++ ++CLEANFILES = eng.html ++ ++EXTRA_DIST = eng.html.in \ ++ crop-icon.jpg \ ++ crop.jpg \ ++ edge-icon.jpg \ ++ edge.jpg \ ++ fumicaml2-small.jpg \ ++ lvdemo-icon.jpg \ ++ lvdemo.jpg \ ++ test.jpg \ ++ test-small.jpg \ ++ ttfimg-icon.jpg \ ++ ttfimg.jpg ++ ++eng.html: $(top_srcdir)/config.status eng.html.in ++ rm -f eng.html eng.html.tmp ++ sed \ ++ -e 's,@VERSION\@,$(VERSION),g' \ ++ $(srcdir)/eng.html.in > eng.html.tmp ++ mv eng.html.tmp eng.html +diff --git a/doc/sphinx/Makefile b/doc/sphinx/Makefile +new file mode 100644 +index 0000000..45073fd +--- /dev/null ++++ b/doc/sphinx/Makefile +@@ -0,0 +1,89 @@ ++# Makefile for Sphinx documentation ++# ++ ++# You can set these variables from the command line. ++SPHINXOPTS = ++SPHINXBUILD = sphinx-build ++PAPER = ++BUILDDIR = _build ++ ++# Internal variables. ++PAPEROPT_a4 = -D latex_paper_size=a4 ++PAPEROPT_letter = -D latex_paper_size=letter ++ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) . ++ ++.PHONY: help clean html dirhtml pickle json htmlhelp qthelp latex changes linkcheck doctest ++ ++help: ++ @echo "Please use \`make <target>' where <target> is one of" ++ @echo " html to make standalone HTML files" ++ @echo " dirhtml to make HTML files named index.html in directories" ++ @echo " pickle to make pickle files" ++ @echo " json to make JSON files" ++ @echo " htmlhelp to make HTML files and a HTML help project" ++ @echo " qthelp to make HTML files and a qthelp project" ++ @echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter" ++ @echo " changes to make an overview of all changed/added/deprecated items" ++ @echo " linkcheck to check all external links for integrity" ++ @echo " doctest to run all doctests embedded in the documentation (if enabled)" ++ ++clean: ++ -rm -rf $(BUILDDIR)/* ++ ++html: ++ $(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html ++ @echo ++ @echo "Build finished. The HTML pages are in $(BUILDDIR)/html." ++ ++dirhtml: ++ $(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml ++ @echo ++ @echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml." ++ ++pickle: ++ $(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) $(BUILDDIR)/pickle ++ @echo ++ @echo "Build finished; now you can process the pickle files." ++ ++json: ++ $(SPHINXBUILD) -b json $(ALLSPHINXOPTS) $(BUILDDIR)/json ++ @echo ++ @echo "Build finished; now you can process the JSON files." ++ ++htmlhelp: ++ $(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) $(BUILDDIR)/htmlhelp ++ @echo ++ @echo "Build finished; now you can run HTML Help Workshop with the" \ ++ ".hhp project file in $(BUILDDIR)/htmlhelp." ++ ++qthelp: ++ $(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) $(BUILDDIR)/qthelp ++ @echo ++ @echo "Build finished; now you can run "qcollectiongenerator" with the" \ ++ ".qhcp project file in $(BUILDDIR)/qthelp, like this:" ++ @echo "# qcollectiongenerator $(BUILDDIR)/qthelp/CamlImages.qhcp" ++ @echo "To view the help file:" ++ @echo "# assistant -collectionFile $(BUILDDIR)/qthelp/CamlImages.qhc" ++ ++latex: ++ $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex ++ @echo ++ @echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex." ++ @echo "Run \`make all-pdf' or \`make all-ps' in that directory to" \ ++ "run these through (pdf)latex." ++ ++changes: ++ $(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) $(BUILDDIR)/changes ++ @echo ++ @echo "The overview file is in $(BUILDDIR)/changes." ++ ++linkcheck: ++ $(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) $(BUILDDIR)/linkcheck ++ @echo ++ @echo "Link check complete; look for any errors in the above output " \ ++ "or in $(BUILDDIR)/linkcheck/output.txt." ++ ++doctest: ++ $(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest ++ @echo "Testing of doctests in the sources finished, look at the " \ ++ "results in $(BUILDDIR)/doctest/output.txt." +diff --git a/examples/Makefile.am b/examples/Makefile.am +new file mode 100644 +index 0000000..38d4474 +--- /dev/null ++++ b/examples/Makefile.am +@@ -0,0 +1,37 @@ ++#*********************************************************************# ++# # ++# Caml Images # ++# # ++# François Pessaux, projet Cristal, INRIA Rocquencourt # ++# Pierre Weis, projet Cristal, INRIA Rocquencourt # ++# Jun Furuse, projet Cristal, INRIA Rocquencourt # ++# # ++# Copyright 1999-2004, # ++# Institut National de Recherche en Informatique et en Automatique. # ++# Distributed only by permission. # ++# # ++#*********************************************************************# ++ ++#(* $Id: Makefile.am,v 1.2 2007/01/08 14:04:48 rousse Exp $ *) ++ ++SUBDIRS = crop normalize converter edgedetect imgstat monochrome resize ++ ++if HAVE_LABLGTK ++if HAVE_GIF ++SUBDIRS += gifanim ++endif ++endif ++ ++if HAVE_LABLGTK2 ++if HAVE_JPEG ++SUBDIRS += liv ++endif ++endif ++ ++if HAVE_FREETYPE ++SUBDIRS += ttfimg ++endif ++ ++if HAVE_TIFF ++SUBDIRS += tiffps ++endif +diff --git a/examples/converter/Makefile.am b/examples/converter/Makefile.am +new file mode 100644 +index 0000000..1de0339 +--- /dev/null ++++ b/examples/converter/Makefile.am +@@ -0,0 +1,43 @@ ++#*********************************************************************# ++# # ++# Caml Images # ++# # ++# François Pessaux, projet Cristal, INRIA Rocquencourt # ++# Pierre Weis, projet Cristal, INRIA Rocquencourt # ++# Jun Furuse, projet Cristal, INRIA Rocquencourt # ++# # ++# Copyright 1999-2004, # ++# Institut National de Recherche en Informatique et en Automatique. # ++# Distributed only by permission. # ++# # ++#*********************************************************************# ++ ++#(* $Id: Makefile.am,v 1.7 2008/02/17 23:24:15 furuse Exp $ *) ++ ++OCAMLSOURCES = converter.ml ++ ++noinst_PROGRAMS = ++if BUILD_NATIVE ++noinst_PROGRAMS += converter.opt ++endif ++if BUILD_BYTECODE ++noinst_PROGRAMS += converter.byt ++endif ++ ++converter_opt_SOURCES = $(OCAMLSOURCES) ++converter_byt_SOURCES = $(OCAMLSOURCES) ++ ++include ../../Makefile.variables ++ ++converter.byt$(EXEEXT): $(OCAMLBYTOBJS) ++ $(OCAMLC) -o converter.byt$(EXEEXT) \ ++ $(DLLPATHS) $(LINKFLAGS) $(AM_LINKFLAGS) \ ++ $(OCAMLLIBS_CORE) $(OCAMLBYTOBJS) ++ ++ ++converter.opt$(EXEEXT): $(OCAMLOPTOBJS) ++ $(OCAMLOPT) -o converter.opt$(EXEEXT) \ ++ $(LINKFLAGS) $(AM_LINKFLAGS) \ ++ $(OCAMLLIBS_CORE:.cma=.cmxa) $(OCAMLOPTOBJS) ++ ++include ../../Makefile.rules +diff --git a/examples/crop/Makefile.am b/examples/crop/Makefile.am +new file mode 100644 +index 0000000..23e3852 +--- /dev/null ++++ b/examples/crop/Makefile.am +@@ -0,0 +1,44 @@ ++#*********************************************************************# ++# # ++# Caml Images # ++# # ++# François Pessaux, projet Cristal, INRIA Rocquencourt # ++# Pierre Weis, projet Cristal, INRIA Rocquencourt # ++# Jun Furuse, projet Cristal, INRIA Rocquencourt # ++# # ++# Copyright 1999-2004, # ++# Institut National de Recherche en Informatique et en Automatique. # ++# Distributed only by permission. # ++# # ++#*********************************************************************# ++ ++#(* $Id: Makefile.am,v 1.7 2008/02/17 23:24:15 furuse Exp $ *) ++ ++OCAMLSOURCES = crop.ml ++ ++noinst_PROGRAMS = ++if BUILD_NATIVE ++noinst_PROGRAMS += crop.opt ++endif ++if BUILD_BYTECODE ++noinst_PROGRAMS += crop.byt ++endif ++ ++crop_opt_SOURCES = $(OCAMLSOURCES) ++crop_byt_SOURCES = $(OCAMLSOURCES) ++ ++OTHER_LIBS = unix.cma ++ ++include ../../Makefile.variables ++ ++crop.byt$(EXEEXT): $(OCAMLBYTOBJS) ++ $(OCAMLC) -o crop.byt$(EXEEXT) \ ++ $(DLLPATHS) $(LINKFLAGS) $(AM_LINKFLAGS) \ ++ $(OCAMLLIBS_CORE) $(OCAMLBYTOBJS) ++ ++crop.opt$(EXEEXT): $(OCAMLOPTOBJS) ++ $(OCAMLOPT) -o crop.opt$(EXEEXT) \ ++ $(LINKFLAGS) $(AM_LINKFLAGS) \ ++ $(OCAMLLIBS_CORE:.cma=.cmxa) $(OCAMLOPTOBJS) ++ ++include ../../Makefile.rules +diff --git a/examples/edgedetect/Makefile.am b/examples/edgedetect/Makefile.am +new file mode 100644 +index 0000000..556730a +--- /dev/null ++++ b/examples/edgedetect/Makefile.am +@@ -0,0 +1,42 @@ ++#*********************************************************************# ++# # ++# Caml Images # ++# # ++# François Pessaux, projet Cristal, INRIA Rocquencourt # ++# Pierre Weis, projet Cristal, INRIA Rocquencourt # ++# Jun Furuse, projet Cristal, INRIA Rocquencourt # ++# # ++# Copyright 1999-2004, # ++# Institut National de Recherche en Informatique et en Automatique. # ++# Distributed only by permission. # ++# # ++#*********************************************************************# ++ ++#(* $Id: Makefile.am,v 1.7 2008/02/17 23:24:15 furuse Exp $ *) ++ ++OCAMLSOURCES = edge.ml ++ ++noinst_PROGRAMS = ++if BUILD_NATIVE ++noinst_PROGRAMS += edge.opt ++endif ++if BUILD_BYTECODE ++noinst_PROGRAMS += edge.byt ++endif ++ ++edge_opt_SOURCES = $(OCAMLSOURCES) ++edge_byt_SOURCES = $(OCAMLSOURCES) ++ ++include ../../Makefile.variables ++ ++edge.byt$(EXEEXT): $(OCAMLBYTOBJS) ++ $(OCAMLC) -o edge.byt$(EXEEXT) \ ++ $(DLLPATHS) $(LINKFLAGS) $(AM_LINKFLAGS) \ ++ $(OCAMLLIBS_CORE) $(OCAMLBYTOBJS) ++ ++edge.opt$(EXEEXT): $(OCAMLOPTOBJS) ++ $(OCAMLOPT) -o edge.opt$(EXEEXT) \ ++ $(LINKFLAGS) $(AM_LINKFLAGS) \ ++ $(OCAMLLIBS_CORE:.cma=.cmxa) $(OCAMLOPTOBJS) ++ ++include ../../Makefile.rules +diff --git a/examples/gifanim/Makefile.am b/examples/gifanim/Makefile.am +new file mode 100644 +index 0000000..1c8c5e0 +--- /dev/null ++++ b/examples/gifanim/Makefile.am +@@ -0,0 +1,50 @@ ++#*********************************************************************# ++# # ++# Caml Images # ++# # ++# François Pessaux, projet Cristal, INRIA Rocquencourt # ++# Pierre Weis, projet Cristal, INRIA Rocquencourt # ++# Jun Furuse, projet Cristal, INRIA Rocquencourt # ++# # ++# Copyright 1999-2004, # ++# Institut National de Recherche en Informatique et en Automatique. # ++# Distributed only by permission. # ++# # ++#*********************************************************************# ++ ++#(* $Id: Makefile.am,v 1.6 2007/02/20 21:19:05 rousse Exp $ *) ++ ++OCAMLSOURCES = guienv.ml usleep.ml gifanim.ml ++ ++noinst_PROGRAMS = ++if BUILD_NATIVE ++noinst_PROGRAMS += gifanim.opt ++endif ++if BUILD_BYTECODE ++noinst_PROGRAMS += gifanim.byt ++endif ++ ++gifanim_opt_SOURCES = $(OCAMLSOURCES) ++gifanim_byt_SOURCES = $(OCAMLSOURCES) ++ ++OTHER_LIBS = unix.cma ++ ++include ../../Makefile.variables ++ ++all: byt opt ++ ++byt: gifanim.byt ++ ++opt: gifanim.opt ++ ++gifanim.byt$(EXEEXT): $(OCAMLBYTOBJS) ++ $(OCAMLC) -o gifanim.byt$(EXEEXT) \ ++ $(DLLPATHS) $(LINKFLAGS) $(AM_LINKFLAGS) \ ++ $(OCAMLLIBS) $(OCAMLBYTOBJS) ++ ++gifanim.opt$(EXEEXT): $(OCAMLOPTOBJS) ++ $(OCAMLOPT) -o gifanim.opt$(EXEEXT) \ ++ $(LINKFLAGS) $(AM_LINKFLAGS) \ ++ $(OCAMLLIBS:.cma=.cmxa) $(OCAMLOPTOBJS) ++ ++include ../../Makefile.rules +diff --git a/examples/imgstat/Makefile.am b/examples/imgstat/Makefile.am +new file mode 100644 +index 0000000..b74f90c +--- /dev/null ++++ b/examples/imgstat/Makefile.am +@@ -0,0 +1,42 @@ ++#*********************************************************************# ++# # ++# Caml Images # ++# # ++# François Pessaux, projet Cristal, INRIA Rocquencourt # ++# Pierre Weis, projet Cristal, INRIA Rocquencourt # ++# Jun Furuse, projet Cristal, INRIA Rocquencourt # ++# # ++# Copyright 1999-2004, # ++# Institut National de Recherche en Informatique et en Automatique. # ++# Distributed only by permission. # ++# # ++#*********************************************************************# ++ ++#(* $Id: Makefile.am,v 1.8 2008/02/17 23:24:16 furuse Exp $ *) ++ ++OCAMLSOURCES = imgstat.ml ++ ++noinst_PROGRAMS = ++if BUILD_NATIVE ++noinst_PROGRAMS += imgstat.opt ++endif ++if BUILD_BYTECODE ++noinst_PROGRAMS += imgstat.byt ++endif ++ ++imgstat_opt_SOURCES = $(OCAMLSOURCES) ++imgstat_byt_SOURCES = $(OCAMLSOURCES) ++ ++include ../../Makefile.variables ++ ++imgstat.byt$(EXEEXT): $(OCAMLBYTOBJS) ++ $(OCAMLC) -o imgstat.byt$(EXEEXT) \ ++ $(DLLPATHS) $(LINKFLAGS) $(AM_LINKFLAGS) \ ++ $(OCAMLLIBS_CORE) $(OCAMLBYTOBJS) ++ ++imgstat.opt$(EXEEXT): $(OCAMLOPTOBJS) ++ $(OCAMLOPT) -o imgstat.opt$(EXEEXT) \ ++ $(LINKFLAGS) $(AM_LINKFLAGS) \ ++ $(OCAMLLIBS_CORE:.cma=.cmxa) $(OCAMLOPTOBJS) ++ ++include ../../Makefile.rules +diff --git a/examples/liv-furuse/Makefile.am b/examples/liv-furuse/Makefile.am +new file mode 100644 +index 0000000..7c993d8 +--- /dev/null ++++ b/examples/liv-furuse/Makefile.am +@@ -0,0 +1,77 @@ ++#*********************************************************************# ++# # ++# Caml Images # ++# # ++# François Pessaux, projet Cristal, INRIA Rocquencourt # ++# Pierre Weis, projet Cristal, INRIA Rocquencourt # ++# Jun Furuse, projet Cristal, INRIA Rocquencourt # ++# # ++# Copyright 1999-2004, # ++# Institut National de Recherche en Informatique et en Automatique. # ++# Distributed only by permission. # ++# # ++#*********************************************************************# ++ ++#(* $Id: Makefile.am,v 1.9 2008/06/16 22:35:41 furuse Exp $ *) ++ ++OCAMLSOURCES = deficon.ml \ ++ mylazy.ml \ ++ cache.ml \ ++ livmisc.ml \ ++ gui.ml \ ++ jWidget.ml \ ++ seq.ml \ ++ tout.ml \ ++ enhance.ml \ ++ display.ml \ ++ viewer.ml \ ++ edge.ml \ ++ pathfind.ml \ ++ iconcap.ml \ ++ livshtype.ml \ ++ icon.ml \ ++ livsh.ml \ ++ scandir.ml \ ++ jpf.ml \ ++ liv.ml ++ ++noinst_PROGRAMS = ++if BUILD_NATIVE ++noinst_PROGRAMS += liv.opt$(EXEEXT) ++endif ++if BUILD_BYTECODE ++noinst_PROGRAMS += liv.byt$(EXEEXT) ++endif ++ ++liv_opt_SOURCES = $(OCAMLSOURCES) ++liv_byt_SOURCES = $(OCAMLSOURCES) ++ ++OTHER_LIBS = unix.cma ++ ++include ../../Makefile.variables ++ ++EXTRA_DIST = BulletHole.xpm \ ++ faceanm.gif \ ++ FilesLink.xpm \ ++ FileUnknown.xpm \ ++ File.xpm \ ++ FolderLink.xpm \ ++ Folder.xpm \ ++ livdemo.jpg \ ++ Monalisa.xpm \ ++ sound.xpm ++ ++#all: liv.byt$(EXEEXT) ++#opt: liv.opt$(EXEEXT) ++ ++liv.byt$(EXEEXT): $(OCAMLBYTOBJS) ++ $(OCAMLC) -o liv.byt$(EXEEXT) \ ++ $(DLLPATHS) $(LINKFLAGS) $(AM_LINKFLAGS) \ ++ $(OCAMLLIBS) $(OCAMLBYTOBJS) ++ ++liv.opt$(EXEEXT): $(OCAMLOPTOBJS) ++ $(OCAMLOPT) -o liv.opt$(EXEEXT) \ ++ $(LINKFLAGS) $(AM_LINKFLAGS) \ ++ $(OCAMLLIBS:.cma=.cmxa) $(OCAMLOPTOBJS) ++ ++include ../../Makefile.rules +diff --git a/examples/liv/Makefile.am b/examples/liv/Makefile.am +new file mode 100644 +index 0000000..7c993d8 +--- /dev/null ++++ b/examples/liv/Makefile.am +@@ -0,0 +1,77 @@ ++#*********************************************************************# ++# # ++# Caml Images # ++# # ++# François Pessaux, projet Cristal, INRIA Rocquencourt # ++# Pierre Weis, projet Cristal, INRIA Rocquencourt # ++# Jun Furuse, projet Cristal, INRIA Rocquencourt # ++# # ++# Copyright 1999-2004, # ++# Institut National de Recherche en Informatique et en Automatique. # ++# Distributed only by permission. # ++# # ++#*********************************************************************# ++ ++#(* $Id: Makefile.am,v 1.9 2008/06/16 22:35:41 furuse Exp $ *) ++ ++OCAMLSOURCES = deficon.ml \ ++ mylazy.ml \ ++ cache.ml \ ++ livmisc.ml \ ++ gui.ml \ ++ jWidget.ml \ ++ seq.ml \ ++ tout.ml \ ++ enhance.ml \ ++ display.ml \ ++ viewer.ml \ ++ edge.ml \ ++ pathfind.ml \ ++ iconcap.ml \ ++ livshtype.ml \ ++ icon.ml \ ++ livsh.ml \ ++ scandir.ml \ ++ jpf.ml \ ++ liv.ml ++ ++noinst_PROGRAMS = ++if BUILD_NATIVE ++noinst_PROGRAMS += liv.opt$(EXEEXT) ++endif ++if BUILD_BYTECODE ++noinst_PROGRAMS += liv.byt$(EXEEXT) ++endif ++ ++liv_opt_SOURCES = $(OCAMLSOURCES) ++liv_byt_SOURCES = $(OCAMLSOURCES) ++ ++OTHER_LIBS = unix.cma ++ ++include ../../Makefile.variables ++ ++EXTRA_DIST = BulletHole.xpm \ ++ faceanm.gif \ ++ FilesLink.xpm \ ++ FileUnknown.xpm \ ++ File.xpm \ ++ FolderLink.xpm \ ++ Folder.xpm \ ++ livdemo.jpg \ ++ Monalisa.xpm \ ++ sound.xpm ++ ++#all: liv.byt$(EXEEXT) ++#opt: liv.opt$(EXEEXT) ++ ++liv.byt$(EXEEXT): $(OCAMLBYTOBJS) ++ $(OCAMLC) -o liv.byt$(EXEEXT) \ ++ $(DLLPATHS) $(LINKFLAGS) $(AM_LINKFLAGS) \ ++ $(OCAMLLIBS) $(OCAMLBYTOBJS) ++ ++liv.opt$(EXEEXT): $(OCAMLOPTOBJS) ++ $(OCAMLOPT) -o liv.opt$(EXEEXT) \ ++ $(LINKFLAGS) $(AM_LINKFLAGS) \ ++ $(OCAMLLIBS:.cma=.cmxa) $(OCAMLOPTOBJS) ++ ++include ../../Makefile.rules +diff --git a/examples/monochrome/Makefile.am b/examples/monochrome/Makefile.am +new file mode 100644 +index 0000000..9cfb0bc +--- /dev/null ++++ b/examples/monochrome/Makefile.am +@@ -0,0 +1,42 @@ ++#*********************************************************************# ++# # ++# Caml Images # ++# # ++# François Pessaux, projet Cristal, INRIA Rocquencourt # ++# Pierre Weis, projet Cristal, INRIA Rocquencourt # ++# Jun Furuse, projet Cristal, INRIA Rocquencourt # ++# # ++# Copyright 1999-2004, # ++# Institut National de Recherche en Informatique et en Automatique. # ++# Distributed only by permission. # ++# # ++#*********************************************************************# ++ ++#(* $Id: Makefile.am,v 1.7 2008/02/17 23:24:16 furuse Exp $ *) ++ ++OCAMLSOURCES = monochrome.ml ++ ++noinst_PROGRAMS = ++if BUILD_NATIVE ++noinst_PROGRAMS += monochrome.opt ++endif ++if BUILD_BYTECODE ++noinst_PROGRAMS += monochrome.byt ++endif ++ ++monochrome_opt_SOURCES = $(OCAMLSOURCES) ++monochrome_byt_SOURCES = $(OCAMLSOURCES) ++ ++include ../../Makefile.variables ++ ++monochrome.byt$(EXEEXT): $(OCAMLBYTOBJS) ++ $(OCAMLC) -o monochrome.byt$(EXEEXT) \ ++ $(DLLPATHS) $(LINKFLAGS) $(AM_LINKFLAGS) \ ++ $(OCAMLLIBS_CORE) $(OCAMLBYTOBJS) ++ ++monochrome.opt$(EXEEXT): $(OCAMLOPTOBJS) ++ $(OCAMLOPT) -o monochrome.opt$(EXEEXT) \ ++ $(LINKFLAGS) $(AM_LINKFLAGS) \ ++ $(OCAMLLIBS_CORE:.cma=.cmxa) $(OCAMLOPTOBJS) ++ ++include ../../Makefile.rules +diff --git a/examples/normalize/Makefile.am b/examples/normalize/Makefile.am +new file mode 100644 +index 0000000..6af840b +--- /dev/null ++++ b/examples/normalize/Makefile.am +@@ -0,0 +1,42 @@ ++#*********************************************************************# ++# # ++# Caml Images # ++# # ++# François Pessaux, projet Cristal, INRIA Rocquencourt # ++# Pierre Weis, projet Cristal, INRIA Rocquencourt # ++# Jun Furuse, projet Cristal, INRIA Rocquencourt # ++# # ++# Copyright 1999-2004, # ++# Institut National de Recherche en Informatique et en Automatique. # ++# Distributed only by permission. # ++# # ++#*********************************************************************# ++ ++#(* $Id: Makefile.am,v 1.8 2008/02/17 23:24:16 furuse Exp $ *) ++ ++OCAMLSOURCES = normalize.ml ++ ++noinst_PROGRAMS = ++if BUILD_NATIVE ++noinst_PROGRAMS += normalize.opt ++endif ++if BUILD_BYTECODE ++noinst_PROGRAMS += normalize.byt ++endif ++ ++normalize_opt_SOURCES = $(OCAMLSOURCES) ++normalize_byt_SOURCES = $(OCAMLSOURCES) ++ ++include ../../Makefile.variables ++ ++normalize.byt$(EXEEXT): $(OCAMLBYTOBJS) ++ $(OCAMLC) -o normalize.byt$(EXEEXT) \ ++ $(DLLPATHS) $(LINKFLAGS) $(AM_LINKFLAGS) \ ++ $(OCAMLLIBS_CORE) $(OCAMLBYTOBJS) ++ ++normalize.opt$(EXEEXT): $(OCAMLOPTOBJS) ++ $(OCAMLOPT) -o normalize.opt$(EXEEXT) \ ++ $(LINKFLAGS) $(AM_LINKFLAGS) \ ++ $(OCAMLLIBS_CORE:.cma=.cmxa) $(OCAMLOPTOBJS) ++ ++include ../../Makefile.rules +diff --git a/examples/resize/Makefile.am b/examples/resize/Makefile.am +new file mode 100644 +index 0000000..10a181c +--- /dev/null ++++ b/examples/resize/Makefile.am +@@ -0,0 +1,42 @@ ++#*********************************************************************# ++# # ++# Caml Images # ++# # ++# François Pessaux, projet Cristal, INRIA Rocquencourt # ++# Pierre Weis, projet Cristal, INRIA Rocquencourt # ++# Jun Furuse, projet Cristal, INRIA Rocquencourt # ++# # ++# Copyright 1999-2004, # ++# Institut National de Recherche en Informatique et en Automatique. # ++# Distributed only by permission. # ++# # ++#*********************************************************************# ++ ++#(* $Id: Makefile.am,v 1.7 2008/02/17 23:24:16 furuse Exp $ *) ++ ++OCAMLSOURCES = resize.ml ++ ++noinst_PROGRAMS = ++if BUILD_NATIVE ++noinst_PROGRAMS += resize.opt ++endif ++if BUILD_BYTECODE ++noinst_PROGRAMS += resize.byt ++endif ++ ++resize_opt_SOURCES = $(OCAMLSOURCES) ++resize_byt_SOURCES = $(OCAMLSOURCES) ++ ++include ../../Makefile.variables ++ ++resize.byt$(EXEEXT): $(OCAMLBYTOBJS) ++ $(OCAMLC) -o resize.byt$(EXEEXT) \ ++ $(DLLPATHS) $(LINKFLAGS) $(AM_LINKFLAGS) \ ++ $(OCAMLLIBS_CORE) $(OCAMLBYTOBJS) ++ ++resize.opt$(EXEEXT): $(OCAMLOPTOBJS) ++ $(OCAMLOPT) -o resize.opt$(EXEEXT) \ ++ $(LINKFLAGS) $(AM_LINKFLAGS) \ ++ $(OCAMLLIBS_CORE:.cma=.cmxa) $(OCAMLOPTOBJS) ++ ++include ../../Makefile.rules +diff --git a/examples/tiffps/Makefile.am b/examples/tiffps/Makefile.am +new file mode 100644 +index 0000000..56e657d +--- /dev/null ++++ b/examples/tiffps/Makefile.am +@@ -0,0 +1,42 @@ ++#*********************************************************************# ++# # ++# Caml Images # ++# # ++# François Pessaux, projet Cristal, INRIA Rocquencourt # ++# Pierre Weis, projet Cristal, INRIA Rocquencourt # ++# Jun Furuse, projet Cristal, INRIA Rocquencourt # ++# # ++# Copyright 1999-2004, # ++# Institut National de Recherche en Informatique et en Automatique. # ++# Distributed only by permission. # ++# # ++#*********************************************************************# ++ ++#(* $Id: Makefile.am,v 1.7 2007/02/20 21:19:11 rousse Exp $ *) ++ ++OCAMLSOURCES = tiffps.ml ++ ++noinst_PROGRAMS = ++if BUILD_NATIVE ++noinst_PROGRAMS += tiffps.opt ++endif ++if BUILD_BYTECODE ++noinst_PROGRAMS += tiffps.byt ++endif ++ ++tiffps_opt_SOURCES = $(OCAMLSOURCES) ++tiffps_byt_SOURCES = $(OCAMLSOURCES) ++ ++include ../../Makefile.variables ++ ++tiffps.byt$(EXEEXT): $(OCAMLBYTOBJS) ++ $(OCAMLC) -o tiffps.byt$(EXEEXT) \ ++ $(DLLPATHS) $(LINKFLAGS) $(AM_LINKFLAGS) \ ++ $(OCAMLLIBS) $(OCAMLBYTOBJS) ++ ++tiffps.opt$(EXEEXT): $(OCAMLOPTOBJS) ++ $(OCAMLOPT) -o tiffps.opt$(EXEEXT) \ ++ $(LINKFLAGS) $(AM_LINKFLAGS) \ ++ $(OCAMLLIBS:.cma=.cmxa) $(OCAMLOPTOBJS) ++ ++include ../../Makefile.rules +diff --git a/examples/ttfimg/Makefile.am b/examples/ttfimg/Makefile.am +new file mode 100644 +index 0000000..32a518d +--- /dev/null ++++ b/examples/ttfimg/Makefile.am +@@ -0,0 +1,42 @@ ++#*********************************************************************# ++# # ++# Caml Images # ++# # ++# François Pessaux, projet Cristal, INRIA Rocquencourt # ++# Pierre Weis, projet Cristal, INRIA Rocquencourt # ++# Jun Furuse, projet Cristal, INRIA Rocquencourt # ++# # ++# Copyright 1999-2004, # ++# Institut National de Recherche en Informatique et en Automatique. # ++# Distributed only by permission. # ++# # ++#*********************************************************************# ++ ++#(* $Id: Makefile.am,v 1.6 2007/02/20 21:19:15 rousse Exp $ *) ++ ++OCAMLSOURCES = ttfimg.ml ++ ++noinst_PROGRAMS = ++if BUILD_NATIVE ++noinst_PROGRAMS += ttfimg.opt ++endif ++if BUILD_BYTECODE ++noinst_PROGRAMS += ttfimg.byt ++endif ++ ++ttfimg_opt_SOURCES = $(OCAMLSOURCES) ++ttfimg_byt_SOURCES = $(OCAMLSOURCES) ++ ++include ../../Makefile.variables ++ ++ttfimg.byt$(EXEEXT): $(OCAMLBYTOBJS) ++ $(OCAMLC) -o ttfimg.byt$(EXEEXT) \ ++ $(DLLPATHS) $(LINKFLAGS) $(AM_LINKFLAGS) \ ++ $(OCAMLLIBS) $(OCAMLBYTOBJS) ++ ++ttfimg.opt$(EXEEXT): $(OCAMLOPTOBJS) ++ $(OCAMLOPT) -o ttfimg.opt$(EXEEXT) \ ++ $(LINKFLAGS) $(AM_LINKFLAGS) \ ++ $(OCAMLLIBS:.cma=.cmxa) $(OCAMLOPTOBJS) ++ ++include ../../Makefile.rules +diff --git a/ocaml.m4 b/ocaml.m4 +index 9a59648..6431281 100644 +--- a/ocaml.m4 ++++ b/ocaml.m4 +@@ -1,279 +1,197 @@ +-# OCaml macros for autoconf +-# +-# Guillaume Rousse <Guillaume.Rousse@inria.fr> +-# inspired by previous work from: +-# Georges Mariano +-# Jean-Christophe FilliÄtre +-# Olivier Andrieu +-# Grigory Batalov +- +- +-# AC_PROG_OCAML([MINIMUM VERSION]) +-# -------------------------------- +-# check OCaml base system, and set the following variables: +-# OCAMLC OCaml compiler +-# OCAMLOPT OCaml native compiler +-# OCAMLDEP OCaml dependency generator +-# OCAMLLIB OCaml library path +-# OCAMLVERSION OCaml version number +-# Unless --disable-opt is set by user, optimized versions are used by default. +-# Fails if no compiler is found. +-AC_DEFUN([AC_PROG_OCAML], [ +- +- # allow the user to disable the use of optimized versions +- AC_ARG_ENABLE( +- [native-tools], +- AC_HELP_STRING( +- [--enable-native-tools], +- [use native versions of ocaml tools (default)] +- ), +- [case "$enableval" in +- yes) ac_ocaml_enable_native_tools=$enableval;; +- no) ac_ocaml_enable_native_tools=$enableval;; +- *) AC_MSG_ERROR([bad value $enableval for --enable-native-tools]);; +- esac], +- [ac_ocaml_enable_native_tools=yes] +- ) +- +- # Checking for OCaml compiler +- _AC_OCAML_PATH_PROG_FATAL(OCAMLC, ocamlc) +- +- # Checking for OCaml version +- AC_CACHE_CHECK( +- [for OCaml version], +- [ac_cv_ocaml_version], +- [ac_cv_ocaml_version=`$OCAMLC -version`] +- ) +- OCAMLVERSION=$ac_cv_ocaml_version +- +- if test -n ["$1"]; then +- ac_ocaml_min_version=["$1"]; +- # Checking for OCaml minimum version +- AC_CACHE_CHECK( +- [whether OCaml version >= $ac_ocaml_min_version], +- [ac_cv_ocaml_version_enough], +- [ +- ac_ocaml_min_major_version=`echo $ac_ocaml_min_version \ +- | cut -d. -f1` +- ac_ocaml_min_minor_version=`echo $ac_ocaml_min_version \ +- | cut -d. -f2` +- ac_ocaml_min_micro_version=`echo $ac_ocaml_min_version \ +- | cut -d. -f3` +- ac_ocaml_major_version=`echo ${OCAMLVERSION%%+*} | cut -d. -f1` +- ac_ocaml_minor_version=`echo ${OCAMLVERSION%%+*} | cut -d. -f2` +- ac_ocaml_micro_version=`echo ${OCAMLVERSION%%+*} | cut -d. -f3` +- +- if expr \ +- \( \ +- ${ac_ocaml_major_version:-0} \> \ +- ${ac_ocaml_min_major_version:-0} \ +- \) \| \ +- \( \ +- ${ac_ocaml_major_version:-0} \= \ +- ${ac_ocaml_min_major_version:-0} \& \ +- ${ac_ocaml_minor_version:-0} \> \ +- ${ac_ocaml_min_minor_version:-0} \ +- \) \| \ +- \( \ +- ${ac_ocaml_major_version:-0} \= \ +- ${ac_ocaml_min_major_version:-0} \& \ +- ${ac_ocaml_minor_version:-0} \= \ +- ${ac_ocaml_min_minor_version:-0} \& \ +- ${ac_ocaml_micro_version:-0} \>= \ +- ${ac_ocaml_min_micro_version:-0} \ +- \) > /dev/null; then +- ac_cv_ocaml_version_enough=yes +- else +- ac_cv_ocaml_version_enough=no +- fi +- ] +- ) +- +- if test "$ac_cv_ocaml_version_enough" = "no"; then +- AC_MSG_ERROR([OCaml version unsufficient]) ++dnl autoconf macros for OCaml ++dnl ++dnl Copyright © 2009 Richard W.M. Jones ++dnl Copyright © 2009 Stefano Zacchiroli ++dnl Copyright © 2000-2005 Olivier Andrieu ++dnl Copyright © 2000-2005 Jean-Christophe Filliâtre ++dnl Copyright © 2000-2005 Georges Mariano ++dnl ++dnl For documentation, please read the ocaml.m4 man page. ++ ++AC_DEFUN([AC_PROG_OCAML], ++[dnl ++ # checking for ocamlc ++ AC_CHECK_TOOLS([OCAMLC],[ocamlc.opt ocamlc],[no]) ++ ++ if test "$OCAMLC" != "no"; then ++ OCAMLVERSION=`$OCAMLC -v | sed -n -e 's|.*version* *\(.*\)$|\1|p'` ++ AC_MSG_RESULT([OCaml version is $OCAMLVERSION]) ++ # If OCAMLLIB is set, use it ++ if test "$OCAMLLIB" = ""; then ++ OCAMLLIB=`$OCAMLC -where 2>/dev/null || $OCAMLC -v|tail -1|cut -d ' ' -f 4` ++ else ++ AC_MSG_RESULT([OCAMLLIB previously set; preserving it.]) ++ fi ++ AC_MSG_RESULT([OCaml library path is $OCAMLLIB]) ++ ++ AC_SUBST([OCAMLVERSION]) ++ AC_SUBST([OCAMLLIB]) ++ ++ # checking for ocamlopt ++ AC_CHECK_TOOLS([OCAMLOPT],[ocamlopt.opt ocamlopt],[no]) ++ OCAMLBEST=byte ++ if test "$OCAMLOPT" = "no"; then ++ AC_MSG_WARN([Cannot find ocamlopt; bytecode compilation only.]) ++ else ++ TMPVERSION=`$OCAMLOPT -v | sed -n -e 's|.*version* *\(.*\)$|\1|p' ` ++ if test "$TMPVERSION" != "$OCAMLVERSION" ; then ++ AC_MSG_RESULT([versions differs from $OCAMLC; $OCAMLOPT discarded.]) ++ OCAMLOPT=no ++ else ++ OCAMLBEST=opt + fi ++ fi ++ ++ AC_SUBST([OCAMLBEST]) ++ ++ AC_SUBST([OCAMLOPT]) ++ fi ++ ++ # checking for ocaml toplevel ++ AC_CHECK_PROG([OCAML],[ocaml],[ocaml],[no]) ++ ++ # checking for ocamldep ++ AC_CHECK_TOOL([OCAMLDEP],[ocamldep],[no]) ++ ++ # checking for ocamlmktop ++ AC_CHECK_TOOL([OCAMLMKTOP],[ocamlmktop],[no]) ++ ++ # checking for ocamlmklib ++ AC_CHECK_TOOL([OCAMLMKLIB],[ocamlmklib],[no]) ++ ++ # checking for ocamldoc ++ AC_CHECK_PROG([OCAMLDOC],[ocamldoc],[ocamldoc],[no]) ++ ++ # checking for ocamlbuild ++ AC_CHECK_TOOL([OCAMLBUILD],[ocamlbuild],[no]) ++]) ++ ++ ++AC_DEFUN([AC_PROG_OCAMLLEX], ++[dnl ++ # checking for ocamllex ++ AC_CHECK_PROGS([OCAMLLEX],[ocamllex.opt ocamllex],[no]) ++]) ++ ++AC_DEFUN([AC_PROG_OCAMLYACC], ++[dnl ++ AC_CHECK_PROG([OCAMLYACC],[ocamlyacc],[ocamlyacc],[no]) ++]) ++ ++ ++AC_DEFUN([AC_PROG_CAMLP4], ++[dnl ++ AC_REQUIRE([AC_PROG_OCAML])dnl ++ ++ # checking for camlp4 ++ AC_CHECK_PROG([CAMLP4],[camlp4],[camlp4],[no]) ++ if test "$CAMLP4" != "no"; then ++ TMPVERSION=`$CAMLP4 -v 2>&1| sed -n -e 's|.*version *\(.*\)$|\1|p'` ++ if test "$TMPVERSION" != "$OCAMLVERSION" ; then ++ AC_MSG_RESULT([versions differs from ocamlc]) ++ CAMLP4=no ++ fi ++ fi ++ AC_SUBST([CAMLP4]) ++ ++ # checking for companion tools ++ AC_CHECK_PROG([CAMLP4BOOT],[camlp4boot],[camlp4boot],[no]) ++ AC_CHECK_PROG([CAMLP4O],[camlp4o],[camlp4o],[no]) ++ AC_CHECK_PROG([CAMLP4OF],[camlp4of],[camlp4of],[no]) ++ AC_CHECK_PROG([CAMLP4OOF],[camlp4oof],[camlp4oof],[no]) ++ AC_CHECK_PROG([CAMLP4ORF],[camlp4orf],[camlp4orf],[no]) ++ AC_CHECK_PROG([CAMLP4PROF],[camlp4prof],[camlp4prof],[no]) ++ AC_CHECK_PROG([CAMLP4R],[camlp4r],[camlp4r],[no]) ++ AC_CHECK_PROG([CAMLP4RF],[camlp4rf],[camlp4rf],[no]) ++]) ++ ++ ++AC_DEFUN([AC_PROG_FINDLIB], ++[dnl ++ AC_REQUIRE([AC_PROG_OCAML])dnl ++ ++ # checking for ocamlfind ++ AC_CHECK_TOOL([OCAMLFIND],[ocamlfind],[no]) ++]) ++ ++ ++dnl Thanks to Jim Meyering for working this next bit out for us. ++dnl XXX We should define AS_TR_SH if it's not defined already ++dnl (eg. for old autoconf). ++AC_DEFUN([AC_CHECK_OCAML_PKG], ++[dnl ++ AC_REQUIRE([AC_PROG_FINDLIB])dnl ++ ++ AC_MSG_CHECKING([for OCaml findlib package $1]) ++ ++ unset found ++ unset pkg ++ found=no ++ for pkg in $1 $2 ; do ++ if $OCAMLFIND query $pkg >/dev/null 2>/dev/null; then ++ AC_MSG_RESULT([found]) ++ AS_TR_SH([OCAML_PKG_$1])=$pkg ++ found=yes ++ break + fi +- +- # Checking for OCaml library path +- AC_CACHE_CHECK( +- [for OCaml library path], +- [ac_cv_ocaml_library_path], +- [ac_cv_ocaml_library_path=`$OCAMLC -where`] +- ) +- OCAMLLIB=$ac_cv_ocaml_library_path +- +- if test "$ac_ocaml_enable_native_tools" = "yes"; then +- # Checking for ocamlc.opt +- _AC_OCAML_PATH_PROG_NONFATAL(OCAMLC_OPT, ocamlc.opt) +- if test -n "$OCAMLC_OPT"; then +- _AC_OCAML_CHECK_VERSION_NONFATAL(OCAMLC_OPT, ocamlc.opt) +- fi +- if test -n "$OCAMLC_OPT"; then +- OCAMLC=$OCAMLC_OPT +- fi +- fi +- +- # Checking for OCaml native compiler +- _AC_OCAML_PATH_PROG_NONFATAL(OCAMLOPT, ocamlopt, [Cannot find ocamlopt; bytecode compilation only]) +- if test -n "$OCAMLOPT"; then +- _AC_OCAML_CHECK_VERSION_NONFATAL(OCAMLOPT, ocamlopt) +- fi +- if test -n "$OCAMLOPT"; then +- AC_CACHE_CHECK( +- [if OCaml C compiler works], +- [ac_cv_ocaml_c_compiler_works], +- [ +- touch conftest.c +- if $OCAMLC conftest.c >/dev/null 2>&1; then +- ac_cv_ocaml_c_compiler_works=yes +- else +- ac_cv_ocaml_c_compiler_works=no +- fi +- rm -f conftest.c +- ] +- ) +- +- if test "$ac_cv_ocaml_c_compiler_works" = "no"; then +- AC_MSG_WARN([bytecode compilation only]) +- unset OCAMLOPT +- fi +- fi +- +- if test "$ac_ocaml_enable_native_tools" = "yes"; then +- # Checking for ocamlopt.opt +- _AC_OCAML_PATH_PROG_NONFATAL(OCAMLOPT_OPT, ocamlopt.opt) +- if test -n "$OCAMLOPT_OPT"; then +- _AC_OCAML_CHECK_VERSION_NONFATAL(OCAMLOPT_OPT, ocamlopt.opt) +- fi +- if test -n "$OCAMLOPT_OPT"; then +- OCAMLOPT=$OCAMLOPT_OPT +- fi +- fi +- +- # Checking for ocamldep +- _AC_OCAML_PATH_PROG_NONFATAL(OCAMLDEP, ocamldep) +- +- if test "$ac_ocaml_enable_native_tools" = "yes"; then +- # Checking for ocamldep.opt +- _AC_OCAML_PATH_PROG_NONFATAL(OCAMLDEP_OPT, ocamldep.opt) +- if test -n "$OCAMLDEP_OPT"; then +- OCAMLDEP=$OCAMLDEP_OPT +- fi +- fi +- +- AC_ARG_VAR([OCAMLCFLAGS], [Ocaml compiler flags [none]]) +- +-]) # AC_PROG_OCAML +- +-# AC_PROG_OCAML_TOOL(VARIABLE, PROGRAM) +-# --------------------- +-# check some additional OCaml tool, and set VARIABLE to PROGRAM if found. +-# Unless --disable-opt is set by user, optimized versions is used by default. +-AC_DEFUN([AC_PROG_OCAML_TOOL], [ +- AC_REQUIRE([AC_PROG_OCAML]) +- +- # Checking for bytecode version +- _AC_OCAML_PATH_PROG_NONFATAL([$1], [$2]) +- +- if test "$ac_ocaml_enable_native_tools" = "yes"; then +- # Checking for binary version, using AC_PATH_PROG directly +- # to avoid warnings +- AC_PATH_PROG([$1]_OPT, [$2].opt) +- if test -n "[$$1]_OPT"; then +- [$1]=[$$1]_OPT +- fi +- fi +-]) # AC_PROG_OCAML_TOOL +- +-# AC_PROG_CAMLP4 +-# -------------- +-# Check CamlP4 and set the following variables: +-# CAMLP4 camlp4 +-# CAMLP4O camlp4o +-# CAMLP4R camlp4r +-# CAMLP4LIB parser library path +-# Fails if camlp4 is not found +-AC_DEFUN([AC_PROG_CAMLP4], [ +- AC_REQUIRE([AC_PROG_OCAML]) +- +- # Checking for camlp4 +- _AC_OCAML_PATH_PROG_FATAL(CAMLP4, camlp4) +- _AC_OCAML_CHECK_VERSION_FATAL(CAMLP4, camlp4) +- +- # Checking for Camlp4o +- _AC_OCAML_PATH_PROG_NONFATAL(CAMLP4O, camlp4o) +- +- # Checking for Camlp4r +- _AC_OCAML_PATH_PROG_NONFATAL(CAMLP4R, camlp4r) +- +- # Searching for parser library path +- AC_MSG_CHECKING([for CamlP4 library path]) +- CAMLP4LIB=`$CAMLP4 -where` +- AC_MSG_RESULT([$CAMLP4LIB]) +- +-]) # AC_PROG_CAMLP4 +- +-# _AC_OCAML_PATH_PROG_FATAL(VARIABLE, PROGRAM, [MESSAGE]) +-# ------------------------------------------------------- +-# wraps AC_PATH_PROG, issuing an error if PROGRAM +-# is not found, otherwise affects its path to VARIABLE +-AC_DEFUN([_AC_OCAML_PATH_PROG_FATAL], [ +- AC_PATH_PROG([$1], [$2]) +- if test -z "[$$1]"; then +- AC_MSG_ERROR([m4_default([$3], [Cannot find [$2]])]) +- fi +-]) # _AC_OCAML_PATH_PROG_FATAL +- +-# _AC_OCAML_PATH_PROG_NONFATAL(VARIABLE, PROGRAM, [MESSAGE]) +-# ---------------------------------------------------------- +-# wraps AC_PATH_PROG, issuing a warning if PROGRAM +-# is not found, otherwise affects its path to VARIABLE +-AC_DEFUN([_AC_OCAML_PATH_PROG_NONFATAL], [ +- AC_PATH_PROG([$1], [$2]) +- if test -z "[$$1]"; then +- AC_MSG_WARN([m4_default([$3], [Cannot find [$2]])]) +- fi +-]) # _AC_OCAML_PATH_PROG_NONFATAL +- +-# _AC_OCAML_CHECK_VERSION(VARIABLE, PROGRAM) +-# ------------------------------------------ +-# check than PROGRAM version is the same as the OCaml compiler, +-# otherwise unset VARIABLE +-AC_DEFUN([_AC_OCAML_CHECK_VERSION], [ +- AC_CACHE_CHECK( +- [wether [$2] version = $OCAMLVERSION], +- [ac_cv_ocaml_[$1]_version_ok], +- [ +- ac_ocaml_[$1]_version=`$[$1] -version` +- if test "$ac_ocaml_[$1]_version" = "$OCAMLVERSION"; then +- ac_cv_ocaml_[$1]_version_ok=yes +- else +- ac_cv_ocaml_[$1]_version_ok=no +- fi +- ] +- ) +- +- if test "$ac_cv_ocaml_[$1]_version_ok" = "no"; then +- unset [$1] +- fi +-]) # _AC_OCAML_CHECK_VERSION +- +-# _AC_OCAML_CHECK_VERSION_NONFATAL(VARIABLE, PROGRAM) +-# ------------------------------------------ +-# wraps _AC_OCAML_CHECK_VERSION, issuing a warning if it fails +-AC_DEFUN([_AC_OCAML_CHECK_VERSION_NONFATAL], [ +- _AC_OCAML_CHECK_VERSION([$1], [$2]) +- if test -z ["$$1"]; then +- AC_MSG_WARN([[$2] version differs from ocamlc, discarding]) +- fi +-]) # _AC_OCAML_CHECK_VERSION_NONFATAL +- +-# _AC_OCAML_CHECK_VERSION_FATAL(VARIABLE, PROGRAM) +-# ------------------------------------------ +-# wraps _AC_OCAML_CHECK_VERSION, issuing an error if it fails +-AC_DEFUN([_AC_OCAML_CHECK_VERSION_FATAL], [ +- _AC_OCAML_CHECK_VERSION([$1], [$2]) +- if test -z ["$$1"]; then +- AC_MSG_ERROR([[$2] version differs from ocamlc, aborting]) ++ done ++ if test "$found" = "no" ; then ++ AC_MSG_RESULT([not found]) ++ AS_TR_SH([OCAML_PKG_$1])=no ++ fi ++ ++ AC_SUBST(AS_TR_SH([OCAML_PKG_$1])) ++]) ++ ++ ++AC_DEFUN([AC_CHECK_OCAML_MODULE], ++[dnl ++ AC_MSG_CHECKING([for OCaml module $2]) ++ ++ cat > conftest.ml <<EOF ++open $3 ++EOF ++ unset found ++ for $1 in $$1 $4 ; do ++ if $OCAMLC -c -I "$$1" conftest.ml >&5 2>&5 ; then ++ found=yes ++ break + fi +-]) # _AC_OCAML_CHECK_VERSION_FATAL ++ done ++ ++ if test "$found" ; then ++ AC_MSG_RESULT([$$1]) ++ else ++ AC_MSG_RESULT([not found]) ++ $1=no ++ fi ++ AC_SUBST([$1]) ++]) ++ ++ ++dnl XXX Cross-compiling ++AC_DEFUN([AC_CHECK_OCAML_WORD_SIZE], ++[dnl ++ AC_REQUIRE([AC_PROG_OCAML])dnl ++ AC_MSG_CHECKING([for OCaml compiler word size]) ++ cat > conftest.ml <<EOF ++ print_endline (string_of_int Sys.word_size) ++ EOF ++ OCAML_WORD_SIZE=`$OCAML conftest.ml` ++ AC_MSG_RESULT([$OCAML_WORD_SIZE]) ++ AC_SUBST([OCAML_WORD_SIZE]) ++]) ++ ++AC_DEFUN([AC_CHECK_OCAML_OS_TYPE], ++[dnl ++ AC_REQUIRE([AC_PROG_OCAML])dnl ++ AC_MSG_CHECKING([OCaml Sys.os_type]) ++ ++ cat > conftest.ml <<EOF ++ print_string(Sys.os_type);; ++EOF ++ ++ OCAML_OS_TYPE=`$OCAML conftest.ml` ++ AC_MSG_RESULT([$OCAML_OS_TYPE]) ++ AC_SUBST([OCAML_OS_TYPE]) ++]) +diff --git a/src/Makefile.am b/src/Makefile.am +new file mode 100644 +index 0000000..6d90c5d +--- /dev/null ++++ b/src/Makefile.am +@@ -0,0 +1,256 @@ ++#*********************************************************************# ++# # ++# Caml Images # ++# # ++# François Pessaux, projet Cristal, INRIA Rocquencourt # ++# Pierre Weis, projet Cristal, INRIA Rocquencourt # ++# Jun Furuse, projet Cristal, INRIA Rocquencourt # ++# # ++# Copyright 1999-2004, # ++# Institut National de Recherche en Informatique et en Automatique. # ++# Distributed only by permission. # ++# # ++#*********************************************************************# ++ ++#(* $Id: Makefile.am,v 1.34 2009-07-04 03:38:36 furuse Exp $ *) ++ ++ocamlsitelibdir = $(OCAMLSITELIBDIR) ++ ++OCAMLCFLAGS = -warn-error A -annot ++#LINKFLAGS = ++AM_OCAMLCFLAGS = ++AM_CFLAGS = -I .. -DHAVE_CONFIG_H ++ ++OCAMLSOURCES_CORE = mstring.ml \ ++ color.ml \ ++ region.ml \ ++ tmpfile.ml \ ++ bitmap.ml \ ++ genimage.ml \ ++ rgba32.ml \ ++ rgb24.ml \ ++ index8.ml \ ++ index16.ml \ ++ cmyk32.ml \ ++ images.ml \ ++ oColor.ml \ ++ oImages.ml \ ++ reduce.ml \ ++ geometry.ml \ ++ colorhist.ml \ ++ blend.ml \ ++ bmp.ml \ ++ oBmp.ml \ ++ ppm.ml \ ++ oPpm.ml \ ++ xvthumb.ml \ ++ oXvthumb.ml \ ++ units.ml ++ ++OCAMLINTERFACES = info.mli \ ++ mstring.mli \ ++ color.mli \ ++ region.mli \ ++ tmpfile.mli \ ++ bitmap.mli \ ++ image_intf.mli \ ++ genimage.mli \ ++ rgba32.mli \ ++ rgb24.mli \ ++ index8.mli \ ++ index16.mli \ ++ cmyk32.mli \ ++ images.mli \ ++ oColor.mli \ ++ oImages.mli \ ++ reduce.mli \ ++ blend.mli \ ++ bmp.mli \ ++ ppm.mli \ ++ xvthumb.mli \ ++ oXvthumb.mli \ ++ colorhist.mli \ ++ geometry.mli ++ ++CSOURCES_CORE = ++OTHER_CMI = ++ ++if HAVE_GIF ++OCAMLSOURCES_CORE += gif.ml oGif.ml ++OCAMLINTERFACES += gif.mli ++OTHER_CMI += oGif.cmi ++CSOURCES_CORE += gifread.c gifwrite.c ++endif ++ ++if HAVE_PNG ++OCAMLSOURCES_CORE += png.ml oPng.ml ++OCAMLINTERFACES += png.mli ++CSOURCES_CORE += pngread.c pngwrite.c ++endif ++ ++if HAVE_JPEG ++OCAMLSOURCES_CORE += jpeg.ml oJpeg.ml ++OCAMLINTERFACES += jpeg.mli ++OTHER_CMI += oJpeg.cmi ++CSOURCES_CORE += jpegread.c jpegwrite.c ++endif ++ ++if HAVE_TIFF ++OCAMLSOURCES_CORE += tiff.ml oTiff.ml ++OCAMLINTERFACES += tiff.mli ++OTHER_CMI += oTiff.cmi ++CSOURCES_CORE += tiffread.c tiffwrite.c ++AM_CFLAGS += @LIBTIFF_CFLAGS@ ++endif ++ ++if HAVE_XPM ++OCAMLSOURCES_CORE += xpm.ml oXpm.ml ++OCAMLINTERFACES += xpm.mli ++CSOURCES_CORE += xpmread.c xpmwrite.c ++AM_CFLAGS += $(INCXPM) ++endif ++ ++if HAVE_PS ++OCAMLSOURCES_CORE += ps.ml oPs.ml ++OCAMLINTERFACES += ps.mli ++OTHER_CMI += oPs.cmi ++endif ++ ++### end of core ++ ++OCAMLSOURCES= $(OCAMLSOURCES_CORE) ++CSOURCES= $(CSOURCES_CORE) ++ ++OCAMLSOURCES += graphic_image.ml oGraphic.ml ++OCAMLINTERFACES += graphic_image.mli ++OTHER_CMI += oGraphic.cmi ++OTHER_CMI += units.cmi oBmp.cmi oPpm.cmi camlimages.cmi ++ ++# now obsolete ++# if HAVE_LABLGTK ++# OCAMLSOURCES += ximage.ml \ ++# oXimage.ml \ ++# imagegdk.ml ++# OCAMLINTERFACES += ximage.mli \ ++# oXimage.mli \ ++# imagegdk.mli ++# AM_OCAMLCFLAGS += -I $(LABLGTKDIR) ++# endif ++ ++if HAVE_LABLGTK2 ++OCAMLSOURCES += ximage.ml oXimage.ml imagegdk.ml ximage2.ml oXimage2.ml ++OCAMLINTERFACES += ximage.mli oXimage.mli imagegdk.mli ++OTHER_CMI += ximage2.cmi oXimage2.cmi ++AM_OCAMLCFLAGS += -I $(LABLGTK2DIR) ++endif ++ ++if HAVE_FREETYPE ++OCAMLSOURCES += ftlow.ml freetype.ml jis_table.ml jis_unicode.ml \ ++ fttext.ml oFreetype.ml ++OCAMLINTERFACES += ftlow.mli freetype.mli jis_unicode.mli fttext.mli ++CSOURCES += ftintf.c ++AM_CFLAGS += @FREETYPE2_CFLAGS@ ++OTHER_CMI += oFreetype.cmi jis_table.cmi ++endif ++ ++ocamlsitelib_DATA = \ ++ $(OCAMLINTERFACES) \ ++ $(OCAMLINTERFACES:.mli=.cmi) \ ++ camlimages.a \ ++ camlimages_core.a \ ++ libcamlimages.a \ ++ libcamlimages_core.a \ ++ META ++ocamlstublibdir = $(libdir)/ocaml/stublibs ++ ++if BUILD_SHARED ++ocamlstublib_DATA = dllcamlimages.so dllcamlimages_core.so ++endif ++ ++if BUILD_NATIVE ++ocamlsitelib_DATA += camlimages.cmxa camlimages_core.cmxa ++endif ++ ++if BUILD_BYTECODE ++ocamlsitelib_DATA += camlimages.cma camlimages_core.cma ++endif ++ ++ocamlsitelib_DATA += $(OTHER_CMI) ++ ++EXTRA_DIST = $(OCAMLSOURCES) $(OCAMLINTERFACES) $(CSOURCES) camlimages.ml.in META.in ++ ++CLEANFILES = $(OCAMLBYTOBJS) \ ++ $(OCAMLOPTOBJS) \ ++ $(OCAMLOPTOBJS:.cmx=.o) \ ++ camlimages.cmi \ ++ $(OCAMLSOURCES:.ml=.cmi) \ ++ camlimages.annot \ ++ $(OCAMLSOURCES:.ml=.annot) \ ++ $(OCAMLINTERFACES:.mli=.cmi) \ ++ info.cmi \ ++ $(COBJS) \ ++ dllcamlimages_core.so \ ++ libcamlimages_core.a \ ++ camlimages_core.cma \ ++ camlimages_core.cmxa \ ++ camlimages_core.a \ ++ camlimages_core.ml \ ++ libcamlimages.a \ ++ dllcamlimages.so \ ++ camlimages.cma \ ++ camlimages.cmxa \ ++ camlimages.a \ ++ camlimages.ml \ ++ META ++ ++OCAMLBYTOBJS_CORE = camlimages.cmo $(OCAMLSOURCES_CORE:.ml=.cmo) ++OCAMLBYTOBJS = camlimages.cmo $(OCAMLSOURCES:.ml=.cmo) ++OCAMLOPTOBJS_CORE = camlimages.cmx $(OCAMLSOURCES_CORE:.ml=.cmx) ++OCAMLOPTOBJS = camlimages.cmx $(OCAMLSOURCES:.ml=.cmx) ++COBJS_CORE = $(CSOURCES_CORE:.c=.o) ++COBJS = $(CSOURCES:.c=.o) ++EXTCLIB_CORE = $(LIBXPM) @LIBTIFF_LIBS@ $(LIBPNG) $(LIBJPEG) $(LIBGIF) ++EXTCLIB = $(EXTCLIB_CORE) @FREETYPE2_LIBS@ ++ ++camlimages_core.a libcamlimages_core.a dllcamlimages_core.so: $(COBJS_CORE) ++ $(OCAMLMKLIB) -o camlimages_core $(EXTCLIB_CORE) $(LDFLAGS) $(COBJS_CORE) ++ ++camlimages.a libcamlimages.a dllcamlimages.so: $(COBJS) ++ $(OCAMLMKLIB) -o camlimages $(EXTCLIB) $(LDFLAGS) $(COBJS) ++ ++ ++camlimages_core.cma: $(OCAMLBYTOBJS_CORE) camlimages_core.a dllcamlimages_core.so ++ $(OCAMLMKLIB) -linkall -o camlimages_core $(EXTCLIB_CORE) $(LDFLAGS) $(OCAMLBYTOBJS_CORE) ++ ++camlimages.cma: $(OCAMLBYTOBJS) camlimages.a dllcamlimages.so ++ $(OCAMLMKLIB) -linkall -o camlimages $(EXTCLIB) $(LDFLAGS) $(OCAMLBYTOBJS) ++ ++camlimages_core.cmxa: $(OCAMLOPTOBJS_CORE) camlimages_core.a dllcamlimages_core.so ++ $(OCAMLMKLIB) -linkall -o camlimages_core $(EXTCLIB_CORE) $(LDFLAGS) $(OCAMLOPTOBJS_CORE) ++ ++camlimages.cmxa: $(OCAMLOPTOBJS) camlimages.a dllcamlimages.so ++ $(OCAMLMKLIB) -linkall -o camlimages $(EXTCLIB) $(LDFLAGS) $(OCAMLOPTOBJS) ++ ++camlimages.ml: $(top_srcdir)/config.status camlimages.ml.in ++ rm -f camlimages.ml camlimages.ml.tmp ++ sed \ ++ -e 's,@VERSION\@,$(VERSION),g' \ ++ -e 's,@SUPPORT_GIF\@,$(SUPPORT_GIF),g' \ ++ -e 's,@SUPPORT_PNG\@,$(SUPPORT_PNG),g' \ ++ -e 's,@SUPPORT_JPEG\@,$(SUPPORT_JPEG),g' \ ++ -e 's,@SUPPORT_TIFF\@,$(SUPPORT_TIFF),g' \ ++ -e 's,@SUPPORT_FREETYPE\@,$(SUPPORT_FREETYPE),g' \ ++ -e 's,@SUPPORT_PS\@,$(SUPPORT_PS),g' \ ++ -e 's,@SUPPORT_XPM\@,$(SUPPORT_XPM),g' \ ++ -e 's,@PATH_RGB_TXT\@,$(PATH_RGB_TXT),g' \ ++ -e 's,@GS\@,$(GS),g' \ ++ -e 's,@WORD_SIZE\@,$(WORD_SIZE),g' \ ++ $(srcdir)/camlimages.ml.in > camlimages.ml.tmp ++ mv camlimages.ml.tmp camlimages.ml ++ ++top: all ++ $(OCAMLMKTOP) -custom -o customtop -ccopt "-L." \ ++ $(WITH_UNIX) \ ++ $(WITH_CAMLIMAGES) ++ ++include ../Makefile.rules +diff --git a/test/Makefile.am b/test/Makefile.am +new file mode 100644 +index 0000000..a02b0bf +--- /dev/null ++++ b/test/Makefile.am +@@ -0,0 +1,54 @@ ++#*********************************************************************# ++# # ++# Caml Images # ++# # ++# François Pessaux, projet Cristal, INRIA Rocquencourt # ++# Pierre Weis, projet Cristal, INRIA Rocquencourt # ++# Jun Furuse, projet Cristal, INRIA Rocquencourt # ++# # ++# Copyright 1999-2004, # ++# Institut National de Recherche en Informatique et en Automatique. # ++# Distributed only by permission. # ++# # ++#*********************************************************************# ++ ++#(* $Id: Makefile.am,v 1.6 2007/02/20 21:19:22 rousse Exp $ *) ++ ++OCAMLSOURCES = test.ml ++ ++TESTS = ++check_PROGRAMS = ++if BUILD_NATIVE ++check_PROGRAMS += test.opt ++TESTS += test.opts ++endif ++if BUILD_BYTECODE ++check_PROGRAMS += test.byt ++TESTS += test.byt ++endif ++ ++test_opt_SOURCES = $(OCAMLSOURCES) ++test_byt_SOURCES = $(OCAMLSOURCES) ++ ++include ../Makefile.variables ++ ++EXTRA_DIST = images micap.ttf ++ ++CLEANFILES += out.image ++ ++test.byt$(EXEEXT): $(OCAMLBYTOBJS) ++ $(OCAMLC) -o test.byt$(EXEEXT) \ ++ $(DLLPATHS) $(LINKFLAGS) $(AM_LINKFLAGS) \ ++ $(OCAMLLIBS) $(OCAMLBYTOBJS) ++ ++test.opt$(EXEEXT): $(OCAMLOPTOBJS) ++ $(OCAMLOPT) -o test.opt$(EXEEXT) \ ++ $(LINKFLAGS) $(AM_LINKFLAGS) \ ++ $(OCAMLLIBS:.cma=.cmxa) $(OCAMLOPTOBJS) ++ ++dist-hook: ++ rm -rf $(distdir)/images/CVS ++ rm -f $(distdir)/images/.cvsignore ++ ++ ++include ../Makefile.rules +-- +1.7.2.5 + + +From 79be4b11cf6e32056ac199efb48728fd7a09bbe9 Mon Sep 17 00:00:00 2001 +From: MXE +Date: Sun, 12 Aug 2012 20:56:46 +0200 +Subject: [PATCH 2/4] modify META file with ad-hock patch to make it usable in MXE + + +diff --git a/src/META.in b/src/META.in +index 45e96d6..e1b1c18 100644 +--- a/src/META.in ++++ b/src/META.in +@@ -2,68 +2,15 @@ name = "CamlImages" + version = "@PACKAGE_VERSION@" + description = "Objective Caml image processing library" + +-archive(byte) = "camlimages.cma" +-archive(native) = "camlimages.cmxa" ++requires = "camlimages.core" + + package "core" ( + archive(byte) = "camlimages_core.cma" + archive(native) = "camlimages_core.cmxa" + ) + +-package "gif" ( +- requires = "camlimages.core" +- archive(byte) = "camlimages_gif.cma" +- archive(native) = "camlimages_gif.cmxa" +-) +- +-package "jpeg" ( +- requires = "camlimages.core" +- archive(byte) = "camlimages_jpeg.cma" +- archive(native) = "camlimages_jpeg.cmxa" +-) +- +-package "png" ( +- requires = "camlimages.core" +- archive(byte) = "camlimages_png.cma" +- archive(native) = "camlimages_png.cmxa" +-) +- +-package "tiff" ( +- requires = "camlimages.core" +- archive(byte) = "camlimages_tiff.cma" +- archive(native) = "camlimages_tiff.cmxa" +-) +- +-package "freetype" ( +- requires = "camlimages.core" +- archive(byte) = "camlimages_freetype.cma" +- archive(native) = "camlimages_freetype.cmxa" +-) +- +-package "xpm" ( +- requires = "camlimages.core" +- archive(byte) = "camlimages_xpm.cma" +- archive(native) = "camlimages_xpm.cmxa" +-) +- +-package "ps" ( +- requires = "camlimages.core" +- archive(byte) = "camlimages_ps.cma" +- archive(native) = "camlimages_ps.cmxa" +-) +- +-package "graphics" ( +- requires = "camlimages.core, graphics" +- archive(byte) = "camlimages_graphics.cma" +- archive(native) = "camlimages_graphics.cmxa" +-) +- +-package "lablgtk2" ( +- requires = "camlimages.core, lablgtk2" +- archive(byte) = "camlimages_lablgtk2.cma" +- archive(native) = "camlimages_lablgtk2.cmxa" +-) +- + package "all_formats" ( +- requires = "camlimages.gif, camlimages.jpeg, camlimages.png, camlimages.tiff, camlimages.xpm, camlimages.ps" ++ requires = "graphics, lablgtk2, graphics" ++ archive(byte) = "camlimages.cma" ++ archive(native) = "camlimages.cmxa" + ) +-- +1.7.2.5 + + +From 7ecf7a9c4ca35e5f43514cfc634d09999ee0a099 Mon Sep 17 00:00:00 2001 +From: MXE +Date: Sun, 12 Aug 2012 20:58:10 +0200 +Subject: [PATCH 3/4] update gifread.c and gifwrite.c for new giflib-5.0.0, and png for similar purpose + + +diff --git a/src/gifread.c b/src/gifread.c +index ecf40c4..097db1d 100644 +--- a/src/gifread.c ++++ b/src/gifread.c +@@ -140,7 +140,7 @@ value dGifOpenFileName( value name ) + GifFileType *GifFile; + int i; + +- if((GifFile = DGifOpenFileName( String_val(name) )) == NULL){ ++ if((GifFile = DGifOpenFileName( String_val(name) , NULL )) == NULL){ + failwith("DGifOpenFileName"); + } + +@@ -200,7 +200,12 @@ value dGifGetLine( value hdl ) + + if( DGifGetLine(GifFile, String_val(buf), GifFile->Image.Width ) + == GIF_ERROR ){ +- PrintGifError (); ++ /* was PrintGifError() before removal in giflib-4.2.0 */ ++ char *Err = GifErrorString(GifFile->Error); ++ if (Err != NULL) ++ fprintf(stderr, "\nGIF-LIB error: %s.\n", Err); ++ else ++ fprintf(stderr, "\nGIF-LIB undefined error %d.\n", GifFile->Error); + failwith("DGifGetLine"); + } + CAMLreturn(buf); +diff --git a/src/gifwrite.c b/src/gifwrite.c +index 4b6399f..caf04c0 100644 +--- a/src/gifwrite.c ++++ b/src/gifwrite.c +@@ -25,7 +25,7 @@ + + #include <gif_lib.h> + +-int list_length( value list ) ++int get_list_length( value list ) + { + CAMLparam1(list); + CAMLlocal1(l); +@@ -52,7 +52,7 @@ ColorMapObject *ColorMapObject_val( value cmap ) + fprintf(stderr, "Creating map with length = %d ...\n", len); + fflush(stderr); + */ +- cmapobj = MakeMapObject( len, NULL ); ++ cmapobj = GifMakeMapObject( len, NULL ); + for(i=0; i< len; i++){ + cmapobj->Colors[i].Red = Int_val(Field(Field(cmap,i),0)); + cmapobj->Colors[i].Green = Int_val(Field(Field(cmap,i),1)); +@@ -68,7 +68,7 @@ value eGifOpenFileName( name ) + + GifFileType *GifFileOut; + +- if ((GifFileOut = EGifOpenFileName( String_val( name ), 0) )== NULL) { ++ if ((GifFileOut = EGifOpenFileName( String_val( name ), 0, NULL) )== NULL) { + failwith("EGifOpenFileName"); + } + /* gcc -fwritable-strings is required to compile libungif */ +@@ -133,7 +133,11 @@ value eGifPutLine( value oc, value buf ) + + if ( EGifPutLine(GifFileOut, String_val(buf), GifFileOut->Image.Width) + == GIF_ERROR ){ +- PrintGifError (); ++ char *Err = GifErrorString(GifFileOut->Error); ++ if (Err != NULL) ++ fprintf(stderr, "\nGIF-LIB error: %s.\n", Err); ++ else ++ fprintf(stderr, "\nGIF-LIB undefined error %d.\n", GifFileOut->Error); + failwith("EGifPutLine"); + } + CAMLreturn(Val_unit); +@@ -151,7 +155,7 @@ value eGifPutExtension( value oc, value ext ) + int i; + + extCode = Int_val(Field(ext,0)); +- extLen = list_length( Field(ext,1) ); ++ extLen = get_list_length( Field(ext,1) ); + if( (extension = malloc(sizeof(char*) * extLen)) == NULL ){ + failwith("EGifPutExtension"); + } +diff --git a/src/pngread.c b/src/pngread.c +index cc576e8..ce25110 100644 +--- a/src/pngread.c ++++ b/src/pngread.c +@@ -69,7 +69,7 @@ value read_png_file_as_rgb24( name ) + } + + /* error handling */ +- if (setjmp(png_ptr->jmpbuf)) { ++ if (setjmp(png_jmpbuf(png_ptr))) { + /* Free all of the memory associated with the png_ptr and info_ptr */ + png_destroy_read_struct(&png_ptr, &info_ptr, (png_infopp)NULL); + fclose(fp); +@@ -134,7 +134,7 @@ value read_png_file_as_rgb24( name ) + png_set_rows(png_ptr, info_ptr, row_pointers); + + /* Later, we can return something */ +- if (setjmp(png_ptr->jmpbuf)) { ++ if (setjmp(png_jmpbuf(png_ptr))) { + /* Free all of the memory associated with the png_ptr and info_ptr */ + png_destroy_read_struct(&png_ptr, &info_ptr, (png_infopp)NULL); + fclose(fp); +@@ -243,7 +243,7 @@ value read_png_file( name ) + } + + /* error handling */ +- if (setjmp(png_ptr->jmpbuf)) { ++ if (setjmp(png_jmpbuf(png_ptr))) { + /* Free all of the memory associated with the png_ptr and info_ptr */ + png_destroy_read_struct(&png_ptr, &info_ptr, (png_infopp)NULL); + fclose(fp); +@@ -302,7 +302,7 @@ value read_png_file( name ) + png_set_rows(png_ptr, info_ptr, row_pointers); + + /* Later, we can return something */ +- if (setjmp(png_ptr->jmpbuf)) { ++ if (setjmp(png_jmpbuf(png_ptr))) { + /* Free all of the memory associated with the png_ptr and info_ptr */ + png_destroy_read_struct(&png_ptr, &info_ptr, (png_infopp)NULL); + fclose(fp); +diff --git a/src/pngwrite.c b/src/pngwrite.c +index 3248562..6937cd8 100644 +--- a/src/pngwrite.c ++++ b/src/pngwrite.c +@@ -62,7 +62,7 @@ value write_png_file_rgb( name, buffer, width, height, with_alpha ) + } + + /* error handling */ +- if (setjmp(png_ptr->jmpbuf)) { ++ if (setjmp(png_jmpbuf(png_ptr))) { + /* Free all of the memory associated with the png_ptr and info_ptr */ + png_destroy_write_struct(&png_ptr, &info_ptr); + fclose(fp); +@@ -171,7 +171,7 @@ value write_png_file_index( name, buffer, cmap, width, height ) + } + + /* error handling */ +- if (setjmp(png_ptr->jmpbuf)) { ++ if (setjmp(png_jmpbuf(png_ptr))) { + /* Free all of the memory associated with the png_ptr and info_ptr */ + png_destroy_write_struct(&png_ptr, &info_ptr); + fclose(fp); +-- +1.7.2.5 + + +From f35cfc4a23431f0da77f9fa75f6d102a7b09e094 Mon Sep 17 00:00:00 2001 +From: MXE +Date: Wed, 3 Oct 2012 09:37:05 +0200 +Subject: [PATCH 4/4] META : add camlimages.lablgtk2 and camlimages.freetype (referencing camlimages.all_formats) + + +diff --git a/src/META.in b/src/META.in +index e1b1c18..5994beb 100644 +--- a/src/META.in ++++ b/src/META.in +@@ -9,8 +9,16 @@ package "core" ( + archive(native) = "camlimages_core.cmxa" + ) + ++package "lablgtk2" ( ++ requires = "graphics, lablgtk2, camlimages.all_formats" ++) ++ ++package "freetype" ( ++ requires = "camlimages.all_formats" ++) ++ + package "all_formats" ( +- requires = "graphics, lablgtk2, graphics" ++ requires = "graphics" + archive(byte) = "camlimages.cma" + archive(native) = "camlimages.cmxa" + ) +-- +1.7.2.5 + diff --git a/src/ocaml-camlimages-test.ml b/src/ocaml-camlimages-test.ml new file mode 100644 index 0000000..039b485 --- /dev/null +++ b/src/ocaml-camlimages-test.ml @@ -0,0 +1,5 @@ +open Images +open Ximage2 +open Png +open Gif +open Tiff diff --git a/src/ocaml-camlimages.mk b/src/ocaml-camlimages.mk new file mode 100644 index 0000000..442d582 --- /dev/null +++ b/src/ocaml-camlimages.mk @@ -0,0 +1,34 @@ +# This file is part of MXE. +# See index.html for further information. + +PKG := ocaml-camlimages +$(PKG)_IGNORE := +#REVISION : wget -q -O- 'https://bitbucket.org/camlspotter/camlimages/downloads' | sed -n 's,.*camlspotter/camlimages/src/\(.*\)">caml.*,\1,ip' +$(PKG)_CHECKSUM := 3ff44142386970003d3cff1446ad351b36759a8e +# ATTENTION, checksum a revoir avec vrai paquet +$(PKG)_SUBDIR := camlspotter-camlimages-c803efa9d5d3 +$(PKG)_FILE := v4.0.1.tar.gz +$(PKG)_URL := https://bitbucket.org/camlspotter/camlimages/get/v4.0.1.tar.gz +$(PKG)_DEPS := ocaml-findlib freetype libpng giflib tiff ocaml-lablgtk2 + +define $(PKG)_UPDATE + wget -q -O- 'https://bitbucket.org/camlspotter/camlimages/downloads' | \ + $(SED) -n 's,.*camlimages-\([0-9][^>]*\)\.tar.*,\1,ip' | \ + head -1 +endef + +define $(PKG)_BUILD + cd '$(1)' && cp -f doc/old/* doc/ + cd '$(1)' && autoreconf -fi + cd '$(1)' && ./configure \ + --prefix '$(PREFIX)/$(TARGET)' \ + --build="`config.guess`" \ + --with-lablgtk2=yes \ + --host $(TARGET) \ + --disable-bytecode-library \ + --disable-shared + $(MAKE) -C '$(1)' -j '$(JOBS)' install + # test + cp '$(2).ml' '$(1)/test.ml' + cd '$(1)' && '$(TARGET)-ocamlfind' opt -linkpkg -package camlimages test.ml +endef |