9fans - fans of the OS Plan 9 from Bell Labs
 help / color / mirror / Atom feed
From: Greg Hudson <ghudson@MIT.EDU>
To: 9fans@cse.psu.edu
Subject: Re: [9fans] Silly porting fun
Date: Thu, 13 Jul 2000 12:01:14 -0400	[thread overview]
Message-ID: <200007131601.MAA01725@egyptian-gods.mit.edu> (raw)
In-Reply-To: Your message of "Thu, 13 Jul 0100 09:36:13." <200007130836.EAA20995@cse.psu.edu>

> i have, frequently, on Unix systems, not Plan 9.  it just has to be
> one version on (and not differing in essentials) that they haven't
> seen before.  the manufacturer tweaks an include file or moves a
> library and they fall apart.  makes you wonder why they bother to
> probe.  (made me wonder, anyway.)

Plan 9 people have an incredible propensity to focus on the occasional
failure of common Unix models and ignore the successes.  The
principles behind the autoconf model are:

	* You'd like your program to compile, on a wide variety of
	  systems, when the user types "./configure" and "make".  So
	  you don't want to do things at build time which won't
	  compile or link.  The best way to find out whether something
	  will compile or link on a given system is to try it out at
	  configure time.

	* You don't want to require builders to have special tools on
	  their system to build your program.

As long as package authors stick to these principles, autoconf works
quite well, even if it is just a kludgy collection of m4 macros.  It
doesn't matter if a vendor tweaks an include file or moves a library;
either a candidate bit of code will work on that system or it won't.
Unfortunately, not all portability issues can be handled by simply
trying to compile and/or link a finite number of code samples, and not
all package authors understand or care about the above principles, so
you get the occasional problem.  But really, I've dealt (as an
integrator) with a lot of autoconfigured programs on a lot of systems,
and I've never wished that a program didn't use autoconf.

On the other side of the coin, as someone mentioned, you can try to
make your software portable without autoconf.  That trick almost never
works well.  You invariably wind up creating a complicated one-off
system with its own weird conventions for tweaking various build
parameters.  I've played integrator for a lot of programs which take
this approach, and I've always wished that they used autoconf.

> you will have the penguin's own time working out what those scripts
> are doing, and untangling some bizarrely structured makefiles.

"Working out what those scripts are doing" is usually a matter of
looking at config.log.

Bizarrely structured makefiles are not autoconf's fault.  I've written
lots of autoconfigured packages with extremely concise and
understandable Makefiles.  They may be automake's fault, though.


  reply	other threads:[~2000-07-13 16:01 UTC|newest]

Thread overview: 27+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2000-07-13  8:36 forsyth
2000-07-13 16:01 ` Greg Hudson [this message]
2000-07-14  9:15   ` peter huang
2000-07-14  9:19 ` Kris Van Hees
2000-07-14 14:56   ` Douglas A. Gwyn
2000-07-17  9:11   ` [9fans] Silly porting fun (RC for Unix) Steve Simon
2000-07-17  9:11   ` [9fans] Silly porting fun Christopher Browne
  -- strict thread matches above, loose matches on Subject: below --
2000-07-14 18:42 dhog
2000-07-14 14:53 Russ Cox
2000-07-14 14:04 bobf
2000-07-14  9:58 forsyth
2000-07-16 16:04 ` Lucio De Re
2000-07-14  4:18 pip
2000-07-13 23:58 rob pike
2000-07-14  9:18 ` Douglas A. Gwyn
2000-07-13 20:32 Russ Cox
2000-07-13  0:31 Russ Cox
2000-07-13  5:21 ` Randolph Fritz
2000-07-13  0:23 Russ Cox
2000-07-13  0:33 ` Christopher Nielsen
2000-07-12 23:30 forsyth
2000-07-12 23:46 ` Christopher Nielsen
2000-07-13  5:19   ` Randolph Fritz
2000-07-12 21:16 Randolph Fritz
2000-07-12 21:44 ` Latchesar Ionkov
2000-07-13  9:59   ` Douglas A. Gwyn
2000-07-13  0:38 ` arisawa

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=200007131601.MAA01725@egyptian-gods.mit.edu \
    --to=ghudson@mit.edu \
    --cc=9fans@cse.psu.edu \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).