Hi,

Jordon wrote on Fri, Jan 20, 2017 at 11:01:25PM -0600:

> I need to learn about the config process
> and I'm not sure where to start.

If you want to learn about automatic build configuration,
i'd recommend to *NOT* look at the GNU autotools - and at none
of the other monster systems like cmake, imake etc. either.
Because there, you spend huge amounts of time learning about the
ridiculous overengineering of these tools, and you will likely
not get a reasonable big picture of what the essential tasks
really are.

> What is the BSD standard for config scripts?

I'm not aware of any.  Maybe having one might be nice - but the
need is not very pressing because it's quite simple to write
working autoconfiguration completely from scratch without any
tools.

For example, look at portable mandoc:

  http://mdocml.bsd.lv/cgi-bin/cvsweb/?cvsroot=mdocml

That's an about 30.000 lines codebase of ISO C, but using some
BSD-specific extensions - err(3), fts(3) - and even OpenBSD-specific
extensions - ohash_init(3), reallocarray(3), strlcat(3), strlcpy(3),
strtonum(3) - along with a number of POSIX functions that some older
systems lack.

The configure-script is 474 lines of hand-written POSIX sh(1) code,
human-readable.  It comes with 28 short test*.c files written in
human-readable C and with 17 compat_*.c files that are used to plug
in replacement implementations for functions missing in the system
we want to run on.  Regarding how to use it, see the INSTALL file,
but basically, it boils down to the usual

  ./configure && make && make install

It works on any reasonable system (i didn't test it on systems
that were already obsolete 20 years ago, but is that relevant?)
In particular, it is tested on

 - OpenBSD
 - FreeBSD 9, 10, 11
 - NetBSD
 - DragonFly BSD
 - illumos
 - Minix 3
 - Alpine, Arch, Slackware, Crux Linux
 - Void Linux with both glibc and musl
 - debian GNU/Linux wheezy, jessie, stretch, sid
 - CentOS 5 & 6, Fedora 20, RHEL 5 & 6
 - SLES 11, openSUSE 13, xUbuntu 12 & 14
 - MacOS X Tiger and El Capitan
 - IBM AIX 7.1
 - Oracle Solaris 11
 - SUN OS 5.9 and 5.10

Do you want to support more?  Like, what about 4.3BSD-Reno?
Or maybe DEC ULTRIX?  Not really, right?

Yours,
  Ingo

Reply via email to