Hello Matěj, (how do you pronounce your name? like Matyesh?)
> The script solution you have proposed does the job, but I hate when the > autogen.sh file has more than, let's say, ten lines. Well, the autogen.sh script has more to do if you omit more files from version control. An autogen.sh script of 100 lines doesn't disturb me much, if it is straightforward. > In fact I am > particularly happy if the job preceding the execution of the ./configure > script can be done just with autoreconf -i invocation 10 years from now, fetching gnulib might be as easy as this. Until then, you can help making it easier. > If I use the code in an autogen.sh of my project, the person that comes > to the project after me will have a problem, because he/she will have to > understand and maintain that code. The build infrastructure of a project has a size that is essentially proportional to the size of the project. It is normal to spend, say, 10% of your effort on build infrastructure. Or 20% in C projects, due to all the portability issues that remain even with autoconf and gnulib. > I can't agree with the basic assumption - the assumption that > gnulib as it is can be loved by "mainstream developers". > I don't think so for these reasons: > - It is not trivial to obtain gnulib. At least if compared to obtaining > most of other packages typically needed to build a system. > - gnulib-tool is not supposed to be installed system-wide (at least I > have understood so), so its usage is more cumbersome compared to what > people are used to. If you want the POSIX part of gnulib to be distributed like a normal shared library, you can help working on this, as described in <http://www.gnu.org/software/gnulib/manual/html_node/POSIX-Substitutes-Library.html> But then again, it won't help you retrieving .m4 files. One of the beauties of gnulib-tool is that it distributes .m4 macros and .c files with the same mechanism and interface. You don't even need to know whether a certain feature is implemented through .m4 macros or .c files - you just request the module that implements the feature. Bruno