This file is part of MXE. See LICENSE.md for licensing information. Contains ad hoc patches for cross building. From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: "fix@me" Date: Sun, 12 Aug 2012 20:55:49 +0200 Subject: [PATCH 1/5] 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 1111111..2222222 --- /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 1111111..2222222 --- /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 1111111..2222222 --- /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 1111111..2222222 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 #include @@ -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 < eng.html.tmp + mv eng.html.tmp eng.html diff --git a/doc/sphinx/Makefile b/doc/sphinx/Makefile new file mode 100644 index 1111111..2222222 --- /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 ' where 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 1111111..2222222 --- /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 1111111..2222222 --- /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 1111111..2222222 --- /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 1111111..2222222 --- /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 1111111..2222222 --- /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 1111111..2222222 --- /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 1111111..2222222 --- /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 1111111..2222222 --- /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 1111111..2222222 --- /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 1111111..2222222 --- /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 1111111..2222222 --- /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 1111111..2222222 --- /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 1111111..2222222 --- /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 1111111..2222222 100644 --- a/ocaml.m4 +++ b/ocaml.m4 @@ -1,279 +1,197 @@ -# OCaml macros for autoconf -# -# Guillaume Rousse -# 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 <&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 < conftest.ml < 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 1111111..2222222 --- /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 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: "fix@me" Date: Sun, 12 Aug 2012 20:56:46 +0200 Subject: [PATCH 2/5] modify META file with ad-hock patch to make it usable in MXE diff --git a/src/META.in b/src/META.in index 1111111..2222222 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" ) From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: "fix@me" Date: Sun, 12 Aug 2012 20:58:10 +0200 Subject: [PATCH 3/5] 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 1111111..2222222 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 1111111..2222222 100644 --- a/src/gifwrite.c +++ b/src/gifwrite.c @@ -25,7 +25,7 @@ #include -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 1111111..2222222 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 1111111..2222222 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); From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: "fix@me" Date: Wed, 3 Oct 2012 09:37:05 +0200 Subject: [PATCH 4/5] META : add camlimages.lablgtk2 and camlimages.freetype (referencing camlimages.all_formats) diff --git a/src/META.in b/src/META.in index 1111111..2222222 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" ) From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Tony Theodore Date: Sun, 17 Jul 2016 12:16:43 +1000 Subject: [PATCH 5/5] fix for giflib >=5.1 diff --git a/src/gifread.c b/src/gifread.c index 1111111..2222222 100644 --- a/src/gifread.c +++ b/src/gifread.c @@ -161,7 +161,7 @@ value dGifCloseFile( value hdl ) segmentation faults */ ((GifFileType *)hdl)->Image.ColorMap = NULL; - DGifCloseFile( (GifFileType *) hdl ); + DGifCloseFile( (GifFileType *) hdl, NULL ); CAMLreturn(Val_unit); } diff --git a/src/gifwrite.c b/src/gifwrite.c index 1111111..2222222 100644 --- a/src/gifwrite.c +++ b/src/gifwrite.c @@ -88,7 +88,7 @@ value eGifCloseFile( value hdl ) segmentation faults */ ((GifFileType *)hdl)->Image.ColorMap = NULL; - EGifCloseFile( (GifFileType *) hdl ); + EGifCloseFile( (GifFileType *) hdl, NULL ); CAMLreturn(Val_unit); }