A call for help. WAF and SCONS in master.

116 views
Skip to first unread message

Ryan Dahl

unread,
Nov 14, 2011, 10:38:53 PM11/14/11
to nodejs
We've just forked off a v0.6 branch from master. v0.6 will be only for
bug fixes and non-API changing improvements.

We continue ferociously onward on master. One of the major goals for
this next release will be to have only a single build system based on
GYP.

I've just now removed SCONS and WAF from our master tree. There are
known shortcomings in the GYP build system that I hope we can resolve
over the next few weeks:

- GYP builds V8 twice which increases build time significantly
https://github.com/joyent/node/issues/1736

- We do not yet support DTrace probes
https://github.com/joyent/node/issues/2110

- On OSX it is not linking to SSL correctly and configure must be run
with --without-ssl https://github.com/joyent/node/issues/2111

- xcodebuild is not yet working on OSX
https://github.com/joyent/node/issues/2112

Patches are very welcome during this period of breaking in the new build system.


We'll be posting a roadmap for v0.8 in the next few days.

Marco Rogers

unread,
Nov 15, 2011, 1:17:58 AM11/15/11
to nod...@googlegroups.com
Can you talk a little about why Gyp is better?

:Marco

Ryan Dahl

unread,
Nov 15, 2011, 1:30:23 AM11/15/11
to nod...@googlegroups.com
> Can you talk a little about why Gyp is better?

It's a meta-build system. It produces Makefiles, XCode project files,
or Visual Studio files. Builds are defined in a JSON file in which you
list the source files, preprocessor defines, flags. The system tries
to provide a good experience for all platforms. Chrome has developed
and is now using GYP for all of its production builds.

As part of Chrome's migration from SCONS to GYP was migrating V8 to
GYP as well. V8 has a complex build process due to the snapshot
feature - and this has been expressed in GYP now.

GYP allows us to plug into libraries in sane ways. In GYP each library
can export preprocessor symbols and link flags necessary to build it.
For the first time C libraries become pluggable - you can drop
OpenSSL, say, into the deps directory and include it's GYP file and
the build becomes whole.

Reading http://code.google.com/p/gyp/wiki/GypVsCMake is also useful

Louis Santillan

unread,
Nov 15, 2011, 2:53:09 AM11/15/11
to nod...@googlegroups.com
gyp is better because Chromium/v8 teams say so. The scons build
system has been deprecated. gyp is also multicore/distcc enabled.
See (http://code.google.com/p/v8/wiki/BuildingWithGYP).

-L

Louis Santillan

unread,
Nov 15, 2011, 3:04:57 AM11/15/11
to nod...@googlegroups.com
On Tue, Nov 15, 2011 at 3:38 AM, Ryan Dahl <r...@tinyclouds.org> wrote:
> - GYP builds V8 twice which increases build time significantly
> https://github.com/joyent/node/issues/1736

Issuing:
make arch.buildmode

like

make ia32.release

does not build v8 twice. arch = [ia32, x64 (x86_64/amd64),arm]
buildmode=[debug,release].

gyp is known to be able to build cross-compiled binaries & objects for
all arch's.

>
> - We do not yet support DTrace probes
> https://github.com/joyent/node/issues/2110
>
> - On OSX it is not linking to SSL correctly and configure must be run
> with --without-ssl https://github.com/joyent/node/issues/2111
>
> - xcodebuild is not yet working on OSX
> https://github.com/joyent/node/issues/2112
>
> Patches are very welcome during this period of breaking in the new build system.


These link errors may have to do with your build environment. Are you
using 10.5, 10.6 or 10.7? ports, fink, homebrew?

-L

Jorge

unread,
Nov 15, 2011, 3:45:25 AM11/15/11
to nod...@googlegroups.com
On 15/11/2011, at 07:30, Ryan Dahl wrote:

> On 15/11/2011, at 07:17, Marco Rogers wrote:
>> Can you talk a little about why Gyp is better?
>
> It's a meta-build system. It produces Makefiles, XCode project files,
> or Visual Studio files. Builds are defined in a JSON file in which you
> list the source files, preprocessor defines, flags. The system tries
> to provide a good experience for all platforms.

Wow!
I like this. It's fantastic.
--
Jorge.

Reply all
Reply to author
Forward
0 new messages