On Fri, Jan 13, 2023 at 1:14 PM Zack Weinberg <z...@owlfolio.org> wrote: > > On Thu, Jan 12, 2023, at 9:24 PM, Eduardo Hernández wrote: > > I've been trying to separate the build system and source directory > > completely. Part of that would be to have the 'configure' script in the > > 'build' directory, away from the 'src' directory > > This goes against a basic design assumption in both Automake and Autoconf: > you are expected to be making tarball releases that include the configure > script and a bunch of other generated files (aclocal.m4, config.h.in, > Makefile.in if Automake is used, etc.) That assumption goes back to an era > when most software distribution did _not_ involve direct access to the core > developers' version control system (if there even _was_ one) and when asking > people to install Automake and Autoconf (and all the stuff _they_ depend on, > notably M4 and Perl), before they could install any _other_ GNU software, > would've been a non-starter > > So, all the generated code assumes that the location of the configure script > *defines* the top level of the source tree. The `--srcdir` option is only > intended for use as a manual override when the automatic probe for the > location of the configure script doesn't work.
Ah! When I found --srcdir I thought it was an option without all the kinks worked out, but that makes more sense > This design arguably could stand to be reconsidered, but it'll be a lot of > work to get to a place where you can do the thing you would like to do. Are > you up for that work? Not at the moment. I've been away from FOSS development for a decade, and just got back to it in the last few months. I don't mind long tasks, but I already have a backlog from other projects; I do like the autotools more than any alternatives I've tried (CMake, Ninja, etc..) so I may get involved with development in a couple months or years. For the time being, I'm happy just with learning how the autotools work In my case, I'll just place a single configure script in the src directory and run it from the build directory. That's still a lot cleaner than the recursive in-source build system I'm replacing Thanks for the information!