Dienstag, 28. September 2010

Developing Autotools

GNU Autotools are one of the central parts when you want to develop software with the final aim of world domination or at least world scratching. But when I tried to use them, my makefile and unix wizardry led me very fast to the obstacles and borders of autotools, making me to review and patch the code for my needs.
So I was starting a git to import the latest libtool code, that made was my first anchor point to change some of the real bad effects autotools sometimes have.
Actually I tried that several times in the past but always gave up after a few hours watching code that was nearly not documented, had no entry points that were able to be found fast and absolutely no documentation about or development guidelines.
That was hard: Such a prominent Software, so hard to read, so hard to understand, so hard to get involved. I thought these times were gone, but they aren't.
Let me show you an example for this: After finding out how to read and modify the libtool main code that was found libltdl/config/ltmain.m4sh (not very obvious,is it?) my real problems could be found there in a function called func_mode_link at line 4292 (in my current version). Hmm, well that bad, that file is quite long. So its quite hard to read. But that was not the problem. I'm used to work on long files, and its easy to tag such functions, so, who cares.
The real problem is that this function is over 4300 lines long! In words: fourthousandandthreehundred. I don't know what you think, but thats definately too long for me.
Ok, there are some inline comments here and there, but what is the use of them, when I first need to overview over 80 pages of screen output (assumed about 50 lines on one screen). That isn't a short story anymore. That is some days of work, just to find the lines of code you are searching for and that's not the kind of software I really want to use.
Well, what can we do. When we want to dominate the world, its hard to go over such a tool, as it provides the abstraction for many systems. But I think we should really start to redesign this usefull tool of software development.
What do you think ... ?

Keine Kommentare:

Kommentar veröffentlichen