From EDM2
Jump to: navigation, search
Version 4.00.001 (2001)
Vendor IBM
Licence Commercial / Discontinued

A make like build management tool that comes with sundry IBM and Microsoft development tools for DOS, OS/2 and Microsoft Windows. It allows the user to define code dependencies and specify actions to resolve them.

While the NMAKE tool shares it conceptual origins with the UNIX derived make tools it should be noted that neither the NMAKE tools from IBM or the Microsoft equivalent are compatible with the UNIX versions, and in a few respects differ quite a lot. With the later NMAKE versions such as used within the WorkFrame environment the tool is not intended to be scripted by hand, but rather the make files are generated automatically with the "build" tools, although that does not preclude you creating your own NMAKE scripts. With their later development tools IBM stopped using NMAKE in favour of more advanced source and dependency tools derived from their VisualAge Smalltalk environment.

Microsoft has continued to use NMake and updated it sporadically although it also offers alternative build tools, it has usually offered is as an optional download rather than have it installed with their development products, but it should be present in all modern Visual Studio releases under the xxx\VC}bin or xxx\VC\bin\AMD64 folders


  • 1.01
  • 1.11 (1990) - shipped with Microsoft C 6.00, Microsoft BASIC PDS 7.1
  • 1.12 - shipped with Microsoft COBOL 4.00
  • 1.13 (1991) - shipped with Microsoft COBOL PDS 4.5
  • 1.21 (1992)
  • 3.00.013 (Nov 1995)
  • 4.00.001 (2001)


Notes, tips and comments

  • "When I gave up using the WPS integrated VAC/C++ 3.0 "Workframe" I had to also write my make files myself, and this showed me the many limitations of NMAKE, mainly if it comes to freely work with macros, switching between many directories etc. For that reason I changed to GNU Make at that time."
  • "One way to overcome these limitations is to put makefiles in all project directories with provisions that they are all called in the right order from the first one. The disadvantage of this solution is that it makes the make process very much unreadable."
  • A comment from Cornelis Bockemühl left on the talk page in relation to the VisualAge C++ 3.0 package.