Hi,
New automake based build system for GRUB is now available in branches/automake branch. Build system now has new dependency on GNU Automake and GNU Autogen. Autogen is used to convert a modules.def definitions file into an automake makefile (modules.am) which is included by Makefile.am This modules.def definitions file is specially tailored to meet the needs of GRUB requirements. For example GRUB requirements includes, 1. Some module FOO should be built only on, say i386-pc, i386-qemu, i386-coreboot, but not on others. This can be specified in modules.def file as, module = { name = FOO; source = foo.c; i386-pc; i386-qemu; i386-coreboot; }; There are tags for each platform, and we can have tags for groups of platforms, like i386 to mean i386-*, x86 to mean i386-* and x86_64-*, etc. 2. Some module BAR should be built with files efi/xyz.c efi/bar.c when built for x86 efi platforms, ieee1275/bar.c for sparc-ieee275, and bar.c for the rest of platforms. This can be specified in modules.def file as, module = { name = BAR; source = bar.c; x86-efi = efi/bar.c; x86-efi = efi/xyz.c; sparc-ieee1275 = ieee1275/bar.c; common; }; Notice that tags can be used not just to enable the module for a platform, but also to list the source files too, if necessary. For platforms that are enabled without explicit sources (in the example, common tag enables all platforms), sources listed under "source" name will be used. Note that we can have multiple source files embedded in quotes on single line. 3. Different flags are for different builds. This is achieved as: module = { name = BAZ; source = baz.c; cppflags = -Iincludedir; i386_cppflags = -Ii386_includes; }; I believe this is self explanatory. Though I started for above goals in mind, I ended up extending it for other GRUB components also (i.e, .img files, scripts, programs, libraries, test scripts and test programs, man pages). Please go through modules.am and grub-core/modules.am files for the examples. This GNU Autogen definitions is processed with a template file, Makefile.tpl generated by gentpl.rb script. Let me know your comments. thanks, -- bvk.chaitanya _______________________________________________ Grub-devel mailing list Grub-devel@gnu.org http://lists.gnu.org/mailman/listinfo/grub-devel