I have no idea what made you do that thing with folders and subfolders, it sounds like it has much more cons than pros.
I'm not sure if you're talking about makefiles and the "make" command, but yes, a makefile will help you, you can define some recursive rules to just compile and link everything, but maybe with your approach and those hundreds of .bat files it's kind of risky to make such a big change .
About those header files with 400 #include lines... I don't know what can help you with that, it sounds like a bad idea to me and I'd have avoided that from the begining.
revriting/refactoring my "400 modules" system/project is possible though as I say it is burdensome - and for example could take you a 3 days of a bit stressfull work (stressful becouse before you done it it is not working ;/ and this is stressful (more - if you leave it it may be a little hard to recheck what you have to mend ;/)
why i decided to try this tree? tree is a better /more increased
level of order/organisation /tidy - linear pack of modules can simulate it with some prefixes (and i used it previously) but i decided to give a try to real folder tree
the trouble is what i said - the dream it would be working automatic it is if i would not need to hold this fc*kng hard references in a form of summaric header and summaric linker
if you corious how my link.bat looks like
c:\mingw\bin\g++ -O3 -Wl,--subsystem,windows -w wis\window\change_resolution\change_resolution.o wis\window\resize_window\resize_window.o wis\window\setup_window\setup_window.o wis\window\toggle_fullscreen\toggle_fullscreen.o wis\window\game_pause\game_pause.o wis\service_input\service_keyboard\service_keyboard.o wis\service_input\service_mouse\service_mouse.o wis\service_input\service_rawinput\service_rawinput.o wis\service_input\input_assistant\input_assistant.o wis\service_input\camera_navigator\camera_navigator.o wis\system_info\cpu_info\cpu_info.o wis\system_info\ram_info\ram_info.o wis\system_info\qpc_timer\qpc_timer.o wis\system_info\run_benchmarks\run_benchmarks.o wis\configuration\configuration\configuration.o wis\client_data\blitter\blitter.o wis\client_data\depth_bitmap\depth_bitmap.o wis\client_data\frame_bitmap\frame_bitmap.o wis\client_data\stencil_bitmap\stencil_bitmap.o wis\handle_errors\handle_signals\handle_signals.o wis\handle_errors\handle_errors\handle_errors.o wis\assist_info\hud_assistant\hud_assistant.o wis\assist_info\plot_frame_time\plot_frame_time.o wis\assist_info\window_title\window_title.o gs\frame\frame.o gs\cars\cars.o gs\pixelguerilla\pixelguerilla.o dris\2d\phys_pixel\phys_pixel.o dris\2d\phys_scanline\phys_scanline.o dris\2d\phys_vertline\phys_vertline.o dris\2d\phys_line\phys_line.o dris\2d\phys_wire_circle\phys_wire_circle.o dris\2d\phys_wire_rectangle\phys_wire_rectangle.o dris\2d\phys_fill_circle\phys_fill_circle.o dris\2d\phys_fill_rectangle\phys_fill_rectangle.o dris\2d\phys_fill_triangle\phys_fill_triangle.o dris\2d\phys_dot_scanline\phys_dot_scanline.o dris\2d\phys_dot_vertline\phys_dot_vertline.o dris\2d\phys_dot_wire_rectangle\phys_dot_wire_rectangle.o dris\3d\camera\camera.o dris\3d\point_3d\point_3d.o cs\rand\rand.o -s -fno-rtti -fno-exceptions -lpsapi -lgdi32 -o program.exe
this is only 40 modules but this is only a part of it - whole of my project is nearly 10 times biger
this is all burdensome becouse sometimes i like to refactor it as a living organism (names expresses some idea on organisation of my modules etc)
I had no hope to dio it totally "hard reference -less" becasuse c do not support this way (a bit of shame) but i would like to make it a bit simpler if possible
could you maybe eleborate a bit what can i do with make - presently i do not know make at all
I susspect that i could wrote some scripts or c prog to scan my folder tree and produce in full automatic both "summaric header"
and "linker list" (such a thing would greatly help in refactoring works) but this can be considered a bit ugly too (and is some
work at least few hours and probably a couple of times more as I am not to good at it) - but at large refectoring works (renaming branches of my tree and filanames - would be probably of much help)
Ps. maybe someone would like to wrote such script (or two scripts one for header and one for .o files ) and made them avaliable so I could try it?