You build MILO separately from the Kernel. As MILO requires parts of the kernel to function (for example interrupt handling) you must first configure and build the kernel that matches with MILO that you want to build. Mostly this means building the kernel with the same version number. So, MILO-2.0.25.tar.gz will build against linux-2.0.25.tar.gz. MILO may build against a higher version of the kernel, but there again it may not. Also, now that ELF shared libraries are fully supported, there are two versions of the MILO sources. To build under an ELF system you must first unpack the standard MILO sources and then patch those sources with the same version numbered ELF patch. In the remainder of this discussion, I assume that your kernel sources and object files are stored in the subtree at /usr/src/linux and that the linux kernel has been fully built with the command make boot
To build MILO, change your working directory to the MILO source directory and invoke make with:
$ make KSRC=/usr/src/linux config
Just like the Linux kernel, you will be asked a series of questions
Echo output to the serial port (MINI_SERIAL_ECHO) [y]
It's a good idea to echo kernel printk to /dev/ttyS0 if you can. If you can (and want to), then type "y", otherwise "n". All of the standard, pre-built, MILO images include serial port I/O using COM1.
Use Digital's BIOS emulation code (not free) \ (MINI_DIGITAL_BIOS_EMU) [y]
This code is included as a library which is freely distributable so long as it is used on an Alpha based system. The sources are not available. If you answer n then the freeware alternative BIOS emulation will be built. It's sources are included with MILO. Note that you cannot right now build choose Digital's BIOS emulation code in an ELF system (the library is not yet ready) and so you must answer no to this question.
Build PALcode from sources (Warning this is dangerous) \ (MINI_BUILD_PALCODE_FROM_SOURCES) [n]
You should only do this if you have changed the PALcode sources, otherwise use the standard, pre-built PALcode included with MILO.
You are now all set to build the MILO image itself:
$ make KSRC=/usr/src/linux
When the build has successfully completed, the MILO image is in the file called milo. There are a lot of images called milo.*, these should be ignored.