home *** CD-ROM | disk | FTP | other *** search
- /// "compilers"
-
- #ifdef __SASC
-
- #define __USE_SYSBASE
- #define __geta4 __saveds
- #define __stkargs __stdargs
- #define __COMMODORE_DATE__ __AMIGADATE__
-
- #define __A0 register __a0
- #define __A1 register __a1
- #define __A2 register __a2
- #define __A3 register __a3
- #define __A4 register __a4
- #define __A5 register __a5
- #define __A6 register __a6
- #define __A7 register __a7
- #define __D0 register __d0
- #define __D1 register __d1
- #define __D2 register __d2
- #define __D3 register __d3
- #define __D4 register __d4
- #define __D5 register __d5
- #define __D6 register __d6
- #define __D7 register __d7
-
- #endif
-
- #ifdef _DCC
-
- #define __asm
-
- #endif
-
- ///
- /// "includes"
-
- #define Prototype extern
- #define Local static
-
- // system includes
-
- #include <ctype.h>
- #include <stdlib.h>
- #include <string.h>
- #include <stdio.h>
- #include <stdarg.h>
- #include <datatypes/textclass.h>
- #include <dos/dos.h>
- #include <dos/dostags.h>
- #include <dos/rdargs.h>
- #include <exec/exec.h>
- #include <graphics/gfxmacros.h>
- #include <intuition/cghooks.h>
- #include <intuition/classes.h>
- #include <intuition/classusr.h>
- #include <intuition/gadgetclass.h>
- #include <intuition/icclass.h>
- #include <intuition/intuition.h>
- #include <intuition/intuitionbase.h>
- #include <intuition/sghooks.h>
- #include <intuition/sghooks.h>
- #include <libraries/asl.h>
- #include <libraries/gadtools.h>
- #include <libraries/iffparse.h>
- #include <utility/hooks.h>
- #include <utility/tagitem.h>
- #include <workbench/workbench.h>
-
- // prototypes
-
- #include <clib/diskfont_protos.h>
- #include <clib/dos_protos.h>
- #include <clib/exec_protos.h>
- #include <clib/gadtools_protos.h>
- #include <clib/graphics_protos.h>
- #include <clib/intuition_protos.h>
- #include <clib/utility_protos.h>
- #include <clib/asl_protos.h>
-
- #ifdef _DCC
- #include "alib_protos.h"
- #else
- #include <clib/alib_protos.h>
- #endif
-
- // pragmas
-
- #ifdef __SASC
-
- #include <pragmas/diskfont_pragmas.h>
- #include <pragmas/dos_pragmas.h>
- #include <pragmas/exec_sysbase_pragmas.h>
- #include <pragmas/gadtools_pragmas.h>
- #include <pragmas/graphics_pragmas.h>
- #include <pragmas/intuition_pragmas.h>
- #include <pragmas/utility_pragmas.h>
- #include <pragmas/asl_pragmas.h>
-
- #endif
-
- // note: TARGET_XYZ normally is defined in the makefile
-
- #ifndef TARGET_GCC
- #ifndef TARGET_VBCC
- #define TARGET_GCC
- #endif
- #endif
-
- #ifdef TARGET_GCC
- #include "sas/gcc/prog-protos.h"
- #include "gccprefs.h"
- #endif
-
- #ifdef TARGET_VBCC
- #include "sas/vbcc/prog-protos.h"
- #include "vbccprefs.h"
- #endif
-
- ///
- /// "boopsi"
-
- /* ------------------------------- BoopsiContext -------------------------------
-
- BOOPSI class context
-
- */
-
- struct BoopsiContext
- {
- struct IClass *IClass; // class pointer
- };
-
- /* ------------------------------- BoopsiDevice --------------------------------
-
- BOOPSI device context
-
- */
-
- struct BoopsiDevice
- {
- struct Screen *Screen; // screen to appear on
- struct TextFont *Font; // font for gadgets
- UWORD Spacing[256]; // font metrics
- LONG PenBackground; // pen
- LONG PenShine; // pen
- LONG PenShadow; // pen
- LONG Pen3DShadow; // pen
- LONG Pen3DShine; // pen
- LONG PenInactive; // pen
- BOOL ReleasePen3DShadow; // shared pen ?
- BOOL ReleasePen3DShine; // shared pen ?
- BOOL ReleasePenInactive; // shared pen ?
- };
-
- /* --------------------------------- BoopsiBox ---------------------------------
-
- Rectangle
-
- */
-
- struct BoopsiBox
- {
- UWORD Left; // position
- UWORD Top; // position
- UWORD Width; // dimensions
- UWORD Height; // dimensions
- };
-
- /* ------------------------------- BoopsiGadget --------------------------------
-
- BOOPSI gadget data
-
- */
-
- struct BoopsiGadget
- {
- UWORD Kind; // gadget kind
- struct BoopsiDevice *Device; // rendering context
- UWORD LeftEdge; // position
- UWORD TopEdge; // position
- UWORD Width; // dimensions
- UWORD Height; // dimensions
- UWORD DashedX; // focus box position
- UWORD DashedY; // focus box position
- UWORD DashedW; // focus box dimensions
- UWORD DashedH; // focus box dimensions
- UWORD Placetext; // label placement
- ULONG Flags; // flags
- UWORD State; // state (active ?)
- BOOL Disabled; // disabled ?
- UBYTE **Labels; // labels, if any
- UWORD Active; // active value
- UWORD Maximum; // maximum value
- ULONG Refresh; // refresh request
- struct Window *Window; // pop-up window
- UWORD Entries; // pop-up window entries
- UWORD Selection; // pop-up window cursor position
- struct Rectangle *Rectangles; // pop-up window layout
- };
-
- // gadget types (BoopsiGadget->Kind)
-
- enum
- {
- BOOPSI_DROPBOX_KIND = 32,
- BOOPSI_BUTTON_KIND
- };
-
- // gadget states (BoopsiGadget->State)
-
- #define BOOPSI_STATE_INACTIVE (0) // gadget is inactive
- #define BOOPSI_STATE_ACTIVE (1L<<0) // gadget is active
- #define BOOPSI_STATE_SELECTED (1L<<1) // gadget is selected (recessed)
- #define BOOPSI_STATE_POPUP (1L<<2) // gadget is showing pop-up window
-
- // gadget flags (BoopsiGadget->Flags)
-
- #define BOOPSI_FLAGS_CAPTUREFOCUS (1L<<0)
- #define BOOPSI_FLAGS_GACTIMMEDIATE (1L<<1)
- #define BOOPSI_FLAGS_FANCY (1L<<2)
-
- // refresh flags (BoopsiGadget->Refresh)
-
- #define BOOPSI_REFRESHBACKGROUND (1L<<0) // render gadget background
- #define BOOPSI_REFRESHGHOSTING (1L<<1) // render ghosting
- #define BOOPSI_REFRESHBUTTON (1L<<2) // render frame
- #define BOOPSI_REFRESHLABEL (1L<<3) // render label
- #define BOOPSI_REFRESHACTIVE (1L<<4) // render active caption
- #define BOOPSI_REFRESHFOCUS (1L<<5) // render focus indicator
- #define BOOPSI_REFRESHDROPBOX (1L<<6) // render drop-down box
- #define BOOPSI_REFRESHALL (0xffffffff) // render complete gadget
-
- // supported tags for set/get
-
- #define BOOPSI_TAG_BASE (TAG_USER + 0x80100)
-
- enum
- {
- BOOPSI_ATTRIB_KIND = (int)BOOPSI_TAG_BASE,
- BOOPSI_ATTRIB_DEVICE,
- BOOPSI_ATTRIB_PLACEMENT,
- BOOPSI_ATTRIB_FLAGS,
- BOOPSI_ATTRIB_ADDRESS
- };
-
- // bevelbox rendering modes
-
- #define BOOPSI_BEVELBOXMODE_RAISED (1L<<0)
- #define BOOPSI_BEVELBOXMODE_RECESSED (1L<<1)
- #define BOOPSI_BEVELBOXMODE_SOLID (1L<<2)
- #define BOOPSI_BEVELBOXMODE_ERASE (1L<<3)
- #define BOOPSI_BEVELBOXMODE_DASHED (1L<<4)
- #define BOOPSI_BEVELBOXMODE_THIN (1L<<5)
- #define BOOPSI_BEVELBOXMODE_AMIGA (1L<<6)
-
- ///
- /// "defines"
-
- // constants
-
- #define MAX_PATHLEN 511 // maximum length of path/file names
- #define MAX_NAME 80 // maximum length of option names
- #define MAX_SCREEN 127 // maximum length of screen names
- #define MAX_GADGETS 32 // maximum number of gadgets per window
- #define UNDEFINED ((UWORD)~0) // undefined value
- #define SPACING_X 4 // spacing in pop-up menu
- #define SPACING_Y 2 // spacing in pop-up menu
-
- #ifdef TARGET_GCC
-
- #define PROGRAMNAME "gccprefs"
- #define OPTIONS "gcc.options"
-
- #endif
-
- #ifdef TARGET_VBCC
-
- #define PROGRAMNAME "vbccprefs"
- #define OPTIONS "vbcc.options"
-
- #endif
-
- // macros
-
- #define MEMSIZE(a) (*((ULONG *)(a) - 1) - 4) // size of memory block allocated with AllocVec()
-
- // supported option types (Value->Type)
-
- enum VALUE_TYPE
- {
- VALUE_NUMBER, // integer value
- VALUE_STRING, // 0-terminated string
- VALUE_NUMERIC, // 0-terminated string (digits only)
- VALUE_LIST // linked list
- };
-
- // supported rule states (Syntax->Status)
-
- enum
- {
- SYNTAX_ACTIVE,
- SYNTAX_INACTIVE
- };
-
- // gadget action types
-
- enum GADGET_ACTION
- {
- ACTION_NOP,
- ACTION_ADD,
- ACTION_DEL,
- ACTION_EDIT,
- ACTION_REFRESH,
- ACTION_POP,
- ACTION_REQFILE,
- ACTION_REQFILENAME,
- ACTION_REQFOLDER
- };
-
- // menu items
-
- enum
- {
- MENU_RESET,
- MENU_RESETPAGE,
- MENU_ABOUT
- };
-
- // load modes
-
- enum
- {
- LOADMODE_MERGE,
- LOADMODE_REPLACE
- };
-
- ///
- /// "defines (gcc)"
-
- #ifdef TARGET_GCC
-
- // page identifiers (WindowSupportInfo->Page)
-
- enum PAGE_ID
- {
- PAGE_INDEX,
- PAGE_COMPILER,
- PAGE_MESSAGES,
- PAGE_LANGUAGE,
- PAGE_OPTIMIZER,
- PAGE_LINKER,
- PAGE_SPECIAL,
- PAGE_PPC,
- PAGE_DEBUGGER,
- PAGE_CPLUSPLUS,
- PAGE_INLINE,
- PAGE_DETAILS,
- PAGE_PREPROCESSOR,
- PAGE_M68K,
-
- // pages end here
-
- PAGE_MAXIMUM
- };
-
- // supported options
-
- enum GCC_OPTIONS
- {
- // PAGE_COMPILER
-
- OPTION_GLOBALINCLUDES,
- OPTION_LOCALINCLUDES,
- OPTION_COMPILE,
- OPTION_ASSEMBLE,
- OPTION_INTERMEDIATEFILES,
- OPTION_SPECSFILE,
- OPTION_DELETEINTERMEDIATE,
- OPTION_AUTODETECT,
- OPTION_STDINCLUDES,
-
- // PAGE_CPLUSPLUS
-
- OPTION_ACCESSCONTROL,
- OPTION_CHECKNEW,
- OPTION_ACCEPTDOLLAR,
- OPTION_FORSCOPE,
- OPTION_GNUKEYWORDS,
- OPTION_SIGNATURES,
- OPTION_STDNAMESPACE,
- OPTION_MANGLING,
- OPTION_OPERATORNAMES,
- OPTION_RTTI,
- OPTION_STRICTPROTOS,
- OPTION_LONGMANGLING,
- OPTION_ASSIGNTOTHIS,
-
- // PAGE_DEBUGGER
-
- OPTION_DEBUG,
- OPTION_PROFILE,
- OPTION_PROFILEBLOCKS,
- OPTION_ARCS,
- OPTION_COVERAGE,
- OPTION_DEBUGLEVEL,
-
- // PAGE_DETAILS
-
- OPTION_STRENGTHREDUCE,
- OPTION_THREADJUMPS,
- OPTION_CSEFOLLOWJUMPS,
- OPTION_CSESKIPBLOCKS,
- OPTION_FUNCTIONCSE,
- OPTION_RERUNCSE,
- OPTION_RERUNLOOPOPT,
- OPTION_GLOBALCSEPASS,
- OPTION_OPTIMIZEMOVE,
- OPTION_DELAYEDBRANCH,
- OPTION_SEPARATEFUNCS,
- OPTION_SEPARATEDATA,
- OPTION_UNROLLLOOPS,
- OPTION_UNROLLALLLOOPS,
- OPTION_MOVEMOVEABLE,
- OPTION_REDUCEALLVARS,
- OPTION_BRANCHPROBABILITY,
- OPTION_KEEPCONST,
-
- // PAGE_INDEX
-
- OPTION_VERBOSE,
- OPTION_LINK,
- OPTION_TARGET,
-
- // PAGE_INLINE
-
- OPTION_INLINECLASS,
- OPTION_INLINEDIRECTIVE,
- OPTION_DELETEINLINED,
- OPTION_AUTOINLINE,
- OPTION_INLINELIMIT,
-
- // PAGE_LANGUAGE
-
- OPTION_ANSI,
- OPTION_LANGUAGE,
- OPTION_INLINEASM,
- OPTION_BUILTIN,
- OPTION_FREESTANDING,
- OPTION_TRIGRAPHS,
- OPTION_TRADITIONAL,
- OPTION_CHAR,
- OPTION_BITFIELD,
- OPTION_CONSTSTRINGS,
- OPTION_PROMOTEDOUBLE,
-
- // PAGE_LINKER
-
- OPTION_OBJECTS,
- OPTION_LIBPATHS,
- OPTION_STARTUPCODE,
- OPTION_STDLIBS,
- OPTION_DEFAULTLIBS,
- OPTION_STRIPSYMBOLS,
- OPTION_DYNAMICLINKING,
- OPTION_SHAREDOBJ,
- OPTION_SYMBOLICREFS,
- OPTION_IXEMUL,
-
- // PAGE_M68K
-
- OPTION_M68KFPU,
- OPTION_CPU,
- OPTION_M68KSOFTFLOAT,
- OPTION_M68KLONGINT,
- OPTION_M68KRTS,
- OPTION_M68KALIGN,
- OPTION_M68KFARCODE,
- OPTION_M68KFARDATA,
- OPTION_M68KSTACKCHECK,
- OPTION_M68KSTACKEXTEND,
- OPTION_M68KRELOADA4,
- OPTION_M68KPARMS,
-
- // PAGE_MESSAGES
-
- OPTION_ENABLED,
- OPTION_DISABLED,
- OPTION_PEDANTIC,
- OPTION_WARNINGS,
- OPTION_EXTRAWARNINGS,
- OPTION_ABORT,
- OPTION_PERMISSIVECPP,
- OPTION_DIAGNOSTICS,
-
- // PAGE_OPTIMIZER
-
- OPTION_FASTCONSTRUCTOR,
- OPTION_IMPLICITETEMPLATES,
- OPTION_OPTIMIZE,
- OPTION_FLOATSINFPU,
- OPTION_DEFERPOP,
- OPTION_COPYOPERANDS,
- OPTION_COPYPOINTERS,
- OPTION_FRAMEPOINTER,
- OPTION_FASTMATH,
- OPTION_SAVEREGISTERS,
- OPTION_PEEPHOLE,
- OPTION_SCHEDULER,
- OPTION_EXPENSIVEOPT,
- OPTION_ALIASING,
-
- // PAGE_PPC
-
- OPTION_PPCBITALIGN,
- OPTION_PPCRELOCATABLE,
- OPTION_PPCFULLTOC,
- OPTION_PPCFMADD,
- OPTION_PPCABI,
- OPTION_PPCFPU,
- OPTION_PPCSTRICTALIGN,
- OPTION_PPCRELOCATABLELIB,
- OPTION_PPCTOC,
- OPTION_PPCENDIAN,
- OPTION_PPCCALL,
- OPTION_PPCPROTOTYPED,
- OPTION_PPCEABI,
- OPTION_PPCDATA,
-
- // PAGE_PREPROCESSOR
-
- OPTION_STRIPCOMMENTS,
- OPTION_DEFINEMACROS,
- OPTION_LINENUMBERS,
- OPTION_DEFINES,
- OPTION_UNDEFINES,
- OPTION_TRADITIONALCPP,
-
- // PAGE_SPECIAL
-
- OPTION_OPTIONS,
-
- // options end here
-
- OPTIONS_MAXIMUM
- };
-
- // possible values for various options
-
- enum
- {
- VAL_COMPILE_COMPILE,
- VAL_COMPILE_PREPROCESSONLY,
- };
-
- enum
- {
- VAL_ASSEMBLE_ASSEMBLE,
- VAL_ASSEMBLE_NOASSEMBLE,
- };
-
- enum
- {
- VAL_INTERMEDIATEFILES_INTERMEDIATEFILES,
- VAL_INTERMEDIATEFILES_USEPIPE,
- };
-
- enum
- {
- VAL_DELETEINTERMEDIATE_DELETEINTERMEDIATE,
- VAL_DELETEINTERMEDIATE_SAVEINTERMEDIATE,
- };
-
- enum
- {
- VAL_AUTODETECT_DEFAULT,
- VAL_AUTODETECT_AUTODETECTTYPE,
- VAL_AUTODETECT_C,
- VAL_AUTODETECT_OBJECTIVEC,
- VAL_AUTODETECT_CPLUSPLUS,
- VAL_AUTODETECT_HEADER,
- VAL_AUTODETECT_PREPROCESSEDC,
- VAL_AUTODETECT_PREPROCESSEDCPLUSPLUS,
- VAL_AUTODETECT_ASSEMBLER,
- VAL_AUTODETECT_ASSEMBLERWCPP
- };
-
- enum
- {
- VAL_STDINCLUDES_INCLUDES,
- VAL_STDINCLUDES_NOSTDINCLUDES,
- };
-
- enum
- {
- VAL_ACCESSCONTROL_DEFAULT,
- VAL_ACCESSCONTROL_ACCESSCONTROL,
- VAL_ACCESSCONTROL_NOACCESSCONTROL
- };
-
- enum
- {
- VAL_CHECKNEW_DEFAULT,
- VAL_CHECKNEW_NOCHECKNEW,
- VAL_CHECKNEW_CHECKNEW,
- };
-
- enum
- {
- VAL_ACCEPTDOLLAR_DEFAULT,
- VAL_ACCEPTDOLLAR_ACCEPTDOLLAR,
- VAL_ACCEPTDOLLAR_NOACCEPTDOLLAR
- };
-
- enum
- {
- VAL_FORSCOPE_DEFAULT,
- VAL_FORSCOPE_FORLOOPSCOPE,
- VAL_FORSCOPE_NOFORLOOPSCOPE
- };
-
- enum
- {
- VAL_GNUKEYWORDS_DEFAULT,
- VAL_GNUKEYWORDS_GNUKEYWORDS,
- VAL_GNUKEYWORDS_NOGNUKEYWORDS
- };
-
- enum
- {
- VAL_SIGNATURES_DEFAULT,
- VAL_SIGNATURES_NOSIGNATURES,
- VAL_SIGNATURES_HANDLESIGNATURES
- };
-
- enum
- {
- VAL_STDNAMESPACE_DEFAULT,
- VAL_STDNAMESPACE_IGNORESTDNAMESPACE,
- VAL_STDNAMESPACE_NOIGNORESTDNAMESPACE
- };
-
- enum
- {
- VAL_MANGLING_DEFAULT,
- VAL_MANGLING_NEW,
- VAL_MANGLING_OLD
- };
-
- enum
- {
- VAL_OPERATORNAMES_DEFAULT,
- VAL_OPERATORNAMES_NOOPERATORNAMES,
- VAL_OPERATORNAMES_OPERATORNAMES
- };
-
- enum
- {
- VAL_RTTI_DEFAULT,
- VAL_RTTI_RTTI,
- VAL_RTTI_NORTTI
- };
-
- enum
- {
- VAL_STRICTPROTOS_DEFAULT,
- VAL_STRICTPROTOS_NOSTRICTPROTOS,
- VAL_STRICTPROTOS_STRICTPROTOS
- };
-
- enum
- {
- VAL_LONGMANGLING_DEFAULT,
- VAL_LONGMANGLING_LONGNAMEMANGLING,
- VAL_LONGMANGLING_COMPRESSEDMANGLING
- };
-
- enum
- {
- VAL_ASSIGNTOTHIS_DEFAULT,
- VAL_ASSIGNTOTHIS_NOASSIGNTOTHIS,
- VAL_ASSIGNTOTHIS_ASSIGNTOTHIS
- };
-
- enum
- {
- VAL_DEBUG_NODEBUG,
- VAL_DEBUG_DEBUG,
- VAL_DEBUG_DEBUGGDB,
- VAL_DEBUG_DEBUGSTABS,
- VAL_DEBUG_DEBUGSTABSPLUS,
- VAL_DEBUG_DEBUGCOFF,
- VAL_DEBUG_DEBUGXCOFF,
- VAL_DEBUG_DEBUGXCOFFPLUS,
- VAL_DEBUG_DEBUGDWARF,
- VAL_DEBUG_DEBUGDWARFPLUS,
- VAL_DEBUG_DEBUGDWARF2
- };
-
- enum
- {
- VAL_PROFILE_NOPROFILE,
- VAL_PROFILE_PROFILE,
- VAL_PROFILE_PROFILEGPROF
- };
-
- enum
- {
- VAL_PROFILEBLOCKS_NOPROFILEBLOCKS,
- VAL_PROFILEBLOCKS_PROFILEBLOCKS,
- VAL_PROFILEBLOCKS_PROFILEBLOCKSEXTRA
- };
-
- enum
- {
- VAL_ARCS_DEFAULT,
- VAL_ARCS_NOARCS,
- VAL_ARCS_ARCS
- };
-
- enum
- {
- VAL_COVERAGE_DEFAULT,
- VAL_COVERAGE_NOCOVERAGE,
- VAL_COVERAGE_SAVECOVERAGEDATA
- };
-
- enum
- {
- VAL_DEBUGLEVEL_DEFAULT,
- VAL_DEBUGLEVEL_DEBUGLEVEL1,
- VAL_DEBUGLEVEL_DEBUGLEVEL2,
- VAL_DEBUGLEVEL_DEBUGLEVEL3
- };
-
- enum
- {
- VAL_STRENGTHREDUCE_DEFAULT,
- VAL_STRENGTHREDUCE_NOSTRENGTHREDUCE,
- VAL_STRENGTHREDUCE_STRENGTHREDUCE
- };
-
- enum
- {
- VAL_THREADJUMPS_DEFAULT,
- VAL_THREADJUMPS_NOTHREADJUMPS,
- VAL_THREADJUMPS_THREADJUMPS
- };
-
- enum
- {
- VAL_CSEFOLLOWJUMPS_DEFAULT,
- VAL_CSEFOLLOWJUMPS_NOCSEFOLLOWJUMPS,
- VAL_CSEFOLLOWJUMPS_CSEFOLLOWJUMPS
- };
-
- enum
- {
- VAL_CSESKIPBLOCKS_DEFAULT,
- VAL_CSESKIPBLOCKS_NOCSESKIPBLOCKS,
- VAL_CSESKIPBLOCKS_CSESKIPBLOCKS
- };
-
- enum
- {
- VAL_FUNCTIONCSE_DEFAULT,
- VAL_FUNCTIONCSE_FUNCTIONCSE,
- VAL_FUNCTIONCSE_NOFUNCTIONCSE
- };
-
- enum
- {
- VAL_RERUNCSE_DEFAULT,
- VAL_RERUNCSE_NORERUNCSE,
- VAL_RERUNCSE_RERUNCSE
- };
-
- enum
- {
- VAL_RERUNLOOPOPT_DEFAULT,
- VAL_RERUNLOOPOPT_NORERUNLOOPOPT,
- VAL_RERUNLOOPOPT_RERUNLOOPOPTIMIZER
- };
-
- enum
- {
- VAL_GLOBALCSEPASS_DEFAULT,
- VAL_GLOBALCSEPASS_NOGLOBALCSEPASS,
- VAL_GLOBALCSEPASS_GLOBALCSEPASS
- };
-
- enum
- {
- VAL_OPTIMIZEMOVE_DEFAULT,
- VAL_OPTIMIZEMOVE_NOOPTIMIZEMOVE,
- VAL_OPTIMIZEMOVE_OPTIMIZEMOVE
- };
-
- enum
- {
- VAL_DELAYEDBRANCH_DEFAULT,
- VAL_DELAYEDBRANCH_NODELAYEDBRANCH,
- VAL_DELAYEDBRANCH_DELAYEDBRANCH
- };
-
- enum
- {
- VAL_SEPARATEFUNCS_DEFAULT,
- VAL_SEPARATEFUNCS_NOSEPARATESECTIONS,
- VAL_SEPARATEFUNCS_SEPARATESECTIONS,
- };
-
- enum
- {
- VAL_SEPARATEDATA_DEFAULT,
- VAL_SEPARATEDATA_NOSEPARATESECTIONS,
- VAL_SEPARATEDATA_SEPARATESECTIONS,
- };
-
- enum
- {
- VAL_UNROLLLOOPS_DEFAULT,
- VAL_UNROLLLOOPS_NOUNROLLLOOPS,
- VAL_UNROLLLOOPS_UNROLLLOOPS
- };
-
- enum
- {
- VAL_UNROLLALLLOOPS_DEFAULT,
- VAL_UNROLLALLLOOPS_NOUNROLLALLLOOPS,
- VAL_UNROLLALLLOOPS_UNROLLALLLOOPS,
- };
-
- enum
- {
- VAL_MOVEMOVEABLE_DEFAULT,
- VAL_MOVEMOVEABLE_NOMOVEMOVEABLE,
- VAL_MOVEMOVEABLE_MOVEMOVEABLE
- };
-
- enum
- {
- VAL_REDUCEALLVARS_DEFAULT,
- VAL_REDUCEALLVARS_NOREDUCEALLVARS,
- VAL_REDUCEALLVARS_REDUCEALLVARS,
- };
-
- enum
- {
- VAL_BRANCHPROBABILITY_DEFAULT,
- VAL_BRANCHPROBABILITY_NOBRANCHPROBAB,
- VAL_BRANCHPROBABILITY_BRANCHPROBABILITIES
- };
-
- enum
- {
- VAL_KEEPCONST_DEFAULT,
- VAL_KEEPCONST_KEEPUNUSEDCONST,
- VAL_KEEPCONST_DELETEUNUSEDCONST
- };
-
- enum
- {
- VAL_VERBOSE_DEFAULT,
- VAL_VERBOSE_VERBOSE,
- };
-
- enum
- {
- VAL_OPTIMIZE_DEFAULT,
- VAL_OPTIMIZE_OPTIMIZE,
- VAL_OPTIMIZE_OPTIMIZEMORE,
- VAL_OPTIMIZE_OPTIMIZEEVENMORE,
- VAL_OPTIMIZE_OPTIMIZESIZE,
- VAL_OPTIMIZE_NOOPTIMIZE
- };
-
- enum
- {
- VAL_LINK_LINK,
- VAL_LINK_NOLINK,
- };
-
- enum
- {
- VAL_INLINECLASS_DEFAULT,
- VAL_INLINECLASS_INLINECLASSFUNC,
- VAL_INLINECLASS_NOINLINECLASSFUNC
- };
-
- enum
- {
- VAL_INLINEDIRECTIVE_DEFAULT,
- VAL_INLINEDIRECTIVE_INLINEDIRECTIVE,
- VAL_INLINEDIRECTIVE_IGNOREINLINEDIRECTIVE
- };
-
- enum
- {
- VAL_DELETEINLINED_DEFAULT,
- VAL_DELETEINLINED_DELETEINLINEDFUNC,
- VAL_DELETEINLINED_KEEPINLINEDFUNC
- };
-
- enum
- {
- VAL_AUTOINLINE_DEFAULT,
- VAL_AUTOINLINE_NOAUTOMATICINLINE,
- VAL_AUTOINLINE_INLINESMALLFUNCTIONS
- };
-
- enum
- {
- VAL_ANSI_NOANSICCOMPILER,
- VAL_ANSI_ANSICCOMPILER
- };
-
- enum
- {
- VAL_LANGUAGE_DEFAULT,
- VAL_LANGUAGE_LANGUAGEGNU89,
- VAL_LANGUAGE_LANGAUGEGNU9X,
- VAL_LANGUAGE_LANGUAGEC89,
- VAL_LANGUAGE_LANGUAGEC9X,
- VAL_LANGUAGE_LANGUAGEISO98991990,
- VAL_LANGUAGE_LANGUAGEISO98991994,
- VAL_LANGUAGE_LANGUAGEISO9899199X
- };
-
- enum
- {
- VAL_INLINEASM_DEFAULT,
- VAL_INLINEASM_INLINEASM,
- VAL_INLINEASM_NOINLINEASM
- };
-
- enum
- {
- VAL_BUILTIN_DEFAULT,
- VAL_BUILTIN_BUILTINFUNCTIONS,
- VAL_BUILTIN_NOBUILTINFUNCTIONS
- };
-
- enum
- {
- VAL_FREESTANDING_DEFAULT,
- VAL_FREESTANDING_HOSTED,
- VAL_FREESTANDING_FREESTANDING
- };
-
- enum
- {
- VAL_TRIGRAPHS_NOTRIGRAPHS,
- VAL_TRIGRAPHS_TRIGRAPHS
- };
-
- enum
- {
- VAL_TRADITIONAL_NOTRADITIONALC,
- VAL_TRADITIONAL_TRADIONALC
- };
-
- enum
- {
- VAL_CHAR_DEFAULT,
- VAL_CHAR_SIGNEDCHAR,
- VAL_CHAR_UNSIGNEDCHAR
- };
-
- enum
- {
- VAL_BITFIELD_DEFAULT,
- VAL_BITFIELD_SIGNEDBITFIELD,
- VAL_BITFIELD_UNSIGNEDBITFIELD
- };
-
- enum
- {
- VAL_CONSTSTRINGS_DEFAULT,
- VAL_CONSTSTRINGS_STRINGSCONST,
- VAL_CONSTSTRINGS_WRITEABLESTRINGS
- };
-
- enum
- {
- VAL_PROMOTEDOUBLE_DEFAULT,
- VAL_PROMOTEDOUBLE_PROMOTETODOUBLE,
- VAL_PROMOTEDOUBLE_ALLOWSINGLEPRECISION
- };
-
- enum
- {
- VAL_LINKER_LINK,
- VAL_LINKER_NOLINK,
- };
-
- enum
- {
- VAL_STARTUPCODE_STARTUPCODE,
- VAL_STARTUPCODE_NOSTARTUPCODE
- };
-
- enum
- {
- VAL_STDLIBS_STANDARDLIBS,
- VAL_STDLIBS_NOSTANDARDLIBS
- };
-
- enum
- {
- VAL_DEFAULTLIBS_DEFAULTLIBS,
- VAL_DEFAULTLIBS_NODEFAULTLIBS
- };
-
- enum
- {
- VAL_STRIPSYMBOLS_NOSTRIPSYMBOLS,
- VAL_STRIPSYMBOLS_STRIPSYMBOLS
- };
-
- enum
- {
- VAL_DYNAMICLINKING_DYNAMICLINKING,
- VAL_DYNAMICLINKING_STATICLINKING
- };
-
- enum
- {
- VAL_SHAREDOBJ_NOSHAREDOBJECT,
- VAL_SHAREDOBJ_SHAREDOBJECT
- };
-
- enum
- {
- VAL_SYMBOLICREFS_NOSYMBOLICREFS,
- VAL_SYMBOLICREFS_SYMBOLICREFS
- };
-
- enum
- {
- VAL_IXEMUL_IXEMUL,
- VAL_IXEMUL_LIBNIX
- };
-
- enum
- {
- VAL_M68KFPU_NOFPU,
- VAL_M68KFPU_FPU68881
- };
-
- enum
- {
- VAL_CPU_DEFAULT,
- VAL_CPU_CPU68000,
- VAL_CPU_CPU68020,
- VAL_CPU_CPU68030,
- VAL_CPU_CPU68040,
- VAL_CPU_CPU68060,
- VAL_CPU_CPU6802068040,
- VAL_CPU_CPU6802068060,
- VAL_CPU_POWERPC,
- VAL_CPU_601,
- VAL_CPU_602,
- VAL_CPU_603,
- VAL_CPU_603E,
- VAL_CPU_604,
- VAL_CPU_604E,
- VAL_CPU_620,
- VAL_CPU_740,
- VAL_CPU_750
- };
-
- enum
- {
- VAL_M68KSOFTFLOAT_NOSOFTFLOAT,
- VAL_M68KSOFTFLOAT_SOFTFLOAT
- };
-
- enum
- {
- VAL_M68KLONGINT_INT32BIT,
- VAL_M68KLONGINT_INT16BIT
- };
-
- enum
- {
- VAL_M68KRTS_RETURNWITHRTS,
- VAL_M68KRTS_RETURNWITHRTD
- };
-
- enum
- {
- VAL_M68KALIGN_DEFAULT,
- VAL_M68KALIGN_NO32BITALIGN,
- VAL_M68KALIGN_32BITALIGN
- };
-
- enum
- {
- VAL_M68KFARCODE_CODEFAR,
- VAL_M68KFARCODE_CODENEAR
- };
-
- enum
- {
- VAL_M68KFARDATA_DATADEFAULT,
- VAL_M68KFARDATA_DATAFAR,
- VAL_M68KFARDATA_DATANEAR16,
- VAL_M68KFARDATA_DATANEAR32,
- VAL_M68KFARDATA_DATARESIDENT16,
- VAL_M68KFARDATA_DATARESIDENT32
- };
-
- enum
- {
- VAL_M68KSTACKCHECK_DEFAULT,
- VAL_M68KSTACKCHECK_NOSTACKCHECK,
- VAL_M68KSTACKCHECK_STACKCHECK
- };
-
- enum
- {
- VAL_M68KSTACKEXTEND_DEFAULT,
- VAL_M68KSTACKEXTEND_NOSTACKEXTEND,
- VAL_M68KSTACKEXTEND_STACKEXTEND
- };
-
- enum
- {
- VAL_M68KRELOADA4_DEFAULT,
- VAL_M68KRELOADA4_NORELOADA4,
- VAL_M68KRELOADA4_RELOADA4,
- VAL_M68KRELOADA4_ALWAYSRELOADA4
- };
-
- enum
- {
- VAL_M68KPARMS_PARMSSTACK,
- VAL_M68KPARMS_PARMSREGISTERS,
- VAL_M68KPARMS_PARMSREGISTERS1,
- VAL_M68KPARMS_PARMSREGISTERS2,
- VAL_M68KPARMS_PARMSREGISTERS3,
- VAL_M68KPARMS_PARMSREGISTERS4
- };
-
- enum
- {
- VAL_PEDANTIC_NOPEDANTIC,
- VAL_PEDANTIC_PEDANTIC,
- VAL_PEDANTIC_PEDANTICERRORS
- };
-
- enum
- {
- VAL_WARNINGS_WARNINGS,
- VAL_WARNINGS_NOWARNINGS,
- VAL_WARNINGS_ALLWARNINGS
- };
-
- enum
- {
- VAL_EXTRAWARNINGS_NOEXTRAWARNINGS,
- VAL_EXTRAWARNINGS_EXTRAWARNINGS
- };
-
- enum
- {
- VAL_ABORT_NOABORT,
- VAL_ABORT_ABORT,
- };
-
- enum
- {
- VAL_PERMISSIVECPP_DEFAULT,
- VAL_PERMISSIVECPP_NOPERMISSIVECPLUSPLUS,
- VAL_PERMISSIVECPP_PERMISSIVECPLUSPLUS
- };
-
- enum
- {
- VAL_DIAGNOSTICS_OPTIONALDIAGNOSTICS,
- VAL_DIAGNOSTICS_NOOPTDIAGNOSTICS
- };
-
- enum
- {
- VAL_FASTCONSTRUCTOR_DEFAULT,
- VAL_FASTCONSTRUCTOR_FASTCONSTRUCTOR,
- VAL_FASTCONSTRUCTOR_COPYCONSTRUCTOR
- };
-
- enum
- {
- VAL_IMPLICITETEMPLATES_DEFAULT,
- VAL_IMPLICITETEMPLATES_IMPLICITETEMPLATES,
- VAL_IMPLICITETEMPLATES_NOIMPLICITETEMPLATES
- };
-
- enum
- {
- VAL_OPTIMIZER_DEFAULT,
- VAL_OPTIMIZER_OPTIMIZE,
- VAL_OPTIMIZER_OPTIMIZEMORE,
- VAL_OPTIMIZER_OPTIMIZEEVENMORE,
- VAL_OPTIMIZER_OPTIMIZESIZE,
- VAL_OPTIMIZER_NOOPTIMIZE
- };
-
- enum
- {
- VAL_FLOATSINFPU_DEFAULT,
- VAL_FLOATSINFPU_STOREFLOATSINFPU,
- VAL_FLOATSINFPU_STOREFLOATSINRAM
- };
-
- enum
- {
- VAL_DEFERPOP_DEFAULT,
- VAL_DEFERPOP_DEFERPOP,
- VAL_DEFERPOP_NODEFERPOP
- };
-
- enum
- {
- VAL_COPYOPERANDS_DEFAULT,
- VAL_COPYOPERANDS_NOCOPYOPERANDS,
- VAL_COPYOPERANDS_COPYOPERANDS,
- };
-
- enum
- {
- VAL_COPYPOINTERS_DEFAULT,
- VAL_COPYPOINTERS_NOCOPYPOINTERS,
- VAL_COPYPOINTERS_COPYPOINTERS
- };
-
- enum
- {
- VAL_FRAMEPOINTER_DEFAULT,
- VAL_FRAMEPOINTER_FRAMEPOINTER,
- VAL_FRAMEPOINTER_OPTIMIZEFRAMEPTR
- };
-
- enum
- {
- VAL_FASTMATH_DEFAULT,
- VAL_FASTMATH_NOFASTMATH,
- VAL_FASTMATH_FASTMATH
- };
-
- enum
- {
- VAL_SAVEREGISTERS_DEFAULT,
- VAL_SAVEREGISTERS_NOSAVEREGISTERS,
- VAL_SAVEREGISTERS_SAVEREGISTERS
- };
-
- enum
- {
- VAL_PEEPHOLE_DEFAULT,
- VAL_PEEPHOLE_PEEPHOLEOPTIMIZER,
- VAL_PEEPHOLE_NOPEEPHOLEOPTIMIZER
- };
-
- enum
- {
- VAL_SCHEDULER_DEFAULT,
- VAL_SCHEDULER_NOSCHEDULER,
- VAL_SCHEDULER_SCHEDULER,
- VAL_SCHEDULER_TWOPASSSCHEDULER
- };
-
- enum
- {
- VAL_EXPENSIVEOPT_DEFAULT,
- VAL_EXPENSIVEOPT_NOEXPENSIVEOPT,
- VAL_EXPENSIVEOPT_EXPENSIVEOPT
- };
-
- enum
- {
- VAL_ALIASING_DEFAULT,
- VAL_ALIASING_NOSTRICTALIASING,
- VAL_ALIASING_STRICTALIASING
- };
-
- enum
- {
- VAL_PPCBITALIGN_DEFAULT,
- VAL_PPCBITALIGN_BITALIGN,
- VAL_PPCBITALIGN_NOBITALIGN
- };
-
- enum
- {
- VAL_PPCRELOCATABLE_DEFAULT,
- VAL_PPCRELOCATABLE_NORELOCATABLE,
- VAL_PPCRELOCATABLE_RELOCATBALE
- };
-
- enum
- {
- VAL_PPCFULLTOC_DEFAULT,
- VAL_PPCFULLTOC_FULLTOC,
- VAL_PPCFULLTOC_MINIMALTOC,
- };
-
- enum
- {
- VAL_PPCFMADD_DEFAULT,
- VAL_PPCFMADD_USEFMADDFMSUB,
- VAL_PPCFMADD_NOUSEFMADDFMSUB
- };
-
- enum
- {
- VAL_PPCABI_DEFAULT,
- VAL_PPCABI_32BITABI,
- VAL_PPCABI_64BITABI
- };
-
- enum
- {
- VAL_PPCFPU_DEFAULT,
- VAL_PPCFPU_FPU,
- VAL_PPCFPU_NOFPU
- };
-
- enum
- {
- VAL_PPCSTRICTALIGN_DEFAULT,
- VAL_PPCSTRICTALIGN_STRICTALIGN,
- VAL_PPCSTRICTALIGN_NOSTRICTALIGN
- };
-
- enum
- {
- VAL_PPCRELOCATABLELIB_DEFAULT,
- VAL_PPCRELOCATABLELIB_NORELOCATABLELIB,
- VAL_PPCRELOCATABLELIB_RELOCATABLELIB
- };
-
- enum
- {
- VAL_PPCTOC_DEFAULT,
- VAL_PPCTOC_TOC,
- VAL_PPCTOC_NOTOC
- };
-
- enum
- {
- VAL_PPCENDIAN_DEFAULT,
- VAL_PPCENDIAN_LITTLEENDIAN,
- VAL_PPCENDIAN_BIGENDIAN
- };
-
- enum
- {
- VAL_PPCCALL_DEFAULT,
- VAL_PPCCALL_CALLSSYSIV,
- VAL_PPCCALL_CALLSAIX,
- VAL_PPCCALL_CALLSLINUX,
- VAL_PPCCALL_CALLSSOLARIS
- };
-
- enum
- {
- VAL_PPCPROTOTYPED_DEFAULT,
- VAL_PPCPROTOTYPED_PROTOTYPED,
- VAL_PPCPROTOTYPED_NOPROTOTYPED
- };
-
- enum
- {
- VAL_PPCEABI_DEFAULT,
- VAL_PPCEABI_EMBEDDEDABI,
- VAL_PPCEABI_NOEMBEDDEDABI
- };
-
- enum
- {
- VAL_PPCDATA_DEFAULT,
- VAL_PPCDATA_DATADEFAULT,
- VAL_PPCDATA_DATAEABI,
- VAL_PPCDATA_DATASYSV,
- VAL_PPCDATA_DATANONE
- };
-
- enum
- {
- VAL_STRIPCOMMENTS_STRIPCOMMENTS,
- VAL_STRIPCOMMENTS_NOSTRIPCOMMENTS
- };
-
- enum
- {
- VAL_DEFINEMACROS_DEFINEMACROS,
- VAL_DEFINEMACROS_NODEFINEMACROS
- };
-
- enum
- {
- VAL_LINENUMBERS_GENLINENUMBERS,
- VAL_LINENUMBERS_NOGENLINENUMBERS
- };
-
- enum
- {
- VAL_TRADITIONALCPP_NOTRADITIONALCPP,
- VAL_TRADITIONALCPP_TRADIONALCPP
- };
-
- #endif
-
- ///
- /// "defines (vbcc)"
-
- #ifdef TARGET_VBCC
-
- // page identifiers (WindowSupportInfo->Page)
-
- enum PAGE_ID
- {
- PAGE_INDEX,
- PAGE_COMPILER,
- PAGE_MESSAGES,
- PAGE_CODE,
- PAGE_OPTIMIZER,
- PAGE_LINKER,
- PAGE_SPECIAL,
- PAGE_PPC,
-
- // pages end here
-
- PAGE_MAXIMUM
- };
-
- // supported options
-
- enum VBCC_OPTIONS
- {
- OPTION_ALIGNSTACK,
- OPTION_AMIGAALIGN,
- OPTION_ANSI,
- OPTION_ASSEMBLE,
- OPTION_ASSOZIATIVEFP,
- OPTION_C99,
- OPTION_CONST,
- OPTION_COPYRIGHT,
- OPTION_CPPCOMMENTS,
- OPTION_CPU,
- OPTION_DEBUG,
- OPTION_DEBUGHUNK,
- OPTION_DEFINES,
- OPTION_DISABLED,
- OPTION_DOUBLEPUSH,
- OPTION_ELF,
- OPTION_EMBEDDEDABI,
- OPTION_ENABLED,
- OPTION_EXTRALIB,
- OPTION_FMADD,
- OPTION_FSUBZERO,
- OPTION_HIDEPATH,
- OPTION_INCLUDES,
- OPTION_INDERMEDIATE,
- OPTION_INLINESIZE,
- OPTION_ISO,
- OPTION_LARGECODE,
- OPTION_LARGEDATA,
- OPTION_LIBPATHS,
- OPTION_LINK,
- OPTION_LMW,
- OPTION_MATH,
- OPTION_MAXERRORS,
- OPTION_MEMSIZE,
- OPTION_MERGEFPCONST,
- OPTION_OBJECTS,
- OPTION_OPTIMIZE,
- OPTION_OPTIMIZEALIAS,
- OPTION_OPTIMIZEINLINE,
- OPTION_OPTIMIZEPEEPHOLE,
- OPTION_OPTIMIZESCHEDULE,
- OPTION_OPTIMIZESIZE,
- OPTION_OPTIMIZESPEED,
- OPTION_OPTIONS,
- OPTION_POWEROPEN,
- OPTION_PREPROCESSED,
- OPTION_PROFILE,
- OPTION_REGISTERNAMES,
- OPTION_RODATA,
- OPTION_SETCCS,
- OPTION_STACKCHECK,
- OPTION_STDLIB,
- OPTION_UNROLLALL,
- OPTION_UNROLLSIZE,
- OPTION_VCCONFIG,
- OPTION_VERBOSE,
- OPTION_WARNINGS,
-
- // options end here
-
- OPTIONS_MAXIMUM
- };
-
- // possible values for various options
-
- enum
- {
- OPTION_VERBOSE_NOVERBOSE,
- OPTION_VERBOSE_VERBOSE,
- OPTION_VERBOSE_VERYVERBOSE
- };
-
- enum
- {
- OPTION_COPYRIGHT_COPYRIGHT,
- OPTION_COPYRIGHT_NOCOPYRIGHT,
- };
-
- enum
- {
- OPTION_DEBUG_NODEBUG,
- OPTION_DEBUG_DEBUG
- };
-
- enum
- {
- OPTION_DEBUGHUNK_DEBUGHUNKDWARF2,
- OPTION_DEBUGHUNK_DEBUGHUNKAMIGA
- };
-
- enum
- {
- OPTION_CPPCOMMENTS_NOCPPCOMMENTS,
- OPTION_CPPCOMMENTS_CPPCOMMENTS
- };
-
- enum
- {
- OPTION_C99_ISOC1989,
- OPTION_C99_ISOC1999
- };
-
- enum
- {
- OPTION_PREPROCESSED_NOPREPROCESSED,
- OPTION_PREPROCESSED_KEEPPREPROCESSED
- };
-
- enum
- {
- OPTION_ASSEMBLE_ASSEMBLE,
- OPTION_ASSEMBLE_NOASSEMBLE
- };
-
- enum
- {
- OPTION_INTERMEDIATE_NOINTERMEDIATE,
- OPTION_INTERMEDIATE_KEEPINTERMEDIATE
- };
-
- enum
- {
- OPTION_MEMSIZE_MEMSIZEHUGE,
- OPTION_MEMSIZE_MEMSIZESMALL
- };
-
- enum
- {
- OPTION_ANSI_NOANSI,
- OPTION_ANSI_ANSI
- };
-
- enum
- {
- OPTION_ISO_NOISO,
- OPTION_ISO_ISO
- };
-
- enum
- {
- OPTION_HIDEPATH_FULLFILENAMES,
- OPTION_HIDEPATH_HIDEPATHPART
- };
-
- enum
- {
- OPTION_LARGEDATA_LARGEDATA,
- OPTION_LARGEDATA_SMALLDATA
- };
-
- enum
- {
- OPTION_LARGECODE_LARGECODE,
- OPTION_LARGECODE_SMALLCODE
- };
-
- enum
- {
- OPTION_MATH_NOMATH,
- OPTION_MATH_ANY,
- OPTION_MATH_IEEE,
- OPTION_MATH_68881,
- OPTION_MATH_68040
- };
-
- enum
- {
- OPTION_CPU_ANY,
- OPTION_CPU_68010,
- OPTION_CPU_68020,
- OPTION_CPU_68030,
- OPTION_CPU_68040,
- OPTION_CPU_68060
- };
-
- enum
- {
- OPTION_STACKCHECK_NOSTACKCHECK,
- OPTION_STACKCHECK_STACKCHECK
- };
-
- enum
- {
- OPTION_PROFILE_NOPROFILE,
- OPTION_PROFILE_PROFILE
- };
-
- enum
- {
- OPTION_DOUBLEPUSH_NODOUBLEPUSH,
- OPTION_DOUBLEPUSH_DOUBLEPUSH
- };
-
- enum
- {
- OPTION_CONST_CONSTDATACODE,
- OPTION_CONST_CONSTDATADATA
- };
-
- enum
- {
- OPTION_OPTIMIZE_NOOPTIMIZE,
- OPTION_OPTIMIZE_OPTIMIZESOME,
- OPTION_OPTIMIZE_OPTIMIZEMOST,
- OPTION_OPTIMIZE_OPTIMIZEALL,
- OPTION_OPTIMIZE_OPTIMIZECROSSMODULE
- };
-
- enum
- {
- OPTION_OPTIMIZEPEEPHOLE_OPTIMIZEPEEPHOLE,
- OPTION_OPTIMIZEPEEPHOLE_NOOPTIMIZEPEEPHOLE,
- };
-
- enum
- {
- OPTION_OPTIMIZEINLINE_OPTIMIZEINLINE,
- OPTION_OPTIMIZEINLINE_NOOPTIMIZEINLINE
- };
-
- enum
- {
- OPTION_OPTIMIZESCHEDULE_NOOPTIMIZESCHEDULE,
- OPTION_OPTIMIZESCHEDULE_OPTIMIZESCHEDULE
- };
-
- enum
- {
- OPTION_OPTIMIZESIZE_NOOPTIMIZESIZE,
- OPTION_OPTIMIZESIZE_OPTIMIZESIZE
- };
-
- enum
- {
- OPTION_OPTIMIZESPEED_NOOPTIMIZESPEED,
- OPTION_OPTIMIZESPEED_OPTIMIZESPEED
- };
-
- enum
- {
- OPTION_UNROLLALL_NOUNROLLALL,
- OPTION_UNROLLALL_UNROLLALL
- };
-
- enum
- {
- OPTION_ASSOZIATIVEFP_NOASSOZIATIVEFP,
- OPTION_ASSOZIATIVEFP_ASSOZIATIVEFP
- };
-
- enum
- {
- OPTION_OPTIMIZEALIAS_OPTIMIZEALIAS,
- OPTION_OPTIMIZEALIAS_NOOPTIMIZEALIAS
- };
-
- enum
- {
- OPTION_LINK_LINK,
- OPTION_LINK_NOLINK
- };
-
- enum
- {
- OPTION_STDLIB_STDLIB,
- OPTION_STDLIB_NOSTDLIB
- };
-
- enum
- {
- OPTION_EXTRALIB_NOEXTRALIB,
- OPTION_EXTRALIB_EXTRALIB
- };
-
- enum
- {
- OPTION_WARNINGS_WARNINGS,
- OPTION_WARNINGS_ALLWARNINGSON,
- OPTION_WARNINGS_ALLWARNINGSOFF
- };
-
- enum
- {
- OPTION_MERGEFPCONST_NOMERGECONST,
- OPTION_MERGEFPCONST_MERGECONSTANTS
- };
-
- enum
- {
- OPTION_RODATA_CONSTINRODATA,
- OPTION_RODATA_CONSTINDATA
- };
-
- enum
- {
- OPTION_FSUBZERO_NOFSUBZERO,
- OPTION_FSUBZERO_FSUBZERO
- };
-
- enum
- {
- OPTION_AMIGAALIGN_NOAMIGAALIGN,
- OPTION_AMIGAALIGN_AMIGAALIGN
- };
-
- enum
- {
- OPTION_ELF_NOELF,
- OPTION_ELF_PREFIXELF
- };
-
- enum
- {
- OPTION_POWEROPEN_NOPOWEROPENABI,
- OPTION_POWEROPEN_POWEROPENABI,
- OPTION_POWEROPEN_POWEROPENABISTORMC
- };
-
- enum
- {
- OPTION_REGISTERNAMES_USEREGISTERNAMES,
- OPTION_REGISTERNAMES_NOREGISTERNAMES,
- };
-
- enum
- {
- OPTION_SETCCS_NOCCSSIGNAL,
- OPTION_SETCCS_SETCCSSIGNAL
- };
-
- enum
- {
- OPTION_LMW_NOLMWSTMW,
- OPTION_LMW_USELMWSTMW
- };
-
- enum
- {
- OPTION_FMADD_NOFMADDFMSUB,
- OPTION_FMADD_USEFMADDFMSUB
- };
-
- enum
- {
- OPTION_EMBEDDEDABI_NOEMBEDDEDABI,
- OPTION_EMBEDDEDABI_EMBEDDEDABI
- };
-
- enum
- {
- OPTION_ALIGNSTACK_ALIGNSTACK,
- OPTION_ALIGNSTACK_NOALIGNSTACK
- };
-
- #endif
-
- ///
- /// "structures"
-
- /* ------------------------------- Connectivity --------------------------------
-
- The connectivity table (struct Connectivity[]) describes how gadgets interact
-
- */
-
- struct Connectivity
- {
- UWORD Page; // dialog page; see PAGE_ID
- UWORD GadgetID; // gadget ID
- UWORD TargetID; // gadget ID of associated listview
- UWORD Action; // see GADGET_ACTION
- };
-
- /* -----------------------------------------------------------------------------
-
- A syntax structure table is used to describe all options understood by this
- program, their default values, associated gadgets etc.
-
- */
-
- struct Syntax
- {
- UWORD ID; // option ID; see GCC_OPTIONS
- UWORD Type; // option type; see VALUE_TYPE
- UWORD Value; // default numerical value
- UWORD Page; // page; see PAGE_ID
- UWORD GadgetID; // gadget ID
- UWORD GadgetType; // gadget type
- UBYTE *Template; // template (or NULL)
- UWORD TemplateValue; // value associated with template
- UWORD Flags; // flags (see below)
- UBYTE *Enable; // activator
- UBYTE *Disable; // deactivator
- UWORD Status; // rule status
- };
-
- // possible values for Syntax->Flags
-
- #define RULE_DONOTSAVE (1L<<0) // do not use rule for saving
-
- /* ----------------------------------- Value -----------------------------------
-
- Value structures hold the numerical/list/string value of options. Note that NULL
- is perfectly valid in Value->String ("empty string").
-
- */
-
- struct Value
- {
- UWORD Type; // option type; see VALUE_TYPE
- UWORD Number; // value (if Type==VALUE_NUMBER)
- UBYTE *String; // value (if Type==VALUE_STRING)
- struct List List; // value (if Type==VALUE_LIST)
- };
-
- /* ---------------------------------- Options ----------------------------------
-
- Complete set of compiler options
-
- */
-
- struct Options
- {
- struct Value Values[OPTIONS_MAXIMUM];
- };
-
- /* ---------------------------------- Config -----------------------------------
-
- Global configuration
-
- */
-
- struct Config
- {
- struct Menu *Menu; // main menu
- struct List Windows; // windows
- struct BoopsiContext Context; // gadget class root
- struct BoopsiDevice *Device; // gadget class device
- struct Options Options; // compiler options
- UBYTE Pubscreen[MAX_SCREEN + 1]; // screen name
- UBYTE File [MAX_PATHLEN + 1]; // options file
- };
-
- /* ----------------------------- WindowSupportInfo -----------------------------
-
- Window-related information
-
- */
-
- struct WindowSupportInfo
- {
- struct Node Node; // it's a linked list
- struct Window *Window; // window handle
- struct Gadget *Context; // gadget context
- struct Options *Options; // options attached to window
- UWORD Gadgets; // gadgets
- struct Gadget *GadgetPtr[MAX_GADGETS]; // gadgets
- UWORD Page; // current page
- struct PageLayout *Layout; // current layout
- struct TextAttr TextAttr; // dialog layout info
- UWORD FontX; // dialog layout info
- UWORD FontY; // dialog layout info
- UWORD OffX; // dialog layout info
- UWORD OffY; // dialog layout info
- UWORD WinW; // dialog layout info
- UWORD WinH; // dialog layout info
- };
-
- /* -------------------------------- PageLayout ---------------------------------
-
- Page layout
-
- */
-
- struct PageLayout
- {
- UWORD Gadgets; // number of gadgets
- ULONG *Tags; // array with gadget tags
- UWORD *Types; // array with gadget types
- struct NewGadget *NewGadget; // array with gadget data
- struct IntuiText *IntuiText; // array with strings
- };
-
- ///
- /// "globals"
-
- extern struct Library *AslBase;
- extern struct Library *DiskfontBase;
- extern struct Library *DOSBase;
- extern struct Library *GadToolsBase;
- extern struct Library *GfxBase;
- extern struct Library *SysBase;
- extern struct Library *UtilityBase;
- extern struct Config Config;
- extern struct Syntax Syntax[];
- extern struct NewMenu NewMenu[];
- extern UBYTE *SuggestionsForWarnings[];
-
- ///
-