#
# 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.
+# Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
# This Awk script reads in the option records generated from
# opt-gather.awk, combines the flags of duplicate options and generates a
if (name == "")
continue;
- print "/* Set by -" opts[i] "."
- print " " help[i] " */"
- print "extern int " name ";"
- print ""
-
- }
+ print "extern " var_type(flags[i]) name ";"
+}
+print ""
-masknum = 0
for (i = 0; i < n_opts; i++) {
name = opt_args("Mask", flags[i])
+ vname = var_name(flags[i])
+ mask = "MASK_"
+ if (vname != "") {
+ mask = "OPTION_MASK_"
+ }
if (name != "" && !flag_set_p("MaskExists", flags[i]))
- print "#define MASK_" name " (1 << " masknum++ ")"
+ print "#define " mask name " (1 << " masknum[vname]++ ")"
}
for (i = 0; i < n_extra_masks; i++) {
- print "#define MASK_" extra_masks[i] " (1 << " masknum++ ")"
+ print "#define MASK_" extra_masks[i] " (1 << " masknum[""]++ ")"
+}
+
+for (var in masknum) {
+ if (masknum[var] > 31) {
+ if (var == "")
+ print "#error too many target masks"
+ else
+ print "#error too many masks for " var
+ }
}
-if (masknum > 31)
- print "#error too many target masks"
print ""
for (i = 0; i < n_opts; i++) {
name = opt_args("Mask", flags[i])
+ vname = var_name(flags[i])
+ macro = "OPTION_"
+ mask = "OPTION_MASK_"
+ if (vname == "") {
+ vname = "target_flags"
+ macro = "TARGET_"
+ mask = "MASK_"
+ }
if (name != "" && !flag_set_p("MaskExists", flags[i]))
- print "#define TARGET_" name \
- " ((target_flags & MASK_" name ") != 0)"
+ print "#define " macro name \
+ " ((" vname " & " mask name ") != 0)"
}
for (i = 0; i < n_extra_masks; i++) {
print "#define TARGET_" extra_masks[i] \
for (i = 0; i < n_opts; i++)
back_chain[i] = "N_OPTS";
- for (i = 0; i < n_opts; i++) {
- # Combine the flags of identical switches. Switches
- # appear many times if they are handled by many front
- # ends, for example.
- while( i + 1 != n_opts && opts[i] == opts[i + 1] ) {
- flags[i + 1] = flags[i] " " flags[i + 1];
- i++;
- }
+for (i = 0; i < n_opts; i++) {
+ # Combine the flags of identical switches. Switches
+ # appear many times if they are handled by many front
+ # ends, for example.
+ while( i + 1 != n_opts && opts[i] == opts[i + 1] ) {
+ flags[i + 1] = flags[i] " " flags[i + 1];
+ i++;
+ }
len = length (opts[i]);
enum = "OPT_" opts[i]