[infiniband] Add support for SRP over Infiniband
[people/pravin/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 #ifdef SANBOOT_PROTO_IB_SRP
113 REQUIRE_OBJECT ( ib_srpboot );
114 #endif
115
116 /*
117  * Drag in all requested resolvers
118  *
119  */
120 #ifdef DNS_RESOLVER
121 REQUIRE_OBJECT ( dns );
122 #endif
123 #ifdef NMB_RESOLVER
124 REQUIRE_OBJECT ( nmb );
125 #endif
126
127 /*
128  * Drag in all requested image formats
129  *
130  */
131 #ifdef IMAGE_NBI
132 REQUIRE_OBJECT ( nbi );
133 #endif
134 #ifdef IMAGE_ELF
135 REQUIRE_OBJECT ( elfboot );
136 #endif
137 #ifdef IMAGE_FREEBSD
138 REQUIRE_OBJECT ( freebsd );
139 #endif
140 #ifdef IMAGE_MULTIBOOT
141 REQUIRE_OBJECT ( multiboot );
142 #endif
143 #ifdef IMAGE_AOUT
144 REQUIRE_OBJECT ( aout );
145 #endif
146 #ifdef IMAGE_WINCE
147 REQUIRE_OBJECT ( wince );
148 #endif
149 #ifdef IMAGE_PXE
150 REQUIRE_OBJECT ( pxe_image );
151 #endif
152 #ifdef IMAGE_SCRIPT
153 REQUIRE_OBJECT ( script );
154 #endif
155 #ifdef IMAGE_BZIMAGE
156 REQUIRE_OBJECT ( bzimage );
157 #endif
158 #ifdef IMAGE_ELTORITO
159 REQUIRE_OBJECT ( eltorito );
160 #endif
161 #ifdef IMAGE_COMBOOT
162 REQUIRE_OBJECT ( comboot );
163 REQUIRE_OBJECT ( com32 );
164 REQUIRE_OBJECT ( comboot_call );
165 REQUIRE_OBJECT ( com32_call );
166 REQUIRE_OBJECT ( com32_wrapper );
167 REQUIRE_OBJECT ( comboot_resolv );
168 #endif
169 #ifdef IMAGE_EFI
170 REQUIRE_OBJECT ( efi_image );
171 #endif
172
173 /*
174  * Drag in all requested commands
175  *
176  */
177 #ifdef AUTOBOOT_CMD
178 REQUIRE_OBJECT ( autoboot_cmd );
179 #endif
180 #ifdef NVO_CMD
181 REQUIRE_OBJECT ( nvo_cmd );
182 #endif
183 #ifdef CONFIG_CMD
184 REQUIRE_OBJECT ( config_cmd );
185 #endif
186 #ifdef IFMGMT_CMD
187 REQUIRE_OBJECT ( ifmgmt_cmd );
188 #endif
189 #ifdef ROUTE_CMD
190 REQUIRE_OBJECT ( route_cmd );
191 #endif
192 #ifdef IMAGE_CMD
193 REQUIRE_OBJECT ( image_cmd );
194 #endif
195 #ifdef DHCP_CMD
196 REQUIRE_OBJECT ( dhcp_cmd );
197 #endif
198 #ifdef SANBOOT_CMD
199 REQUIRE_OBJECT ( sanboot_cmd );
200 #endif
201 #ifdef LOGIN_CMD
202 REQUIRE_OBJECT ( login_cmd );
203 #endif
204 #ifdef TIME_CMD
205 REQUIRE_OBJECT ( time_cmd );
206 #endif
207 #ifdef DIGEST_CMD
208 REQUIRE_OBJECT ( digest_cmd );
209 #endif
210 #ifdef PXE_CMD
211 REQUIRE_OBJECT ( pxe_cmd );
212 #endif
213
214 /*
215  * Drag in miscellaneous objects
216  *
217  */
218 #ifdef NULL_TRAP
219 REQUIRE_OBJECT ( nulltrap );
220 #endif
221 #ifdef GDBSERIAL
222 REQUIRE_OBJECT ( gdbidt );
223 REQUIRE_OBJECT ( gdbserial );
224 REQUIRE_OBJECT ( gdbstub_cmd );
225 #endif
226 #ifdef GDBUDP
227 REQUIRE_OBJECT ( gdbidt );
228 REQUIRE_OBJECT ( gdbudp );
229 REQUIRE_OBJECT ( gdbstub_cmd );
230 #endif
231
232 /*
233  * Drag in objects that are always required, but not dragged in via
234  * symbol dependencies.
235  *
236  */
237 REQUIRE_OBJECT ( device );
238 REQUIRE_OBJECT ( embedded );