OK, I've had a chance to play around with this over the last few days and have, probably, more comments that you care for. I organized this email by general comments and details about them...
GUESSING THE ARCH TRIPLET
So I installed with --disable-nonflattened and ended up with a ix86-pc-linux-gnu/ directory in /usr/lib. Even if we were to standardize this to i386-pc-linux-gnu, it would still be different to what Debian is offering (see
https://wiki.debian.org/Multiarch/Tuples). There, the "vendor" section of the tuple is missing. According to the Autoconf manual, if --build, --host and/or --target are to be used (with AC_CANONICAL_{BUILD,HOST,TARGET}), then a current config.guess must be included.
LIBRARY COMBOS
I don't understand why these are still needed. Can't the library combo be inferred from the architecture triplet, nowadays? Maybe this was something that made sense when GNUstep first started, as there were so many completing ObjC libraries? Currently, I'm not entirely convinced this makes sense. For example, if you are deploying for apple-apple-apple your arch-triplet is x86_64-apple-darwin (or is it x86_64-apple-apple? I don't know), right? Is anything besides gnu-gnu-gnu and apple-apple-apple still around? As far as I can tell, adding this directory makes our non-flattened system incompatible with the Debian multi-arch system. And honestly, I'm not sure it is still buying us anything of value. It should be up to the person compiling GNUstep to ensure that they are not mixing the GNUstep libraries and something else that might be compatible. I mean, this person should know.
HOST/TARGET NOMENCLATURE CONFUSION
My first problem while reading through the current GNUstep-make documentation was with contradictory nomenclature between Autotools and GNUstep-make. In Autotools parlance, build is the machine where to software is being build, host is the machine where the software will be run, and target is the machine where the output of the software will be run on (only really applies to compilers, I think). This means that there's a constant translation that needs to happen in your head, where: Autotools build -> GNUstep-make host; Autotools host -> GNUstep-make target; and Autotools target -> ??? (
). When I started looking over our documentation earlier this week, I was utterly confused by section 1.7.3 of the make documentation (
). It took me a few minutes to realize the GNUstep nomenclature was inconsistent with Autotools. I, personally, consider this to be a major bug in GNUstep.