lua-users home
lua-l archive

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


Coda Highland <chighland@gmail.com> writes:
> On Mon, Jul 16, 2012 at 11:19 PM, Miles Bader <miles@gnu.org> wrote:
>
>>> The better alternative to autoconf is usually nothing, IMO.
>>
>> This is only true for the most trivial cases (which, to be fair, may
>> include many lua projects), and often not even then, because even
>> trivial autoconf files are usually much simpler than the equivalent
>> shell-script.
>
> Would you consider LuaJIT to be a "trivial" case? It doesn't use
> anything but straight-up "make".

I've never looked at LuaJIT's build systems, so it's hard for me to say.

There are certainly "reasonably portable" packages out there that
depend only on make (e.g., git), but those that are complex enough
often simply end up essentially duplicating what autoconf does
themselves.  That's the authors choice, of course, but it's not a step
for the faint of heart, as it tends to make makefiles complex and
fragile.

> I'm going to have to agree: autoconf is an unnecessary extra step in
> software deployment on modern systems, and one that slows down build
> times for little tangible benefit.

In certain cases, that's true.  In others, it is just wrong.

It all depends on the nature of the software, on the
libraries/services it needs, and the goals of the author.  Software
that is "purely computational" (and so needs little in the way of
external libraries or services) can often be written portably enough
to avoid the need for configuration, although this can be hard if you
want to _actually_ be portable, even to a restricted range of systems
(like "typical linux systems", and especially if you include oddball
but popular cases like macosx).

My general development route is to start out with simple Makefiles,
and keep them as long as possible.  In cases where just make (with
maybe some helper shell scripts) are enough, this is nice.  But in
many cases, this simply doesn't prove to be adequate in the long run.

[and note that one of the best things about the autotools is not
actually autoconf, but automake, which allows far more concise and
readable/maintainable makefiles than doing the same thing in raw
make.]

So I don't think there's really any need for an argument:  if make
proves enough, then use it.  If it's not, then use something more.
It's OK to change somewhere down the line if the first choice doesn't
work out.  Leave ideological purity to the fanbois... :)

-miles

-- 
Guilt, n. The condition of one who is known to have committed an indiscretion,
as distinguished from the state of him who has covered his tracks.