[mercury-users] Compilation Model Options

Ralph Becket rafe at cs.mu.OZ.AU
Thu Oct 17 18:52:22 AEST 2002


Noel  Pinto, Thursday, 17 October 2002:
> 
> >I want to know some details in depth about compilation options.
> >
> >What is the difference between 'GRADEFLAGS', 'MCFLAGS', 
> >'MGNUCFLAGS', 'C2INITFLAGS' AND 'MLFLAGS' variables?

These are mostly fairly esoteric flags that you only need if you're
doing something unusual, usually involving foreign code and libraries.

GRADEFLAGS is described under Compilation Model Options.

MCFLAGS are flags passed directly to the Mercury compiler.

MLFLAGS are flags passed directly to the Mercury linker.

MGNUCFLAGS and C2INITFLAGS are things you can almost certainly ignore as
being part of the Mercury build process.

> >How are they used?? There are some options which like -s grade, 
> >--grade grade  etc... Are they used with mmake command like...
> >mmake --grade-tr filename

Typically you set them in an Mmakefile and let mmake do all the hard
work for you.  If you don't know you need them then ignore them.

> >Are the variables 'GRADEFLAGS', 'MCFLAGS', 'MGNUCFLAGS', 
> >'C2INITFLAGS' AND 'MLFLAGS' used in the Makefile?

Yes.  Hence their documentation coming under "Using Mmake".
> >
> >It is mentioned in the user guide that the Compilation Model 
> >options should be mentioned in the 'GRADEFLAGS' varible rather 
> >than the others. Why what is the difference??

Because that's where mmake expects to find them.

mmake is just a make system gone mad, after all...

> 1)I also want to know about MLLIBS and EXTRA_MLLIBS. Are they used 
> only for while compiling libraries or for other programs also?
> How similar are they as nothing is mentioned specifically in the 
> user guide.

Quoting from the Users' Guide:

 | MLLIBS and EXTRA_MLLIBS
 |    A list of `-l' options specifying libraries used by the program (or
 |    library) that you are building. See section Using libraries. 

> 2)MS_CL_NOASM
> The user guide talks about it as, it is an option to control 
> whether the Microsoft command line C++ compile will generate 
> assemblies.....
> 
> What exactly is MS_CL_NOASM and what are assemblies??

Quoting from the Users' Guide:

 | MS_CL_NOASM
 |    The option to control whether the Microsoft command line C++ compiler
 |    will generate .NET assemblies from Managed C++ files. Set to
 |    `:noAssembly' to turn off assembly generation, leave empty to turn on
 |    assembly generation. The default is to leave this variable empty. 

An assembly is an organisational unit in the .NET architecture.  If you
don't know what assemblies are then you almost certainly don't have to
worry about using them.

- Ralph
--------------------------------------------------------------------------
mercury-users mailing list
post:  mercury-users at cs.mu.oz.au
administrative address: owner-mercury-users at cs.mu.oz.au
unsubscribe: Address: mercury-users-request at cs.mu.oz.au Message: unsubscribe
subscribe:   Address: mercury-users-request at cs.mu.oz.au Message: subscribe
--------------------------------------------------------------------------



More information about the users mailing list