]>
Commit | Line | Data |
---|---|---|
7d5a5747 | 1 | # Copyright (C) 2003,2004,2005,2006,2007,2008, 2010, 2011, 2012 |
86fa5de4 JM |
2 | # Free Software Foundation, Inc. |
3 | # Contributed by Kelley Cook, June 2004. | |
4 | # Original code from Neil Booth, May 2003. | |
5 | # | |
6 | # This program is free software; you can redistribute it and/or modify it | |
7 | # under the terms of the GNU General Public License as published by the | |
8 | # Free Software Foundation; either version 3, or (at your option) any | |
9 | # later version. | |
10 | # | |
11 | # This program is distributed in the hope that it will be useful, | |
12 | # but WITHOUT ANY WARRANTY; without even the implied warranty of | |
13 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
14 | # GNU General Public License for more details. | |
15 | # | |
16 | # You should have received a copy of the GNU General Public License | |
17 | # along with this program; see the file COPYING3. If not see | |
18 | # <http://www.gnu.org/licenses/>. | |
19 | ||
20 | # Read in the option records generated from opt-gather.awk. | |
21 | ||
22 | BEGIN { | |
23 | n_opts = 0 | |
24 | n_langs = 0 | |
25 | n_target_save = 0 | |
26 | n_extra_vars = 0 | |
27 | n_extra_target_vars = 0 | |
28 | n_extra_masks = 0 | |
29 | n_extra_c_includes = 0 | |
30 | n_extra_h_includes = 0 | |
31 | n_enums = 0 | |
32 | have_save = 0; | |
33 | quote = "\042" | |
34 | comma = "," | |
35 | FS=SUBSEP | |
36 | # Default the name of header created from opth-gen.awk to options.h | |
37 | if (header_name == "") header_name="options.h" | |
38 | } | |
39 | ||
40 | # Collect the text and flags of each option into an array | |
41 | { | |
42 | if ($1 == "Language") { | |
43 | langs[n_langs] = $2 | |
44 | n_langs++; | |
45 | } | |
46 | else if ($1 == "TargetSave") { | |
47 | # Make sure the declarations are put in source order | |
48 | target_save_decl[n_target_save] = $2 | |
49 | n_target_save++ | |
50 | } | |
51 | else if ($1 == "Variable") { | |
52 | extra_vars[n_extra_vars] = $2 | |
53 | n_extra_vars++ | |
99114bbf L |
54 | name = host_wide_int_var_name($2) |
55 | if (name != "") | |
56 | host_wide_int[name] = "yes" | |
86fa5de4 JM |
57 | } |
58 | else if ($1 == "TargetVariable") { | |
59 | # Combination of TargetSave and Variable | |
60 | extra_vars[n_extra_vars] = $2 | |
61 | n_extra_vars++ | |
62 | ||
63 | var = $2 | |
64 | sub(" *=.*", "", var) | |
65 | orig_var = var | |
66 | name = var | |
67 | type = var | |
68 | sub("^.*[ *]", "", name) | |
69 | sub(" *" name "$", "", type) | |
70 | target_save_decl[n_target_save] = type " x_" name | |
71 | n_target_save++ | |
72 | ||
73 | extra_target_vars[n_extra_target_vars] = name | |
74 | n_extra_target_vars++ | |
75 | } | |
76 | else if ($1 == "HeaderInclude") { | |
77 | extra_h_includes[n_extra_h_includes++] = $2; | |
78 | } | |
79 | else if ($1 == "SourceInclude") { | |
80 | extra_c_includes[n_extra_c_includes++] = $2; | |
81 | } | |
82 | else if ($1 == "Enum") { | |
83 | props = $2 | |
84 | name = opt_args("Name", props) | |
85 | type = opt_args("Type", props) | |
86 | unknown_error = opt_args("UnknownError", props) | |
87 | enum_names[n_enums] = name | |
88 | enum_type[name] = type | |
89 | enum_index[name] = n_enums | |
90 | enum_unknown_error[name] = unknown_error | |
91 | enum_help[name] = $3 | |
92 | n_enums++ | |
93 | } | |
94 | else if ($1 == "EnumValue") { | |
95 | props = $2 | |
96 | enum_name = opt_args("Enum", props) | |
97 | string = opt_args("String", props) | |
98 | value = opt_args("Value", props) | |
99 | val_flags = "0" | |
100 | val_flags = val_flags \ | |
101 | test_flag("Canonical", props, "| CL_ENUM_CANONICAL") \ | |
102 | test_flag("DriverOnly", props, "| CL_ENUM_DRIVER_ONLY") | |
103 | enum_data[enum_name] = enum_data[enum_name] \ | |
104 | " { " quote string quote ", " value ", " val_flags \ | |
105 | " },\n" | |
106 | } | |
107 | else { | |
108 | name = opt_args("Mask", $1) | |
109 | if (name == "") { | |
110 | opts[n_opts] = $1 | |
7d5a5747 | 111 | opt_numbers[$1] = n_opts |
86fa5de4 JM |
112 | flags[n_opts] = $2 |
113 | help[n_opts] = $3 | |
114 | for (i = 4; i <= NF; i++) | |
115 | help[n_opts] = help[n_opts] " " $i | |
116 | n_opts++; | |
117 | } | |
118 | else { | |
119 | extra_masks[n_extra_masks++] = name | |
120 | } | |
121 | } | |
122 | } | |
123 |