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

Re: autotools and programming style (was: Remove cdrtools)

On 14-Aug-06, 17:32 (CDT), Hendrik Sattler <post@hendrik-sattler.de> wrote: 
> Am Montag 14 August 2006 23:27 schrieb Steve Greenland:
> > The *real* problem with the whole autotools disaster is that it promotes
> > a braindead idea of how to achieve portability: a #ifdef branch for
> > every different system (or library version, or whatever), strewn
> > throughout the entire codebase.
> Even when looking at somewhat related systems like *BSD and Linux, even 
> opening an bluetooth RFComm socket _must_ use #ifdefs because this small OSS 
> community cannot communicate about simple stuff like:
> - placing the bluetooth.h header file
> - naming values in the headerfile
> - names of the address structure and its elements.

No, you don't #ifdef all the users, you write multiple versions of a a
generic function that hides the differences, and compile the appropriate
one. Read the reference I gave.

Sure, you *could* do this with autoconf driving the compilation, but
nobody ever does. They just write a spaghettied mess in the main body of
the code, like the examples.

> > Real portability involves understanding 
> > your target systems, learning where the rough edges and corner cases
> > are, and developing proper abstractions to work around them.
> Real life portability is often done for systems that you
> - did not install yourself
> - do not have steady access to or no access at all (only using documentation)
> or is done by people that somehow hacked into your peace of software to make 
> it work in their systems (with absolutely no design goal in mind while 
> porting).

Absolutely. But that doesn't justify crap code. The whole autoconf
system encourages minor patches and nasty #ifdefs rather than factoring
out what's different from what's the same.


Steve Greenland
    The irony is that Bill Gates claims to be making a stable operating
    system and Linus Torvalds claims to be trying to take over the
    world.       -- seen on the net

Reply to: