[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [MiNT] Software packaging (was: opkg / coldmint)



Hi,

On maanantai 18 helmikuu 2013, J. F. Lemaire wrote:
> I always wondered why configure was so terribly long. Sometimes it
> takes longer to run configure on a package than to run make! I hope
> this will be investigated some day...

That's because configure often does more than the actual build
and the script is interpreted (by m4 and shell), it's not a binary
program.

Most of the lines in configure output correspond to a program
configure builds and runs, to test your build environment and
configure the final software for it.

Building the actual software may very well mean fewer GCC invocations
than running configure (and just running GNU make instead of half of
the POSIX utilities, like Perl, multiple times).


Older autoconf versions also added *a lot* of redundant tests
to the configure scripts, for example tests for several different
Fortran compiler versions although you were using autoconf to configure
C-sources...


If you pre-seed configure script run, you can skip quite a few
of these tests, for example endianess, int size, like Linux
cross-build distros such as OpenEmbedded do (out of necessity).

MiNT specific packaging system could very well offer similar
helper to speed up builds for packages that want to take advantage
of that.


	- Eero

PS. IMHO the most stupid thing with configure is its support
for shells that don't support functions (I don't know of any OS
that has such a stupid shell).  That's why configure scripts
are hundred(s) of KB in size.

However, the sad fact is that there's nothing (clearly) better for
configuring C/C++ software (to the build environment) than autoconf.
There are many different tools for that purpose, but all of them
are flawed in some way, and less standard than autoconf.

For some specific purposes, like building Java programs, there are
better things.)

As to other GNU autotools, automake & libtool are less useful than
autoconf.