« Peas, Cyrus and Ruby | Main | Cobra Verde and The Audition »

December 11, 2004

Portability?

Here’s a real brain teaser for you GPL-boasting autoconf-using fucksacks who think that just because you have a shell script sitting in front of your Makefile, it’ll work on everything from AIX to Windows NT.

If your application depends on something that’s Linux only (like say, for example, the *A*dvanced *L*inux *S*ound *A*rchitecture or ALSA for short), what’s the point of using Autoconf? A snapshot of the ./configure line for TuneIt:


checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking whether make sets $(MAKE)... yes
checking for working aclocal-1.4... missing
checking for working autoconf... found
checking for working automake-1.4... missing
checking for working autoheader... found
checking for working makeinfo... found
checking for gcc... gcc
checking for C compiler default output file name... a.out
checking whether the C compiler works... yes
checking whether we are cross compiling... no
checking for suffix of executables...
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ANSI C... none needed
checking for a BSD-compatible install... /usr/bin/install -c
checking for snd_pcm_open in -lasound... no
configure: error: Couldn't find ALSA soundcard drivers. You must install these first. See www.alsa-project.org or use ALSA modules in linux kernel version 2.6

Well, that’s going to be fun from fucking FreeBSD.

Look at what this does. “Does he use .o for his objects? Does he have a C compiler? Does he have install -c? Does he have stat()? What about a permission-retaining filesystem, does he have that? A scheduler, does he have that? Does he have fucking Linux 2.6?” If I have fucking Linux 2.6, I MUST HAVE THOSE OTHER THINGS.

Now granted, this is for a guitar tuner, I have no right to expect, uh, linear logical thought processing from the developer. But still.

By decree of the Dan: Autoconf, Automake and Libtool are hereby declared bunk and shit. There are exactly four platforms in this world: Gentoo Linux, *BSD (shuttup), Mac OS X, and Windows. You can strive for portability between the three UNIXes listed, but at the end of the day, you’re really only going to make it work on Gentoo and Mac OS X. The BSD fucknuts will make a port for your shit eventually if it’s worth anything and can compile on the Mac. Windows, you suck. Everyone else can eat a dick.

Oh, and another beef with Autoconf & company. Half of the developers who use that stuff don’t understand what it means. The reason why most configure scripts produce such copious and meaningless output is because the developer copied the fucking config file from some other project, and they’re not even using the defines produced by it. And another thing, what’s up with developers who don’t bother to run their Makefile.cvs before tarring up a release? Isn’t another point of Autoconf & co that it doesn’t need to be installed on the destination system? And another point, it’s a fact that using Automake forces you to live with recursive make, which sucks. Argh! Stallman you primadonna, I fucking hate you!

While I’m at it, what’s with all the free music software? None of it is complete, most of it vanishes shortly after being released with only vague references and broken links. The best guitar tuner on the market, QJackTuner, is available in CVS only, on a site that insists it’s never been checked in or updated. All the other tuners depend on Linux directly. Jack is supposed to be cross platform, and it does run but it doesn’t seem to get anything from the microphone. WTF?!!

Posted by FusionGyro at December 11, 2004 01:41 AM

Trackback Pings

TrackBack URL for this entry:
http://www.clanspum.net/~fusion/blog/admin/mt-tb.cgi/66

Comments

If your guitar tuner isn’t receiving any signal from the microphone, then you might need to check your mixer settings (make sure the mic is set as the recording source) and your JACK connections.
Starting the jackd server may not be all that is required to setup the system: you might need to route your audio signals. There are command line tools for doing this. `jack_lsp` will list jack ports. `jack_connect` will connect input ports to output ports. To connect ZynAddSubFX to my sound card, I type `jack_connect ZynAddSubFX:out_1 alsa_pcm:playback_1` (etc.).
Under Gentoo, if you emerge alsa-patch-bay after emerging jack-audio-connection-kit, then you also get jack-patch-bay. jack-patch-bay is a kinda simple GUI for routing audio from outputs to inputs.

Posted by: David Baird at December 17, 2004 10:52 PM

Post a comment




Remember Me?

(you may use HTML tags for style)

Want HTML? Use Textile instead.