- To: chat slug <slug-chat@xxxxxxxxxxx>
- Subject: Re: [chat] portable scripting
- From: Conrad Parker <conrad@xxxxxxxxxxxx>
- Date: Sat Feb 8 07:39:06 2003
- User-agent: Mutt/1.3.28i
On Fri, Feb 07, 2003 at 07:52:53PM +1100, Jamie Wilkinson wrote:
> This one time, at band camp, Conrad Parker wrote:
> >On Wed, Feb 05, 2003 at 05:59:42PM +1100, Jamie Wilkinson wrote:
> >> This one time, at band camp, Conrad Parker wrote:
> >> >my point is that you can use autoconf to go beyond that level of
> >> >checking -- you can diagnose improperly installed packages like the
> >> >common case of a user installing a library but not its devel package,
> >> >in which case the header files and pkgconfig description are not
> >> >installed, yet the user complains "but I've installed the library!!!".
> >> >You can use autoconf to detect this situation and politely educate the
> >> >user about how to complete their installation.
> >>
> >> Do you do this in sweep? I might have to steal some of that stuff ;-)
> >
> >yep ... 642 lines of it ... plus it does a full configuration
> >summary in one pass where possible, instead of barfing on each
> >dependency one by one ...
>
> What, prints out at the end an entire "you have ogg installed here, you
> don't have gtk installed" kinda thing? Crikey.
sure. And if you don't have stuff installed, it tells you where to get it
from. This all came about by necessity -- for a couple of weeks I was
helping people find this stuff out over email ("send me config.log" etc.)
and telling them where to go to get libraries; I figured configure could
do that work for me, at the point of failure. Plus, for every person that
emails you with such a problem there's probably a hundred who tried it,
failed for the same reason and just gave up ("this shit's br0ken, I'm
playing $FPS!"). So, this way saves me time and encourages people to fix
their build problems.
Plus it'll work around different library version; eg. libsndfile0 or 1,
the vorbis prereleases (from a year ago, but in eg. Debian stable) for
which the only difference was one argument to ov_read_float(), speex beta3
(from about a month ago) or the current speex RC2 (a few extra features).
And if you don't have any of vorbis, speex, mad (MP3 loading), or erik's
Secret Rabbit Code (libsamplerate), it lets you build without them. All
this because you can't just assume people can or will go and install every
damn dependency you need down to the exact version number.
One comment from a user this morning who's playing with a bunch of leet
optimised distros I'd never heard of: "Sweep builds on every distro on
earth!"
Or yesterday: I asked a MandrakeClub volunteer who's pimping audio stuff
"is Sweep in Mandrake?", and he replied "Yes it is. In fact Gotz had the
latest version uploaded about ten minutes after it was released. :-)"
You don't get that if you live in the land of final versions ;)
conrad@screech:~/sweep/sweep-0.8.1% ./configure
...
checking for Vorbis... no
*** Could not run Vorbis test program, checking why...
*** ...
*** Trying explicit detection of Ogg Vorbis libraries and headers ...
...
checking for deprecated ov_read_float() interface... no
...
************************************************************
* Sweep 0.8.1: Automatic configuration OK.
**
** Configuration summary:
**
** Experimental code: ....... no
** Audio device handling: ... OSS
** PCM: libsndfile version .. 1
** Ogg Vorbis support: ...... yes
** MPEG (MP3) loading: ...... yes
** Speex support: ........... yes
** Secret Rabbit Code: ...... yes
** Translations: ............ de fr hu it pl ru en_AU
**
** Installation directories:
**
** Program: ................. /usr/local/bin
** Plugins: ................. /usr/local/lib/sweep
**
**************************************************************
**
** Type 'make' to compile Sweep.
**
** Type 'make install' to install Sweep. Plugins will not be
** accessible until you have done this.
**
** Have fun with Scrubby!
*
************************************************************