There are some variables which are needed for Makefiles and files
created by AC_OUTPUT; we use PHP_SUBST_OLD for those now.
genif.sh was moved to an appropiate place.
Some sed tools don't match strings which are not terminated with LF.
Some shells still support the ^ as a synonym for the pipe character.
Submitted by: Stanislav Malyshev
against it. When dealing with static libraries, the link order is
important and it might be necessary to add a library multiple times to
satisfy mutual symbol requirements.
In your extension's config.m4, you need to use the m4 macro
PHP_REQUIRE_CXX
This shall be called only, if your extension is enabled.
C++ source files shall not be put into the LTLIBRARY_SOURCES macro.
Instead, the filename of the object shall be put into
LTLIBRARY_OBJECTS_X. I.e. if your extension foo consists of foo.cxx, use
LTLIBRARY_OBJECTS_X = foo.lo
This is important, because the system checks will yield different
results depending on whether POSIX threads are enabled or not.
We also use PTHREADS_CFLAGS only in ZTS mode now. Using these flags
in non-ZTS mode causes complete build failures on some platforms
(i.e. FreeBSD 2.2.x). This will cause harmless warnings on some
platforms (i.e. Solaris 2).
Store EXTENSION_DIR in php-config
Ignore errors during header installation
Automatically enable modules in self-contained mode
Create empty .deps in builddir
This lets you replace
if test "$ext_shared" = "yes"; then
FOO_SHARED_LIBADD="-R$LIBDIR -L$LIBDIR -l$LIB"
else
AC_ADD_LIBRARY_WITH_PATH($LIB, $LIBDIR)
fi
with
AC_ADD_LIBRARY_WITH_PATH($LIB, $LIBDIR, FOO_SHARED_LIBADD)
The following new/revived shared modules are available now:
... MySQL (*)
... PCRE (*)
... Session
... SWF
(*) capable of using bundled library or external library
All changes:
The m4 macro PHP_EXTENSION was revamped. Uses LIB_BUILD now.
This effectively means that all extensions have to use dynlib.
ext/mysql/config.m4 was revamped.
Uses LIB_BUILD for building bundled library.
ext/pcre/config.m4 was revamped.
Uses LIB_BUILD for building bundled library.
ext/ext_skel was changed to reflect that more modules should be
compileable as shared module.
ext/Makefile.in has been simplified enormously.
Dependencies are now stored in the build tree.
Empty dependencies are not generated by buildconf anymore. They
are now dynamically created during the build process.
Implicit rules for .S were removed.
The NO_RECURSION feature was removed.
"libs.mk" has been added to all cvsignore files in ext.