Electronics & Programming

develissimo

Open Source electronics development and programming

  • You are not logged in.
  • Root
  • » PHP
  • » [PHP-DEV] CMake SoC Proposal [RSS Feed]

#1 March 20, 2008 01:58:46

Scott M.
Registered: 2009-11-02
Reputation: +  0  -
Profile   Send e-mail  

[PHP-DEV] CMake SoC Proposal


Hi All,One of the proposals for Google Summer of Code is a replacement of theautoconf part of our current build system. This email is aclarification of some of the concerns that may arise if it is acceptedas a project.The current autoconf system is written using the macro processinglanguage known as m4, this itself causes untold problems for both newand old developers alike and is a significant barrier to entry foranyone either wanting to build an extension or make a change to thebuild system.There would also be support for several compilers, using Mingw orIntel’s compiler could become a reality. There are probably someslight code tweaks required to achieve this but a user will be able tochose their compiler.Furthermore, autoconf is only used for our Unix based systems, forWindows we’re currently using some cscript files. These don’t providenearly as much functionality and configuration choices as theirautoconf counterparts with a large amount of the Windows build scriptssimply being hardcoded.---Here is a quick run down of some of the features of CMake and toolsassociated with it:• A single configure script that would be used regardless of the OS
• A much simpler scripting language
• Generates native build files (make, XCode, Visual Studio 6, 7.1, 8)• Use a build directory so that all build related files are outsidethe main source tree, no more pollution of your checkout.• Testing support is included and results from these tests canautomatically be submitted to our server.• CDash would integrate with CMake and CTest and aggregate the resultsfrom the tests showing failing tests on the various systems.CMake's own dashboard can be seen athttp://public.kitware.com/dashboard.php?name=cmake• CPack could be used as a new package system as it uses the samescripting language as CMake to abstract packaging. These aren’t justtarball but also Windows and OS X installer packages.• Autoconf can live in harmony with CMake even after a transition,we’re not talking about replacing it outright immediately.Several large projects have already successfully made either partialor complete transition to CMake:• KDE 4.0
• MySQL on Windows
• libgd 2.1+Bill Hoffman of Kitware who produce CMake and the related tools haveoffered their assistance in our transition, including adding ports toany unsupported operating systems or features that would prevent usfrom currently doing the move.---For those concerned about the lack of CMake support on your operatingsystem of choice you’ll find that most recent Linux distributionsprovide a copy of CMake and if not then Kitware provide the binariesthemselves. These can be installed by non-root users without any issue.Another alternative would be to simply bundle CMake with PHP, it’scurrently under a BSD license so the only problem here would be theextra space taken up in the package.Debian, Fedora and FreeBSD all have recent versions of CMakeavailable. For Windows and OS X binaries are provided on the CMake site.Thanks,
Scott & Pierre-Joye
--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit:http://www.php.net/unsub.php

Offline

#2 March 20, 2008 02:18:21

Jani T.
Registered: 2009-11-02
Reputation: +  0  -
Profile   Send e-mail  

[PHP-DEV] CMake SoC Proposal


Just some comments..in spirit of "If it aint broken do NOT touch it.." :D

Scott MacVicar wrote:Here is a quick run down of some of the features of CMake and toolsassociated with it:• A single configure script that would be used regardless of the OS
• A much simpler scripting languagem4 is simple. :-p• Generates native build files (make, XCode, Visual Studio 6, 7.1, 8)err..a simple Makefile isn't "native" enough? Like we have right now? :)
Care to explain what you meant with this?• Use a build directory so that all build related files are outside themain source tree, no more pollution of your checkout.You can do that already even with autoconf generated configure: Just call theconfigure script from wherever you want to build the stuff. (I build PHP alwaysoutside the source tree to not pollute my checkout. :)Bill Hoffman of Kitware who produce CMake and the related tools haveoffered their assistance in our transition, including adding ports toany unsupported operating systems or features that would prevent us fromcurrently doing the move.phpize is the one and only thing that comes to my mind as an obstacle..but it'spropably possible to simulate using this CMake thingie? Everyone has CMakeinstalled, right? :DAnother alternative would be to simply bundle CMake with PHP, it’scurrently under a BSD license so the only problem here would be theextra space taken up in the package.How much space does it take?

