diff --git a/config.m4 b/config.m4 index d7b1a69e..46b56fbd 100644 --- a/config.m4 +++ b/config.m4 @@ -9,7 +9,7 @@ if test $PHP_IMAGICK_GM != "no"; then fi if test $PHP_IMAGICK != "no"; then - + AC_MSG_CHECKING(ImageMagick MagickWand API configuration program) for i in $PHP_IMAGICK /usr/local /usr; @@ -63,7 +63,8 @@ if test $PHP_IMAGICK != "no"; then AC_MSG_ERROR(Cannot locate header file MagickWand.h) fi - AC_DEFINE(IMAGICK_USE_NEW_HEADER,1,[ ]) + AC_DEFINE(IMAGICK_USE_NEW_HEADER,1,[ ]) + PHP_IMAGICK_USE_NEW_HEADER=1 fi dnl Thanks to Antony Dovgal for pointing out that the @@ -109,6 +110,16 @@ if test $PHP_IMAGICK != "no"; then PHP_SUBST(IMAGICK_SHARED_LIBADD) PHP_NEW_EXTENSION(imagick, imagick_class.c imagickdraw_class.c imagickpixel_class.c imagickpixeliterator_class.c imagick_helpers.c imagick_read.c imagick.c, $ext_shared) - dnl share headers - PHP_INSTALL_HEADERS([ext/imagick], [php_imagick.h php_imagick_defs.h config.h php_imagick_shared.h]) + dnl Generate configuration header + if test ! -z "${PHP_IMAGICK_USE_NEW_HEADER}"; then + echo "#ifndef _PHP_IMAGICK_CONFIG_H_" > php_imagick_config.h + echo "# ifndef IMAGICK_USE_NEW_HEADER" >> php_imagick_config.h + echo "# define IMAGICK_USE_NEW_HEADER 1" >> php_imagick_config.h + echo "# endif" >> php_imagick_config.h + echo "#endif" >> php_imagick_config.h + else + echo "" > php_imagick_config.h + fi + + PHP_INSTALL_HEADERS([ext/imagick], [php_imagick.h php_imagick_defs.h php_imagick_shared.h php_imagick_config.h]) fi diff --git a/config.w32 b/config.w32 index af007820..c578e808 100644 --- a/config.w32 +++ b/config.w32 @@ -10,6 +10,12 @@ if (PHP_IMAGICK != "no") { ADD_FLAG("CFLAGS_IMAGICK", "/D IMAGICK_USE_NEW_HEADER /D _MAGICKMOD_ /D _VISUALC_ /D NeedFunctionPrototypes /D _LIB"); EXTENSION('imagick', 'imagick_class.c imagickdraw_class.c imagickpixel_class.c imagickpixeliterator_class.c imagick_helpers.c imagick_read.c imagick.c'); AC_DEFINE('HAVE_IMAGICK', 1); + + echo "#ifndef _PHP_IMAGICK_CONFIG_H_" > php_imagick_config.h + echo "# ifndef IMAGICK_USE_NEW_HEADER" >> php_imagick_config.h + echo "# define IMAGICK_USE_NEW_HEADER 1" >> php_imagick_config.h + echo "# endif" >> php_imagick_config.h + echo "#endif" >> php_imagick_config.h } else { WARNING("imagick not enabled; libraries and headers not found"); } diff --git a/imagick.c b/imagick.c index 1ae761ab..b691e52a 100644 --- a/imagick.c +++ b/imagick.c @@ -21,7 +21,6 @@ #include "php_imagick.h" #include "php_imagick_defs.h" #include "php_imagick_macros.h" -#include "php_imagick_shared.h" ZEND_DECLARE_MODULE_GLOBALS(imagick) diff --git a/php_imagick.h b/php_imagick.h index 820912e4..80822bac 100644 --- a/php_imagick.h +++ b/php_imagick.h @@ -26,15 +26,14 @@ #define PHP_IMAGICK_VERSION "2.3.1-dev" #define PHP_IMAGICK_EXTNUM 20301 -/* Import configure options - when building outside of - the PHP source tree */ +/* Import configure options when building + outside of the PHP source tree */ #ifdef HAVE_CONFIG_H -#include "config.h" +# include "config.h" #endif #ifdef ZTS -#include "TSRM.h" +# include "TSRM.h" #endif /* Include PHP Standard Headers */ @@ -42,14 +41,14 @@ /* Include locale header */ #ifdef HAVE_LOCALE_H -#include +# include #endif /* Include magic wand header */ #ifdef IMAGICK_USE_NEW_HEADER -#include +# include #else -#include +# include #endif #ifndef DefaultChannels diff --git a/php_imagick_defs.h b/php_imagick_defs.h index 0af2cf1b..773e1345 100644 --- a/php_imagick_defs.h +++ b/php_imagick_defs.h @@ -18,8 +18,16 @@ +----------------------------------------------------------------------+ */ #ifndef PHP_IMAGICK_DEFS_H /* PHP_IMAGICK_DEFS_H */ -/* Prevent double inclusion */ -#define PHP_IMAGICK_DEFS_H +# define PHP_IMAGICK_DEFS_H + +/* + API exports +*/ +#ifdef PHP_WIN32 +# define IMAGICK_EXPORTS __declspec(dllexport) +#else +# define IMAGICK_EXPORTS PHPAPI +#endif /* Globals, needed for the ini settings */ ZEND_BEGIN_MODULE_GLOBALS(imagick) diff --git a/php_imagick_shared.h b/php_imagick_shared.h index e8db73af..98b27fe2 100644 --- a/php_imagick_shared.h +++ b/php_imagick_shared.h @@ -21,22 +21,10 @@ #ifndef _PHP_IMAGICK_SHARED_H_ # define _PHP_IMAGICK_SHARED_H_ -#ifdef HAVE_CONFIG_H -# include "config.h" -#endif - +#include "php_imagick_config.h" #include "php_imagick.h" #include "php_imagick_defs.h" -/* - API exports -*/ -#ifdef PHP_WIN32 -# define IMAGICK_EXPORTS __declspec(dllexport) -#else -# define IMAGICK_EXPORTS PHPAPI -#endif - /* Allow extensions to use the class entries */