The following compilation options affect the generated code in such a way that the entire program must be compiled with the same setting of these options, and it must be linked to a version of the Mercury library which has been compiled with the same setting. (Attempting to link object files compiled with different settings of these options will generally result in an error at link time, typically of the form ‘undefined symbol MR_grade_…’ or ‘symbol MR_runtime_grade multiply defined’.)
The options below must be passed to ‘mgnuc’, ‘c2init’ and ‘ml’ as well as to ‘mmc’. If you are using Mmake, then you should specify these options in the ‘GRADEFLAGS’ variable rather than specifying them in ‘MCFLAGS’, ‘MGNUCFLAGS’ and ‘MLFLAGS’.
|• Grades and grade components:||Setting the compilation model|
|• Target options:||Choosing a target language|
|• LLDS back-end compilation model options:||For the original back-end|
|• MLDS back-end compilation model options:||For the new high-level back-end|
|• Optional features compilation model options:||Debugging, Profiling, etc.|
|• Developer compilation model options:||Not for general use|