CONTENTS | PREV | NEXT
16A. the OPT keyword
--------------------

OPT, LARGE, STACK, ASM, NOWARN, DIR, OSVERSION, MODULE, EXPORT, RTD, REG

syntax:		OPT <options>,...

allows you to change some compiler settings:

LARGE		Sets code and data model to large. Default is small;
		the compiler generates mostly pc-relative code, with a
		max-size of 32k. With LARGE, there are no such limits,
		and reloc-hunks are generated (see  0D , LARGE).
STACK=x		Set stacksize to x bytes yourself. Only if you know what
		you are doing. Normally the compiler makes a very good
		guess itself at the required stack space (see  16C ).
ASM		Set the compiler to assembly mode. From there on, only
		assembly instructions are allowed, and no initialisation
		code is generated. (see  15D , inline assembly)
NOWARN		Shut down warnings. The compiler will warn you if it
		*thinks* your program is incorrect, but still syntactically
		ok. (see  0D , -n)
DIR=moduledir	Sets the directory where the compiler searches for modules.
		default='emodules:'
OSVERSION=vers	Default=33 (v1.2). Sets the minimum version of the kickstart
		(like 37 for v2.04) your program runs on. That way, your
		program simply fails while the dos.library is being opened
		in the initialisation code when running on an older machine.
		However, checking the version yourself and giving an
		appropriate error-message is more helpful for the user.
MODULE		denotes this source to be a module. (see  10C )
EXPORT		automatically export all declarations in a module
RTD		generates RTD's instead of RTS in the main source.
		020+ only. [experimental optimisation]
020,881,040	generate code for these CPUs. not really usable yet.
REG=n		use n register for register-allocation.

example:

OPT STACK=20000,NOWARN,DIR='df1:modules',OSVERSION=39,REG=3