MPS issue job003977

TitleWe maintain redundant NMAKE files
Assigned userRichard Brooksby
DescriptionMPS policy has been to avoid dependencies on external tools, to keep MPS integration costs low. For this reason, we have always used NMAKE on Windows, since it comes with the Visual Studio (MV) toolchain. However, we now recommend that client programs include "mps.c" in their own builds. It's only MPS *developers* that need to use make, and it does not matter nearly as much if they have to grab external tools (in fact that's quite common). We could therefore drop NMAKE and use GNU Make as we do on the other platforms. Or even autoconf.
Analysis1. Construct w3i3mv.gmk and w3i6mv.gmk etc. alongside existing build using GNU make to test feasibility.
2. Write instructions on obtaining GNU make or express that dependency somehow. Delete NMAKE build system.
3. Investigate autoconf or similar to further reduce complexity and increase portability of the build system and familiarity to open source developers.
Note that this doesn't mean we can make a wholescale migration to Cygwin or MinGW. We must actually compile with the MV toolchain and run with its runtime system. If we were to use autoconf, for example, we'd have to make sure that shell scripts ran, but that they correctly invoked cl.exe etc.
How foundunknown
EvidenceMany catch-up changes where NMAKE went out of sync in "filelog *.nmk".
Created byRichard Brooksby
Created on2016-03-08 12:26:25
Last modified byRichard Brooksby
Last modified on2016-03-08 15:57:38
History2016-03-08 RB Created.