Merge branch 'xl0-timer'
[people/dverkamp/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 #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  * Timers
79  */
80
81 #ifdef TIMER_BIOS
82 REQUIRE_OBJECT ( timer_bios );
83 #endif
84
85 #ifdef TIMER_RDTSC
86 REQUIRE_OBJECT ( timer_rdtsc );
87 #endif
88 /*
89  * Drag in all requested protocols
90  *
91  */
92 #ifdef DOWNLOAD_PROTO_TFTP
93 REQUIRE_OBJECT ( tftp );
94 #endif
95 #ifdef DOWNLOAD_PROTO_NFS
96 REQUIRE_OBJECT ( nfs );
97 #endif
98 #ifdef DOWNLOAD_PROTO_HTTP
99 REQUIRE_OBJECT ( http );
100 #endif
101 #ifdef DOWNLOAD_PROTO_HTTPS
102 REQUIRE_OBJECT ( https );
103 #endif
104 #ifdef DOWNLOAD_PROTO_FTP
105 REQUIRE_OBJECT ( ftp );
106 #endif
107 #ifdef DOWNLOAD_PROTO_TFTM
108 REQUIRE_OBJECT ( tftm );
109 #endif
110 #ifdef DOWNLOAD_PROTO_SLAM
111 REQUIRE_OBJECT ( slam );
112 #endif
113
114 /*
115  * Drag in any required resolvers
116  *
117  */
118 #ifdef DNS_RESOLVER
119 REQUIRE_OBJECT ( dns );
120 #endif
121
122 #ifdef NMB_RESOLVER
123 REQUIRE_OBJECT ( nmb );
124 #endif
125
126 /*
127  * Drag in all requested image formats
128  *
129  */
130 #ifdef IMAGE_NBI
131 REQUIRE_OBJECT ( nbi );
132 #endif
133 #ifdef IMAGE_ELF64
134 REQUIRE_OBJECT ( elf64 );
135 #endif
136 #ifdef IMAGE_ELF
137 REQUIRE_OBJECT ( elf );
138 #endif
139 #ifdef IMAGE_FREEBSD
140 REQUIRE_OBJECT ( freebsd );
141 #endif
142 #ifdef IMAGE_MULTIBOOT
143 REQUIRE_OBJECT ( multiboot );
144 #endif
145 #ifdef IMAGE_AOUT
146 REQUIRE_OBJECT ( aout );
147 #endif
148 #ifdef IMAGE_WINCE
149 REQUIRE_OBJECT ( wince );
150 #endif
151 #ifdef IMAGE_PXE
152 REQUIRE_OBJECT ( pxe_image );
153 #endif
154 #ifdef IMAGE_SCRIPT
155 REQUIRE_OBJECT ( script );
156 #endif
157 #ifdef IMAGE_BZIMAGE
158 REQUIRE_OBJECT ( bzimage );
159 #endif
160 #ifdef IMAGE_ELTORITO
161 REQUIRE_OBJECT ( eltorito );
162 #endif
163
164 /*
165  * Drag in all requested commands
166  *
167  */
168 #ifdef AUTOBOOT_CMD
169 REQUIRE_OBJECT ( autoboot_cmd );
170 #endif
171 #ifdef NVO_CMD
172 REQUIRE_OBJECT ( nvo_cmd );
173 #endif
174 #ifdef CONFIG_CMD
175 REQUIRE_OBJECT ( config_cmd );
176 #endif
177 #ifdef IFMGMT_CMD
178 REQUIRE_OBJECT ( ifmgmt_cmd );
179 #endif
180 #ifdef ROUTE_CMD
181 REQUIRE_OBJECT ( route_cmd );
182 #endif
183 #ifdef IMAGE_CMD
184 REQUIRE_OBJECT ( image_cmd );
185 #endif
186 #ifdef DHCP_CMD
187 REQUIRE_OBJECT ( dhcp_cmd );
188 #endif
189 #ifdef SANBOOT_CMD
190 REQUIRE_OBJECT ( sanboot_cmd );
191 #endif
192
193 /*
194  * Drag in miscellaneous objects
195  *
196  */
197 #ifdef NULL_TRAP
198 REQUIRE_OBJECT ( nulltrap );
199 #endif
200 #ifdef DUMP_GDBSYM
201 REQUIRE_OBJECT ( gdbsym );
202 #endif