% % % Copyright (C) 2000, 2001 Silicon Graphics, Inc. All Rights Reserved. % % This program is free software; you can redistribute it and/or modify it % under the terms of version 2 of the GNU General Public License as % published by the Free Software Foundation. % % This program is distributed in the hope that it would be useful, but % WITHOUT ANY WARRANTY; without even the implied warranty of % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. % % Further, this software is distributed without any warranty that it is % free of the rightful claim of any third person regarding infringement % or the like. Any license provided herein, whether implied or % otherwise, applies only to this software file. Patent licenses, if % any, provided herein do not apply to combinations of this program with % other software, or any other product whatsoever. % % You should have received a copy of the GNU General Public License along % with this program; if not, write the Free Software Foundation, Inc., 59 % Temple Place - Suite 330, Boston MA 02111-1307, USA. % % Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pky, % Mountain View, CA 94043, or: % % http://www.sgi.com % % For further information regarding this notice, see: % % http://oss.sgi.com/projects/GenInfo/NoticeExplan % % % Lines beginning with % are comment lines, % lines beginning with %%% denote new sections. % There are two section types, which can be interspersed: % Each option in the OPTIONS section has two lines. % The first line contains: % the option name, % an action to be done upon reading the option, % what languages accept it, % what phases accept it, % and what other options it implies. % The second line contains the help message for that option. % There must be no spaces in any of the fields except the last one, % or you can have spaces in an action if you surround it with braces. % There are several special syntax rules for option names that are used: % Option names that start with I, e.g. I-foo, are internal names % that the user cannot access. Internal names are used for phase options % (e.g. -pic2), and for implicit defaults like -D__sgi. % A %s after an option name means to use the next string as an argument; % a %d or %x after an option name means to use the next number as an argument; % a %D after an option name means to use the next directory as an argument; % the %{s,x,d,D} formats accept an optional space before the argument; % if there is no number or directory for a corresponding %{x,d,D}, % then the option is not matched. % A * in the middle of an argument means there can be an optional space here; % a * at the end of the argument means the syntax is too complicated and a % call to a hand-written routine called parse__option will be generated. % A special action is toggle(&,) which stores the value in the % variable, and gives an error if the variable has already been set. % This is useful for catching conflicts like -mips1 -mips2. % The implies field should include the option name if that name is to be % passed to phases. The special word "self" for the implies field means % to repeat the option name. % Repeating a %{d,D,s} in the implies field shows the format to use % when passing to phases, i.e. whether to have a blank space. % A simple alias is recognized when you have an option that has % no action, language=all, phases=none, and 1 implies option. % This is directly translated to the implies option when processing. % Lines in the COMBINATIONS section give % an option combination, % whether the combination is OKAY, a WARNING, or an ERROR, % and what implied behavior comes from that option. % The implied behavior of combinations overrides the implied behavior % of the individual options. % The file is first preprocessed by cpp to expand macros, and then sorted % by option names. % the letter keys for languages and phases must match what is in lang_defs.c % ALL and NONE can be used for both languages and phases. #define ALL A #define NONE N % languages #define cc c #define CC C #define Cc cc,CC #define f77 f #define UPC u #define upc u % f90 used in option name, so use F90 for define #define F90 F #define FTN f77,F90 #define as a #define LINK Cc,FTN % phases #define cpp p #define cfe C #define ffe F #define FE f #define ipl i #define be b #define as a #define ld l #define ipap j #define pwrc K % pfa used in option name, so use PFA for define #define PFA K #define mpc M % GRP: All the pieces that swallow regular group options #define GRP ffe,b,i #define CMP FE,ipl,be % ALLX: ALL except pca & pfa which don't accept the usual compilation args #define ALLX cpp,CMP,ld %%% OPTIONS %