home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / pdflb302.zip / pdf / pdflib-3.0.2 / configure.in < prev    next >
Text File  |  2000-08-21  |  29KB  |  922 lines

  1. dnl -------------------------------------------------------------------------*
  2. dnl       PDFlib - A library for dynamically generating PDF documents        |
  3. dnl -------------------------------------------------------------------------+
  4. dnl       Copyright (c) 1997-2000 Thomas Merz. All rights reserved.          |
  5. dnl -------------------------------------------------------------------------+
  6. dnl   This software is NOT in the public domain.  It can be used under two   |
  7. dnl   substantially different licensing terms:                               |
  8. dnl                                                                          |
  9. dnl   The commercial license is available for a fee, and allows you to       |
  10. dnl   - ship a commercial product based on PDFlib                            |
  11. dnl   - implement commercial Web services with PDFlib                        |
  12. dnl   - distribute (free or commercial) software when the source code is     |
  13. dnl     not made available                                                   |
  14. dnl   Details can be found in the file PDFlib-license.pdf.                   |
  15. dnl                                                                          |
  16. dnl   The "Aladdin Free Public License" doesn't require any license fee,     |
  17. dnl   and allows you to                                                      |
  18. dnl   - develop and distribute PDFlib-based software for which the complete  |
  19. dnl     source code is made available                                        |
  20. dnl   - redistribute PDFlib non-commercially under certain conditions        |
  21. dnl   - redistribute PDFlib on digital media for a fee if the complete       |
  22. dnl     contents of the media are freely redistributable                     |
  23. dnl   Details can be found in the file aladdin-license.pdf.                  |
  24. dnl                                                                          |
  25. dnl   These conditions extend to ports to other programming languages.       |
  26. dnl   PDFlib is distributed with no warranty of any kind. Commercial users,  |
  27. dnl   however, will receive warranty and support statements in writing.      |
  28. dnl -------------------------------------------------------------------------.
  29.  
  30. dnl configure.in
  31. dnl 
  32. dnl Process this file with autoconf to produce a configure script.
  33. dnl 
  34. dnl 
  35.  
  36. # --------------------------------------------------------------------
  37. #     PDFlib general setup
  38. # --------------------------------------------------------------------
  39.  
  40. dnl source directory sanity check using an arbitrary source file
  41. AC_INIT(pdflib/pdflib.h)
  42.  
  43. VERSION="3.02"
  44.  
  45. PDFLIB_MAJOR=3
  46. PDFLIB_MINOR=02
  47.  
  48. AC_SUBST(PDFLIB_MAJOR)
  49. AC_SUBST(PDFLIB_MINOR)
  50.  
  51. dnl Important: Interface numbers are completely independent of release
  52. dnl or version numbers! See doc/readme_unix.txt for details.
  53.  
  54. PDFLIB_CURRENT=1
  55. PDFLIB_REVISION=0
  56. PDFLIB_AGE=0
  57.  
  58. AC_SUBST(PDFLIB_CURRENT)
  59. AC_SUBST(PDFLIB_REVISION)
  60. AC_SUBST(PDFLIB_AGE)
  61.  
  62. dnl The name of the library should only be changed in very rare cases,
  63. dnl such as Digital Unix where a (completely different) libpdf already
  64. dnl exists.
  65. dnl Note: do not include any file name suffix here.
  66.  
  67. PDFLIBNAME=pdf
  68. MATHLIB="-lm"
  69.  
  70. AC_ARG_WITH(libname,[  --with-libname=name     set file name of generated library [default=pdf]],[PDFLIBNAME="$withval"])
  71.  
  72. AC_ARG_WITH(libm,[  --with-libm=name        set math library option [default on most platforms=-lm]],[MATHLIB="$withval"])
  73.  
  74. AC_SUBST(PDFLIBNAME)
  75.  
  76. dnl install-sh will be searched (and found) here
  77. AC_CONFIG_AUX_DIR(config)
  78.  
  79. builtin(include, config/aclocal.m4)
  80.  
  81. dnl Check the system name
  82. AC_CANONICAL_HOST
  83.  
  84. AC_MSG_CHECKING(MACHDEP)
  85. if test -z "$MACHDEP"
  86. then
  87.     if test -f /usr/lib/NextStep/software_version; then
  88.     set X `hostinfo | grep 'NeXT Mach.*:' | \
  89.         sed -e 's/://' -e 's/\./_/'` && \
  90.     ac_sys_system=next && ac_sys_release=$4
  91.     MACHDEP="$ac_sys_system$ac_sys_release$ac_sys_cpu"
  92.     else
  93.     ac_sys_system=`uname -s`
  94.     if test "$ac_sys_system" = "AIX" ; then
  95.         ac_sys_release=`uname -v`
  96.     else
  97.         ac_sys_release=`uname -r`
  98.     fi
  99.     ac_md_system=`echo $ac_sys_system |
  100.                tr -d '[/ ]' | tr '[[A-Z]]' '[[a-z]]'`
  101.     ac_md_release=`echo $ac_sys_release |
  102.                tr -d '[/ ]' | sed 's/\..*//'`
  103.     MACHDEP="$ac_md_system$ac_md_release"
  104.     fi
  105.     case MACHDEP in
  106.     '')    MACHDEP=unknown;;
  107.     esac
  108. fi
  109.  
  110. AC_MSG_RESULT($MACHDEP)
  111. PLATFORM="-DPDF_PLATFORM=\\\"\"$ac_sys_system $ac_sys_release\"\\\""
  112.  
  113. dnl common stuff, unlikely to be changed
  114. SHELL="/bin/sh"
  115. RM="rm -rf"
  116.  
  117. dnl select debugging configuration
  118. WITH_DEBUG=no
  119. WITH_SHARED=yes
  120.  
  121. dnl The PDFlib core library is generated as a static lib by default
  122. SHARED_PDFLIB=no
  123.  
  124. AC_ARG_ENABLE(debug, [  --enable-debug          turn on debugging (implies --disable-shared-pdflib)],
  125. if test "$enable_debug" = "yes" ; then
  126.     WITH_DEBUG=yes
  127.     WITH_SHARED=no
  128.     SHARED_PDFLIB=no
  129. fi)
  130.  
  131. AC_ARG_ENABLE(shared-pdflib,
  132. [  --enable-shared-pdflib  Generate the PDFlib core library as a shared library.
  133.                           This is only required for C and C++ language clients
  134.                           which prefer a shared PDFlib over a static one, and
  135.                           disables all other language bindings [default=no].],
  136.               SHARED_PDFLIB=yes, SHARED_PDFLIB=no)
  137.  
  138. AC_PROG_CC
  139. AC_PROG_CPP
  140. AC_PROG_INSTALL
  141. AC_EXEEXT
  142. AC_OBJEXT
  143.  
  144. dnl If possible, we want shared libraries; however, for debugging configurations
  145. dnl static libraries are better suited.
  146.  
  147. if test "$WITH_SHARED" = "no"; then
  148.     enable_shared=no
  149. fi
  150.  
  151. dnl Prepare libtool
  152. dnl Required for dlopening our libraries, as done in the language interpreters.
  153.  
  154. AC_LIBTOOL_DLOPEN
  155. AC_LIBTOOL_WIN32_DLL
  156. AM_PROG_LIBTOOL
  157.  
  158. AC_SUBST(SHELL)
  159. AC_SUBST(EXEEXT)
  160. AC_SUBST(OBJEXT)
  161. AC_SUBST(VERSION)
  162. AC_SUBST(PDFLIB_CURRENT)
  163. AC_SUBST(PDFLIB_REVISION)
  164. AC_SUBST(PDFLIB_AGE)
  165. AC_SUBST(CC)
  166. AC_SUBST(RM)
  167.  
  168. dnl Default defines -- some systems may need special handling here
  169.  
  170. INCLUDES=
  171.  
  172. case $ac_sys_system in
  173.     cyg*|CYG*) DEFINES="$DEFINES -U_WIN32 -UWIN32 -U__WIN32__ -U_Windows";;
  174.  
  175.     dnl HP needs option for ANSI mode if the HP compiler is used instead of gcc
  176.     hp*|HP*)
  177.     if test "$GCC" = ""; then 
  178.         DEFINES="$DEFINES -Aa"
  179.     fi;;
  180.  
  181.     dnl The OSF JNI requires libraries to be built thread-safe, which is true for PDFlib
  182.     osf1*|OSF1*) DEFINES="$DEFINES -pthread";;
  183.  
  184.     dnl MacOS X doesn't seem to like -lm, and doesn't actually need it
  185.     darwin|Darwin*)
  186.     MATHLIB="";;
  187.  
  188.     *)    ;;
  189. esac
  190.  
  191. # --------------------------------------------------------------------
  192. #     PDFlib C++ language binding
  193. # --------------------------------------------------------------------
  194.  
  195. dnl C++ mode is disabled by default since it seems impossible to come up
  196. dnl with a portable solution for linking stdc++.
  197.  
  198. WITH_CXX=no
  199. STDCPP="-lstdc++"
  200.  
  201. AC_ARG_ENABLE(cxx,[  --enable-cxx            enable C++ language binding [default=no]], WITH_CXX=yes, WITH_CXX=no)
  202.  
  203. if test "$WITH_CXX" = "yes"; then
  204.     AC_LANG_CPLUSPLUS
  205.     AC_PROG_CXX
  206.     AC_MSG_CHECKING(whether the previously found C++ compiler works)
  207.     AC_TRY_COMPILE(, [class a { int b; } ], WITH_CXX=yes, WITH_CXX=no)
  208.     AC_LANG_C
  209.  
  210.     dnl Filter out systems where we don't build the C++ binding.
  211.     dnl Quote Detlev Droege: "C++ doesn't work with a real object-oriented
  212.     dnl system such as NeXTStep".
  213.     dnl
  214.     dnl TODO: implement a better scheme for working out
  215.     dnl which systems need -lstdc++
  216.  
  217.     case $ac_sys_system/$ac_sys_release in
  218.         NeXT|next/3*) WITH_CXX="no";;
  219.         NeXT|next/4*) WITH_CXX="no";;
  220.  
  221.         osf1*|OSF1*) STDCPP="";;
  222.  
  223.         *)    dnl don't change $WITH_CXX
  224.             ;;
  225.     esac
  226.  
  227.     if test "$WITH_CXX" = "yes"; then
  228.     AC_SUBST(STDCPP)
  229.     AC_SUBST(CXX)
  230.     AC_MSG_RESULT(yes)
  231.     else
  232.     AC_MSG_RESULT(no)
  233.     fi
  234. fi
  235.  
  236. # --------------------------------------------------------------------
  237. #     PDFlib Java binding (JNI)
  238. # --------------------------------------------------------------------
  239.  
  240. WITH_JAVA=yes
  241. JAVAINCLUDE=""
  242. JAVAPACKAGE=""
  243.  
  244. AC_ARG_WITH(java,[  --with-java=path        full path of Java Developers Kit, or no],[
  245. case $withval in
  246.     no) WITH_JAVA=no ;;
  247.     yes) WITH_JAVA=yes ;;
  248.     *) JAVAPACKAGE=$withval 
  249.     ;;
  250. esac
  251. ])
  252.  
  253. if test "$WITH_JAVA" != "no" ; then
  254.     WITH_JAVA=no
  255.     AC_MSG_CHECKING(for Java header files)
  256.  
  257.     # try without any precautions
  258.     AC_TRY_CPP([#include <jni.h>], WITH_JAVA=yes,
  259.     [ dirs="$prefix /usr/lib/java /usr/java /usr/include/java /usr/local/java /usr/local/include/kaffe /usr/lib/jdk1.3 /usr/lib/jdk1.2.2 /usr/lib/jdk1.2.1 /usr/jdk122 /usr/lib/jdk122 /usr/lib/jdk1.2.1 /usr/lib/jdk1.1.8 /usr/jdk118 /usr/lib/jdk118 /usr /opt/local /jdk1.3 /jdk1.2.3 /jdk1.2.2 /jdk1.2.1"
  260.  
  261.     if test "$JAVAPACKAGE" != ""; then
  262.         dirs="$JAVAPACKAGE $dirs"
  263.     fi
  264.  
  265.     # now try to find jni.h
  266.     for i in $dirs ; do
  267.         if test -r $i/jni.h; then
  268.         JAVAINCLUDE="$i"
  269.         break
  270.         elif test -r $i/include/jni.h; then
  271.         JAVAINCLUDE="$i/include"
  272.         break
  273.         fi
  274.     done
  275.     ])
  276.  
  277.     # now try with an include path
  278.     if test "$JAVAINCLUDE" != ""; then
  279.     OCPPFLAGS="$CPPFLAGS"
  280.     CPPFLAGS="-I$JAVAINCLUDE $OCPPFLAGS"
  281.     AC_TRY_CPP([#include <jni.h>], [
  282.         WITH_JAVA=yes
  283.         JAVAINCLUDE="-I$JAVAINCLUDE"
  284.     ],)
  285.     CPPFLAGS="$OCPPFLAGS"
  286.     fi
  287.  
  288.     # if the above didn't work probably jni_md.h is missing
  289.     if test "WITH_JAVA" != "yes" ; then
  290.     if test "$JAVAINCLUDE" != ""; then
  291.         subdirs="$JAVAINCLUDE $JAVAINCLUDE/$MACHDEP $JAVAINCLUDE/$ac_md_system $JAVAINCLUDE/solaris $JAVAINCLUDE/genunix $JAVAINCLUDE/alpha $JAVAINCLUDE/win32"
  292.         for i in $subdirs ; do
  293.         if test -r $i/jni_md.h; then
  294.             JAVAINCLUDE="-I$JAVAINCLUDE -I$i"
  295.             WITH_JAVA=yes
  296.             break
  297.         fi
  298.         done
  299.     fi
  300.     fi
  301.  
  302.     if test "$WITH_JAVA" = "no"; then
  303.     AC_MSG_RESULT(not found)
  304.     else
  305.     AC_MSG_RESULT($JAVAINCLUDE)
  306.     AC_SUBST(JAVAINCLUDE)
  307.     fi
  308.  
  309. fi
  310.  
  311. # ----------------------------------------------------------------
  312. #  PDFlib Perl binding
  313. # ----------------------------------------------------------------
  314.  
  315. WITH_PERL=yes
  316. PERLBIN=nope
  317. PERLINCLUDE=nope
  318.  
  319. AC_ARG_WITH(perl,[  --with-perl=path        full path of Perl executable, or no],[PERLBIN="$withval"],[PERLBIN=nope])
  320.  
  321. if test "$PERLBIN" = "no" ; then
  322.     WITH_PERL=no
  323. fi
  324.  
  325. AC_ARG_WITH(perlincl,[  --with-perlincl=path    full path of Perl include directory],[PERLINCLUDE="$withval"],[PERLINCLUDE=nope])
  326.  
  327. if test "$WITH_PERL" = "yes" ; then
  328.  
  329.     WITH_PERL=no
  330.     dnl First figure out what the name of Perl is
  331.     if test "$PERLBIN" = "nope"; then
  332.     AC_CHECK_PROGS(PERL, perl perl5.6.0 perl5.005 perl5.004 perl5.003 perl5.002 perl5.001 perl5, nope)
  333.     else
  334.     PERL="$PERLBIN"
  335.     fi
  336.     AC_MSG_CHECKING(for Perl header file)
  337.     if test "$PERL" != "nope"; then
  338.     PERL5DIR=`($PERL -e 'use Config; print $Config{archlib};') 2>/dev/null`
  339.     if test "$PERL5DIR" != ""; then
  340.         if test "$PERLINCLUDE" = "nope"; then
  341.         if test -r "$PERL5DIR/perl.h"; then
  342.             AC_MSG_RESULT(PERL5DIR/perl.h)
  343.             WITH_PERL=yes
  344.             PERLINCLUDE="$PERL5DIR"
  345.         elif test -r "$PERL5DIR/CORE/perl.h"; then
  346.             AC_MSG_RESULT($PERL5DIR/CORE/perl.h)
  347.             WITH_PERL=yes
  348.             PERLINCLUDE="$PERL5DIR/CORE"
  349.         fi
  350.         else
  351.         WITH_PERL=yes
  352.         AC_MSG_RESULT($PERLINCLUDE)
  353.         fi
  354.         if test "$PERLINCLUDE" = "nope"; then
  355.         AC_MSG_RESULT(could not locate perl.h...)
  356.         WITH_PERL=no
  357.         fi    
  358.     else
  359.         AC_MSG_RESULT(unable to determine perl configuration)
  360.         WITH_PERL=no
  361.     fi
  362.  
  363.     PERLLIBDIR=`($PERL -e 'use Config; print $Config{sitearchexp};') 2>/dev/null`
  364.     if test -z "$PERLLIBDIR" -o ! -d "$PERLLIBDIR"; then
  365.         AC_MSG_RESULT(         unable to determine perl shared library directory)
  366.     fi
  367.  
  368.     PERLMODDIR=`($PERL -e 'use Config; print $Config{sitelib};') 2>/dev/null`
  369.     if test -z "$PERLMODDIR" -o ! -d "$PERLMODDIR"; then
  370.         AC_MSG_RESULT(         unable to determine perl module directory)
  371.         PERLMODDIR="/usr/local/lib/perl5/site_perl/5.6.0"
  372.     fi
  373.     else
  374.     AC_MSG_RESULT(could not figure out how to run perl)
  375.     PERLINCLUDE="/usr/local/lib/perl5/5.6.0/archname/CORE"
  376.     fi
  377.  
  378.     dnl The Perl include files contain special handling for the bool type
  379.     dnl on NeXT (sigh). We'll run into trouble if we don't work around this.
  380.  
  381.     case $ac_sys_system in
  382.         NeXT|next) PERLBOOLDEF="";;
  383.         *)    PERLBOOLDEF="-Dbool=char -DHAS_BOOL";;
  384.     esac
  385.  
  386.     dnl Some platforms require linking the perl library directly.
  387.     dnl We use $PERLINCLUDE for this since it both contains the Perl library
  388.     dnl _and_ the include files. Other systems don't explicitly link the
  389.     dnl Perl library, so we keep PERLLINK empty.
  390.  
  391.     case $ac_sys_system/$ac_sys_release in
  392.     cyg*|CYG*) PERLLINK="-L$PERLINCLUDE -lperl";;
  393.     aix*|AIX*) PERLLINK="-L$PERLINCLUDE -lperl";;
  394.     osf1*|OSF1*) PERLLINK="-L$PERLINCLUDE -lperl";;
  395.     *)    PERLLINK="";;
  396.     esac
  397.  
  398.     PERLINCLUDE="-I$PERLINCLUDE"
  399.     AC_SUBST(PERLINCLUDE)
  400.     AC_SUBST(PERLLIBDIR)
  401.     AC_SUBST(PERLMODDIR)
  402.     AC_SUBST(PERLBOOLDEF)
  403.     AC_SUBST(PERLLINK)
  404.     AC_SUBST(PERL)
  405. fi
  406.  
  407. # ----------------------------------------------------------------
  408. #  PDFlib Python binding
  409. # ----------------------------------------------------------------
  410.  
  411. WITH_PYTHON=yes
  412. PYINCLUDE=nope
  413. PYPACKAGE=nope
  414.  
  415. AC_ARG_WITH(py,[  --with-py=path          full path of Python root directory, or no],[PYPACKAGE="$withval"], [PYPACKAGE=nope])
  416.  
  417. if test "$PYPACKAGE" = "no" ; then
  418.     WITH_PYTHON=no
  419. fi
  420.  
  421. AC_ARG_WITH(pyincl,[  --with-pyincl=path      full path of Python include directory],[PYINCLUDE="$withval"], [PYINCLUDE=nope])
  422.  
  423. if test "$PYINCLUDE" = "nope" -a "$PYPACKAGE" != "no"; then
  424.     PYINCLUDE="$PYPACKAGE/include"
  425. fi
  426.  
  427. if test "$WITH_PYTHON" != "no" ; then
  428.     WITH_PYTHON=no
  429.     AC_MSG_CHECKING(for Python header files)
  430.  
  431.     dirs="$PYINCLUDE $PYINCLUDE/python1.5 $PYINCLUDE/python1.4 $PYINCLUDE/Py $prefix/include/python1.5 $prefix/include/python1.4 /usr/local/include/python1.5 /usr/include/python1.5 /usr/local/include/python1.4 /usr/include/python1.4 $prefix/include/Py /usr/local/include/Py /usr/include/Py /usr/pkg/include"
  432.     for i in $dirs ; do
  433.         if test -r $i/Python.h; then
  434.             AC_MSG_RESULT($i)
  435.             PYINCLUDE="-I$i"
  436.             WITH_PYTHON=yes
  437.             break
  438.         fi
  439.     done
  440.     if test "$PYINCLUDE" = "nope" -o "$PYINCLUDE" = "$PYPACKAGE/include"; then
  441.     AC_MSG_RESULT(not found)
  442.     WITH_PYTHON=no
  443.     fi
  444.  
  445.     AC_SUBST(PYINCLUDE)
  446.  
  447.     AC_CHECK_PROGS(PYTHONBIN, python, nope)
  448.  
  449.     if test "$PYTHONBIN" = "nope" ; then
  450.     WITH_PYTHON=no
  451.     fi
  452.  
  453.     if test "$WITH_PYTHON" = "yes" ; then
  454.     dnl Find the python shared library path:
  455.     AC_MSG_CHECKING(for Python shared library path)
  456.  
  457.     if test "$PYTHONBIN" = "nope" ; then
  458.         WITH_PYTHON=no
  459.     else
  460.         PYTHONLIBDIR=`cat << EOF | python | grep dynload
  461. import sys
  462. for d in sys.path:
  463.  print d
  464. EOF
  465. `
  466.         if test "$PYTHONLIBDIR" = "" ; then
  467.         PYTHONLIBDIR=/usr/lib
  468.         fi
  469.         AC_SUBST(PYTHONLIBDIR)
  470.  
  471.     fi
  472.  
  473.     AC_MSG_RESULT($PYTHONLIBDIR)
  474.     fi
  475. fi
  476.  
  477. # --------------------------------------------------------------------
  478. #     PDFlib Tcl binding
  479. # --------------------------------------------------------------------
  480.  
  481. WITH_TCL=yes
  482. TCLINCLUDE=nope
  483. TCLPACKAGEDIR=nope
  484. TCLBIN=nope
  485.  
  486. AC_ARG_WITH(tcl,[  --with-tcl=path         full path of Tcl executable, or no],[TCLBIN="$withval"])
  487.  
  488. if test "$TCLBIN" = "no" ; then
  489.     WITH_TCL=no
  490. fi
  491.  
  492. AC_ARG_WITH(tclpkg,[  --with-tclpkg=path      full path of Tcl package install directory],[TCLPACKAGEDIR="$withval"],[TCLPACKAGEDIR=nope])
  493.  
  494. AC_ARG_WITH(tclincl,[  --with-tclincl=path     full path of Tcl include directory],[TCLINCLUDE="$withval"],[TCLINCLUDE=nope])
  495.  
  496. if test "$WITH_TCL" = "yes" ; then
  497.     WITH_TCL=no
  498.     AC_MSG_CHECKING(for Tcl header files)
  499.  
  500.     if test "$TCLINCLUDE" = "nope"; then
  501.     AC_TRY_CPP([#include <tcl.h>], , TCLINCLUDE="nope")
  502.     if test "$TCLINCLUDE" = "nope"; then
  503.         dirs="$prefix/include /usr/local/include /usr/include /opt/local/include /home/sci/local/include /usr/pkg/include"
  504.         for i in $dirs ; do
  505.         if test -r $i/tcl.h; then
  506.             AC_MSG_RESULT($i)
  507.             TCLINCLUDE="$i"
  508.             WITH_TCL=yes
  509.             break
  510.         fi
  511.         done
  512.     fi
  513.  
  514.     if test "$TCLINCLUDE" = "nope"; then
  515.         AC_MSG_RESULT(not found)
  516.         WITH_TCL=no
  517.     fi
  518.     else
  519.     AC_MSG_RESULT($TCLINCLUDE)
  520.     fi
  521.  
  522.     dnl We need at least Tcl 8.0 because of its support for binary strings
  523.     dnl and the object interface.
  524.  
  525.     if test "$TCLINCLUDE" != "nope" -a "$TCLBIN" = "nope"; then
  526.     AC_CHECK_PROGS(TCL, tclsh tclsh8.3 tclsh8.2 tclsh8.1 tclsh8.0, nope)
  527.     TCLBIN=$TCL
  528.     fi
  529.  
  530.     if test "$TCLINCLUDE" = "nope" -o "$TCLBIN" = "nope"; then
  531.     WITH_TCL=no
  532.     else
  533.     dnl Check the installed Tcl version -- must be 8.0 or higher
  534.     TCLVERSION=`echo "puts [[info tclversion]]" | $TCLBIN`
  535.     if test  "$TCLVERSION" = "7.6" -o "$TCLVERSION" = "7.5" -o  "$TCLVERSION" = "7.4" -o "$TCLVERSION" = "7.3" -o "$TCLVERSION" = "7.1" -o "$TCLVERSION" = "7.0"; then
  536.         AC_MSG_RESULT([         Tcl version 8.0 or newer is required for PDFlib.])
  537.         AC_MSG_RESULT([         PDFlib support for Tcl will not be built.])
  538.         WITH_TCL=no
  539.     else
  540.     
  541.         if test "$TCLPACKAGEDIR" = "nope"; then
  542.         dnl Let tcl decide where to install the package
  543.         TCLPACKAGEDIR=`(echo "puts \\$auto_path" | "$TCLBIN" | awk '{print $1}') 2>/dev/null`
  544.         fi
  545.  
  546.         if test "$TCLPACKAGEDIR" = "nope" -o -z "$TCLPACKAGEDIR" -o ! -d "$TCLPACKAGEDIR"; then
  547.         AC_MSG_RESULT(unable to determine Tcl package directory)
  548.         WITH_TCL=no
  549.  
  550.         else
  551.  
  552.         TCLPACKAGEDIR=$TCLPACKAGEDIR/pdflib
  553.         WITH_TCL=yes
  554.         fi
  555.     fi
  556.     fi
  557. fi
  558.  
  559. TCLINCLUDE="-I$TCLINCLUDE"
  560. AC_SUBST(TCLINCLUDE)
  561. AC_SUBST(TCLPACKAGEDIR)
  562. AC_SUBST(TCLBIN)
  563.  
  564. # ----------------------------------------------------------------
  565. #  PDFlib auxiliary library: TIFFlib
  566. # ----------------------------------------------------------------
  567.  
  568. WITH_TIFFLIB=yes
  569. TIFFLIBINC=""
  570. TIFFLIBLINK=""
  571. TIFFWARN=""
  572. tiffauxlib=""
  573.  
  574. AC_ARG_WITH(tiffauxlib,[  --with-tiffauxlib=libs  set auxiliary libs required for libtiff, e.g. '-ljpeg'],[tiffauxlib="$withval"])
  575.  
  576. AC_ARG_WITH(tifflib,
  577. [  --with-tifflib=path     full path of TIFFlib directory, or no],
  578. [
  579. case "$withval" in
  580.     no) WITH_TIFFLIB=no ;;
  581.  
  582.     yes)
  583.     AC_CHECK_LIB(tiff, TIFFOpen, [TIFFLIBLINK="-ltiff $tiffauxlib"], [WITH_TIFFLIB=no],
  584.         [$tiffauxlib $MATHLIB]) ;;
  585.  
  586.     *)
  587.     test -f $withval/include/libtiff/tiff.h && TIFFLIBINC="-I$withval/include/libtiff"
  588.     test -f $withval/libtiff/tiff.h && TIFFLIBINC="$withval/libtiff"
  589.     test -f $withval/include/tiff.h && TIFFLIBINC="$withval/include"
  590.     test -f $withval/tiff.h && TIFFLIBINC="$withval"
  591.  
  592.     if test -z "$TIFFLIBINC" ; then
  593.     AC_CHECK_HEADER(tiff.h, , WITH_TIFFLIB=no)
  594.     else
  595.     AC_MSG_CHECKING(for tiff.h)
  596.     AC_MSG_RESULT($TIFFLIBINC)
  597.     TIFFLIBINC="-I$TIFFLIBINC"
  598.     fi
  599.  
  600.     if test "$WITH_TIFFLIB" != "no" ; then
  601.     AC_MSG_CHECKING(for libtiff.a)
  602.     tiffdir=""
  603.     test -f $withval/libtiff/libtiff.a && tiffdir="$withval/libtiff"
  604.     test -f $withval/lib/libtiff.a && tiffdir="$withval/lib"
  605.     test -f $withval/libtiff.a && tiffdir="$withval"
  606.  
  607.     if test "$tiffdir" != "" ; then
  608.         TIFFLIBLINK="-L$tiffdir -ltiff $tiffauxlib"
  609.         AC_MSG_RESULT($TIFFLIBLINK)
  610.         TIFFWARN="$tiffdir/libtiff.s*"
  611.     else
  612.         AC_MSG_RESULT(not found)
  613.         WITH_TIFFLIB=no
  614.     fi
  615.     fi ;;
  616. esac
  617. ],[
  618.     AC_CHECK_HEADER(tiff.h, , WITH_TIFFLIB=no)
  619.     if test "$WITH_TIFFLIB" = "yes" ; then
  620.     AC_CHECK_LIB(tiff, TIFFOpen, [TIFFLIBLINK="-ltiff $tiffauxlib"],
  621.         [WITH_TIFFLIB=no], [$tiffauxlib $MATHLIB])
  622.     fi
  623. ])
  624.  
  625. if test "$WITH_TIFFLIB" = "yes" ; then
  626.     INCLUDES="$INCLUDES -DHAVE_LIBTIFF"
  627. fi
  628. AC_SUBST(TIFFLIBINC)
  629.  
  630. # ----------------------------------------------------------------
  631. #  PDFlib auxiliary library: Zlib
  632. # ----------------------------------------------------------------
  633.  
  634. WITH_ZLIB=yes
  635. ZLIBINC=""
  636. ZLIBLINK=""
  637. ZWARN=""
  638.  
  639. AC_ARG_WITH(zlib,
  640. [  --with-zlib=path        full path of Zlib directory, or no],
  641. [
  642. case "$withval" in
  643.     no) WITH_ZLIB=no ;;
  644.  
  645.     yes)
  646.     LIBS=""
  647.     AC_SEARCH_LIBS(deflateEnd, z gz, [ZLIBLINK=$LIBS], [WITH_ZLIB=no]) ;;
  648.  
  649.     *)
  650.     test -f $withval/include/zlib/zlib.h && ZLIBINC="$withval/include/zlib"
  651.     test -f $withval/include/zlib.h && ZLIBINC="$withval/include"
  652.     test -f $withval/zlib.h && ZLIBINC="$withval"
  653.     if test -z "$ZLIBINC" ; then
  654.     AC_CHECK_HEADER(zlib.h, , WITH_ZLIB=no)
  655.     else
  656.     AC_MSG_CHECKING(for zlib.h)
  657.     AC_MSG_RESULT($ZLIBINC)
  658.     ZLIBINC="-I$ZLIBINC"
  659.     fi
  660.     if test "$WITH_ZLIB" != "no"; then
  661.     AC_MSG_CHECKING(for libz.a)
  662.     zdir=""
  663.     test -f $withval/lib/libz.a && zdir="$withval/lib"
  664.     test -f $withval/libz.a && zdir="$withval"
  665.  
  666.     if test "$zdir" != "" ; then
  667.         ZLIBLINK="-L$zdir -lz"
  668.         AC_MSG_RESULT($ZLIBLINK)
  669.         ZWARN="$zdir/libz.s*"
  670.     else
  671.         AC_MSG_RESULT(not found)
  672.         WITH_ZLIB=no
  673.     fi
  674.  
  675.     fi ;;
  676. esac
  677. ],[
  678.     AC_CHECK_HEADER(zlib.h, , WITH_ZLIB=no)
  679.     if test "$WITH_ZLIB" = "yes" ; then
  680.     AC_SEARCH_LIBS(deflateEnd, z gz, [ZLIBLINK=$LIBS], [WITH_ZLIB=no])
  681.     fi
  682. ])
  683.  
  684. if test "$WITH_ZLIB" = "yes" ; then
  685.     INCLUDES="$INCLUDES -DHAVE_LIBZ"
  686. fi
  687. AC_SUBST(ZLIBINC)
  688.  
  689. # ----------------------------------------------------------------
  690. #  PDFlib auxiliary library: libpng
  691. # ----------------------------------------------------------------
  692.  
  693. dnl libpng requires zlib
  694. WITH_PNGLIB=$WITH_ZLIB
  695. PNGLIBINC=""
  696. PNGLIBLINK=""
  697. PNGWARN=""
  698.  
  699. if test "$WITH_PNGLIB" = "yes" ; then
  700.     AC_ARG_WITH(pnglib,
  701.     [  --with-pnglib=path      full path of libpng directory, or no],
  702.     [
  703.     case "$withval" in
  704.     no) WITH_PNGLIB=no ;;
  705.  
  706.     yes)
  707.     AC_CHECK_LIB(png, png_create_read_struct,
  708.         [PNGLIBLINK=-lpng], [WITH_PNGLIB=no], [-lz $MATHLIB]) ;;
  709.  
  710.     *)
  711.     test -f $withval/include/libpng/png.h && PNGLIBINC="$withval/include/libpng"
  712.     test -f $withval/include/png.h && PNGLIBINC="$withval/include"
  713.     test -f $withval/png.h && PNGLIBINC="$withval"
  714.     if test -z "$PNGLIBINC" ; then
  715.         AC_CHECK_HEADER(png.h, , WITH_PNGLIB=no)
  716.     else
  717.         AC_MSG_CHECKING(for png.h)
  718.         AC_MSG_RESULT($PNGLIBINC)
  719.         PNGLIBINC="-I$PNGLIBINC"
  720.     fi
  721.  
  722.     if test "$WITH_PNGLIB" != "no" ; then
  723.         AC_MSG_CHECKING(for libpng.a)
  724.         pngdir=""
  725.         test -f $withval/lib/libpng.a && pngdir="$withval/lib"
  726.         test -f $withval/libpng.a && pngdir="$withval"
  727.  
  728.         if test "$pngdir" != "" ; then
  729.         PNGLIBLINK="-L$pngdir -lpng"
  730.         AC_MSG_RESULT($PNGLIBLINK)
  731.         PNGWARN="$pngdir/libpng.s*"
  732.         else
  733.         AC_MSG_RESULT(not found)
  734.         WITH_PNGLIB=no
  735.         fi
  736.     fi ;;
  737.     esac
  738.     ],[
  739.     AC_CHECK_HEADER(png.h, , WITH_PNGLIB=no)
  740.     if test "$WITH_PNGLIB" = "yes" ; then
  741.         AC_CHECK_LIB(png, png_create_read_struct,
  742.             [PNGLIBLINK=-lpng], [WITH_PNGLIB=no], [-lz $MATHLIB])
  743.     fi
  744.     ])
  745. fi
  746.  
  747. if test "$WITH_PNGLIB" = "yes" ; then
  748.     INCLUDES="$INCLUDES -DHAVE_LIBPNG"
  749. fi
  750. AC_SUBST(PNGLIBINC)
  751.  
  752. # ----------------------------------------------------------------
  753. #  PDFlib wrapup
  754. # ----------------------------------------------------------------
  755.  
  756. dnl The following variables are used to tell the Makefile what to
  757. dnl actually do, depending on the available language bindings.
  758. dnl PDFlib itself will be built and installed by default, regardless
  759. dnl of the settings below.
  760.  
  761. BINDINGS="pdflib_c"
  762. BINDINGS_INSTALL=""
  763. BINDINGS_UNINSTALL=""
  764. BINDINGS_CLEAN="pdflib_c_clean"
  765. BINDINGS_TEST="pdflib_c_test"
  766.  
  767. dnl WITH_SHARED may already have been set because of the debug option
  768. if ${CONFIG_SHELL-/bin/sh} ./libtool --features | grep "disable shared" >/dev/null; then
  769.     WITH_SHARED=no
  770. fi
  771.  
  772. dnl Building the language wrappers based on a shared PDFlib is no longer supported!
  773. if test "$WITH_SHARED" = "no" -o "$SHARED_PDFLIB" = "yes"; then
  774.     WITH_JAVA=no;
  775.     WITH_PERL=no;
  776.     WITH_PYTHON=no
  777.     WITH_TCL=no;
  778. fi
  779.  
  780. if test "$WITH_CXX" = "yes" ; then
  781.     BINDINGS="$BINDINGS pdflib_cpp";
  782.     BINDINGS_TEST="$BINDINGS_TEST pdflib_cpp_test";
  783.     BINDINGS_CLEAN="$BINDINGS_CLEAN pdflib_cpp_clean";
  784. fi
  785. if test "$WITH_JAVA" = "yes" ; then
  786.     BINDINGS="$BINDINGS pdflib_java";
  787.     BINDINGS_INSTALL="$BINDINGS_INSTALL pdflib_java_install";
  788.     BINDINGS_UNINSTALL="$BINDINGS_UNINSTALL pdflib_java_uninstall";
  789.     BINDINGS_TEST="$BINDINGS_TEST pdflib_java_test";
  790.     BINDINGS_CLEAN="$BINDINGS_CLEAN pdflib_java_clean";
  791. fi
  792. if test "$WITH_PERL" = "yes" ; then
  793.     BINDINGS="$BINDINGS pdflib_perl";
  794.     BINDINGS_INSTALL="$BINDINGS_INSTALL pdflib_perl_install";
  795.     BINDINGS_UNINSTALL="$BINDINGS_UNINSTALL pdflib_perl_uninstall";
  796.     BINDINGS_TEST="$BINDINGS_TEST pdflib_perl_test";
  797.     BINDINGS_CLEAN="$BINDINGS_CLEAN pdflib_perl_clean";
  798. fi
  799. if test "$WITH_PYTHON" = "yes" ; then
  800.     BINDINGS="$BINDINGS pdflib_python";
  801.     BINDINGS_INSTALL="$BINDINGS_INSTALL pdflib_python_install";
  802.     BINDINGS_UNINSTALL="$BINDINGS_UNINSTALL pdflib_python_uninstall";
  803.     BINDINGS_TEST="$BINDINGS_TEST pdflib_python_test";
  804.     BINDINGS_CLEAN="$BINDINGS_CLEAN pdflib_python_clean";
  805. fi
  806. if test "$WITH_TCL" = "yes" ; then
  807.     BINDINGS="$BINDINGS pdflib_tcl";
  808.     BINDINGS_INSTALL="$BINDINGS_INSTALL pdflib_tcl_install";
  809.     BINDINGS_UNINSTALL="$BINDINGS_UNINSTALL pdflib_tcl_uninstall";
  810.     BINDINGS_TEST="$BINDINGS_TEST pdflib_tcl_test";
  811.     BINDINGS_CLEAN="$BINDINGS_CLEAN pdflib_tcl_clean";
  812. fi
  813.  
  814. if test "$WITH_DEBUG" = "yes"; then
  815.     DEBUGFLAGS="-DDEBUG"
  816.     CFLAGS="$CFLAGS -g"
  817. fi
  818.  
  819. DEFINES="$CFLAGS $DEFINES $INCLUDES $PLATFORM"
  820.  
  821. AC_SUBST(BINDINGS)
  822. AC_SUBST(BINDINGS_INSTALL)
  823. AC_SUBST(BINDINGS_UNINSTALL)
  824. AC_SUBST(BINDINGS_TEST)
  825. AC_SUBST(BINDINGS_CLEAN)
  826.  
  827. dnl PDFLIBLINK contains the flags needed to link a program against PDFlib
  828. dnl PDFLIBLINKSELF contains the flags needed to link PDFlib itself
  829.  
  830. PDFLIBLINKSELF="$TIFFLIBLINK $PNGLIBLINK $ZLIBLINK $MATHLIB"
  831.  
  832. if test "$SHARED_PDFLIB" = "no"; then
  833.     dnl Generate a static PDFlib (a libtool convenience library)
  834.     dnl and find it in place (without having it installed)
  835.     PDFLIBLINK="\$(top_builddir)/pdflib/lib$PDFLIBNAME.la"
  836. else
  837.     dnl PDFlib must be installed for this to work
  838.     PDFLIBLINKSELF="-rpath \$(libdir) $PDFLIBLINKSELF -version-info \$(PDFLIB_CURRENT):\$(PDFLIB_REVISION):\$(PDFLIB_AGE)"
  839.     PDFLIBLINK="-L\$(top_builddir)/pdflib/.libs -l$PDFLIBNAME"
  840. fi
  841.  
  842. PDFLIBLINKEXTERN="-l$PDFLIBNAME"
  843.  
  844. AC_SUBST(PDFLIBLINK)
  845. AC_SUBST(PDFLIBLINKSELF)
  846. AC_SUBST(PDFLIBLINKEXTERN)
  847. AC_SUBST(INCLUDES)
  848. AC_SUBST(DEFINES)
  849. AC_SUBST(DEBUGFLAGS)
  850.  
  851. dnl ---------- Generate the Makefiles
  852.  
  853. dnl These files are generated in all cases
  854.  
  855. GENERATED_FILES="Makefile pdflib-config pdflib/Makefile test/Makefile clients/Makefile util/Makefile bind/c/Makefile"
  856.  
  857. dnl Don't generate unnecessary files because this may cause trouble
  858. dnl when someone manually calls make although the binding is unavailable.
  859. dnl The missing makefile will immediately point to the problem.
  860.  
  861. if test "$WITH_CXX" = "yes" ; then
  862.     GENERATED_FILES="$GENERATED_FILES bind/cpp/Makefile"
  863. fi
  864.  
  865. if test "$WITH_JAVA" = "yes" ; then
  866.     GENERATED_FILES="$GENERATED_FILES bind/java/Makefile"
  867. fi
  868.  
  869. if test "$WITH_PERL" = "yes" ; then
  870.     GENERATED_FILES="$GENERATED_FILES bind/perl/Makefile"
  871. fi
  872.  
  873. if test "$WITH_PYTHON" = "yes" ; then
  874.     GENERATED_FILES="$GENERATED_FILES bind/python/Makefile"
  875. fi
  876.  
  877. if test "$WITH_TCL" = "yes" ; then
  878.     GENERATED_FILES="$GENERATED_FILES bind/tcl/Makefile"
  879. fi
  880.  
  881. AC_OUTPUT([$GENERATED_FILES],[chmod +x pdflib-config])
  882.  
  883. if test "$WITH_SHARED" = "no" ; then
  884.     AC_MSG_WARN([Can't create shared PDFlib libraries in this configuration.])
  885.     AC_MSG_WARN([This may be caused by a configuration option (e.g., debug),])
  886.     AC_MSG_WARN([or shared libraries may not be supported at all on this])
  887.     AC_MSG_WARN([system, or with this development environment.])
  888.     AC_MSG_WARN([PDFlib will work when linked to a C or C++ program, but other])
  889.     AC_MSG_WARN([language bindings will be unavailable.])
  890. fi
  891.  
  892. AC_MSG_RESULT([_____________________________________________________________])
  893. AC_MSG_RESULT([For your convenience, here's a summary of configure's results:])
  894. AC_MSG_RESULT([])
  895. AC_MSG_RESULT([Support for shared libraries:           $WITH_SHARED])
  896. AC_MSG_RESULT([C++ language binding for PDFlib:        $WITH_CXX])
  897. AC_MSG_RESULT([Java language binding for PDFlib:       $WITH_JAVA])
  898. AC_MSG_RESULT([Perl language binding for PDFlib:       $WITH_PERL])
  899. AC_MSG_RESULT([Python language binding for PDFlib:     $WITH_PYTHON])
  900. AC_MSG_RESULT([Tcl language binding for PDFlib:        $WITH_TCL])
  901. AC_MSG_RESULT([TIFF image support for PDFlib:          $WITH_TIFFLIB])
  902. if test "$TIFFWARN" != "" ; then
  903.     AC_MSG_RESULT([     Note: if TIFFlib cannot be found at runtime remove])
  904.     AC_MSG_RESULT([     $TIFFWARN and rebuild PDFlib])
  905.     AC_MSG_RESULT([])
  906. fi
  907. AC_MSG_RESULT([PNG image support for PDFlib:           $WITH_PNGLIB])
  908. if test "$PNGWARN" != "" ; then
  909.     AC_MSG_RESULT([     Note: if libpng cannot be found at runtime remove])
  910.     AC_MSG_RESULT([     $PNGWARN and rebuild PDFlib])
  911.     AC_MSG_RESULT([])
  912. fi
  913. AC_MSG_RESULT([Zlib compression support for PDFlib:    $WITH_ZLIB])
  914. if test "$ZWARN" != "" ; then
  915.     AC_MSG_RESULT([     Note: if libz cannot be found at runtime remove])
  916.     AC_MSG_RESULT([     $ZWARN and rebuild PDFlib])
  917. fi
  918.  
  919. AC_MSG_RESULT([])
  920. AC_MSG_RESULT([PDFlib license agreement and purchase order can be found in the doc directory.])
  921. AC_MSG_RESULT([])
  922.