Hi,

On Thu, 2008-05-15 at 04:21 -0400, Hector Santos wrote:
> > On Thu, 2008-05-15 at 00:49 -0400, Hector Santos wrote:
> >>    - All that is needed with a source distribution or as a
> >>      separate distribution, is a PHPMAKE package that
> >>      might include a root folder:
> >>
> >>      phpmake/bin     minimum php binaries for the platform
> >>                      i.e, php.exe, php5ts.dll for windows
> > 
> > That's a hen and egg problem then - one would need PHP to build PHP and
> > we don't have the infrastructure to provide binaries for all the
> > platforms we support (there's more than Linux and Windows)
> 
> That's what I thought too, but you still still have the same 
> (chicken/egg) issues of PHP being dependent on what OS the 
> AutoTools/CMake facility works on.
> 
> The basic requirement of being able to port the minimal set of PHP files 
>   for an OS would still need to required in either case.
> 
> If the porting is simpler for autotools/cmake than raw PHP, then I can 
> see that as a plus.

Well the difference ist: For an own build system _we_ do to have it our
own and verify it on each platform, autotools/cmake are used by lots of
other projects with many many more contributors which keeps the things
running. Additional most OS packagers add these tool to their packages
themselves as they are essentially for compiling basically anything. 

Without autotools you can't compile many stuff PHP depends on on the
platform so the autotools have to be ported anyways before PHP can be
build there....

> Personally, as a side note, I think PHP makes should be separated (each 
> using a common/structure methodology for PHP).  I'm still catching up, 
> but there seems to to be a tremendous amount of complexity when trying 
> to auto configure and build it all as one big make. For example, it 
> would be ideal, IMO, if I can do:
> 
>         domake MYEXTENSION
>         domake PDO
>         domake MYSQL
>         domake PHP5TS_DLL
>         domake OFFICIAL_RELEASE_MODULES_ONLY
>         domake ALL

build extensions shared (--with-foo=shared) then you can do "make
$target" where target might be modules/$extension.so so it's all there
and works in a way everybody used to the autotools way of doing things
can understand witrhout reading any documentation. An own system would
need lot's of documentation so Joe Admin can compile it the way he wants
it.

> and not worry about all the erroneous errors and warnings you might get 
> with its attempt to build other parts that you don't need to rebuild.

make only compiles the things it has to compile for building the
specified target, if your target is all (which is the default) it
compiles the php executables and all modules requested (if sources have
changed after the last build).

In the end: our build system works (mostly) and I doubt a PHP based
system can fix the remaining issues in a sane way, especially not
without making it more complex. Every *nix admin knows how to use
autotools, no admin knows about PHP and a PHP-specific build system and
that's the main target group for a build system.

johannes


-- 
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to