Files
archived-pecl-xml-xmldiff/config.w32
2016-01-10 12:18:33 +00:00

70 lines
2.1 KiB
JavaScript

// $Id$
// vim:ft=javascript
ARG_WITH("xmldiff", "enable xmldiff support", "no");
if (PHP_XMLDIFF != "no") {
if(PHP_LIBXML != "no" &&
PHP_DOM != "no" &&
CHECK_HEADER_ADD_INCLUDE("xdoc.hh", "CFLAGS_XMLDIFF", PHP_XMLDIFF + ";" + configure_module_dirname + "\\diffmark\\lib") &&
CHECK_LIB("libxml2_a_dll.lib;libxml2_a.lib", "xmldiff") &&
CHECK_LIB("libiconv_a.lib;iconv_a.lib;libiconv.lib;iconv.lib", "xmldiff") &&
CHECK_HEADER_ADD_INCLUDE("libxml/parser.h", "CFLAGS_XMLDIFF", PHP_PHP_BUILD + "\\include;" + PHP_PHP_BUILD + "\\include\\libxml2")
) {
EXTENSION("xmldiff", "xmldiff.cpp");
PHP_INSTALL_HEADERS("ext/xmldiff", "php_xmldiff.h");
PHP_INSTALL_HEADERS("ext/xmldiff/diffmark/lib", "diffmark/lib/compare.hh \
diffmark/lib/compareimpl.hh \
diffmark/lib/diff.hh \
diffmark/lib/lcs.hh \
diffmark/lib/lcsimpl.hh \
diffmark/lib/link.hh \
diffmark/lib/merge.hh \
diffmark/lib/namespacecollector.hh \
diffmark/lib/nspace.hh \
diffmark/lib/target.hh \
diffmark/lib/xbuffer.hh \
diffmark/lib/xdoc.hh \
diffmark/lib/xutil.hh");
ADD_SOURCES(configure_module_dirname + "\\diffmark\\lib", " \
compare.cc \
diff.cc \
link.cc \
merge.cc \
namespacecollector.cc \
nspace.cc \
target.cc \
xbuffer.cc \
xdoc.cc \
xutil.cc",
"xmldiff"
);
if (!ADD_EXTENSION_DEP("xmldiff", "dom", true)) {
MESSAGE("\tDOM support in xmldiff disabled");
}
if (!ADD_EXTENSION_DEP("xmldiff", "libxml", true)) {
ERROR("\tlibxml support is required for xmldiff, but couldn't be enabled");
}
AC_DEFINE("HAVE_XMLDIFF", 1, "Have xmldiff extension");
ADD_FLAG("CFLAGS_XMLDIFF", ' /I diffmark/lib /EHsc ');
if (PHP_VERSION < 7) {
ADD_FLAG("CFLAGS_XMLDIFF", ' /D ZEND_WIN32_FORCE_INLINE ');
} else {
ADD_FLAG("CFLAGS_BD_EXT_XMLDIFF", ' /D ZEND_WIN32_KEEP_INLINE=1 /U ZEND_WIN32_FORCE_INLINE ');
}
ADD_FLAG("LDFLAGS_XMLDIFF", ' /libpath:"diffmark/lib" ');
if (!PHP_XMLDIFF_SHARED) {
ADD_FLAG("CFLAGS_XMLDIFF", "/D LIBXML_STATIC");
}
} else {
WARNING("xmldiff not enabled; libraries and headers not found");
}
}