Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
CM3(1)			 MODULA-3 PROGRAMMER'S MANUAL			CM3(1)

NAME
       cm3- Critical Mass Modula-3 Compiler

SYNOPSIS
       cm3 [options]

DESCRIPTION
       The Critical Mass Modula-3 Compiler cm3 is a descendant of the Modula-3
       compiler	developed by Digital Equipment Corp.  (DEC)  Systems  Research
       Center  (SRC)  and  Olivetti Corp.  Cm3 was a component of a commercial
       product (Reactor) of Critical Mass.  When  that	company	 went  out  of
       business,  Elego	 Software Solutions acquired the rights	to Reactor and
       its components.	They released the Modula-3 compiler  cm3  as  an  open
       source project, and currently support it	by hosting its web site.

   Expected Directory Structure
       Each  modula-3  software	 package has a root directory in which certain
       files and directories may appear.  The optional files  m3makefile,  and
       m3overrides  may	 be  placed in the root	of the package directory.  All
       the source code should be in a directory	named src,  and	 the  compiler
       will  place  all	 generated object files, libraries, and	exectuables in
       directories appropriate for the target architecture,  generating	 those
       directories  in the package root	directory if required.	The src	direc-
       tory may	contain	nested subdirectories further  organizing  the	source
       code.

OPTIONS
   Mode	Options
       -build Compile and Link the entire project

       -ship  Install  the  package  into the CM3_INSTALL_ROOT directory tree.
	      NOTE: This may require administrator priviledges.

       -clean Delete derived files.

       -realclean
	      Delete entire derived target directory.

       -find  Locate source files.

       -depend
	      Generate package dependencies.

   Compiler Options
       -gstabs+
	      Produce symbol table information for the debugger.

       -O     Optimize the generated code.

       -A     Disable code generation for assertions.

       -once  Don't recompile to improve opaque	object code

       -w0 ... -w3
	      Limit the	compiler warning messages.

       -Z     Generate coverage	analysis code.

       -profile
	      Generate profiling code.

       -widechar16
	      Give WIDECHAR 16-bit range.

       -widecharuni
	      Give WIDECHAR full Unicode range.

       -lazy  Generate lazy module initialization code.

       -linkall
	      Generate module initialization code for all modules, even	 those
	      that  are	 not imported directly or indirectly by	Main.  This is
	      currently	experimental and does not always work as expected.

   Program and Library Options
       -c     Compile only, do not link	or produce a program executable	or li-
	      brary.

       -a _foo_
	      Build a library named foo.

       -o _foo_
	      Build program named foo.

       -skiplink
	      Skip the final link step.

   Message Options
       -?     Print a short help message.

       -silent
	      Produce no diagnostic output.

       -why   Explain why code is being	recompiled.

       -commands
	      List system commands as they are performed.

       -verbose
	      List internal steps as they are performed.

       -debug Dump internal debugging information.

       -trace Trace quake code execution.

   Information and Help	Options
       -help  Print a short help message.

       -?     See -help.

       -version
	      Print the	compiler's version information and exit.

       -config
	      Print the	compiler's version information and exit.

   Miscellaneous Options
       -keep  Preserve intermediate and	temporary files.

       -times Produce a	dump of	elapsed	times.

       -override
	      Include the "m3overrides"	file.

       -x     Include the "m3overrides"	file. (see -override ) above.

       -D_symbol_
	      Define <symbol> with the value TRUE.

       -D_symbol_=_value_
	      Define <symbol> with the supplied	<value>.

       -F _fn_
	      Prepend the quake	code of	file <fn>.

       -FP _fn_
	      Prepend the quake	code of	file <fn>.

       -prepend	 <fn>
	      Prepend the quake	code of	file <fn>.

       -FA _fn_
	      Append the quake code of file <fn>.

       -append _fn_
	      Append the quake code of file <fn>.

       -console
	      Produce a	MS-Windows CONSOLE subsystem program.

       -gui   Produce a	MS-Windows GUI subsystem program.

       -windows
	      Produce a	MS-Windows GUI subsystem program.

       -pretend	_version_
	      Pretend to run CM3 as if it were _version_.

       -no-m3ship-resolution
	      Use quake	variables in .M3SHIP files (experimental).

       -group-writable
	      Use group-writable file modes in quake installation procedures.

EXIT STATUS
ENVIRONMENT
       CM3_INSTALL_PREFIX
	      is  the path prefix prepended to files being installed.  This is
	      similar to the behavior "make DESTDIR=${prefix}".	 Use this when
	      creating a software distribution package.

       M3CONFIG
	      Platform	dependent  configuration file to use.  By default this
	      is cm3.cfg.

       QUAKE_SHELL
	      Shell to be used by the quake interpreter	for exec(2).

       QUAKE_SHELL_OPTION
	      Command option for the quake shell (eg., -c, or /c).

       QUAKE_TMPDIR
	      The directory for	temporary files	used by	quake.

FILES
       The m3makefile(7).  is a	text file read by cm3.	It describes any  spe-
       cial  actions  needed  to build or ship the software package.  This can
       include linking against specified libraries, creating documentation, or
       a number	of other actions.

       The  m3overrides(7) file	is used	to stop	a package from linking against
       the normal cm3 system libraries,	but rather use the libraries listed in
       this file.

VERSIONS
       The version of cm3 herein described is 5.7.1

CONFORMING TO
       cm3  conforms  to  DEC-SRC  Research Report 52, with several additional
       features.

   Deviations
       TEXT   The text object in which constant	strings	are stored,  may  con-
	      tain unicode characters, if no unicode characters	are used, then
	      only ASCII ones will be used.

       WIDECHAR
	      In support of unicode characters this  new  builtin  type	 is  a
	      character	 with ORD(LAST(WIDECHAR)) = 16_10FFFF, and may be used
	      by TEXT.

       LONGINT
	      The LONGINT type is an additional	builtin	type, and is a	signed
	      integral type with 64 bits.

BUGS
       Probably	too many to count.

SEE ALSO
   Websites
       The Free	Critical Mass website
	      <http://www.opencm3.net/>.

       Modula-3	Resource Page
	      <http://www.modula3.org/>.

       Wikipedias Modula-3 Entry
	      <http://en.wikipedia.org/wiki/Modula-3>.

   Manual Pages
       modula3(7).

       modula3(7),m3makefile(7),m3overrides(7).

   Books
       "Modula-3", Samual Harbison

       "Systems	Programming with Modula-3", Greg Nelson.

       "Algorithms in MODULA-3", Robert	Sedgewick

AUTHOR
       Peter. P. Eiserloh (eiserlohpp -at- yahoo.com)

CRITICAL MASS			  08-May-2009				CM3(1)

NAME | SYNOPSIS | DESCRIPTION | OPTIONS | EXIT STATUS | ENVIRONMENT | FILES | VERSIONS | CONFORMING TO | BUGS | SEE ALSO | AUTHOR

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=cm3&sektion=1&manpath=FreeBSD+12.1-RELEASE+and+Ports>

home | help