A _full_ install is needed for automated bootstrap
IIRC data2inc might be called in compiler/utils before data2inc is generated
So the "shortcoming in the fpc make file" was really an understatement. data2inc is an internal dependency for make, created by make, but not always in time.
The dependency on the bootstrap is a full FPC install. A full FPC install contains data2inc. There is no shortcoming.
There is a "cmdline compiler only" shortcut ONLY on open source *nix (since other platforms require "make" "binutils" etc) for people that know what they are doing. But that is a workaround for quick and dirty work, not an official supported solution.
The cmdline compiler-only route was never official. It just works mostly, and was somewhat documented in the buildfaq to help people keep machines up to date with minimal dependencies.
That doesn't mean that you can't think about building on the standalone compiler, but big changes in the current codebase wrt fpcmake are unlikely,
since it is both a production and declared legacy. As usual with longterm infrastructural work on the successor has stalled.
while in general SVN is in a consistent state, ocassionally people make mistakes (and not check in the generated version) and some operations on checkouts can corrupt timestamps by fractions enough to select a different codepath by make. The automatic regenneration guards against that, but adds a dependency.
But isn't that the wrong way around? Instead of putting internally build files under svn control and put a safeguard in place, logic says that one should only put sources under version control and build always.
That's something for any new system to attempt. The old system already depends on way too many externals that are immutable (starting with make)
No more problems with different codepaths. Lazarus has a similar problem with some lrs resource files under version control. It also happens that developers forget to regenerate them before committing the new sources with sometimes build failures as a result.
Actually the filesystem thing (having sources shared between multiple OSes or on network drives, extracting archives made on different OSes that cause date rounding errors during file creation) is more common.
If you really want to work around this, you need to touch all data2inc generated .incs.
A touch will just fool the guard. The inc doesn't not correspond with the source if the developer forgot to regenerate them. So, touch will avoid the data2inc missing error but the outcome is a fpc that does not correspond with the sources.
Then your only choice is to follow the official way, and always require a proper installation.
I don't think touching is so bad. It might mask a very short transient problem in rare cases, but it will save you a lot of trouble where people have moved files across filesystem bounderies. Most of such forgotten makefile regenerations are for platforms that are still under development anyway. (which is why they go unnoticed)