7e70c12a1b32f730366e515bf4ff8580c0f9970b
[people/balajirrao/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  * 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_HTTPS
91 REQUIRE_OBJECT ( https );
92 #endif
93 #ifdef DOWNLOAD_PROTO_FTP
94 REQUIRE_OBJECT ( ftp );
95 #endif
96 #ifdef DOWNLOAD_PROTO_TFTM
97 REQUIRE_OBJECT ( tftm );
98 #endif
99 #ifdef DOWNLOAD_PROTO_SLAM
100 REQUIRE_OBJECT ( slam );
101 #endif
102
103 /*
104  * Drag in any required resolvers
105  *
106  */
107 #ifdef DNS_RESOLVER
108 REQUIRE_OBJECT ( dns );
109 #endif
110
111 #ifdef NMB_RESOLVER
112 REQUIRE_OBJECT ( nmb );
113 #endif
114
115 /*
116  * Drag in all requested image formats
117  *
118  */
119 #ifdef IMAGE_NBI
120 REQUIRE_OBJECT ( nbi );
121 #endif
122 #ifdef IMAGE_ELF64
123 REQUIRE_OBJECT ( elf64 );
124 #endif
125 #ifdef IMAGE_ELF
126 REQUIRE_OBJECT ( elf );
127 #endif
128 #ifdef IMAGE_ELF
129 REQUIRE_OBJECT ( coff );
130 #endif
131 #ifdef IMAGE_FREEBSD
132 REQUIRE_OBJECT ( freebsd );
133 #endif
134 #ifdef IMAGE_MULTIBOOT
135 REQUIRE_OBJECT ( multiboot );
136 #endif
137 #ifdef IMAGE_AOUT
138 REQUIRE_OBJECT ( aout );
139 #endif
140 #ifdef IMAGE_WINCE
141 REQUIRE_OBJECT ( wince );
142 #endif
143 #ifdef IMAGE_PXE
144 REQUIRE_OBJECT ( pxe_image );
145 #endif
146 #ifdef IMAGE_SCRIPT
147 REQUIRE_OBJECT ( script );
148 #endif
149 #ifdef IMAGE_BZIMAGE
150 REQUIRE_OBJECT ( bzimage );
151 #endif
152 #ifdef IMAGE_ELTORITO
153 REQUIRE_OBJECT ( eltorito );
154 #endif
155
156 /*
157  * Drag in all requested commands
158  *
159  */
160 #ifdef AUTOBOOT_CMD
161 REQUIRE_OBJECT ( autoboot_cmd );
162 #endif
163 #ifdef NVO_CMD
164 REQUIRE_OBJECT ( nvo_cmd );
165 #endif
166 #ifdef CONFIG_CMD
167 REQUIRE_OBJECT ( config_cmd );
168 #endif
169 #ifdef IFMGMT_CMD
170 REQUIRE_OBJECT ( ifmgmt_cmd );
171 #endif
172 #ifdef ROUTE_CMD
173 REQUIRE_OBJECT ( route_cmd );
174 #endif
175 #ifdef IMAGE_CMD
176 REQUIRE_OBJECT ( image_cmd );
177 #endif
178 #ifdef DHCP_CMD
179 REQUIRE_OBJECT ( dhcp_cmd );
180 #endif
181
182 /*
183  * Drag in miscellaneous objects
184  *
185  */
186 #ifdef NULL_TRAP
187 REQUIRE_OBJECT ( nulltrap );
188 #endif
189 #ifdef DUMP_GDBSYM
190 REQUIRE_OBJECT ( gdbsym );
191 #endif