Re: autotools gives autopain



BJörn Lindqvist wrote:

>>1) SCons intentionally ignores most standard *FLAGS (documentation says
>>so). You have to edit one or more SConstruct files to force flags you
>>want for your platform (it's a SuSE packaging convention), not flags
>>decided by somebody for it. This is the simplest solution, working only
>>in some projects:
>>    
>>
>
>According to the devs, that is a feature of scons. This page has a
>workaround: http://www.scons.org/cgi-bin/wiki/ImportingEnvironmentSettings
>Although I think your real problem is badly written SConstruct-files.
>  
>
It may be the fault of the person writing the SConstruct file, but it is
a problem that is not often encountered for autoconf/automake projects.

>>2) It is hard to change hardwired default paths and change, say /usr/lib
>>to /usr/lib64 for all packages. It took me about 4 hours of debugging to
>>get rid all of -L/usr/lib causing build failures. This covers only most
>>common problems:
>>    
>>
>
>I think you are being unfair to scons. Ofcourse it is not right to
>hardwire architecture dependent paths in SConstruct-files, but that's
>not a problem with scons, it's a problem with bad SConstruct files.
>Likewise, someone could hardwire installation paths in Makefiles.
>  
>
Again, this is not a problem often seen for programs using
autoconf/automake for the build system, so it really sounds like scons
just makes it easier for a developer to shoot themselves in the foot.

(this is probably a slightly unfair comparison though: I am sure there
are areas where scons makes it easier for developers to do the right thing).

>Scons really is nothing more than a very nice make-replacement inside
>a very nice programming language. A fairer comparision would be
>bksys/scons (which kde is built with) against autotools/make.
>  
>
Are there any particular medium complexity packages you could point out
using bksys?  Have those modules been packaged by any Linux distros?  If
so, did they need to resort to any ugly workarounds?

>>4) I did not find any DESTDIR support, needed for comfortable packaging
>>without root privileges. One has to go back 10 years and use:
>>
>>scons PREFIX=$RPM_BUILD_ROOT/usr install
>>    
>>
>
>What is destdir? Can you explain what the equivalent autotools/make
>thing is and what it does?
>  
>
The ability to build a program with a certain set of paths, and then add
a prefix to all those paths when installing the files, so that the
contents of that directory can be packaged.

The command Stanislav gave approximates this if all files for the
program fall under /usr, but would not be enough if some files should go
under e.g. /etc.  A DESTDIR install should rebase every installed file.

James.



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]