Hi all
I have some gripes about the build system:
1. make clean commands should be idempotent - they should have the same result every time. This is true for make clean (which undoes make) but not for make distclean (which undoes configure) or make repoclean (which undoes autogen). In both those cases mk/buildsys.mk and mk/extra.mk are deleted, which then breaks the build system - you cannot run any make commands until you re-run configure to re-create them. I do not understand why the creation of these two .mk files is done by configure, but I suggest that they are not deleted by distclean (even though that then will not strictly undo configure). This way you can still make repoclean after make distclean without things being broken. Even this would leave make repoclean not idempotent (you could only run it once), but it's an improvement.
2. make clean commands should remove ALL .o and .dep files. Currently they only remove the .o and .dep files generated by the current configuration. So if you configure without --enable-sdl2, make [repo/dist]clean does not remove main-sdl2.o or main-sdl2.dep. This is infuriating. Can anyone think of a good reason not to change this?
Rant over.
CC
I have some gripes about the build system:
1. make clean commands should be idempotent - they should have the same result every time. This is true for make clean (which undoes make) but not for make distclean (which undoes configure) or make repoclean (which undoes autogen). In both those cases mk/buildsys.mk and mk/extra.mk are deleted, which then breaks the build system - you cannot run any make commands until you re-run configure to re-create them. I do not understand why the creation of these two .mk files is done by configure, but I suggest that they are not deleted by distclean (even though that then will not strictly undo configure). This way you can still make repoclean after make distclean without things being broken. Even this would leave make repoclean not idempotent (you could only run it once), but it's an improvement.
2. make clean commands should remove ALL .o and .dep files. Currently they only remove the .o and .dep files generated by the current configuration. So if you configure without --enable-sdl2, make [repo/dist]clean does not remove main-sdl2.o or main-sdl2.dep. This is infuriating. Can anyone think of a good reason not to change this?
Rant over.
CC
Comment