[spi] Add address-length autodetection to the SPI bit-bashing code
[people/asdlkf/gpxe.git] / src / core / config.c
1 /*
2  * This program is free software; you can redistribute it and/or
3  * modify it under the terms of the GNU General Public License as
4  * published by the Free Software Foundation; either version 2, or (at
5  * your option) any later version.
6  */
7
8 FILE_LICENCE ( GPL2_OR_LATER );
9
10 #include <config/general.h>
11 #include <config/console.h>
12
13 /*
14  * Build ID string calculations
15  *
16  */
17 #undef XSTR
18 #undef STR
19 #define XSTR(s) STR(s)
20 #define STR(s) #s
21
22 #ifdef BUILD_SERIAL
23 #include "config/.buildserial.h"
24 #define BUILD_SERIAL_STR " #" XSTR(BUILD_SERIAL_NUM)
25 #else
26 #define BUILD_SERIAL_STR ""
27 #endif
28
29 #ifdef BUILD_ID
30 #define BUILD_ID_STR " " BUILD_ID
31 #else
32 #define BUILD_ID_STR ""
33 #endif
34
35 #if defined(BUILD_ID) || defined(BUILD_SERIAL)
36 #define BUILD_STRING " [build" BUILD_ID_STR BUILD_SERIAL_STR "]"
37 #else
38 #define BUILD_STRING ""
39 #endif
40
41 /*
42  * Drag in all requested console types
43  *
44  */
45
46 #ifdef CONSOLE_PCBIOS
47 REQUIRE_OBJECT ( bios_console );
48 #endif
49 #ifdef CONSOLE_SERIAL
50 REQUIRE_OBJECT ( serial_console );
51 #endif
52 #ifdef CONSOLE_DIRECT_VGA
53 REQUIRE_OBJECT ( video_subr );
54 #endif
55 #ifdef CONSOLE_BTEXT
56 REQUIRE_OBJECT ( btext );
57 #endif
58 #ifdef CONSOLE_PC_KBD
59 REQUIRE_OBJECT ( pc_kbd );
60 #endif
61 #ifdef CONSOLE_SYSLOG
62 REQUIRE_OBJECT ( syslog );
63 #endif
64 #ifdef CONSOLE_EFI
65 REQUIRE_OBJECT ( efi_console );
66 #endif
67
68 /*
69  * Drag in all requested network protocols
70  *
71  */
72 #ifdef NET_PROTO_IPV4
73 REQUIRE_OBJECT ( ipv4 );
74 #endif
75
76 /*
77  * Drag in all requested download protocols
78  *
79  */
80 #ifdef DOWNLOAD_PROTO_TFTP
81 REQUIRE_OBJECT ( tftp );
82 #endif
83 #ifdef DOWNLOAD_PROTO_NFS
84 REQUIRE_OBJECT ( nfs );
85 #endif
86 #ifdef DOWNLOAD_PROTO_HTTP
87 REQUIRE_OBJECT ( http );
88 #endif
89 #ifdef DOWNLOAD_PROTO_HTTPS
90 REQUIRE_OBJECT ( https );
91 #endif
92 #ifdef DOWNLOAD_PROTO_FTP
93 REQUIRE_OBJECT ( ftp );
94 #endif
95 #ifdef DOWNLOAD_PROTO_TFTM
96 REQUIRE_OBJECT ( tftm );
97 #endif
98 #ifdef DOWNLOAD_PROTO_SLAM
99 REQUIRE_OBJECT ( slam );
100 #endif
101
102 /*
103  * Drag in all requested SAN boot protocols
104  *
105  */
106 #ifdef SANBOOT_PROTO_ISCSI
107 REQUIRE_OBJECT ( iscsiboot );
108 #endif
109 #ifdef SANBOOT_PROTO_AOE
110 REQUIRE_OBJECT ( aoeboot );
111 #endif
112
113 /*
114  * Drag in all requested resolvers
115  *
116  */
117 #ifdef DNS_RESOLVER
118 REQUIRE_OBJECT ( dns );
119 #endif
120 #ifdef NMB_RESOLVER
121 REQUIRE_OBJECT ( nmb );
122 #endif
123
124 /*
125  * Drag in all requested image formats
126  *
127  */
128 #ifdef IMAGE_NBI
129 REQUIRE_OBJECT ( nbi );
130 #endif
131 #ifdef IMAGE_ELF
132 REQUIRE_OBJECT ( elfboot );
133 #endif
134 #ifdef IMAGE_FREEBSD
135 REQUIRE_OBJECT ( freebsd );
136 #endif
137 #ifdef IMAGE_MULTIBOOT
138 REQUIRE_OBJECT ( multiboot );
139 #endif
140 #ifdef IMAGE_AOUT
141 REQUIRE_OBJECT ( aout );
142 #endif
143 #ifdef IMAGE_WINCE
144 REQUIRE_OBJECT ( wince );
145 #endif
146 #ifdef IMAGE_PXE
147 REQUIRE_OBJECT ( pxe_image );
148 #endif
149 #ifdef IMAGE_SCRIPT
150 REQUIRE_OBJECT ( script );
151 #endif
152 #ifdef IMAGE_BZIMAGE
153 REQUIRE_OBJECT ( bzimage );
154 #endif
155 #ifdef IMAGE_ELTORITO
156 REQUIRE_OBJECT ( eltorito );
157 #endif
158 #ifdef IMAGE_COMBOOT
159 REQUIRE_OBJECT ( comboot );
160 REQUIRE_OBJECT ( com32 );
161 REQUIRE_OBJECT ( comboot_call );
162 REQUIRE_OBJECT ( com32_call );
163 REQUIRE_OBJECT ( com32_wrapper );
164 REQUIRE_OBJECT ( comboot_resolv );
165 #endif
166 #ifdef IMAGE_EFI
167 REQUIRE_OBJECT ( efi_image );
168 #endif
169
170 /*
171  * Drag in all requested commands
172  *
173  */
174 #ifdef AUTOBOOT_CMD
175 REQUIRE_OBJECT ( autoboot_cmd );
176 #endif
177 #ifdef NVO_CMD
178 REQUIRE_OBJECT ( nvo_cmd );
179 #endif
180 #ifdef CONFIG_CMD
181 REQUIRE_OBJECT ( config_cmd );
182 #endif
183 #ifdef IFMGMT_CMD
184 REQUIRE_OBJECT ( ifmgmt_cmd );
185 #endif
186 #ifdef ROUTE_CMD
187 REQUIRE_OBJECT ( route_cmd );
188 #endif
189 #ifdef IMAGE_CMD
190 REQUIRE_OBJECT ( image_cmd );
191 #endif
192 #ifdef DHCP_CMD
193 REQUIRE_OBJECT ( dhcp_cmd );
194 #endif
195 #ifdef SANBOOT_CMD
196 REQUIRE_OBJECT ( sanboot_cmd );
197 #endif
198 #ifdef LOGIN_CMD
199 REQUIRE_OBJECT ( login_cmd );
200 #endif
201 #ifdef TIME_CMD
202 REQUIRE_OBJECT ( time_cmd );
203 #endif
204 #ifdef DIGEST_CMD
205 REQUIRE_OBJECT ( digest_cmd );
206 #endif
207
208 /*
209  * Drag in miscellaneous objects
210  *
211  */
212 #ifdef NULL_TRAP
213 REQUIRE_OBJECT ( nulltrap );
214 #endif
215 #ifdef GDBSERIAL
216 REQUIRE_OBJECT ( gdbidt );
217 REQUIRE_OBJECT ( gdbserial );
218 REQUIRE_OBJECT ( gdbstub_cmd );
219 #endif
220 #ifdef GDBUDP
221 REQUIRE_OBJECT ( gdbidt );
222 REQUIRE_OBJECT ( gdbudp );
223 REQUIRE_OBJECT ( gdbstub_cmd );
224 #endif
225
226 /*
227  * Drag in objects that are always required, but not dragged in via
228  * symbol dependencies.
229  *
230  */
231 REQUIRE_OBJECT ( device );
232 REQUIRE_OBJECT ( embedded );