Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
82 changes: 20 additions & 62 deletions ext/tidy/config.m4
Original file line number Diff line number Diff line change
@@ -1,69 +1,29 @@
PHP_ARG_WITH([tidy],
[for TIDY support],
[AS_HELP_STRING([[--with-tidy[=DIR]]],
[AS_HELP_STRING([--with-tidy],
[Include TIDY support])])

if test "$PHP_TIDY" != "no"; then
AS_VAR_IF([PHP_TIDY], [yes],
[TIDY_SEARCH_DIRS="/usr/local /usr"],
[TIDY_SEARCH_DIRS=$PHP_TIDY])
PKG_CHECK_MODULES([TIDY], [tidy])

for i in $TIDY_SEARCH_DIRS; do
for j in tidy tidyp; do
AS_IF([test -f $i/include/$j/$j.h], [
TIDY_DIR=$i
TIDY_INCDIR=$i/include/$j
TIDY_LIB_NAME=$j
break 2
],
[test -f $i/include/$j.h], [
TIDY_DIR=$i
TIDY_INCDIR=$i/include
TIDY_LIB_NAME=$j
break 2
])
done
done
PHP_EVAL_LIBLINE([$TIDY_LIBS], [TIDY_SHARED_LIBADD])
PHP_EVAL_INCLINE([$TIDY_CFLAGS])

AS_VAR_IF([TIDY_DIR],, [AC_MSG_ERROR([Cannot find libtidy])])
dnl We used to check for tidybuffio, but it seems almost everyone has moved
dnl to using the html5 tidy fork which uses that name.
dnl This also means the library name is 'tidy'.

dnl Check for tidybuffio.h (as opposed to simply buffio.h) which indicates
dnl that we are building against tidy-html5 and not the legacy htmltidy. The
dnl two are compatible, except for with regard to this header file.
AS_IF([test -f "$TIDY_INCDIR/tidybuffio.h"],
[AC_DEFINE([HAVE_TIDYBUFFIO_H], [1],
[Define to 1 if you have the <tidybuffio.h> header file.])])
PHP_CHECK_LIBRARY(tidy,tidyOptGetDoc,
[
AC_DEFINE(HAVE_TIDYOPTGETDOC,1,[ ])
], [], [])
PHP_CHECK_LIBRARY(tidy, tidyReleaseDate,
[
AC_DEFINE(HAVE_TIDYRELEASEDATE,1,[ ])
], [], [])

TIDY_LIBDIR=$TIDY_DIR/$PHP_LIBDIR
AS_VAR_IF([TIDY_LIB_NAME], [tidyp],
[AC_DEFINE([HAVE_TIDYP_H], [1],
[Define to 1 if you have the <tidyp.h> header file.])],
[AC_DEFINE([HAVE_TIDY_H], [1],
[Define to 1 if you have the <tidy.h> header file.])])

PHP_CHECK_LIBRARY([$TIDY_LIB_NAME], [tidyOptGetDoc],
[AC_DEFINE([HAVE_TIDYOPTGETDOC], [1],
[Define to 1 if Tidy library has the 'tidyOptGetDoc' function.])],
[PHP_CHECK_LIBRARY([tidy5], [tidyOptGetDoc],
[TIDY_LIB_NAME=tidy5
AC_DEFINE([HAVE_TIDYOPTGETDOC], [1])],
[],
[-L$TIDY_LIBDIR])],
[-L$TIDY_LIBDIR])

PHP_CHECK_LIBRARY([$TIDY_LIB_NAME], [tidyReleaseDate],
[AC_DEFINE([HAVE_TIDYRELEASEDATE], [1],
[Define to 1 if Tidy library has the 'tidyReleaseDate' function.])],
[],
[-L$TIDY_LIBDIR])

PHP_ADD_LIBRARY_WITH_PATH([$TIDY_LIB_NAME],
[$TIDY_LIBDIR],
[TIDY_SHARED_LIBADD])
PHP_ADD_INCLUDE([$TIDY_INCDIR])

old_CPPFLAGS=$CPPFLAGS
CPPFLAGS=-I$TIDY_INCDIR
old_CPPFLAGS="$CPPFLAGS"
CPPFLAGS="-I$TIDY_INCDIR"

dnl The tidyOptGetCategory function (added in tidy-html5 5.4.0) is only
dnl useable if TidyInternalCategory (added in tidy-html5 5.6.0) is also
Expand All @@ -84,14 +44,12 @@ if test "$PHP_TIDY" != "no"; then
[Define to 1 if Tidy library has the 'tidyOptGetCategory' function and
supports the 'TidyInternalCategory' enumeration.])])

CPPFLAGS=$old_CPPFLAGS
CPPFLAGS="$old_CPPFLAGS"

dnl Add -Wno-ignored-qualifiers as this is an issue upstream. Fixed in
dnl tidy-html5 5.7.20: https://github.com/htacg/tidy-html5/issues/866
PHP_NEW_EXTENSION([tidy],
[tidy.c],
[$ext_shared],,
[-Wno-ignored-qualifiers -DZEND_ENABLE_STATIC_TSRMLS_CACHE=1])
TIDY_COMPILER_FLAGS="$TIDY_CFLAGS -Wno-ignored-qualifiers -DZEND_ENABLE_STATIC_TSRMLS_CACHE=1"
PHP_NEW_EXTENSION(tidy, tidy.c, $ext_shared,, $TIDY_COMPILER_FLAGS)
PHP_SUBST([TIDY_SHARED_LIBADD])
AC_DEFINE([HAVE_TIDY], [1],
[Define to 1 if the PHP extension 'tidy' is available.])
Expand Down
9 changes: 0 additions & 9 deletions ext/tidy/tidy.c
Original file line number Diff line number Diff line change
Expand Up @@ -26,17 +26,8 @@
#include "php_ini.h"
#include "ext/standard/info.h"

#ifdef HAVE_TIDY_H
#include "tidy.h"
#elif defined(HAVE_TIDYP_H)
#include "tidyp.h"
#endif

#ifdef HAVE_TIDYBUFFIO_H
#include "tidybuffio.h"
#else
#include "buffio.h"
#endif

#include "tidy_arginfo.h"

Expand Down
Loading