Showing 3 posts
Build systems are one of my favorite topics in software engineering. If I recall correctly, my interest in this area started when I got into NetBSD in 2002—20 years ago—and became a pkgsrc contributor. Packaging software for NetBSD made me fight various build systems and, in particular, experience the pains of debugging the GNU Autotools. Around that same time, I was also writing small tools here and there. Out of inertia, I used the GNU Autotools for these and, the more I used them, the more I saw an opportunity for improvement. The GNU Autotools were slow, hard to deal with, and they bloated every package. Why did you have to ship heavy configure, Makefile.in and libtool scripts in every single distribution file when you could instead rely on a few system-wide scripts? And thus Buildtool was born in the summer of 2002, just before I started college, and I worked on it for about two years. The Buildtool project recently came to mind and I noticed that its website is still up and running (kudos to SourceForge for that), so I poked around a bit. Just by looking at the User’s Manual, I’m amazed by how comprehensive the tool is and makes me jealous of how much free time I had back then. Since noticing this, I had been meaning to try the tool again and write a post, and finally got to it just yesterday. So let’s take a tour of what Buildtool was and what it achieved.
May 13, 2022
·
Tags:
<a href="/tags/buildtool">buildtool</a>
Continue reading (about
21 minutes)
Hmm, Buildtool... one of my pet projects, probably the one on which I've spent the most time working... and it was even starting to get some (few) popularity lately But I must admit it. The code is, in its actual form, dead :-( It's unmanageable (shell scripting doesn't scale, you know) and breaks in many, many places. Just consider the following facts: Detection of C++ features from bt_config fails in many cases. bt_logic's behavior is less than acceptable, and adding functionality to it is a PITA. Several modules haven't been modified across versions, so they don't work properly. For example, bt_lint is almost useless. Shared library handling is broken in many systems, and fixing it could be very difficult. The code exposes internals too much, specially in environmental variables and C/C++ defines. But cleaning that up is also complex due to the nature of shell scripts. I was suggested recently to make bt_dist only include in tarballs what was really needed, and not everything (just like GNU Automake's make dist does. I like the suggestion, but implementing correctly is impossible due to the current code. ... plus a large etcetera. All in all, too many problems that can't be solved without doing very gross hacks or restarting the project from scratch. This is why I haven't touched the code since the beginning of the summer.
December 1, 2004
·
Tags:
<a href="/tags/buildtool">buildtool</a>
Continue reading (about
3 minutes)
I'm proud to annouce the sixteenth version of Buildtool (0.16), the newest and coolest version ever published (hmm... this holds true for all new versions so far). Don't know what is it? Just go to the website and start reading! This new version comes with lots of new features and bug fixes, developed during the previous five months. Yeah, I know... a very long delay since the previous version, but I haven't had enough time to sit down and publish a version; it's a very time consuming and error prone task. Without detailing it much, I've to: create the tarballs, upload them (to Sourceforge), create entries for the files, update the website to announce the new version, send an announcement to Freshmeat, update the NetBSD packages... and post to this blog (this step is new in this version, hehe).
July 4, 2004
·
Tags:
<a href="/tags/buildtool">buildtool</a>
Continue reading (about
1 minute)