Yeah, well, it seems I underestimated the need for an official announcement... in part, that's due to things not being quite ready yet for an official announcement.
It's correct that building with SCons is deprecated. That means: Don't put any effort into improving the SCons build. Try building with gyp/make, see if it works for you, report what doesn't work. There are a couple of known limitations currently; I'm working on them as time permits. If/when the gyp build fails you, feel free to continue using SCons for now. (Rough estimate for when the SCons build will disappear: some time during Q4. Don't worry, there'll be plenty of advance warning, and enough time to iron out any issues with the gyp build.) The reason for this change is that maintaining two build systems is an unnecessary burden and unavoidably leads to bugs stemming from changes being applied to the one but not the other. We need gyp anyway for Chromium, so we want to get rid of SCons. The other reason is that make is considerably faster than SCons, especially for incremental builds, and it allows things like distcc. Short how-to for the brave (expect more detailed, official instructions to follow shortly): 1. get GYP: svn co http://gyp.googlecode.com/svn/trunk build/gyp (see also build/README.txt, especially for additional instructions for Windows) as a long-term solution, we'll probably put a copy of gyp into our own repo, so this step will be obsolete 2. if you're on Linux, you can use our new global Makefile as a wrapper for the gyp build: just call "make <target> -j<X>", where <X> is the number of parallel jobs, and <target> is one of "ia32", "ia32.debug", "ia32.release", or similar for x64 or arm, or just "release" or "debug" for all architectures, or with ".check" appended to also run tests (number of parallel test jobs needs to be specified separately with TESTJOBS=-jX, default is X=16). When no target is specified, everything will be built (but no tests will be run). Output will be in ./out/<arch>.<mode>/, the "out/" part of that path can be redirected with OUTDIR=<whatever>. You can also use the Makefile as an inspiration for how you can use/wrap the gyp build in your own projects. There's no comfortable interface for passing non-default build parameters yet, but you can use GYPFLAGS="-Dvariable=value -Dother_variable=other_value" to set gyp variables directly. As Yang wrote, you need to *set component=shared_library for the shared lib build*. I'll probably add scons-style flags soon-ish, so that you can write "make -j10 library=shared" or something like that. All mentioned parameters (OUTDIR, TESTJOBS, GYPFLAGS) can be set either as a shell environment variable, or as a make parameter, i.e. the following three are completely equivalent: 1. export OUTDIR=my_outdir make ia32 2. OUTDIR=my_outdir make ia32 3. make ia32 OUTDIR=my_outdir 3. On Mac and Windows, use build/gyp_v8 to generate XCode or Visual Studio project files, respectively. This workflow is, as of now, unchanged. For details, see build/README.txt. Note that the shared library build is currently broken for x64. It's on my list to fix that. If you want to help: - test the gyp based build - report anything that doesn't work - tell me which non-default flags you'd like to be able to pass in (SCons provides a huge number of flags, I have a suspicion that at least some of them aren't used by anyone anymore) On Thu, Aug 25, 2011 at 09:37, Yang Guo <[email protected]> wrote: > As far as I can see, not all features of the current scons build has > been fully ported to gyp yet, including the option to build with > shared library. I assume though, that this will incrementally be > implemented in the near future. > > For now however, what you can do is a little bit less straight- > forward, for example > make -j8 GYPFLAGS="-Dcomponent=shared_library" ia32.release > > You will then find the shared library file (libv8.so) in out/ > ia32.release/lib.target/ > > I hope this helped :) > > -- Yang > > On Aug 25, 8:40 am, Stephan Beal <[email protected]> wrote: > > On Wed, Aug 24, 2011 at 11:53 PM, Paweł Hajdan, Jr. < > [email protected] > > > > > wrote: > > > I think that the .gyp file is expected to be used only as a part of the > > > Chrome build process. > > > > A couple days ago one of the devs posted on this list that the v8 scons > > build is deprecated and that will have to use gyp in the future. > > > > -- > > ----- stephan bealhttp://wanderinghorse.net/home/stephan/ > > -- > v8-users mailing list > [email protected] > http://groups.google.com/group/v8-users > -- v8-users mailing list [email protected] http://groups.google.com/group/v8-users
