/*
 * compiler options
 * March 1989, Miles Bader
 */

/* increase this for more options */
#define MAXOPTS	64

#ifndef BITSPERLONG
#define BITSPERLONG 32
#endif

extern long globalOpts[MAXOPTS/BITSPERLONG];

#define options_IsSet(opt) \
 (globalOpts[(opt)/BITSPERLONG]&(1L<<((opt)%BITSPERLONG)))
#define options_Set(opt) \
 (globalOpts[(opt)/BITSPERLONG]|=(1L<<((opt)%BITSPERLONG)))
#define options_Clear(opt) \
 (globalOpts[(opt)/BITSPERLONG]&=~(1L<<(long)((opt)%BITSPERLONG)))

void options_SetByName(char *optname);
void options_Init();


#define OPT_NONE	0

#define OPT_ANSI	1	/* enforce ansi fascism */
#define OPT_CPP		2	/* compat with c++ */
#define OPT_TRAD	3	/* use traditional style cpp */

#define OPT_ABSCODE	4	/* use long (absolute) addressing for function calls */
#define OPT_ABSDATA	5	/* use long (absolute) addressing for data */

#define OPT_RELOADA4	6	/* reload reg a4 in each function */
#define OPT_SHORTINTS	7	/* use short integers */
#define OPT_REGARGS	8	/* use register argument passing */
#define OPT_LONGALIGN	9	/* align everything to long boundaries */
#define OPT_STACKCHECK	10	/* put stack-checking into the func prolog */
#define OPT_PURESTRINGS	11	/* put strings in the text segment */

#define OPT_FFP		12	/* use mot fast floating point */
#define OPT_881		13	/* compile for a 68881 */
#define OPT_IEEE	14	/* ieee floating point */

#define OPT_68K		15	/* compile for a 68000 and up */
#define OPT_020		16	/* compile for a 68020 and up */
#define OPT_030		17	/* compile for a 68030 */

#define OPT_DETACH	18	/* make a program that runs in the background */
#define OPT_TINYMAIN	19	/* use tinymain (this doesn't work) */
#define OPT_RESIDENT	20	/* try and make resident-able */
#define OPT_CATCH	21	/* compile in code to try and catch exceptions */

#define OPT_OPTIMIZE	22	/* optimize the obj module */
#define OPT_LINK	23	/* link the object modules */
#define OPT_COMPILE	24	/* (otherwise, just pre-process) */
#define OPT_ASSEMBLE	25	/* emit object-modules (else assembly) */
#define OPT_DEBUG	26	/* produce debugging info */

#define OPT_ECHO	27	/* echo what we execute */
#define OPT_FILTER	28	/* filter out yucky message from passes */
#define OPT_EXEC	29	/* actually run each pass */

#define OPT_BIGLC1	30	/* run lc1b instead of lc1 */
