[config] Split console configuration out to config/console.h
[people/sha0/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 #include <config/console.h>
10
11 /*
12  * Build ID string calculations
13  *
14  */
15 #undef XSTR
16 #undef STR
17 #define XSTR(s) STR(s)
18 #define STR(s) #s
19
20 #ifdef BUILD_SERIAL
21 #include "config/.buildserial.h"
22 #define BUILD_SERIAL_STR " #" XSTR(BUILD_SERIAL_NUM)
23 #else
24 #define BUILD_SERIAL_STR ""
25 #endif
26
27 #ifdef BUILD_ID
28 #define BUILD_ID_STR " " BUILD_ID
29 #else
30 #define BUILD_ID_STR ""
31 #endif
32
33 #if defined(BUILD_ID) || defined(BUILD_SERIAL)
34 #define BUILD_STRING " [build" BUILD_ID_STR BUILD_SERIAL_STR "]"
35 #else
36 #define BUILD_STRING ""
37 #endif
38
39 /*
40  * Drag in all requested console types
41  *
42  */
43
44 #ifdef CONSOLE_PCBIOS
45 REQUIRE_OBJECT ( bios_console );
46 #endif
47 #ifdef CONSOLE_SERIAL
48 REQUIRE_OBJECT ( serial_console );
49 #endif
50 #ifdef CONSOLE_DIRECT_VGA
51 REQUIRE_OBJECT ( video_subr );
52 #endif
53 #ifdef CONSOLE_BTEXT
54 REQUIRE_OBJECT ( btext );
55 #endif
56 #ifdef CONSOLE_PC_KBD
57 REQUIRE_OBJECT ( pc_kbd );
58 #endif
59 #ifdef CONSOLE_SYSLOG
60 REQUIRE_OBJECT ( syslog );
61 #endif
62
63 /*
64  * Drag in all requested timers
65  */
66 #ifdef TIMER_BIOS
67 REQUIRE_OBJECT ( timer_bios );
68 #endif
69 #ifdef TIMER_RDTSC
70 REQUIRE_OBJECT ( timer_rdtsc );
71 #endif
72
73 /*
74  * Drag in all requested network protocols
75  *
76  */
77 #ifdef NET_PROTO_IPV4
78 REQUIRE_OBJECT ( ipv4 );
79 #endif
80
81 /*
82  * Drag in all requested download protocols
83  *
84  */
85 #ifdef DOWNLOAD_PROTO_TFTP
86 REQUIRE_OBJECT ( tftp );
87 #endif
88 #ifdef DOWNLOAD_PROTO_NFS
89 REQUIRE_OBJECT ( nfs );
90 #endif
91 #ifdef DOWNLOAD_PROTO_HTTP
92 REQUIRE_OBJECT ( http );
93 #endif
94 #ifdef DOWNLOAD_PROTO_HTTPS
95 REQUIRE_OBJECT ( https );
96 #endif
97 #ifdef DOWNLOAD_PROTO_FTP
98 REQUIRE_OBJECT ( ftp );
99 #endif
100 #ifdef DOWNLOAD_PROTO_TFTM
101 REQUIRE_OBJECT ( tftm );
102 #endif
103 #ifdef DOWNLOAD_PROTO_SLAM
104 REQUIRE_OBJECT ( slam );
105 #endif
106
107 /*
108  * Drag in all requested resolvers
109  *
110  */
111 #ifdef DNS_RESOLVER
112 REQUIRE_OBJECT ( dns );
113 #endif
114 #ifdef NMB_RESOLVER
115 REQUIRE_OBJECT ( nmb );
116 #endif
117
118 /*
119  * Drag in all requested image formats
120  *
121  */
122 #ifdef IMAGE_NBI
123 REQUIRE_OBJECT ( nbi );
124 #endif
125 #ifdef IMAGE_ELF
126 REQUIRE_OBJECT ( elfboot );
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 #ifdef IMAGE_COMBOOT
153 REQUIRE_OBJECT ( comboot );
154 REQUIRE_OBJECT ( com32 );
155 REQUIRE_OBJECT ( comboot_call );
156 REQUIRE_OBJECT ( com32_call );
157 REQUIRE_OBJECT ( com32_wrapper );
158 REQUIRE_OBJECT ( comboot_resolv );
159 #endif
160
161 /*
162  * Drag in all requested commands
163  *
164  */
165 #ifdef AUTOBOOT_CMD
166 REQUIRE_OBJECT ( autoboot_cmd );
167 #endif
168 #ifdef NVO_CMD
169 REQUIRE_OBJECT ( nvo_cmd );
170 #endif
171 #ifdef CONFIG_CMD
172 REQUIRE_OBJECT ( config_cmd );
173 #endif
174 #ifdef IFMGMT_CMD
175 REQUIRE_OBJECT ( ifmgmt_cmd );
176 #endif
177 #ifdef ROUTE_CMD
178 REQUIRE_OBJECT ( route_cmd );
179 #endif
180 #ifdef IMAGE_CMD
181 REQUIRE_OBJECT ( image_cmd );
182 #endif
183 #ifdef DHCP_CMD
184 REQUIRE_OBJECT ( dhcp_cmd );
185 #endif
186 #ifdef SANBOOT_CMD
187 REQUIRE_OBJECT ( sanboot_cmd );
188 #endif
189
190 /*
191  * Drag in miscellaneous objects
192  *
193  */
194 #ifdef NULL_TRAP
195 REQUIRE_OBJECT ( nulltrap );
196 #endif
197 #ifdef GDBSERIAL
198 REQUIRE_OBJECT ( gdbidt );
199 REQUIRE_OBJECT ( gdbserial );
200 REQUIRE_OBJECT ( gdbstub_cmd );
201 #endif
202 #ifdef GDBUDP
203 REQUIRE_OBJECT ( gdbidt );
204 REQUIRE_OBJECT ( gdbudp );
205 REQUIRE_OBJECT ( gdbstub_cmd );
206 #endif
207
208 /*
209  * Drag in objects that are always required, but not dragged in via
210  * symbol dependencies.
211  *
212  */
213 REQUIRE_OBJECT ( device );