config.c

Go to the documentation of this file.
00001 /*
00002  * This program is free software; you can redistribute it and/or
00003  * modify it under the terms of the GNU General Public License as
00004  * published by the Free Software Foundation; either version 2, or (at
00005  * your option) any later version.
00006  */
00007 
00008 FILE_LICENCE ( GPL2_OR_LATER );
00009 
00010 #include <config/general.h>
00011 #include <config/console.h>
00012 
00013 /** @file
00014  *
00015  * Configuration options
00016  *
00017  * This file contains macros that pull various objects into the link
00018  * based on definitions in configuration header files. Ideally it
00019  * should be the only place in gPXE where one might need to use #ifdef
00020  * for compile-time options.
00021  *
00022  * In the fairly common case where an object should only be considered
00023  * for inclusion if the subsystem it depends on is present, its
00024  * configuration macros should be placed in a file named
00025  * <tt>config_<i>subsystem</i>.c</tt>, where @e subsystem is the
00026  * object basename of the main source file for that subsystem. The
00027  * build system will pull in that file if @c subsystem.c is included
00028  * in the final gPXE executable built.
00029  */
00030 
00031 /*
00032  * Build ID string calculations
00033  *
00034  */
00035 #undef XSTR
00036 #undef STR
00037 #define XSTR(s) STR(s)
00038 #define STR(s) #s
00039 
00040 #ifdef BUILD_SERIAL
00041 #include "config/.buildserial.h"
00042 #define BUILD_SERIAL_STR " #" XSTR(BUILD_SERIAL_NUM)
00043 #else
00044 #define BUILD_SERIAL_STR ""
00045 #endif
00046 
00047 #ifdef BUILD_ID
00048 #define BUILD_ID_STR " " BUILD_ID
00049 #else
00050 #define BUILD_ID_STR ""
00051 #endif
00052 
00053 #if defined(BUILD_ID) || defined(BUILD_SERIAL)
00054 #define BUILD_STRING " [build" BUILD_ID_STR BUILD_SERIAL_STR "]"
00055 #else
00056 #define BUILD_STRING ""
00057 #endif
00058 
00059 /*
00060  * Drag in all requested console types
00061  *
00062  */
00063 
00064 #ifdef CONSOLE_PCBIOS
00065 REQUIRE_OBJECT ( bios_console );
00066 #endif
00067 #ifdef CONSOLE_SERIAL
00068 REQUIRE_OBJECT ( serial_console );
00069 #endif
00070 #ifdef CONSOLE_DIRECT_VGA
00071 REQUIRE_OBJECT ( video_subr );
00072 #endif
00073 #ifdef CONSOLE_BTEXT
00074 REQUIRE_OBJECT ( btext );
00075 #endif
00076 #ifdef CONSOLE_PC_KBD
00077 REQUIRE_OBJECT ( pc_kbd );
00078 #endif
00079 #ifdef CONSOLE_SYSLOG
00080 REQUIRE_OBJECT ( syslog );
00081 #endif
00082 #ifdef CONSOLE_EFI
00083 REQUIRE_OBJECT ( efi_console );
00084 #endif
00085 
00086 /*
00087  * Drag in all requested network protocols
00088  *
00089  */
00090 #ifdef NET_PROTO_IPV4
00091 REQUIRE_OBJECT ( ipv4 );
00092 #endif
00093 
00094 /*
00095  * Drag in all requested PXE support
00096  *
00097  */
00098 #ifdef PXE_MENU
00099 REQUIRE_OBJECT ( pxemenu );
00100 #endif
00101 #ifdef PXE_STACK
00102 REQUIRE_OBJECT ( pxe_call );
00103 #endif
00104 
00105 /*
00106  * Drag in all requested download protocols
00107  *
00108  */
00109 #ifdef DOWNLOAD_PROTO_TFTP
00110 REQUIRE_OBJECT ( tftp );
00111 #endif
00112 #ifdef DOWNLOAD_PROTO_HTTP
00113 REQUIRE_OBJECT ( http );
00114 #endif
00115 #ifdef DOWNLOAD_PROTO_HTTPS
00116 REQUIRE_OBJECT ( https );
00117 #endif
00118 #ifdef DOWNLOAD_PROTO_FTP
00119 REQUIRE_OBJECT ( ftp );
00120 #endif
00121 #ifdef DOWNLOAD_PROTO_TFTM
00122 REQUIRE_OBJECT ( tftm );
00123 #endif
00124 #ifdef DOWNLOAD_PROTO_SLAM
00125 REQUIRE_OBJECT ( slam );
00126 #endif
00127 
00128 /*
00129  * Drag in all requested SAN boot protocols
00130  *
00131  */
00132 #ifdef SANBOOT_PROTO_ISCSI
00133 REQUIRE_OBJECT ( iscsiboot );
00134 #endif
00135 #ifdef SANBOOT_PROTO_AOE
00136 REQUIRE_OBJECT ( aoeboot );
00137 #endif
00138 #ifdef SANBOOT_PROTO_IB_SRP
00139 REQUIRE_OBJECT ( ib_srpboot );
00140 #endif
00141 
00142 /*
00143  * Drag in all requested resolvers
00144  *
00145  */
00146 #ifdef DNS_RESOLVER
00147 REQUIRE_OBJECT ( dns );
00148 #endif
00149 
00150 /*
00151  * Drag in all requested image formats
00152  *
00153  */
00154 #ifdef IMAGE_NBI
00155 REQUIRE_OBJECT ( nbi );
00156 #endif
00157 #ifdef IMAGE_ELF
00158 REQUIRE_OBJECT ( elfboot );
00159 #endif
00160 #ifdef IMAGE_FREEBSD
00161 REQUIRE_OBJECT ( freebsd );
00162 #endif
00163 #ifdef IMAGE_MULTIBOOT
00164 REQUIRE_OBJECT ( multiboot );
00165 #endif
00166 #ifdef IMAGE_AOUT
00167 REQUIRE_OBJECT ( aout );
00168 #endif
00169 #ifdef IMAGE_WINCE
00170 REQUIRE_OBJECT ( wince );
00171 #endif
00172 #ifdef IMAGE_PXE
00173 REQUIRE_OBJECT ( pxe_image );
00174 #endif
00175 #ifdef IMAGE_SCRIPT
00176 REQUIRE_OBJECT ( script );
00177 #endif
00178 #ifdef IMAGE_BZIMAGE
00179 REQUIRE_OBJECT ( bzimage );
00180 #endif
00181 #ifdef IMAGE_ELTORITO
00182 REQUIRE_OBJECT ( eltorito );
00183 #endif
00184 #ifdef IMAGE_COMBOOT
00185 REQUIRE_OBJECT ( comboot );
00186 REQUIRE_OBJECT ( com32 );
00187 REQUIRE_OBJECT ( comboot_call );
00188 REQUIRE_OBJECT ( com32_call );
00189 REQUIRE_OBJECT ( com32_wrapper );
00190 REQUIRE_OBJECT ( comboot_resolv );
00191 #endif
00192 #ifdef IMAGE_EFI
00193 REQUIRE_OBJECT ( efi_image );
00194 #endif
00195 
00196 /*
00197  * Drag in all requested commands
00198  *
00199  */
00200 #ifdef AUTOBOOT_CMD
00201 REQUIRE_OBJECT ( autoboot_cmd );
00202 #endif
00203 #ifdef NVO_CMD
00204 REQUIRE_OBJECT ( nvo_cmd );
00205 #endif
00206 #ifdef CONFIG_CMD
00207 REQUIRE_OBJECT ( config_cmd );
00208 #endif
00209 #ifdef IFMGMT_CMD
00210 REQUIRE_OBJECT ( ifmgmt_cmd );
00211 #endif
00212 /* IWMGMT_CMD is brought in by net80211.c if requested */
00213 #ifdef ROUTE_CMD
00214 REQUIRE_OBJECT ( route_cmd );
00215 #endif
00216 #ifdef IMAGE_CMD
00217 REQUIRE_OBJECT ( image_cmd );
00218 #endif
00219 #ifdef DHCP_CMD
00220 REQUIRE_OBJECT ( dhcp_cmd );
00221 #endif
00222 #ifdef SANBOOT_CMD
00223 REQUIRE_OBJECT ( sanboot_cmd );
00224 #endif
00225 #ifdef LOGIN_CMD
00226 REQUIRE_OBJECT ( login_cmd );
00227 #endif
00228 #ifdef TIME_CMD
00229 REQUIRE_OBJECT ( time_cmd );
00230 #endif
00231 #ifdef DIGEST_CMD
00232 REQUIRE_OBJECT ( digest_cmd );
00233 #endif
00234 #ifdef PXE_CMD
00235 REQUIRE_OBJECT ( pxe_cmd );
00236 #endif
00237 
00238 /*
00239  * Drag in miscellaneous objects
00240  *
00241  */
00242 #ifdef NULL_TRAP
00243 REQUIRE_OBJECT ( nulltrap );
00244 #endif
00245 #ifdef GDBSERIAL
00246 REQUIRE_OBJECT ( gdbidt );
00247 REQUIRE_OBJECT ( gdbserial );
00248 REQUIRE_OBJECT ( gdbstub_cmd );
00249 #endif
00250 #ifdef GDBUDP
00251 REQUIRE_OBJECT ( gdbidt );
00252 REQUIRE_OBJECT ( gdbudp );
00253 REQUIRE_OBJECT ( gdbstub_cmd );
00254 #endif
00255 
00256 /*
00257  * Drag in objects that are always required, but not dragged in via
00258  * symbol dependencies.
00259  *
00260  */
00261 REQUIRE_OBJECT ( device );
00262 REQUIRE_OBJECT ( embedded );

Generated on Tue Apr 6 20:00:51 2010 for gPXE by  doxygen 1.5.7.1