--Jani


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

Offline

#3 March 20, 2008 02:24:00

Gwynne R.
Registered: 2009-11-02
Reputation: +  0  -
Profile   Send e-mail  

[PHP-DEV] CMake SoC Proposal


My two US cents :).

On Mar 19, 2008, at 9:17 PM, Jani Taskinen wrote:Here is a quick run down of some of the features of CMake and toolsassociated with it:• A single configure script that would be used regardless of the OS
• A much simpler scripting languagem4 is simple. :-pSince when?• Generates native build files (make, XCode, Visual Studio 6, 7.1, 8)err..a simple Makefile isn't "native" enough? Like we have rightnow? :)Care to explain what you meant with this?Make is outmoded, outdated, and not up to the task of modern builds.You can't use a Makefile (effectively) with Xcode.• Use a build directory so that all build related files are outsidethe main source tree, no more pollution of your checkout.You can do that already even with autoconf generated configure: Justcall the configure script from wherever you want to build the stuff.(I build PHP always outside the source tree to not pollute mycheckout. :)As do I, but I still have to pollute my checkout with buildconf orcsript buildconf.js.Bill Hoffman of Kitware who produce CMake and the related toolshave offered their assistance in our transition, including addingports to any unsupported operating systems or features that wouldprevent us from currently doing the move.phpize is the one and only thing that comes to my mind as anobstacle..but it's propably possible to simulate using this CMakethingie? Everyone has CMake installed, right? :DIf automake and autoconf can do it, then as a rule CMake can do itbetter.-- Gwynne, Daughter of the Code
"This whole world is an asylum for the incurable."


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

Offline

#4 March 20, 2008 02:47:32

Rasmus L.
Registered: 2009-11-02
Reputation: +  0  -
Profile   Send e-mail  

[PHP-DEV] CMake SoC Proposal


Gwynne Raskind wrote:My two US cents :).

On Mar 19, 2008, at 9:17 PM, Jani Taskinen wrote:Here is a quick run down of some of the features of CMake and toolsassociated with it:• A single configure script that would be used regardless of the OS
• A much simpler scripting languagem4 is simple. :-pSince when?m4 is actually one of the simplest languages around. There really isn'tmuch to it. The pain point of autoconf/automake/libtool isn't m4, it isthe complicated and often obtuse relationship between those 3 tools.I don't mind exploring cmake, but it is a massive undertaking to createsomething that can build PHP on every UNIX and pseudo-UNIX platform outthere. We should figure out what the main goal here is. If it issimply getting "native" build files so people can use theirpointy-clickety interfaces to build PHP, then it is probably way easierto create .in files to generate those basic build templates from ourcurrent system than it is to rewrite the whole thing.-Rasmus

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

Offline

#5 March 20, 2008 17:31:21

Cristian R.
Registered: 2009-11-02
Reputation: +  0  -
Profile   Send e-mail  

[PHP-DEV] CMake SoC Proposal


2008/3/19, Scott MacVicar <>:

> Another alternative would be to simply bundle CMake with PHP,

Nope, Cmake is available in almost all distributions and in the case
some of them dont have it yet, they will because sooner or later will
need to integrate KDE4.

Please dont bundle more stuff in PHP, life is already painful (
bundled PCRE, regexp, libzip, libgd , timezonedb..) dont add yet
another duplicate task for distributors.



--
"If debugging is the process of removing bugs, then programming must
be the process of putting them in." – Edsger Dijkstrahttp://www.cristianrodriguez.net

Offline

#6 March 20, 2008 18:59:46

Pierre J.
Registered: 2009-11-02
Reputation: +  0  -
Profile   Send e-mail  

[PHP-DEV] CMake SoC Proposal


