The NOLINK and MAKEDLL macros are primarily used in the master make file (Makefile.def) to indicate which rules to enable or disable when the Build utility goes through two passes.

NOLINK=1 indicates that a link is not supposed to occur -- most likely because this is Pass 1 and the Build utility cannot guarantee that the libraries needed are built yet.

MAKEDLL=1 indicates that a link should occur and is used in Pass 2 of the build process after the libraries are built. If you run a one-pass build (by specifying -z on the command-line to the Build utility), only MAKEDLL=1 is specified.

You can test for this macro in your make file. For example, if NOLINK=1, you are in Pass 1; if MAKEDLL=1, you are in Pass2.



Send comments about this topic to Microsoft

Build date: 5/3/2011