On Sun, Mar 4, 2012 at 12:02 AM, Tom Hacohen <t...@stosb.com> wrote:
> On 04/03/12 00:31, Lionel Orry wrote:
>> Hi Tom,
>>
>> in case you want to widen your choices, attached is a wscript file to
>> build Ecrire using the Waf build system. You only need python , the
>> waf script from here:
>> http://code.google.com/p/waf/downloads/detail?name=waf-1.6.11 (rename
>> to 'waf' then chmod a+x) and the wscript in ecrire root source
>> directory. Sample commands:
>>
>> cd <path/to/ecrire>
>> cp <path_to>/wscript .
>> wget -o waf http://code.google.com/p/waf/downloads/detail?name=waf-1.6.11
>> chmod a+x waf
>> ./waf configure
>> ./waf build
>> ./waf install --destdir=$PWD/dist
>> ./waf distcheck
>
> Thanks a lot. I went through the syntax, it looks pretty elegant.

thanks for having a look. I made this one very quickly (15 minutes) so
it could be much better but anyway.

> How widely used is it?

Not sure exactly, but it's quite addictive. I use it in all my
professional projects now (mainly for C/C++). But apart from the small
me, the most widely known waf users around are Samba and Node.js
projects.

> The main problem, I guess, is that it's not as easy
> to use as windows (and other platforms?) such as cmake (because of the
> python dep). That's one of the things I liked about cmake (but far from
> only).

About the python dep, it's unfortunately needed for all steps
(configure, build, install, whatever else) since the wscript is simply
a python script evaluated in a specific context. So yes, the python
dep might be a no-go for windows (unless we create a waf executable
embedding the python runtime, I think there are scripts to transform a
python script to a .exe).

Unlike CMake, waf is not a makefile generator, it is a build system by
itself with its own dependency tracking and other useful features.

>
> Also, what about out of source builds? I've heard about Waf before
> (mostly in a negative context), and maybe the python dep makes it a no
> go (though it's also alluring), but I'd still like to hear more if you
> care to provide. It's fun easily being able to do whatever python does.
> :) Does it create windows VS project files?

I heard about some efforts towards VS project files and I think it
does work quite correctly though I've not tested: see
http://code.google.com/p/waf/source/browse/waflib/extras/msvs.py

There also is an eclipse project generator
(http://code.google.com/p/waf/source/browse/waflib/extras/eclipse.py)
and a XCode project generator
(http://code.google.com/p/waf/source/browse/waflib/extras/xcode.py).

> or Makefiles in general?

it could theoretically be used to generate a Makefile easily, but I
think it should also be used to generate a configure file too, since
the configure step is important in the build process as designed by
waf. it is close to the autotools in this regard. That being said,
I've not seen a Makefile generator yet (probably because it would need
other external scripts such as a configure).

>
> Also, what I don't like about cmake (which is an issue that seems to
> exist with Waf as well, but heck, I don't know enough about both to know
> if it's even true), is not being able to create a configure script so
> the source tarball will be dep free.

well for waf the configure step is in python, so if you know of a way
to translate python code to bash code you might be my hero, but I
doubt it is easily feasible. :P

more seriously, configure scripts use bash and gnu-like tools (sed,
awk, grep, whatever) so I don't consider that configure scripts are
dependency-free. This is a question of point of view. Of course, if
you attempt to build a software project, you often tend to have such
an environment ready so that your "./configure; make; make install"
works (think msys for mingw or cygwin for windows for example, and on
MacOS I heard about packages to get a GNU-ready environment). So as I
stated above, it may not be harder to generate a self-executable file
embedding the python vm and the waf script (would be waf.exe on
windows for example) and ship it in a way or another. Then, absolutely
no dependency (other than compilation tools themselves) is needed,
meaning the waf script could be executed from a cmd.exe.

I tried to place myself from the windows POV since I know it better
than MacOS or another OS, but you get the point. If you want to build
a software, there's a environment to set up. Installing python or
downloading a waf.exe file is IMHO easier than setting up a GNU-like
environment (like msys/mingw) when you're not used to unixes.

>
> Thanks again,
> Tom.
>

You're welcome,
Lionel

------------------------------------------------------------------------------
Virtualization & Cloud Management Using Capacity Planning
Cloud computing makes use of virtualization - but cloud computing 
also focuses on allowing computing to be delivered as a service.
http://www.accelacomm.com/jaw/sfnl/114/51521223/
_______________________________________________
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

Reply via email to