On Thu, Mar 20, 2008 at 5:29 PM, Cristian Rodriguez
<> wrote:
> 2008/3/19, Scott MacVicar <>:
>
>
> > Another alternative would be to simply bundle CMake with PHP,
>
> Nope, Cmake is available in almost all distributions and in the case
> some of them dont have it yet, they will because sooner or later will
> need to integrate KDE4.
>
> Please dont bundle more stuff in PHP, life is already painful (
> bundled PCRE, regexp, libzip, libgd , timezonedb..) dont add yet
> another duplicate task for distributors.

As I agree with you, libgd and libzip are two wrong examples, they are
not simply bundled, they are different (fork for libgd). Especially
libgd as our version is not the same as the official version from a
feature and behavior point of view. That will change soon but it is
not yet the case.

Cheers,
--
Pierrehttp://blog.thepimp.net|http://www.libgd.org--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit:http://www.php.net/unsub.php

Offline

#7 March 26, 2008 12:13:31

Pierre J.
Registered: 2009-11-02
Reputation: +  0  -
Profile   Send e-mail  

[PHP-DEV] CMake SoC Proposal


On Thu, Mar 20, 2008 at 2:45 AM, Rasmus Lerdorf <> wrote:
> Gwynne Raskind wrote:
> > My two US cents :).
> >
> > On Mar 19, 2008, at 9:17 PM, Jani Taskinen wrote:
> >>> Here is a quick run down of some of the features of CMake and tools
> >>> associated with it:
> >>> • A single configure script that would be used regardless of the OS
> >>> • A much simpler scripting language
> >> m4 is simple. :-p
> >
> > Since when?
>
> m4 is actually one of the simplest languages around. There really isn't
> much to it. The pain point of autoconf/automake/libtool isn't m4, it is
> the complicated and often obtuse relationship between those 3 tools.
>
> I don't mind exploring cmake, but it is a massive undertaking to create
> something that can build PHP on every UNIX and pseudo-UNIX platform out
> there. We should figure out what the main goal here is. If it is
> simply getting "native" build files so people can use their
> pointy-clickety interfaces to build PHP, then it is probably way easier
> to create .in files to generate those basic build templates from our
> current system than it is to rewrite the whole thing.

To have a pointy-clickety (I like this word :) interface is
definitively not a goal. It is a side effect of using CMake as CMake
has a GUI available on unix and windows. The main goal is actually to
have one single tool for all platforms and to lower the barriers of
the build scripts.

Cheers,
--
Pierrehttp://blog.thepimp.net|http://www.libgd.org--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit:http://www.php.net/unsub.php

Offline

#8 March 26, 2008 12:15:58

Pierre J.
Registered: 2009-11-02
Reputation: +  0  -
Profile   Send e-mail  

[PHP-DEV] CMake SoC Proposal


On Thu, Mar 20, 2008 at 5:29 PM, Cristian Rodriguez
<> wrote:
> 2008/3/19, Scott MacVicar <>:
>
>
> > Another alternative would be to simply bundle CMake with PHP,
>
> Nope, Cmake is available in almost all distributions and in the case
> some of them dont have it yet, they will because sooner or later will
> need to integrate KDE4.
>

The only place where it would make sense to bundled it is on windows,
in our "SDK" (aka zip.zip which should really be moved to a true PHP
SDK, php-devel package, one of these days :) ). But as CMake provides
binaries for windows (and for almost all platforms), a simple link
should suffice.

Cheers,
--
Pierrehttp://blog.thepimp.net|http://www.libgd.org--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit:http://www.php.net/unsub.php

Offline

  • Root
  • » PHP
  • » [PHP-DEV] CMake SoC Proposal [RSS Feed]

Board footer

Moderator control

Enjoy the 16th of December
PoweredBy

The Forums are managed by develissimo stuff members, if you find any issues or misplaced content please help us to fix it. Thank you! Tell us via Contact Options
Leave a Message
Welcome to Develissimo Live Support