As has been mentioned, the module build system needs the node headers. (That much seems unavoidable for native modules.). But which *version* of the headers? I would not expect the build system to figure this out, but I would like to be able to specify which version(s) of node to build against, limited only by the module metadata specifying which node version a module promises to support. On Feb 1, 2012 4:14 PM, "Isaac Schlueter" <[email protected]> wrote:
> There is a lot of interest in Node, and a lot of work to do. Several > of you have asked me lately how you can help in IRC and in person. > > In order to try to help match up the interest with the work, I'm going > to start occasionally making requests for help in specific areas where > I think improvements need to be made. In the past, these kinds of > calls have been very productive. > > You don't need permission. Just play around with the problem, and if > you make some headway, share it with the rest of the group. If you > find it's something you really can get excited about, then maybe it > can be your thing :) > > > A very problematic area right now is binary module compilation across > platforms, especially on Windows. > > In the past, we've deployed a node-waf program, which is a > lightly-customized fork of the "waf" build tool. This program has > worked ok, but it is fundamentally non-portable, and my hope is that > it will not have to be in 0.8. > > In the node source tree is a file called tools/gyp_addon. You can use > this to generate either a Makefile, or the appropriate MS Visual C > stuff to build an addon. There are some examples in test/addons/, but > the whole process is not very well documented, and requires a lot of > manual tweaking. > > To make matters even more hairy, there are a bunch of node programs > floating around in the wild that are using node-waf. We need to make > it as easy as possible to port these to a better future. > > > The goal: > > There should be a standalone `npm install addon-gyp-toolchain -g` or > something (probably ought to pick a better name) that sets up some > scripts. If you have this toolchain installed, we'll assume that you > also have "make" on unix, and Visual Studio on Windows. If you then > run the appropriate command in a project directory, it'll build an > addon using whichever method is appropriate for the current system. > > Once such a thing is in place, and it works reliably on Windows and > Unix, and is pretty easy and generalized, start making pull requests > to everybody to replace their wscripts with a gyp file. > > The most important thing is that it makes the process easier than it > is today. There's probably more API design, debugging, and picking > through bits, than actually writing new code. > > And, of course, it could be that my vision of this is way off. Your > task should be to make it easier to compile a bunch of C code into a > .node addon file in a way that works on Windows and Unix, and doesn't > completely suck. Don't be afraid to get creative. > > > > Why not just deploy gyp_addon with node? Because that would be > recreating the node-waf experience, which is terrible. This is a step > towards binary deployments (at least for operating systems and > platforms that can do such things reliably). It would not be terrible > to install it when node is configured with --debug or something, but > by default the msi and pkg installers should never include gyp. Users > who *want* install-time compilation will always be able to do this by > installing the toolchain and then opting out of binary builds. > > > Thanks for your help. > > -- > Job Board: http://jobs.nodejs.org/ > Posting guidelines: > https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines > You received this message because you are subscribed to the Google > Groups "nodejs" group. > To post to this group, send email to [email protected] > To unsubscribe from this group, send email to > [email protected] > For more options, visit this group at > http://groups.google.com/group/nodejs?hl=en?hl=en > -- Job Board: http://jobs.nodejs.org/ Posting guidelines: https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines You received this message because you are subscribed to the Google Groups "nodejs" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/nodejs?hl=en?hl=en
