I presume that the old PHP_EXENTSION(....) still works in V5 so modules outside the php tree can keep using it? ... and put in dnl PHP_EXENTSION_NEW..... so it's V5 ready...
regards alan > > >On Thu, 7 Mar 2002, Sascha Schumann wrote: > >> I'd like to get some input on the new build system. If there >> are enough "yea" voices, I could merge it into 4.3.0.. >> > >go for it (or should I say "yea" :) > >Derick > >> The current patch against the CVS is here: >> >> http://schumann.cx/buildv5.patch >> >> This version adds support for the test target and PHP_DEFINE >> which aims at enabling more fine-grained dependencies and >> phasing out the 2000 lines php_config.h. This fine-grained >> approach has been used by the BSD kernels and Linux for some >> time and is simply necessary for larger systems. >> >> The system preserves quite a lot of disk space and improves >> the speed of the PHP build. >> >> An overview of the system follows: >> >> >>PHP Build System V5 Overview >> >>- supports Makefile.ins during transition phase >>- not-really-portable Makefile includes have been eliminated >>- supports seperate build directories without VPATH by using >> explicit rules only >>- does not waste disk-space/CPU-time for building temporary libraries >> => especially noticeable on slower systems >>- slow recursive make replaced with one global Makefile >>- eases integration of proper dependencies >>- adds PHP_DEFINE(what[, value]) which creates a single include-file >> per what. This will allow more fine-grained dependencies. >>- abandoning the "one library per directory" concept >>- improved integration of the CLI >>- several new targets >> build-modules: builds and copies dynamic modules into modules/ >> install-cli: installs the CLI only, so that the install-sapi >> target does only what its name says >>- finally abandoned automake (still requires aclocal at this time) >>- changed some configure-time constructs to run at buildconf-time >>- upgraded shtool to 1.5.4 >>- removed $(moduledir) (use EXTENSION_DIR) >> >>The Reason For a New System >> >>It became more and more apparent that there is a severe need >>for addressing the portability concerns and improving the chance >>that your build is correct (how often have you been told to >>"make clean"? When this is done, you won't need to anymore). >> >> >>If You Build PHP on a Unix System >> >> >>You, as a user of PHP, will notice no changes. Of course, the build >>system will be faster, look better and work smarter. >> >> >> >>If You Are Developing PHP >> >> >> >> >>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. >> >> >>SAPI developers: >> >>Instead of using PHP_SAPI=foo/PHP_BUILD_XYZ, you will need to type >> >>PHP_SELECT_SAPI(name, type, sources.c) >> >>I.e. specify the source-code files as above and also pass the >>information regarding how PHP is supposed to be built (shared >>module, program, etc). >> >>For example for APXS: >> >>PHP_SELECT_SAPI(apache, shared, sapi_apache.c mod_php4.c php_apache.c) >> >> >> >>General info >> >>The foundation for the new system is the flexible handling of >>sources and their contexts. With the help of macros you >>can define special flags for each source-file, where it is >>located, in which target context it can work, etc. >> >>Have a look at the well documented macros >>PHP_ADD_SOURCES(_X) in acinclude.m4. >> >> - Sascha Experience IRCG >> http://schumann.cx/ http://schumann.cx/ircg >> >> >> >>-- >>PHP Development Mailing List <http://www.php.net/> >>To unsubscribe, visit: http://www.php.net/unsub.php >> > >---------------------------------------------------------------------- > PHP: Scripting the Web - [EMAIL PROTECTED] > All your branches are belong to me! > SRM: Site Resource Manager - www.vl-srm.net >----------------------------------------------------------------------- > > -- PHP Development Mailing List <http://www.php.net/> To unsubscribe, visit: http://www.php.net/unsub.php