Mattias Gaertner wrote"make clean" should at least clean everything that "make all" touches.
Except for the final executables. There is no need and it won't work
under windows.
Well... One way to do it right would be to generate a manifest file for fpmake during make. This way fpmake can delete all required files
- precisely and cleanly. The manifest file would contain files with complete paths. Then clean would just delete all entries in all fpmake.mst files. Each folder could have a mst file. Just one idea... I'm sure about this - but there are tons of ways to do this precisely.
Of course if some directories are renamed the old directories are not
cleaned, but then the other clean commands will not help either.
On make the manifest files could be generated based on unit names.
Since speed does not matter anymore make clean could be extended to
clean more.
Exactly. This problem has happened to me about 3 times in the last 4 months. I just didn't know the error I encountered was a localized or project issue. This time it was a localized problem that could possibly have been solved if I had deleted all compiled units. But I always run clean with my builds so IMO the bug is with the make process. I have a similar problem with FPC where I do try to delete FPC and re-export etc...
The real problem is the disruptive nature when the problem is not-trivial and non-avoidable. In this case I didn't delete Lazarus until I saw that others didn't have the same issue - which only then did I know where the problem was.
This issue is pretty important to solve. But this might be the responsibility of fpc rather than Lazarus.