1dnl ---------------------------------------------------------------------------* 2dnl PDFlib - A library for generating PDF on the fly | 3dnl ---------------------------------------------------------------------------+ 4dnl Copyright (c) 1997-2004 Thomas Merz and PDFlib GmbH. All rights reserved. | 5dnl ---------------------------------------------------------------------------+ 6dnl | 7dnl This software is subject to the PDFlib license. It is NOT in the | 8dnl public domain. Extended versions and commercial licenses are | 9dnl available, please check http://www.pdflib.com. | 10dnl | 11dnl --------------------------------------------------------------------------*/ 12 13dnl $Id: configure.in 14574 2005-10-29 16:27:43Z bonefish $ 14dnl 15dnl Process this file with autoconf to produce a configure script. 16dnl 17 18# -------------------------------------------------------------------- 19# PDFlib general setup 20# -------------------------------------------------------------------- 21 22dnl source directory sanity check using an arbitrary source file 23AC_INIT(libs/pdcore/pc_config.h) 24 25dnl do not change this (version.sh will do it for you :) 26VERSION="5.0.3" 27PDFLIB_MAJOR=5 28PDFLIB_MINOR=0 29PDFLIB_REVISION=3 30 31AC_SUBST(PDFLIB_MAJOR) 32AC_SUBST(PDFLIB_MINOR) 33AC_SUBST(PDFLIB_REVISION) 34 35dnl Important: Interface numbers are completely independent of release 36dnl or version numbers! See doc/readme-source-unix.txt for details. 37 38PDFLIB_LTCURRENT=4 39PDFLIB_LTREVISION=1 40PDFLIB_LTAGE=2 41 42LTVERSIONINFO="$PDFLIB_LTCURRENT:$PDFLIB_LTREVISION:$PDFLIB_LTAGE" 43 44AC_SUBST(LTVERSIONINFO) 45AC_SUBST(PDFLIB_LTCURRENT) 46AC_SUBST(PDFLIB_LTREVISION) 47AC_SUBST(PDFLIB_LTAGE) 48 49dnl Get the current directory, needed to feed absolut paths to linkers 50dnl even if called outside of our build environment (i.e. PHP). Might cause some 51dnl problems on exotic platforms, but we are not yet aware of problems, 52dnl so we use $PDFWD like $top_builddir if abspath is needed. 53PDFPWD=`pwd` 54 55dnl The name of the library should only be changed in very rare cases, 56dnl such as Digital Unix where a (completely different) libpdf already exists. 57dnl Note: do not include any file name suffix here. 58 59PDFLIBNAME=pdf 60MATHLIB="-lm" 61 62AC_ARG_WITH(pdflibname,[ --with-pdflibname=name set file name of generated library [default=pdf]],[PDFLIBNAME="$withval"]) 63 64AC_ARG_WITH(libm,[ --with-libm=name set math library option [default=-lm]],[MATHLIB="$withval"]) 65 66AC_SUBST(PDFLIBNAME) 67 68dnl install-sh will be searched (and found) here 69AC_CONFIG_AUX_DIR(config) 70 71builtin(include, config/aclocal.m4) 72 73dnl Check the system name 74AC_CANONICAL_HOST 75 76AC_MSG_CHECKING(MACHDEP) 77if test -z "$MACHDEP" 78then 79 if test -f /usr/lib/NextStep/software_version; then 80 set X `hostinfo | grep 'NeXT Mach.*:' | \ 81 sed -e 's/://' -e 's/\./_/'` && \ 82 ac_sys_system=next && ac_sys_release=$4 83 MACHDEP="$ac_sys_system$ac_sys_release$ac_sys_cpu" 84 else 85 ac_sys_system=`uname -s` 86 if test "$ac_sys_system" = "AIX" ; then 87 ac_sys_release=`uname -v` 88 else 89 ac_sys_release=`uname -r` 90 fi 91 ac_md_system=`echo $ac_sys_system | 92 tr -d '[/ ]' | tr '[[A-Z]]' '[[a-z]]'` 93 ac_md_release=`echo $ac_sys_release | 94 tr -d '[/ ]' | sed 's/\..*//'` 95 MACHDEP="$ac_md_system$ac_md_release" 96 fi 97 case MACHDEP in 98 '') MACHDEP=unknown;; 99 esac 100fi 101 102AC_MSG_RESULT($MACHDEP) 103 104dnl choose compiler 105AC_PROG_CC 106AC_PROG_CPP 107AC_PROG_INSTALL 108dnl common stuff, unlikely to be changed 109SHELL="/bin/sh" 110RM="rm -rf" 111 112dnl Default defines -- some systems may need special handling here 113dnl We also map some system names to a more user-friendly and well-known version 114 115INCLUDES= 116 117PLATFORM_ID=$ac_sys_system 118PLATFORM="-DPDF_PLATFORM=\\\"\"$ac_sys_system\"\\\"" 119 120case $ac_sys_system in 121 dnl TODO: check if this is still true 122 dnl Our TIFF code currently requires special handling on AIX 123 aix*|AIX*) 124 DEFINES="$DEFINES -DAIX";; 125 126 cyg*|CYG*) DEFINES="$DEFINES -U_WIN32 -UWIN32 -U__WIN32__ -U_Windows";; 127 128 dnl HP needs option for ANSI mode if the HP compiler is used instead of gcc 129 hp*|HP*) 130 if test "$GCC" = ""; then 131 DEFINES="$DEFINES -Ae" 132 fi;; 133 134 dnl The OSF JNI requires libraries to be built thread-safe, which is true 135 dnl for PDFlib 136 osf1*|OSF1*) 137 if test "$GCC" = ""; then 138 DEFINES="$DEFINES -pthread" 139 fi;; 140 141 SunOS*) 142 ac_sys_arch=`uname -p` 143 if test "$ac_sys_arch" = "i386" ; then 144 PLATFORM_ID="SunOS-i386" 145 PLATFORM="-DPDF_PLATFORM=\\\"\"sunOS\"\\\"" 146 fi 147 148 if test "$GCC" = ""; then 149 DEFINES="$DEFINES -xmemalign" 150 fi 151 ;; 152 153 dnl MacOS X doesn't seem to like -lm, and doesn't actually need it; 154 dnl libtool only works if --with-gnu-ld=yes is supplied, so we try 155 dnl to set it here already. 156 rhapsody|Rhapsody*) 157 PLATFORM="-DPDF_PLATFORM=\\\"\"Mac OS X Server\"\\\"" 158 with_gnu_ld=yes 159 MATHLIB="";; 160 161 darwin|Darwin*) 162 PLATFORM="-DPDF_PLATFORM=\\\"\"Mac OS X\"\\\"" 163 PLATFORM_ID="MacOSX" 164 with_gnu_ld=yes 165 MATHLIB="";; 166 167 dnl TODO: add sparc, ... 168 linux|Linux*) 169 ac_sys_arch=`uname -m` 170 if test "$ac_sys_arch" = "s390" ; then 171 PLATFORM_ID="zSeries-Linux" 172 PLATFORM="-DPDF_PLATFORM=\\\"\"ZSeries Linux\"\\\"" 173 fi 174 if test "$ac_sys_arch" = "ppc" ; then 175 PLATFORM_ID="ppc-Linux" 176 PLATFORM="-DPDF_PLATFORM=\\\"\"ppc Linux\"\\\"" 177 fi 178 # neccesary to be compatible with glibc 2.3.2 on RH 9 179 if test "$ac_sys_arch" = "i686" ; then 180 DEFINES="$DEFINES -D__NO_CTYPE" 181 fi 182 if test "$ac_sys_arch" = "ia64" ; then 183 PLATFORM_ID="Linux-ia64" 184 PLATFORM="-DPDF_PLATFORM=\\\"\"Linux-ia64\"\\\"" 185 fi 186 ;; 187 188 189 FreeBSD) 190 tmp_vers=`uname -r` 191 case $tmp_vers in 192 5.*) 193 PLATFORM="-DPDF_PLATFORM=\\\"\"FreeBSD5\"\\\"" ;; 194 esac 195 ;; 196 197 OpenBSD) 198 tmp_vers=`uname -r` 199 if test "$tmp_vers" = "3.4" ; then 200 PLATFORM="-DPDF_PLATFORM=\\\"\"OpenBSD34\"\\\"" 201 fi 202 ;; 203 204 dnl OS/390 specials 205 *OS/390*) 206 DEFINES="$DEFINES -DOS390" 207 CC=c89 208 LD=c89 209 PLATFORM_ID=OS390 210 PLATFORM="-DPDF_PLATFORM=\\\"\"zSeries USS\"\\\"" 211 # add special compile options for java2 on s390 212 set X `java -version 2>&1 | grep '1.3.'` && \ 213 DEFINES="$DEFINES -W \"c,langlvl(extended)\" -W \"c,float(ieee)\"" 214 ;; 215 216 *) ;; 217esac 218 219GENERATED_FILES="" 220 221dnl select debugging configuration 222WITH_DEBUG=no 223 224dnl add special compileoptions for xplink 225WITH_XPLINK=no 226AC_ARG_ENABLE(xplink, [ --enable-xplink turn on xplink linking], 227if test "$enableval" = "yes" ; then 228 WITH_XPLINK=yes 229fi) 230 231if test "$WITH_XPLINK" = "yes"; then 232 case $ac_sys_system in 233 *OS/390*) 234 DEFINES="-W \"c,xplink\" -W \"l,xplink\" -1 -W c,expo,dll -W c,GONUM $DEFINES" 235 ;; 236 *) ;; 237 esac 238fi 239 240dnl We hope to build shared libraries on this platform 241WITH_SHARED=yes 242 243WITH_PROFILE=no 244 245AC_ARG_ENABLE(debug, [ --enable-debug turn on debugging], 246if test "$enableval" = "yes" ; then 247 WITH_DEBUG=yes 248fi) 249 250AC_ARG_ENABLE(profile, [ --enable-profile turn on profiling], 251if test "$enableval" = "yes" ; then 252 WITH_PROFILE=yes 253fi) 254 255AC_EXEEXT 256AC_OBJEXT 257 258dnl Prepare libtool 259dnl Required for dlopening our libraries, as done in the language interpreters. 260 261AC_LIBTOOL_DLOPEN 262AC_LIBTOOL_WIN32_DLL 263AC_PROG_LIBTOOL 264 265AC_SUBST(PLATFORM_ID) 266AC_SUBST(SHELL) 267AC_SUBST(EXEEXT) 268AC_SUBST(OBJEXT) 269AC_SUBST(VERSION) 270AC_SUBST(CC) 271AC_SUBST(RM) 272 273# -------------------------------------------------------------------- 274# PDFlib Java binding (JNI) 275# -------------------------------------------------------------------- 276 277WITH_JAVA=yes 278JAVAINCLUDE="" 279JAVAPACKAGE="" 280 281AC_ARG_WITH(java,[ --with-java=path full path of Java Developers Kit, or no],[ 282case $withval in 283 no) WITH_JAVA=no ;; 284 yes) WITH_JAVA=yes ;; 285 *) JAVAPACKAGE=$withval 286 ;; 287esac 288]) 289 290if test "$WITH_JAVA" != "no" ; then 291 WITH_JAVA=no 292 AC_MSG_CHECKING(for Java header files) 293 294 # try without any precautions 295 AC_TRY_CPP([#include <jni.h>], WITH_JAVA=yes, 296 [ dirs="$prefix /usr/lib/java /usr/java /usr/java/jdk1.4 /usr/lib/jdk1.4 /opt/java1.4 /usr/lpp/java/J1.4 /usr/java/jdk1.4 /usr/lib/jdk1.4 /usr/jdk14 /jdk1.4 /usr/java/jdk1.3 /usr/include/java /usr/local/java /usr/local/include/kaffe /usr/lib/jdk1.3 /opt/java1.3 /usr/lpp/java/J1.3 /usr/java/jdk1.2 /usr/lib/jdk1.2.2 /usr/lib/jdk1.2.1 /usr/jdk122 /usr/lib/jdk122 /usr/lib/jdk1.2.1 /opt/java1.2 /usr/lpp/java/J1.2 /usr/lib/jdk1.1.8 /usr/jdk118 /usr/lib/jdk118 /usr/lpp/java/J1.1 /opt/java1.1 /usr /opt/local /jdk1.3 /jdk1.2.3 /jdk1.2.2 /jdk1.2.1 /System/Library/Frameworks/JavaVM.framework/Headers /usr/jdk_base/include" 297 298 if test "$JAVAPACKAGE" != ""; then 299 dirs="$JAVAPACKAGE $dirs" 300 fi 301 302 # now try to find jni.h 303 for i in $dirs ; do 304 if test -r $i/jni.h; then 305 JAVAINCLUDE="$i" 306 break 307 elif test -r $i/include/jni.h; then 308 JAVAINCLUDE="$i/include" 309 break 310 fi 311 done 312 ]) 313 314 # now try with an include path 315 if test "$JAVAINCLUDE" != ""; then 316 OCPPFLAGS="$CPPFLAGS" 317 CPPFLAGS="-I$JAVAINCLUDE $OCPPFLAGS" 318 AC_TRY_CPP([#include <jni.h>], [ 319 WITH_JAVA=yes 320 JAVAINCLUDE="-I$JAVAINCLUDE" 321 ],) 322 CPPFLAGS="$OCPPFLAGS" 323 fi 324 325 # if the above didn't work probably jni_md.h is missing 326 if test "WITH_JAVA" != "yes" ; then 327 if test "$JAVAINCLUDE" != ""; then 328 subdirs="$JAVAINCLUDE $JAVAINCLUDE/$MACHDEP $JAVAINCLUDE/$ac_md_system $JAVAINCLUDE/solaris $JAVAINCLUDE/genunix $JAVAINCLUDE/alpha $JAVAINCLUDE/win32 $JAVAINCLUDE/mvs $JAVAINCLUDE/irix" 329 for i in $subdirs ; do 330 if test -r $i/jni_md.h; then 331 JAVAINCLUDE="-I$JAVAINCLUDE -I$i" 332 WITH_JAVA=yes 333 break 334 fi 335 done 336 fi 337 fi 338 339 if test "$WITH_JAVA" = "no"; then 340 AC_MSG_RESULT(not found) 341 else 342 AC_MSG_RESULT($JAVAINCLUDE) 343 AC_SUBST(JAVAINCLUDE) 344 fi 345 346fi 347 348# ---------------------------------------------------------------- 349# PDFlib Perl binding 350# ---------------------------------------------------------------- 351 352WITH_PERL=yes 353PERLBIN=nope 354PERLINCLUDE=nope 355 356AC_ARG_WITH(perl,[ --with-perl=path full path of Perl executable, or no],[PERLBIN="$withval"],[PERLBIN=nope]) 357 358if test "$PERLBIN" = "no" ; then 359 WITH_PERL=no 360fi 361 362AC_ARG_WITH(perlincl,[ --with-perlincl=path full path of Perl include directory],[PERLINCLUDE="$withval"],[PERLINCLUDE=nope]) 363 364if test "$WITH_PERL" = "yes" ; then 365 366 WITH_PERL=no 367 dnl First figure out what the name of Perl is 368 if test "$PERLBIN" = "nope"; then 369 AC_CHECK_PROGS(PERL, perl perl5.7.0 perl5.6.0 perl5.005 perl5.004 perl5.003 perl5.002 perl5.001 perl5, nope) 370 else 371 PERL="$PERLBIN" 372 fi 373 AC_MSG_CHECKING(for Perl header file) 374 if test "$PERL" != "nope"; then 375 PERL5DIR=`($PERL -e 'use Config; print $Config{archlib};') 2>/dev/null` 376 if test "$PERL5DIR" != ""; then 377 if test "$PERLINCLUDE" = "nope"; then 378 if test -r "$PERL5DIR/perl.h"; then 379 AC_MSG_RESULT(PERL5DIR/perl.h) 380 WITH_PERL=yes 381 PERLINCLUDE="$PERL5DIR" 382 elif test -r "$PERL5DIR/CORE/perl.h"; then 383 AC_MSG_RESULT($PERL5DIR/CORE/perl.h) 384 WITH_PERL=yes 385 PERLINCLUDE="$PERL5DIR/CORE" 386 fi 387 else 388 WITH_PERL=yes 389 AC_MSG_RESULT($PERLINCLUDE) 390 fi 391 if test "$PERLINCLUDE" = "nope"; then 392 AC_MSG_RESULT(could not locate perl.h...) 393 WITH_PERL=no 394 fi 395 else 396 AC_MSG_RESULT(unable to determine Perl configuration) 397 WITH_PERL=no 398 fi 399 400 PERLLIBDIR=`($PERL -e 'use Config; print $Config{sitearchexp};') 2>/dev/null` 401 if test -z "$PERLLIBDIR" -o ! -d "$PERLLIBDIR"; then 402 AC_MSG_RESULT( unable to determine perl shared library directory) 403 fi 404 405 else 406 AC_MSG_RESULT(could not figure out how to run perl) 407 PERLINCLUDE="/usr/local/lib/perl5/5.6.0/archname/CORE" 408 fi 409 410 dnl The Perl include files contain special handling for the bool type 411 dnl on NeXT (sigh). We'll run into trouble if we don't work around this. 412 413 case $ac_sys_system in 414 NeXT|next) PERLBOOLDEF="";; 415 *) PERLBOOLDEF="-Dbool=char -DHAS_BOOL";; 416 esac 417 418 dnl Some platforms require linking the perl library directly. 419 dnl We use $PERLINCLUDE for this since it both contains the Perl library 420 dnl _and_ the include files. Other systems don't explicitly link the 421 dnl Perl library. 422 dnl $MATHLIB comes from EXTERNALLIBS if needed 423 424 case $ac_sys_system/$ac_sys_release in 425 hp*|HP*) PERLLINK="";; 426 cyg*|CYG*) PERLLINK="-L$PERLINCLUDE -lperl $PERLLINK";; 427 aix*|AIX*) PERLLINK="-L$PERLINCLUDE -lperl $PERLLINK";; 428 osf1*|OSF1*) PERLLINK="-L$PERLINCLUDE -lperl $PERLLINK";; 429 darwin|Darwin*) PERLLINK="-L$PERLINCLUDE -lperl $PERLLINK";; 430 *) ;; 431 esac 432 433 PERLINCLUDE="-I$PERLINCLUDE" 434 AC_SUBST(PERLINCLUDE) 435 AC_SUBST(PERLLIBDIR) 436 AC_SUBST(PERLBOOLDEF) 437 AC_SUBST(PERLLINK) 438 AC_SUBST(PERL) 439fi 440 441# ---------------------------------------------------------------- 442# PDFlib Python binding 443# ---------------------------------------------------------------- 444 445WITH_PYTHON=yes 446PYINCLUDE=nope 447PYPACKAGE=nope 448 449AC_ARG_WITH(py,[ --with-py=path full path of Python root directory, or no],[PYPACKAGE="$withval"], [PYPACKAGE=nope]) 450 451if test "$PYPACKAGE" = "no" ; then 452 WITH_PYTHON=no 453fi 454 455AC_ARG_WITH(pyincl,[ --with-pyincl=path full path of Python include directory],[PYINCLUDE="$withval"], [PYINCLUDE=nope]) 456 457if test "$PYINCLUDE" = "nope" -a "$PYPACKAGE" != "no"; then 458 PYINCLUDE="$PYPACKAGE/include" 459fi 460 461if test "$WITH_PYTHON" != "no" ; then 462 WITH_PYTHON=no 463 AC_MSG_CHECKING(for Python header files) 464 465 dirs="$PYINCLUDE \ 466 $PYINCLUDE/python2.3 \ 467 $prefix/include/python2.3 \ 468 /usr/local/include/python2.3 \ 469 /usr/include/python2.3 \ 470 $prefix/include/python2.3 \ 471 $PYINCLUDE/python2.2 \ 472 $prefix/include/python2.2 \ 473 /usr/local/include/python2.2 \ 474 /usr/include/python2.2 \ 475 $prefix/include/python2.2 \ 476 $PYINCLUDE/python2.1 \ 477 $prefix/include/python2.1 \ 478 /usr/local/include/python2.1 \ 479 /usr/include/python2.1 \ 480 $prefix/include/python2.1 \ 481 $PYINCLUDE/python2.0 \ 482 $prefix/include/python2.0 \ 483 /usr/local/include/python2.0 \ 484 /usr/include/python2.0 \ 485 $prefix/include/python2.0 \ 486 $PYINCLUDE/python1.6 \ 487 $prefix/include/python1.6 \ 488 /usr/local/include/python1.6 \ 489 /usr/include/python1.6 \ 490 $prefix/include/python1.6 \ 491 $PYINCLUDE/python1.5 \ 492 $prefix/include/python1.5 \ 493 /usr/local/include/python1.5 \ 494 /usr/include/python1.5 \ 495 $prefix/include/python1.5 \ 496 $PYINCLUDE/python1.4 \ 497 $prefix/include/python1.4 \ 498 /usr/local/include/python1.4 \ 499 /usr/include/python1.4 \ 500 $prefix/include/python1.4" 501 for i in $dirs ; do 502 if test -r $i/Python.h; then 503 AC_MSG_RESULT($i) 504 PYINCLUDE="-I$i" 505 WITH_PYTHON=yes 506 break 507 fi 508 done 509 if test "$PYINCLUDE" = "nope" -o "$PYINCLUDE" = "$PYPACKAGE/include"; then 510 AC_MSG_RESULT(not found) 511 WITH_PYTHON=no 512 fi 513 514 AC_SUBST(PYINCLUDE) 515 516 AC_CHECK_PROGS(PYTHONBIN, python, nope) 517 518 if test "$PYTHONBIN" = "nope" ; then 519 WITH_PYTHON=no 520 fi 521 522 if test "$WITH_PYTHON" = "yes" ; then 523 AC_MSG_CHECKING(for Python shared library path) 524 525 if test "$PYTHONBIN" = "nope" ; then 526 WITH_PYTHON=no 527 else 528 PYTHONLIBDIR=`cat << EOF | python 529import sys 530import string 531print string.join(filter(lambda x: -1 != string.find(x, 'dynload'), sys.path)) 532EOF 533` 534 if test "$PYTHONLIBDIR" = "" ; then 535 PYTHONLIBDIR=/usr/lib 536 fi 537 AC_SUBST(PYTHONLIBDIR) 538 539 fi 540 541 AC_MSG_RESULT($PYTHONLIBDIR) 542 fi 543fi 544 545# -------------------------------------------------------------------- 546# PDFlib Tcl binding 547# -------------------------------------------------------------------- 548 549WITH_TCL=yes 550TCLINCLUDE=nope 551TCLPACKAGEDIR=nope 552TCLBIN=nope 553 554AC_ARG_WITH(tcl,[ --with-tcl=path full path of Tcl executable, or no],[TCLBIN="$withval"]) 555 556if test "$TCLBIN" = "no" ; then 557 WITH_TCL=no 558fi 559 560AC_ARG_WITH(tclpkg,[ --with-tclpkg=path full path of Tcl package install directory],[TCLPACKAGEDIR="$withval"],[TCLPACKAGEDIR=nope]) 561 562AC_ARG_WITH(tclincl,[ --with-tclincl=path full path of Tcl include directory],[TCLINCLUDE="$withval"],[TCLINCLUDE=nope]) 563 564if test "$WITH_TCL" = "yes" ; then 565 WITH_TCL=no 566 AC_MSG_CHECKING(for Tcl header files) 567 568 if test "$TCLINCLUDE" = "nope"; then 569 AC_TRY_CPP([#include <tcl.h>], , TCLINCLUDE="nope") 570 if test "$TCLINCLUDE" = "nope"; then 571 dirs="$prefix/include /usr/local/include /usr/include /opt/local/include /home/sci/local/include /usr/pkg/include /System/Library/Frameworks/Tcl.framework/Versions/8.3/Headers /System/Library/Frameworks/Tcl.framework/Versions/8.2/Headers" 572 for i in $dirs ; do 573 if test -r $i/tcl.h; then 574 AC_MSG_RESULT($i) 575 TCLINCLUDE="$i" 576 WITH_TCL=yes 577 break 578 fi 579 done 580 fi 581 582 if test "$TCLINCLUDE" = "nope"; then 583 AC_MSG_RESULT(not found) 584 WITH_TCL=no 585 fi 586 else 587 AC_MSG_RESULT($TCLINCLUDE) 588 fi 589 590 dnl We need at least Tcl 8.0 because of its support for binary strings 591 dnl and the object interface. 592 593 if test "$TCLINCLUDE" != "nope" -a "$TCLBIN" = "nope"; then 594 AC_CHECK_PROGS(TCL, tclsh tclsh8.4 tclsh8.3 tclsh8.2 tclsh8.1 tclsh8.0, nope) 595 TCLBIN=$TCL 596 fi 597 598 if test "$TCLINCLUDE" = "nope" -o "$TCLBIN" = "nope"; then 599 WITH_TCL=no 600 else 601 dnl Check the installed Tcl version -- must be 8.0 or higher 602 TCLVERSION=`echo "puts [[info tclversion]]" | $TCLBIN` 603 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 604 AC_MSG_RESULT([ Tcl version 8.0 or newer is required for PDFlib.]) 605 AC_MSG_RESULT([ PDFlib support for Tcl will not be built.]) 606 WITH_TCL=no 607 else 608 if test "$TCLVERSION" = "8.0" -o "$TCLVERSION" = "8.1"; then 609 AC_MSG_RESULT([ The PDFlib build process requires Tcl 8.2 or above. Please read]) 610 AC_MSG_RESULT([ bind/tcl/readme.txt for instructions on manually building PDFlib]) 611 AC_MSG_RESULT([ for Tcl 8.0 or 8.1.]) 612 fi 613 614 if test "$TCLPACKAGEDIR" = "nope"; then 615 dnl Let tcl decide where to install the package 616 TCLPACKAGEDIR=`(echo "puts \\$auto_path" | "$TCLBIN" | awk '{print $1}') 2>/dev/null` 617 fi 618 619 if test "$TCLPACKAGEDIR" = "nope" -o -z "$TCLPACKAGEDIR" -o ! -d "$TCLPACKAGEDIR"; then 620 AC_MSG_RESULT(unable to determine Tcl package directory) 621 WITH_TCL=no 622 623 else 624 625 TCLPACKAGEDIR=$TCLPACKAGEDIR/pdflib 626 WITH_TCL=yes 627 fi 628 fi 629 fi 630fi 631 632TCLINCLUDE="-I$TCLINCLUDE" 633AC_SUBST(TCLINCLUDE) 634AC_SUBST(TCLPACKAGEDIR) 635AC_SUBST(TCLBIN) 636 637# ---------------------------------------------------------------- 638# PDFlib/PSP auxiliary libraries: 639# We support only our own copy of tifflib, libpng and zlib 640# pdcore is needed in all configurations 641# ---------------------------------------------------------------- 642 643# The list of Makefile targets for our internal libraries 644# pdcore is always needed 645PHP_PDFLIBS="$PDFPWD/libs/pdflib/p_basic.lo" 646 647PDCORELIBINC="-I\$(top_builddir)/libs/pdcore" 648PDCORELIBLINK="\$(top_builddir)/libs/pdcore/libpdcore\$(LA)" 649PHP_PDFLIBS="$PHP_PDFLIBS $PDFPWD/libs/pdcore/libpdcore.la" 650LIBTARGETS="$LIBTARGETS pdcore" 651BINDTARGETS="" 652PROGTARGETS="" 653 654AC_SUBST(PDCORELIBINC) 655AC_SUBST(PDCORELIBLINK) 656 657# zlib 658if test -d libs/flate ; then 659 FLATELIBINC="-I\$(top_builddir)/libs/flate" 660 FLATELIBLINK="\$(top_builddir)/libs/flate/libz\$(LA)" 661 PHP_PDFLIBS="$PHP_PDFLIBS $PDFPWD/libs/flate/libz.la" 662 LIBTARGETS="$LIBTARGETS flate" 663else 664 FLATELIBINC="" 665 FLATELIBLINK="" 666fi 667AC_SUBST(FLATELIBLINK) 668AC_SUBST(FLATELIBINC) 669 670# pnglib 671if test -d libs/png ; then 672 PNGLIBINC="-I\$(top_builddir)/libs/png" 673 PNGLIBLINK="\$(top_builddir)/libs/png/libpng\$(LA)" 674 PHP_PDFLIBS="$PHP_PDFLIBS $PDFPWD/libs/png/libpng.la" 675 LIBTARGETS="$LIBTARGETS png" 676else 677 PNGLIBINC="" 678 PNGLIBLINK="" 679fi 680AC_SUBST(PNGLIBINC) 681AC_SUBST(PNGLIBLINK) 682 683# tifflib 684if test -d libs/tiff ; then 685 AC_C_BIGENDIAN() 686 TIFFLIBINC="-I\$(top_builddir)/libs/tiff" 687 TIFFLIBLINK="\$(top_builddir)/libs/tiff/libtiff\$(LA)" 688 PHP_PDFLIBS="$PHP_PDFLIBS $PDFPWD/libs/tiff/libtiff.la" 689 LIBTARGETS="$LIBTARGETS tiff" 690else 691 TIFFLIBINC="" 692 TIFFLIBLINK="" 693fi 694AC_SUBST(TIFFLIBINC) 695AC_SUBST(TIFFLIBLINK) 696 697# jpeglib 698#if test -d libs/jpeg6 ; then 699# AC_C_BIGENDIAN() 700# JPEGLIBINC="-I\$(top_builddir)/libs/jpeg6" 701# JPEGLIBLINK="\$(top_builddir)/libs/jpeg6/libjpeg\$(LA)" 702# PHP_PDFLIBS="$PHP_PDFLIBS $PDFPWD/libs/jpeg6/libjpeg6.la" 703# LIBTARGETS="$LIBTARGETS jpeg6" 704#else 705 JPEGLIBINC="" 706 JPEGLIBLINK="" 707#fi 708AC_SUBST(JPEGLIBINC) 709AC_SUBST(JPEGLIBLINK) 710 711 712# ---------------------------------------------------------------- 713# PDFlib auxiliary library: PDI (PDF import library) 714# ---------------------------------------------------------------- 715 716WITH_PDI=no 717 718AC_MSG_CHECKING(for PDF import library PDI) 719 720if test -d libs/pdi ; then 721 WITH_PDI=yes 722 dnl PDI must be in front because it needs zlib and pdcore 723 PDILIBINC="-I\$(top_builddir)/libs/pdi" 724 PDILIBLINK="\$(top_builddir)/libs/pdi/libpdi\$(LA)" 725 PHP_PDFLIBS="$PHP_PDFLIBS $PDFPWD/libs/pdi/libpdi.la" 726 727 LIBTARGETS="$LIBTARGETS pdi" 728 PROGTARGETS="$PROGTARGETS pdi" 729 AC_MSG_RESULT(found) 730else 731 PDILIBINC="" 732 PDILIBLINK="" 733 AC_MSG_RESULT(not found) 734fi 735AC_SUBST(PDILIBINC) 736AC_SUBST(PDILIBLINK) 737 738# ---------------------------------------------------------------- 739# PDFlib main library: not needed for PSP 740# ---------------------------------------------------------------- 741 742dnl PDFLIBCONVENIENT contains all convenient libs to build shared libs 743dnl like PDFlib, and the wrapper libraries. 744dnl PDFLIBLINK contains the files needed to link a program against PDFlib 745dnl PDFLIB_LINK contains the files convenient lib 746dnl PHP_PDFLIBS contains all libs needed for linking PHP (with ABS paths) 747dnl EXTERNALLIBS contains extra libs to be added (i.e. -lm) 748 749EXTERNALLIBS="$MATHLIB" 750 751WITH_PDFLIB=no 752 753AC_MSG_CHECKING(for PDFlib base library pdflib) 754 755if test -d libs/pdflib ; then 756 WITH_PDFLIB=yes 757 PDFLIBINC="-I\$(top_builddir)/libs/pdflib" 758 PDFLIBLINK="\$(top_builddir)/libs/pdflib/lib$PDFLIBNAME\$(LA)" 759 PDFLIB_LINK="\$(top_builddir)/libs/pdflib/libpdf_\$(LA)" 760 PHP_PDFLIBS="$PHP_PDFLIBS $PDFPWD/libs/pdflib/libpdf_.la" 761 LIBTARGETS="$LIBTARGETS pdflib" 762 BINDTARGETS="$BINDTARGETS pdflib" 763 PROGTARGETS="$PROGTARGETS pdflib" 764 AC_MSG_RESULT(found) 765else 766 PDFLIBINC="" 767 PDFLIBLINK="" 768 PDFLIB_LINK="" 769 PDFLIBCONVENIENT="" 770 AC_MSG_RESULT(not found) 771fi 772 773AC_SUBST(PDFLIBCONVENIENT) 774AC_SUBST(PDFLIBINC) 775AC_SUBST(PDFLIBLINK) 776AC_SUBST(PDFLIB_LINK) 777 778 779# ---------------------------------------------------------------- 780# PDFlib auxiliary library: PSP (Pretty Safe PDF) 781# ---------------------------------------------------------------- 782 783WITH_PSP=no 784PSPLIBINC="" 785PSPLIBLINK="" 786PSPLIB_LINK="" 787 788AC_MSG_CHECKING(for PDFlib PSP (Pretty Safe PDF)) 789 790if test -d libs/psp ; then 791 WITH_PSP=yes 792 AC_ARG_WITH(PSP,[ --without-PSP don't include PSP (Pretty Safe PDF)],[WITH_PSP="$withval"]) 793 if test "$WITH_PSP" = "yes"; then 794 LIBTARGETS="$LIBTARGETS psp" 795 BINDTARGETS="$BINDTARGETS psp" 796 PROGTARGETS="$PROGTARGETS psp" 797 PSPLIBINC="-I\$(top_builddir)/libs/psp" 798 PSPLIBLINK="\$(top_builddir)/libs/psp/libpsp\$(LA)" 799 PSPLIB_LINK="\$(top_builddir)/libs/psp/libpsp_\$(LA)" 800 AC_MSG_RESULT(found) 801 else 802 AC_MSG_RESULT(not used) 803 fi 804else 805 AC_MSG_RESULT(not found) 806fi 807AC_SUBST(PSPLIBINC) 808AC_SUBST(PSPLIBLINK) 809AC_SUBST(PSPLIB_LINK) 810 811# ---------------------------------------------------------------- 812# PDFlib auxiliary library: TET 813# ---------------------------------------------------------------- 814 815WITH_TET=no 816TETLIBINC="" 817TETLIBLINK="" 818TETLIB_LINK="" 819 820AC_MSG_CHECKING(for PDFlib TET) 821 822if test -d libs/tet ; then 823 WITH_TET=yes 824 AC_ARG_WITH(TET,[ --without-TET don't include TET],[WITH_TET="$withval"]) 825 if test "$WITH_TET" = "yes"; then 826 LIBTARGETS="$LIBTARGETS tet" 827 PROGTARGETS="$PROGTARGETS tet" 828 TETLIBINC="-I\$(top_builddir)/libs/tet" 829 TETLIBLINK="\$(top_builddir)/libs/tet/libtet\$(LA)" 830 TETLIB_LINK="\$(top_builddir)/libs/tet/libtet_\$(LA)" 831 AC_MSG_RESULT(found) 832 else 833 AC_MSG_RESULT(not used) 834 fi 835else 836 AC_MSG_RESULT(not found) 837fi 838AC_SUBST(TETLIBINC) 839AC_SUBST(TETLIBLINK) 840AC_SUBST(TETLIB_LINK) 841 842# ---------------------------------------------------------------- 843# PDFlib auxiliary library: PDU 844# ---------------------------------------------------------------- 845# 846WITH_PDU=no 847PDULIBINC="" 848PDULIBLINK="" 849 850AC_MSG_CHECKING(for PDFlib PDU) 851 852if test -d libs/pdu ; then 853 WITH_PDU=yes 854 AC_ARG_WITH(PDU,[ --without-PDU don't include PDU],[WITH_PDU="$withval"]) 855 if test "$WITH_PDU" = "yes"; then 856 LIBTARGETS="$LIBTARGETS pdu" 857 PROGTARGETS="$PROGTARGETS pdu" 858 PDULIBINC="-I\$(top_builddir)/libs/pdu" 859 PDULIBLINK="\$(top_builddir)/libs/pdu/libpdu\$(LA)" 860 AC_MSG_RESULT(found) 861 else 862 AC_MSG_RESULT(not used) 863 fi 864else 865 AC_MSG_RESULT(not found) 866fi 867AC_SUBST(PDULIBINC) 868AC_SUBST(PDULIBLINK) 869 870# ---------------------------------------------------------------- 871# PDFlib auxiliary library: PDPAGE 872# ---------------------------------------------------------------- 873 874WITH_PDPAGE=no 875 876AC_MSG_CHECKING(for PDFlib PDPAGE) 877 878if test -d libs/pdpage ; then 879 if test "$WITH_TET" = "yes" ; then 880 WITH_PDPAGE=yes 881 fi 882fi 883if test "$WITH_PDPAGE" = "yes" ; then 884 LIBTARGETS="$LIBTARGETS pdpage" 885 PDPAGELIBINC="-I\$(top_builddir)/libs/pdpage" 886 PDPAGELIBLINK="\$(top_builddir)/libs/pdpage/libpdpage\$(LA)" 887 AC_MSG_RESULT(found) 888else 889 PDPAGELIBINC="" 890 PDPAGELIBLINK="" 891 AC_MSG_RESULT(not found) 892fi 893AC_SUBST(PDPAGELIBINC) 894AC_SUBST(PDPAGELIBLINK) 895 896# ---------------------------------------------------------------- 897# PDFlib/PSP PHP binding 898# ---------------------------------------------------------------- 899 900if test -f bind/pdflib/php/Makefile.frag.in ; then 901 GENERATED_FILES="$GENERATED_FILES bind/pdflib/php/Makefile.frag" 902fi 903if test -f bind/psp/php/Makefile.frag.in ; then 904 GENERATED_FILES="$GENERATED_FILES bind/psp/php/Makefile.frag" 905fi 906 907# -------------------------------------------------------------------- 908# PDFlib C++ language binding 909# -------------------------------------------------------------------- 910 911WITH_CXX=yes 912 913STDCPP="" 914 915AC_ARG_ENABLE(cxx,[ --enable-cxx enable C++ language binding [default=no]], WITH_CXX=$enableval) 916 917if test "$WITH_CXX" = "yes"; then 918 AC_LANG_CPLUSPLUS 919 AC_PROG_CXX 920 AC_MSG_CHECKING(whether the previously found C++ compiler works) 921 AC_TRY_COMPILE(, [class a { int b; } ], WITH_CXX=yes, WITH_CXX=no) 922 AC_LANG_C 923 924 case $ac_sys_system/$ac_sys_release in 925 osf1*|OSF1*) STDCPP="";; 926 927 *) dnl don't change $WITH_CXX 928 ;; 929 esac 930 931 dnl If working with gcc add the name of the stdc++ library 932 if test "x$GCC" != "x"; then 933 STDCPP="-lstdc++" 934 fi 935 936 if test "$WITH_CXX" = "yes"; then 937 AC_SUBST(STDCPP) 938 AC_SUBST(CXX) 939 AC_MSG_RESULT(yes) 940 else 941 AC_MSG_RESULT(no) 942 fi 943fi 944 945# ---------------------------------------------------------------- 946# PDFlib wrapup 947# ---------------------------------------------------------------- 948 949dnl The following variables are used to tell the Makefile what to 950dnl actually do, depending on the available language bindings. 951dnl PDFlib itself will be built and installed by default, regardless 952dnl of the settings below. 953 954dnl PDI must be in front because it needs zlib and pdcore 955if test "$PLATFORM_ID" = "MacOSX"; then 956 INCLUDES="$INCLUDES -I/Developer/Headers/FlatCarbon" 957 LDFLAGS="$LDFLAGS -framework CoreServices -framework ApplicationServices" 958fi 959 960dnl pedantic warnings ?? 961WITHPEDANTIC=no 962AC_ARG_ENABLE(pedantic,[ --enable-pedantic enable pedantic warnings (gcc only)]], WITHPEDANTIC=$enableval) 963if test "$WITHPEDANTIC" = "yes"; then 964 dnl If working with gcc and we want pedantic 965 if test "x$GCC" != "x"; then 966 PDFPEDANTIC="-Wall -pedantic -Wcast-align -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wredundant-decls -Wshadow -Wpointer-arith" 967 AC_SUBST(PDFPEDANTIC) 968 fi 969fi 970 971BINDINGS="c" 972PSPBINDINGS="c" 973 974if ${CONFIG_SHELL-/bin/sh} ./libtool --features | grep "disable shared" >/dev/null; then 975 WITH_SHARED=no 976fi 977 978dnl Building the language wrappers based on a shared PDFlib is no longer supported! 979if test "$WITH_SHARED" = "no"; then 980 WITH_JAVA=no 981 WITH_PERL=no 982 WITH_PYTHON=no 983 WITH_TCL=no 984fi 985 986if test "$WITH_CXX" = "yes" ; then 987 BINDINGS="$BINDINGS cpp" 988fi 989if test "$WITH_JAVA" = "yes" ; then 990 BINDINGS="$BINDINGS java" 991 PSPBINDINGS="$PSPBINDINGS java" 992fi 993if test "$WITH_PERL" = "yes" ; then 994 BINDINGS="$BINDINGS perl" 995fi 996if test "$WITH_PYTHON" = "yes" ; then 997 BINDINGS="$BINDINGS python" 998fi 999if test "$WITH_TCL" = "yes" ; then 1000 BINDINGS="$BINDINGS tcl" 1001fi 1002 1003if test -f ptf/Makefile ; then 1004 PTFDIR="ptf" 1005 GENERATED_FILES="$GENERATED_FILES ptf/src/dot/dot.pl" 1006fi 1007 1008if test "$WITH_DEBUG" = "yes"; then 1009 CFLAGS="$CFLAGS -DDEBUG" 1010fi 1011 1012if test "$WITH_PROFILE" = "yes"; then 1013 CFLAGS="$CFLAGS -pg" 1014 LDFLAGS="$LDFLAGS -pg" 1015fi 1016 1017DEFINES="$CFLAGS $DEFINES $INCLUDES $PLATFORM" 1018 1019dnl EXTERNALLIBS contains extra libs to be added (i.e. -lm) 1020EXTERNALLIBS="$LDFLAGS $EXTERNALLIBS" 1021 1022PDFLIBCONVENIENT="$PDFLIB_LINK \$(top_builddir)/libs/pdflib/p_basic\$(LO) $PDCORELIBLINK $PNGLIBLINK $FLATELIBLINK $TIFFLIBLINK $PDILIBLINK $JPEGLIBLINK" 1023 1024if test "$WITH_SHARED" = "no"; then 1025 dnl We can generate a static lib only, but not a shared 1026 RPATH="" 1027else 1028 dnl we generate both static and shared libs 1029 RPATH="-rpath \$(libdir) -version-info $LTVERSIONINFO" 1030 1031fi 1032 1033AC_SUBST(PHP_PDFLIBS) 1034AC_SUBST(LIBTARGETS) 1035AC_SUBST(BINDTARGETS) 1036AC_SUBST(PROGTARGETS) 1037AC_SUBST(BINDINGS) 1038AC_SUBST(PSPBINDINGS) 1039AC_SUBST(PTFDIR) 1040AC_SUBST(WITH_PDI) 1041AC_SUBST(LDFLAGS) 1042AC_SUBST(EXTERNALLIBS) 1043AC_SUBST(RPATH) 1044AC_SUBST(MATHLIB) 1045AC_SUBST(INCLUDES) 1046AC_SUBST(DEFINES) 1047AC_SUBST(DEFS) 1048AC_SUBST(WITH_SHARED) 1049 1050dnl ---------- Generate the Makefiles 1051 1052GENERATED_FILES="$GENERATED_FILES config/mkcommon.inc config/mkprogs.inc config/mklibs.inc config/mksubdirs.inc config/mkbind.inc pdflib-config" 1053 1054AC_OUTPUT([$GENERATED_FILES],[ 1055 chmod +x pdflib-config 1056]) 1057 1058if test "$WITH_SHARED" = "no" ; then 1059 AC_MSG_WARN([Can't create shared PDFlib libraries on this platform.]) 1060 AC_MSG_WARN([PDFlib will work when linked to a C or C++ program,]) 1061 AC_MSG_WARN([but other language bindings will be unavailable.]) 1062fi 1063 1064if test "$WITH_PSP" = "yes" ; then 1065AC_MSG_RESULT([_____________________________________________________________]) 1066AC_MSG_RESULT([For your convenience, here's a summary of configure's results:]) 1067AC_MSG_RESULT([Java language binding for PSP: $WITH_JAVA]) 1068AC_MSG_RESULT([PHP language binding for PSP: no, see bind/psp/php/readme.txt]) 1069fi 1070 1071if test "$WITH_PDFLIB" = "yes" ; then 1072AC_MSG_RESULT([_____________________________________________________________]) 1073AC_MSG_RESULT([For your convenience, here's a summary of configure's results:]) 1074AC_MSG_RESULT([]) 1075AC_MSG_RESULT([Support for shared libraries: $WITH_SHARED]) 1076AC_MSG_RESULT([C++ language binding for PDFlib: $WITH_CXX]) 1077AC_MSG_RESULT([Java language binding for PDFlib: $WITH_JAVA]) 1078AC_MSG_RESULT([Perl language binding for PDFlib: $WITH_PERL]) 1079AC_MSG_RESULT([Python language binding for PDFlib: $WITH_PYTHON]) 1080AC_MSG_RESULT([Tcl language binding for PDFlib: $WITH_TCL]) 1081AC_MSG_RESULT([PHP language binding for PDFlib: no, see bind/pdflib/php/readme.txt]) 1082 1083AC_MSG_RESULT([PDF import library (PDI): $WITH_PDI]) 1084if test "$WITH_PDI" = "no" ; then 1085 AC_MSG_RESULT([ Note: if you purchase the additional PDF import library (PDI)]) 1086 AC_MSG_RESULT([ you can also manipulate existing PDF documents with PDFlib.]) 1087 AC_MSG_RESULT([ The additional block feature can be used to personalize PDF.]) 1088 AC_MSG_RESULT([ See http://www.pdflib.com for details.]) 1089fi 1090fi 1091 1092AC_MSG_RESULT([]) 1093AC_MSG_RESULT([Please observe the licensing terms for commercial PDFlib usage.]) 1094AC_MSG_RESULT([PDFlib license agreement and purchase order can be found in the doc directory.]) 1095AC_MSG_RESULT([]) 1096