Sascha Schumann wrote: > Extension developers: > > Makefile.ins are abandoned. The files which are to be compiled > are specified in the config.m4 now using the following macro: > > PHP_NEW_EXTENSION(foo, foo.c bar.c baz.cpp, $ext_shared) > > E.g. this enables the extension foo which consists of three source-code > modules, two in C and one in C++. And dependending on the user's > wishes, the extension will even be built as a dynamic module. > > The full syntax: > > PHP_NEW_EXTENSION(extname, sources [, shared [,sapi_class[, extra-cflags]]]) > > Please have a look at acinclude.m4 for the gory details and meanings > of the other parameters. > > And that's basically it for the extension side. > > If you previously built sub-libraries for this module, add > the source-code files here as well. If you need to specify > separate include directories, do it this way: > > PHP_NEW_EXTENSION(foo, foo.c mylib/bar.c mylib/gregor.c,,,-I@ext_srcdir@/lib) > > E.g. this builds the three files which are located relative to the > extension source directory and compiles all three files with the > special include directive (@ext_srcdir@ is automatically replaced). > > Now, you need to tell the build system that you want to build files > in a directory called $ext_builddir/lib: > > PHP_ADD_BUILD_DIR($ext_builddir/lib) > > Make sure to call this after PHP_NEW_EXTENSION, because $ext_builddir > is only set by the latter. > > If you have a complex extension, you might to need add special > Make rules. You can do this by calling PHP_ADD_MAKEFILE_FRAGMENT > in your config.m4 after PHP_NEW_EXTENSION. > > This will read a file in the source-dir of your extension called > Makefile.frag. In this file, $(builddir) and $(srcdir) will be > replaced by the values which are correct for your extension > and which are again determined by the PHP_NEW_EXTENSION macro. > > Make sure to prefix *all* relative paths correctly with either > $(builddir) or $(subdir). Because the build system does not > change the working directory anymore, we must use either > absolute paths or relative ones to the top build-directory. > Correct prefixing ensures that. >
I think I'm following this, but let me stress as the developer of php-tuxedo (http://php-tuxedo.sourceforge.net) that its getting more and more likely that PHP will be linking in complex libraries (includes and libs) perhaps not in the original PHP distribution. Another thing I've seen in my project is that the exact libraries Tuxedo requires vary from Tuxedo version to version. So capabilities to have the make process perform some dynamic adjustments would be nice. I think its just I need to get better at m4, but I haven't invested the time yet. Overall, I like the goals you outlined and your results look promising. Brian -- PHP Development Mailing List <http://www.php.net/> To unsubscribe, visit: http://www.php.net/unsub.php