This is better way to configure. PDFlib 3/4 can be compiled with external libs too..

This commit is contained in:
foobar 2001-11-30 04:46:36 +00:00
parent 8d030236d6
commit 2b88417b8c
5 changed files with 102 additions and 146 deletions

View File

@ -1,2 +1,2 @@
PDF
Uwe Steinmann
Uwe Steinmann, Rainer Schaaf

View File

@ -1,7 +1,7 @@
LTLIBRARY_NAME = libpdf.la
LTLIBRARY_SOURCES = pdf.c
LTLIBRARY_SHARED_NAME = libpdf_php.la
LTLIBRARY_SHARED_NAME = pdf.la
LTLIBRARY_SHARED_LIBADD = $(PDFLIB_SHARED_LIBBADD)
include $(top_srcdir)/build/dynlib.mk

View File

@ -2,162 +2,122 @@ dnl
dnl $Id$
dnl
PHP_ARG_WITH(pdflib3,whether to include PDFlib3 support,
[ --with-pdflib3[=DIR] Include PDFlib3 support. DIR is the pdflib
base install directory, defaults to /usr/local
Set DIR to "shared" to build as dl, or "shared,DIR"
to build as dl and still specify DIR.])
if test "$PHP_PDFLIB3" != "no"; then
PHP_SUBST(PDFLIB3_SHARED_LIBADD)
PHP_EXTENSION(pdf, $ext_shared)
case $PHP_PDFLIB3 in
yes)
PHP_CHECK_LIBRARY(pdf, PDF_show_boxed, [
AC_DEFINE(HAVE_PDFLIB3,1,[ ])
],[
AC_MSG_ERROR([pdflib3 extension requires at least pdflib 3.x. You may also need libtiff and libjpeg. If so, use the options --with-tiff-dir=<DIR> and --with-jpeg-dir=<DIR>])
],[
-ltiff -ljpeg -lpng -lz
])
PHP_ADD_LIBRARY(pdf,, PDFLIB3_SHARED_LIBADD)
PHP_ADD_LIBRARY(tiff,, PDFLIB3_SHARED_LIBADD)
PHP_ADD_LIBRARY(png,, PDFLIB3_SHARED_LIBADD)
PHP_ADD_LIBRARY(jpeg,, PDFLIB3_SHARED_LIBADD)
PHP_ADD_LIBRARY(z,, PDFLIB3_SHARED_LIBADD)
;;
*)
test -f $PHP_PDFLIB3/include/pdflib.h && PDFLIB3_INCLUDE=$PHP_PDFLIB3/include
if test -n "$PDFLIB3_INCLUDE" ; then
if test "$PHP_ZLIB_DIR" = "no"; then
AC_MSG_ERROR([PDF extension requires ZLIB. Use --with-zlib-dir=<DIR>])
fi
PHP_ADD_LIBRARY_WITH_PATH(z, $PHP_ZLIB_DIR/lib, PDFLIB3_SHARED_LIBADD)
PHP_ARG_WITH(jpeg-dir, for the location of libjpeg,
[ --with-jpeg-dir[=DIR] PDFLIB3: define libjpeg install directory])
if test "$PHP_JPEG_DIR" != "no"; then
PHP_CHECK_LIBRARY(jpeg,jpeg_read_header,
[
PHP_ADD_LIBRARY_WITH_PATH(jpeg, $PHP_JPEG_DIR/lib, PDFLIB3_SHARED_LIBADD)
],[
AC_MSG_ERROR([libjpeg not found!])
],[
-L$PHP_JPEG_DIR/lib
])
else
AC_CHECK_LIB(jpeg,jpeg_read_header,
[
PHP_ADD_LIBRARY(jpeg,, PDFLIB3_SHARED_LIBADD)
],[
AC_MSG_RESULT(no, try --with-jpeg-dir=<DIR>)
])
fi
PHP_ARG_WITH(png-dir, for the location of libpng,
[ --with-png-dir[=DIR] PDFLIB3: define libpng install directory])
if test "$PHP_PNG_DIR" != "no"; then
PHP_CHECK_LIBRARY(png,png_create_info_struct,
[
PHP_ADD_LIBRARY_WITH_PATH(png, $PHP_PNG_DIR/lib, PDFLIB3_SHARED_LIBADD)
],[
AC_MSG_ERROR([libpng not found!])
],[
-L$PHP_PNG_DIR/lib
])
else
AC_CHECK_LIB(png,png_create_info_struct,
[
PHP_ADD_LIBRARY(png,, PDFLIB3_SHARED_LIBADD)
],[
AC_MSG_RESULT(no, try --with-png-dir=<DIR>)
])
fi
PHP_ARG_WITH(tiff-dir, for the location of libtiff,
[ --with-tiff-dir[=DIR] PDFLIB3: define libtiff install directory])
if test "$PHP_TIFF_DIR" != "no"; then
PHP_CHECK_LIBRARY(tiff,TIFFOpen,
[
PHP_ADD_LIBRARY_WITH_PATH(tiff, $PHP_TIFF_DIR/lib, PDFLIB3_SHARED_LIBADD)
],[
AC_MSG_ERROR([libtiff not found!])
],[
-L$PHP_TIFF_DIR/lib
])
else
AC_CHECK_LIB(tiff,TIFFOpen,
[
PHP_ADD_LIBRARY(tiff,, PDFLIB3_SHARED_LIBADD)
],[
AC_MSG_RESULT(no, Try --with-tiff-dir=<DIR>)
])
fi
PHP_CHECK_LIBRARY(pdf, PDF_show_boxed,
[
AC_DEFINE(HAVE_PDFLIB3,1,[ ])
PHP_ADD_LIBRARY_WITH_PATH(pdf, $PHP_PDFLIB3/lib, PDFLIB3_SHARED_LIBADD)
PHP_ADD_INCLUDE($PDFLIB3_INCLUDE)
],[
AC_MSG_ERROR([pdflib3 extension requires at least pdflib 3.x.])
],[
-L$PHP_PDFLIB3/lib
])
fi
;;
esac
fi
PHP_ARG_WITH(pdflib,whether to include PDFlib support,
[ --with-pdflib[=DIR] Include PDFlib 4.x support. DIR is the PDFlib
base install directory, defaults to /usr/local
Set DIR to "shared" to build as dl, or "shared,DIR"
to build as dl and still specify DIR.])
PHP_ARG_WITH(pdflib,for PDFlib support,
[ --with-pdflib[=DIR] Include PDFlib support.])
if test "$PHP_PDFLIB" != "no"; then
PHP_EXTENSION(pdf, $ext_shared)
PHP_SUBST(PDFLIB_SHARED_LIBADD)
case "$PHP_PDFLIB" in
dnl #
dnl # Optional libraries for PDFlib
dnl #
dnl # libjpeg
PHP_ARG_WITH(jpeg-dir, for the location of libjpeg,
[ --with-jpeg-dir[=DIR] PDFLIB: define libjpeg install directory. (OPTIONAL for PDFlib v4)])
if test "$PHP_JPEG_DIR" != "no"; then
PHP_CHECK_LIBRARY(jpeg,jpeg_read_header,
[
PHP_ADD_LIBRARY_WITH_PATH(jpeg, $PHP_JPEG_DIR/lib, PDFLIB_SHARED_LIBADD)
],[
AC_MSG_ERROR([libjpeg not found!])
],[
-L$PHP_JPEG_DIR/lib
])
else
AC_MSG_WARN([If configure fails, try --with-jpeg-dir=<DIR>])
fi
dnl # libpng
PHP_ARG_WITH(png-dir, for the location of libpng,
[ --with-png-dir[=DIR] PDFLIB: define libpng install directory. (OPTIONAL for PDFlib v4)])
if test "$PHP_PNG_DIR" != "no"; then
PHP_CHECK_LIBRARY(png,png_create_info_struct,
[
PHP_ADD_LIBRARY_WITH_PATH(png, $PHP_PNG_DIR/lib, PDFLIB_SHARED_LIBADD)
],[
AC_MSG_ERROR([libpng not found!])
],[
-L$PHP_PNG_DIR/lib
])
else
AC_MSG_WARN([If configure fails, try --with-png-dir=<DIR>])
fi
dnl # libtiff
PHP_ARG_WITH(tiff-dir, for the location of libtiff,
[ --with-tiff-dir[=DIR] PDFLIB: define libtiff install directory. (OPTIONAL for PDFlib v4)])
if test "$PHP_TIFF_DIR" != "no"; then
PHP_CHECK_LIBRARY(tiff,TIFFOpen,
[
PHP_ADD_LIBRARY_WITH_PATH(tiff, $PHP_TIFF_DIR/lib, PDFLIB_SHARED_LIBADD)
],[
AC_MSG_ERROR([libtiff not found!])
],[
-L$PHP_TIFF_DIR/lib
])
else
AC_MSG_WARN([If configure fails, try --with-tiff-dir=<DIR>])
fi
dnl # zlib
AC_MSG_CHECKING([for the location of zlib])
if test "$PHP_ZLIB_DIR" = "no"; then
AC_MSG_RESULT([no. If configure fails, try --with-zlib-dir=<DIR>])
else
AC_MSG_RESULT([$PHP_ZLIB_DIR])
PHP_ADD_LIBRARY_WITH_PATH(z, $PHP_ZLIB_DIR/lib, PDFLIB_SHARED_LIBADD)
fi
dnl #
dnl # The main PDFlib configure
dnl #
case $PHP_PDFLIB in
yes)
AC_CHECK_LIB(pdf, PDF_open_pdi, [
PHP_CHECK_LIBRARY(pdf, PDF_show_boxed, [
AC_DEFINE(HAVE_PDFLIB,1,[ ])
PHP_ADD_LIBRARY(pdf,, PDFLIB_SHARED_LIBADD)
],[
AC_MSG_ERROR([PDFlib extension requires at least PDFlib 4.x. To build with PDFlib 3.x you should use --with-pdflib3.])
AC_MSG_ERROR([
PDFlib extension requires at least pdflib 3.x. You may also need libtiff, libjpeg, libpng and libz.
Use the options --with-tiff-dir=<DIR>, --with-jpeg-dir=<DIR>, --with-png-dir=<DIR> and --with-zlib-dir=<DIR>
See config.log for more information.
])
],[
-ltiff -ljpeg -lpng -lz
])
;;
no)
;;
;;
*)
test -f $PHP_PDFLIB/include/pdflib.h && PDFLIB_INCLUDE="$PHP_PDFLIB/include"
if test -n "$PDFLIB_INCLUDE" ; then
PHP_CHECK_LIBRARY(pdf, PDF_open_pdi, [
AC_DEFINE(HAVE_PDFLIB,1,[ ])
if test -f "$PHP_PDFLIB/include/pdflib.h" ; then
PHP_CHECK_LIBRARY(pdf, PDF_show_boxed,
[
AC_DEFINE(HAVE_PDFLIB,1,[ ])
PHP_ADD_LIBRARY_WITH_PATH(pdf, $PHP_PDFLIB/lib, PDFLIB_SHARED_LIBADD)
PHP_ADD_INCLUDE($PDFLIB_INCLUDE)
PHP_ADD_INCLUDE($PHP_PDFLIB/include)
],[
AC_MSG_ERROR([PDFlib extension requires PDFlib 4.x.])
AC_MSG_ERROR([
PDFlib extension requires at least pdflib 3.x. You may also need libtiff, libjpeg, libpng and libz.
Use the options --with-tiff-dir=<DIR>, --with-jpeg-dir=<DIR>, --with-png-dir=<DIR> and --with-zlib-dir=<DIR>
See config.log for more information.
])
],[
-L$PHP_PDFLIB/lib
])
else
AC_MSG_ERROR([pdflib.h not found under $PHP_PDFLIB/include/])
AC_MSG_ERROR([pdflib.h not found! Check the path passed to --with-pdflib=<PATH>. PATH should be the install prefix directory.])
fi
;;
;;
esac
fi

View File

@ -52,7 +52,7 @@ static int le_gd;
#endif
/* }}} */
#if HAVE_PDFLIB || HAVE_PDFLIB3
#if HAVE_PDFLIB
#include "php_pdf.h"

View File

@ -21,12 +21,8 @@
#ifndef PHP_PDF_H
#define PHP_PDF_H
#if HAVE_PDFLIB || HAVE_PDFLIB3
#if HAVE_PDFLIB
/* with version 2.20 of pdflib PDF_open_mem isn't available unless
the following define isn't there.
*/
#define PDF_OPEN_MEM_SUPPORTED
#include <pdflib.h>
extern zend_module_entry pdf_module_entry;