libtool-based build system
| From: | Sascha Schumann | Date: | Sun, 03 Oct 1999 23:42:52 +0000 |
| Subject: | libtool-based build system | ||
| Groups: | php.version4 | ||
| Request: | Send a blank email to php-version4+get-5110@lists.php.net to get a copy of this message | ||
Since we want PHP to grow beyond its original roots, we need
to use a build environment which is independent of certain
tools. PHP 4.0 already utilizes autoconf and automake to
build the tree, but still depends on certain third-party
tools for certain targets (i.e. apxs for shared libraries).
Thus, libtool enters the stage. libtool provides support for
building shared and static libraries in a cross-platform
portable way and integrates perfectly with autoconf and
automake. This allows us to support new targets on UNIX (Zeus
and AOLserver, for example).
A test version, based on the current PHP 4.0 CVS, is
available here:
http://schumann.cx/php4-ltx.tar.gz
(1825 KB)
http://schumann.cx/php4-ltx.tar.bz2
(1321 KB)
Please take the time to play with it--do not forget to tell
me whether it works on your platform (please include
configuration parameters). It has been tested so far on
alphaev56-unknown-linux-gnu (cgi, apache, apxs, aol)
i686-pc-linux-gnu (cgi, apache, apxs)
alphaev6-dec-osf5.0 (cgi, apxs) (*)
alphaev56-dec-osf4.0d (cgi, apache)
sparc-sun-solaris2.7 (cgi, apxs, aol)
i386-unknown-freebsdelf4.0 (cgi, apxs)
* needs a modified ltconfig for shared library
support. Patch submitted to bug-libtool
There have been numerous changes. Incomplete list follows.
* archive-based convenience libraries completely replaced
with libtool components
* cleaned up C/C++ scanner handling in libzend
* SAPI targets can enable thread-safe mode and define
shared/static/program build target
* all configure scripts use the same config.cache
* phplibdir is $(top_builddir)/modules to avoid
permission problems
* sapi/*/Makefile.inc are gone
* runpath handling cleaned up
* top-level Makefile.in obsoleted through Makefile.am
* --enable-versioning uses libtool's cleaner and more
portable -export-symbol-regex feature
One issue persists:
* libtool does not provide a facility for hardcoding
runpaths into shared libraries. Thus, we will either
drop support for this feature, or figure out how to
pass native flags at link time.
Unless all issues are resolved satisfactory, I will not
commit these changes.
--
Regards,
Sascha Schumann
Consultant