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