I describe the new build system a bit here. Maybe this should be written in somewhere else (such as INSTALL) as well...
GRUB uses "target" and "host". "build" is not explicitly used. A target represents a native environment where GRUB runs. In reality, the target type affects: - the cpu type - the executable format (for now, must be ELF) The vendor and the operating system in a target type does not really matter, except for the choice of programs and supported executable formats, because you should specify a platform (such as firmware) by --with-platform to configure. A host type specifies an environment where utilities are executed. Unless you are cross-compiling GRUB, you do not have to care very much. The usage of compiler flags is the following: - CC, CFLAGS, CPPFLAGS, ASFLAGS and LDFLAGS are used for the host type. - If you need to specify non-standard locations for header files or libraries, you should specify CPPFLAGS or LDFLAGS. - If you cross-compile GRUB, you can set CC explicitly, but optionally. - You do not need to struggle with CFLAGS or ASFLAGS. This is required only if you intend to debug GRUB, or you want to optimize GRUB differently for an unknown reason. - TARGET_CC, TARGET_CFLAGS, TARGET_CPPFLAGS, TARGET_ASFLAGS and TARGET_LDFLAGS are used for the target type. - You might need to specify TARGET_CC explicitly, if you cross-compile GRUB. - You should not touch other TARGET_* variables, unless you understand what you are doing. Besides these flags, GRUB uses target-specific flags (here, "target" means a Makefile target, but not a target type in autoconf). This allows us to apply flags specific to each object. This design is based on automake, since the makefile generator in GRUB was influenced by automake significantly. For example, when compiling normal.mod, normal_mod_CFLAGS, normal_mod_LDFLAGS, etc. are applied as well as TARGET_CFLAGS, TARGET_LDFLAGS, etc. This part is important only for developers, as the user is not supposed to tweak these target-specific flags manually. Okuji _______________________________________________ Grub-devel mailing list Grub-devel@gnu.org http://lists.gnu.org/mailman/listinfo/grub-devel