a2194e8dca139f314a5bec434b1eb9d19974e822
[people/indolent/gpxe.git/.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 #include "config/general.h"
9
10 /*
11  * Build ID string calculations
12  *
13  */
14 #undef XSTR
15 #undef STR
16 #define XSTR(s) STR(s)
17 #define STR(s) #s
18
19 #ifdef BUILD_SERIAL
20 #include "config/.buildserial.h"
21 #define BUILD_SERIAL_STR " #" XSTR(BUILD_SERIAL_NUM)
22 #else
23 #define BUILD_SERIAL_STR ""
24 #endif
25
26 #ifdef BUILD_ID
27 #define BUILD_ID_STR " " BUILD_ID
28 #else
29 #define BUILD_ID_STR ""
30 #endif
31
32 #if defined(BUILD_ID) || defined(BUILD_SERIAL)
33 #define BUILD_STRING " [build" BUILD_ID_STR BUILD_SERIAL_STR "]"
34 #else
35 #define BUILD_STRING ""
36 #endif
37
38 /*
39  * Drag in all requested console types
40  *
41  * CONSOLE_DUAL sets both CONSOLE_FIRMWARE and CONSOLE_SERIAL for
42  * legacy compatibility.
43  *
44  */
45
46 #ifdef  CONSOLE_DUAL
47 #undef  CONSOLE_FIRMWARE
48 #define CONSOLE_FIRMWARE        1
49 #undef  CONSOLE_SERIAL
50 #define CONSOLE_SERIAL          1
51 #endif
52
53 #ifdef CONSOLE_FIRMWARE
54 REQUIRE_OBJECT ( bios_console );
55 #endif
56
57 #ifdef CONSOLE_SERIAL
58 REQUIRE_OBJECT ( serial );
59 #endif
60
61 #ifdef CONSOLE_DIRECT_VGA
62 REQUIRE_OBJECT ( video_subr );
63 #endif
64
65 #ifdef CONSOLE_BTEXT
66 REQUIRE_OBJECT ( btext );
67 #endif
68
69 #ifdef CONSOLE_PC_KBD
70 REQUIRE_OBJECT ( pc_kbd );
71 #endif
72
73 #ifdef CONSOLE_SYSLOG
74 REQUIRE_OBJECT ( syslog );
75 #endif
76
77 /*
78  * Drag in all requested protocols
79  *
80  */
81 #ifdef DOWNLOAD_PROTO_TFTP
82 REQUIRE_OBJECT ( tftp );
83 #endif
84 #ifdef DOWNLOAD_PROTO_NFS
85 REQUIRE_OBJECT ( nfs );
86 #endif
87 #ifdef DOWNLOAD_PROTO_HTTP
88 REQUIRE_OBJECT ( http );
89 #endif
90 #ifdef DOWNLOAD_PROTO_FTP
91 REQUIRE_OBJECT ( ftp );
92 #endif
93 #ifdef DOWNLOAD_PROTO_TFTM
94 REQUIRE_OBJECT ( tftm );
95 #endif
96 #ifdef DOWNLOAD_PROTO_SLAM
97 REQUIRE_OBJECT ( slam );
98 #endif
99
100 /*
101  * Drag in any required resolvers
102  *
103  */
104 #ifdef DNS_RESOLVER
105 REQUIRE_OBJECT ( dns );
106 #endif
107
108 #ifdef NMB_RESOLVER
109 REQUIRE_OBJECT ( nmb );
110 #endif
111
112 /*
113  * Drag in all requested image formats
114  *
115  */
116 #ifdef IMAGE_NBI
117 REQUIRE_OBJECT ( nbi );
118 #endif
119 #ifdef IMAGE_ELF64
120 REQUIRE_OBJECT ( elf64 );
121 #endif
122 #ifdef IMAGE_ELF
123 REQUIRE_OBJECT ( elf );
124 #endif
125 #ifdef IMAGE_ELF
126 REQUIRE_OBJECT ( coff );
127 #endif
128 #ifdef IMAGE_FREEBSD
129 REQUIRE_OBJECT ( freebsd );
130 #endif
131 #ifdef IMAGE_MULTIBOOT
132 REQUIRE_OBJECT ( multiboot );
133 #endif
134 #ifdef IMAGE_AOUT
135 REQUIRE_OBJECT ( aout );
136 #endif
137 #ifdef IMAGE_WINCE
138 REQUIRE_OBJECT ( wince );
139 #endif
140 #ifdef IMAGE_PXE
141 REQUIRE_OBJECT ( pxe_image );
142 #endif
143 #ifdef IMAGE_SCRIPT
144 REQUIRE_OBJECT ( script );
145 #endif
146 #ifdef IMAGE_BZIMAGE
147 REQUIRE_OBJECT ( bzimage );
148 #endif
149 #ifdef IMAGE_ELTORITO
150 REQUIRE_OBJECT ( eltorito );
151 #endif
152
153 /*
154  * Drag in all requested commands
155  *
156  */
157 #ifdef AUTOBOOT_CMD
158 REQUIRE_OBJECT ( autoboot_cmd );
159 #endif
160 #ifdef NVO_CMD
161 REQUIRE_OBJECT ( nvo_cmd );
162 #endif
163 #ifdef CONFIG_CMD
164 REQUIRE_OBJECT ( config_cmd );
165 #endif
166 #ifdef IFMGMT_CMD
167 REQUIRE_OBJECT ( ifmgmt_cmd );
168 #endif
169 #ifdef ROUTE_CMD
170 REQUIRE_OBJECT ( route_cmd );
171 #endif
172 #ifdef IMAGE_CMD
173 REQUIRE_OBJECT ( image_cmd );
174 #endif
175 #ifdef DHCP_CMD
176 REQUIRE_OBJECT ( dhcp_cmd );
177 #endif
178
179 /*
180  * Drag in miscellaneous objects
181  *
182  */
183 #ifdef NULL_TRAP
184 REQUIRE_OBJECT ( nulltrap );
185 #endif
186 #ifdef DUMP_GDBSYM
187 REQUIRE_OBJECT ( gdbsym );
188 #endif