On Tue, Jul 25, 2017 at 3:33 AM, Dominik Psenner <[email protected]> wrote:
> If xx&&yy&&zz is complicated why not ship a makefile with an install target?
>
> On 25 Jul 2017 9:16 a.m., "Thorsten Schöning" <[email protected]> wrote:
>
>> Guten Tag Robert Middleton,
>> am Dienstag, 25. Juli 2017 um 02:28 schrieben Sie:
>>
>> > As far as I'm aware, the configure.sh is not platform-dependent,
>>
>> It is in a sense that it's arbitrary old code generated on my platform
>> while obviously each other platform could generate better fitting one
>> on that platform. That's not just about some older vs. some more
>> current Linux distribution or version of autotools, but about
>> autotools on a completely different platform as well, like Cygwin on
>> Windows, lxss on Windows 10 or whatever. Letting all platforms do
>> their stuff on their own improves chances that things just work.
>>
>> Shipping "configure" and additional stuff does only make sense if no
>> tools are present and needed on the target system generating those
>> files on it's own, but even the current docs are named "autotools",
>> tell people to install autoconf regardless how they build etc. So in
>> the end we need to change the docs to distinguish between how to build
>> source- vs. non-source-releases, blow the release archives and so on.
>>
>> So what's the actual problem with not including the files automake
>> includes and tell people to always exec autogen.sh instead? Is it only
>> because it's unknown to people familiar with "configure && make &&
>> make ..."? Is it only bad practice?
>>
>> Don't get me wrong, I just need to revert two commits, but am trying
>> to understand why it should be a good thing to do so.
>>
>> Mit freundlichen Grüßen,
>>
>> Thorsten Schöning


It's more of an expected behavior - when people download an autotools project
(e.g. a release tarball) they expect that they only have to do
./configure && make && make install.  Many automated build systems also make
this assumption, e.g. Debian builds, and I think builds for Yocto and
Arch as well.
I'm not sure about other distros, but I suspect that it's similar.

The reason that the Makefiles aren't distributed is because they are
generated by
the ./configure script.  Since you can turn on/off different
features(not so important
for log4cxx at the moment) you can't ship a pre-generated Makefile.  CMake does
something similar, you don't ship the generated makefile, you only
ship the files
that tell you how to build it(CMakeLists.txt).

Wikipedia has a good writeup: https://en.wikipedia.org/wiki/Configure_script

I hope that makes more sense now.

I can also update the documentation and send a PR if that would help to clarify.

-Robert Middleton

Reply via email to