There are several make macros that are used in building the applications. These macros can be set inside the makefile, or on the command line. Note that all macros set on the command line override the same macros set inside the Makefile. ======================================================== ======================================================== PROT= ........ Protocol choice PROT=CSM Original cashmere w/ write doubling PROT=CSM_NOL 1-level, no distributed locks cashmere PROT=CSM_2L 2-level cashmere PROT=CSM_2LS 2-level cashmere w/ write doubling PROT=CSM_2LMC 2-level cashmere (data in MC space) PROT=BSM Broadcast Shared Memory PROT=TMK Treadmarks PROT=SEQ Sequential version ======================================================== LIB_VERS= ........ Library choice; depends on protocol (PROT=CSM) LIB_VERS= Optimized library LIB_VERS=_DBG Debug-version library (PROT=CSM_NOL) LIB_VERS= Optimized, write-doubling library LIB_VERS=_DBG Debug-version, write-doubling LIB_VERS=_TWIN Optimized, twinning version LIB_VERS=_TWIN_DBG Debug, twinning version (PROT=CSM_2L) LIB_VERS= Optimized library LIB_VERS=_DBG Debug-version library (PROT=CSM_2LS) LIB_VERS= Optimized library LIB_VERS=_DBG Debug-version library (PROT=CSM_2LMC) LIB_VERS= Optimized library LIB_VERS=_DBG Debug-version library (PROT=BSM) LIB_VERS= Optimized, write-doubling library LIB_VERS=_DBG Debug-version, write-doubling LIB_VERS=_TWIN Optimized, twinning version LIB_VERS=_TWIN_DBG Debug, twinning version (PROT=TMK) LIB_VERS= Optimized, udp version LIB_VERS=_MC Optimized, memory channel/imc_kill version LIB_VERS=_MC_POLL Optimized, polling version LIB_VERS=_TIMER Optimized, udp version including timing breakdown stats LIB_VERS=_MC_TIMER Optimized, memory channel/imc_kill version, including timing breakdown stats LIB_VERS=_MC_POLL_TIMER Optimized, polling version, including timing breakdown stats *** Note: TMK does not support a direct debug-version library link. To use a debug version of tmk, the default libraries should be changed or overridden as described below. (PROT=SEQ) LIB_VERS is not used. ======================================================== C_VERS= ....... Specifies any extra processing that must be performed on the application source. Again, this is protocol dependent (PROT=CSM) C_VERS= No extra processing C_VERS=_POLL Insert polling into the application (PROT=CSM_NOL) C_VERS= No extra processing C_VERS=_POLL Insert polling into the application (PROT=CSM_2L) C_VERS= No extra processing C_VERS=_POLL Insert polling into the application C_VERS=_SPOLL Insert shastapolling into the application C_VERS=_APOLL Insert atom-polling into the application (PROT=CSM_2LS) C_VERS= No extra processing C_VERS=_POLL Insert polling into the application (PROT=CSM_2LMC) C_VERS= No extra processing C_VERS=_POLL Insert polling into the application (PROT=BSM) C_VERS= No extra processing C_VERS=_POLL Insert polling into the application (PROT=TMK) C_VERS= No extra processing *** Polling is inserted automatically via the LIB_VERS switch (PROT=SEQ) C_VERS=GCC Use the gcc compiler C_VERS=CC Use the cc compiler ======================================================== CLVL= ..... General compilation level for the application CLVL=OPT optimized CLVL=DBG debug ======================================================== LIB_XTRA= ..... Specifies extra libraries that should be included in the protocol and/or application (PROT=CSM_2L only) LIB_XTRA=_CVL ..... Include Carnival performance evaluation tool LIB_XTRA=_CLF ..... Include CLF ======================================================== ======================================================== Other Useful macros: *** Insert the protocol choice for $(PROT) $(PROT)_LIB_PATH ..... Overrides the default library path $(PROT)_LIB ..... Overrides the default library name Example: make PROT=CSM_NOL CSM_NOL_LIB_PATH=/u/stets/ccp/csm_nol CSM_NOL_LIB=test This will link the application with /u/stets/ccp/csm_nol/libtest.a *** APPS_EXT .... Will append the specifed extension to the output directories. Example: make PROT=TMK LIB_VERS=_MC_TIMER APPS_EXT=_tmr This will place the executable and object files into "../tmk_mc_bin_tmr" instead of "../tmk_mc_bin"