-# Copyright (C) 2003,2004 Free Software Foundation, Inc.
+# Copyright (C) 2003,2004,2005,2006,2007 Free Software Foundation, Inc.
# Contributed by Kelley Cook, June 2004.
# Original code from Neil Booth, May 2003.
#
# This program is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by the
-# Free Software Foundation; either version 2, or (at your option) any
+# Free Software Foundation; either version 3, or (at your option) any
# later version.
#
# This program is distributed in the hope that it will be useful,
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+# along with this program; see the file COPYING3. If not see
+# <http://www.gnu.org/licenses/>.
# This Awk script reads in the option records generated from
# opt-gather.awk, combines the flags of duplicate options and generates a
# Dump out an enumeration into a .h file.
# Combine the flags of duplicate options.
END {
-print "/* This file is auto-generated by opts.sh. */"
+print "/* This file is auto-generated by opth-gen.awk. */"
print ""
print "#ifndef OPTIONS_H"
print "#define OPTIONS_H"
print ""
print "extern int target_flags;"
+print "extern int target_flags_explicit;"
print ""
for (i = 0; i < n_opts; i++) {
for (i = 0; i < n_opts; i++) {
opt = opt_args("InverseMask", flags[i])
- if (opt ~ ",")
- print "#define TARGET_" nth_arg(1, opt) \
- " ((target_flags & MASK_" nth_arg(0, opt) ") == 0)"
+ if (opt ~ ",") {
+ vname = var_name(flags[i])
+ macro = "OPTION_"
+ mask = "OPTION_MASK_"
+ if (vname == "") {
+ vname = "target_flags"
+ macro = "TARGET_"
+ mask = "MASK_"
+ }
+ print "#define " macro nth_arg(1, opt) \
+ " ((" vname " & " mask nth_arg(0, opt) ") == 0)"
+ }
}
print ""
s = substr(" ", length (macros[i]))
print "#define " macros[i] s " (1 << " i ")"
}
+print "#define CL_LANG_ALL ((1 << " n_langs ") - 1)"
print ""
print "enum opt_code"
len = length (opts[i]);
enum = "OPT_" opts[i]
- if (opts[i] == "finline-limit=")
+ if (opts[i] == "finline-limit=" || opts[i] == "Wlarger-than=")
enum = enum "eq"
gsub ("[^A-Za-z0-9]", "_", enum)