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
