mirror of
https://gitlab.com/sortix/sortix.git
synced 2023-02-13 20:55:38 -05:00
Add sortix.bin makefile target.
This commit is contained in:
parent
66d4785f18
commit
a500288079
2 changed files with 33 additions and 6 deletions
9
Makefile
9
Makefile
|
@ -147,6 +147,7 @@ clean-ports:
|
||||||
.PHONY: clean-builds
|
.PHONY: clean-builds
|
||||||
clean-builds:
|
clean-builds:
|
||||||
rm -rf "$(SORTIX_BUILDS_DIR)"
|
rm -rf "$(SORTIX_BUILDS_DIR)"
|
||||||
|
rm -f sortix.bin
|
||||||
rm -f sortix.initrd
|
rm -f sortix.initrd
|
||||||
rm -f sortix.iso
|
rm -f sortix.iso
|
||||||
rm -f sortix.iso.xz
|
rm -f sortix.iso.xz
|
||||||
|
@ -215,6 +216,14 @@ release-all-archs:
|
||||||
$(MAKE) clean
|
$(MAKE) clean
|
||||||
$(MAKE) release HOST=x86_64-sortix
|
$(MAKE) release HOST=x86_64-sortix
|
||||||
|
|
||||||
|
# Kernel
|
||||||
|
|
||||||
|
.PHONY: kernel
|
||||||
|
kernel: sysroot
|
||||||
|
|
||||||
|
sortix.bin: kernel
|
||||||
|
cp "$(SYSROOT)/boot/$(HOST)/sortix.bin" sortix.bin
|
||||||
|
|
||||||
# Initial ramdisk
|
# Initial ramdisk
|
||||||
|
|
||||||
$(INITRD): sysroot
|
$(INITRD): sysroot
|
||||||
|
|
|
@ -97,7 +97,8 @@ commands:
|
||||||
|
|
||||||
cd ~/sortix &&
|
cd ~/sortix &&
|
||||||
make PREFIX="$CROSS_PREFIX" build-tools &&
|
make PREFIX="$CROSS_PREFIX" build-tools &&
|
||||||
make PREFIX="$CROSS_PREFIX" install-build-tools
|
make PREFIX="$CROSS_PREFIX" install-build-tools &&
|
||||||
|
make distclean
|
||||||
|
|
||||||
These tools produce platform independent output so you may wish to install them
|
These tools produce platform independent output so you may wish to install them
|
||||||
into $HOME/bin or /usr/local/bin or where it suits you in your $PATH.
|
into $HOME/bin or /usr/local/bin or where it suits you in your $PATH.
|
||||||
|
@ -188,16 +189,33 @@ completed the above steps correctly, then you can simply do:
|
||||||
|
|
||||||
This will compile a basic Sortix system into ~/sortix/sysroot with a kernel,
|
This will compile a basic Sortix system into ~/sortix/sysroot with a kernel,
|
||||||
headers, libraries, programs, everything you need. This isn't a bootable system
|
headers, libraries, programs, everything you need. This isn't a bootable system
|
||||||
yet. If you have xorriso and grub-mkrescue from GRUB 2 installed, then you can
|
yet. You need the combination of a kernel and an initrd to boot Sortix. The
|
||||||
|
initrd is a root filesystem entirely in memory that is loaded by the bootloader
|
||||||
|
in addition to the kernel. You can generate the initrd in builds/ by running:
|
||||||
|
|
||||||
|
cd ~/sortix &&
|
||||||
|
make HOST=$SORTIX_PLATFORM initrd
|
||||||
|
|
||||||
|
If you want a copy of the kernel and initrd in the current directory (rather
|
||||||
|
than normally finding them in builds/ and sysroot/), you can run:
|
||||||
|
|
||||||
|
cd ~/sortix &&
|
||||||
|
make HOST=$SORTIX_PLATFORM sortix.bin sortix.initrd
|
||||||
|
|
||||||
|
You now have a sortix.bin and sortix.initrd pair. You can boot Sortix using a
|
||||||
|
multiboot bootloader by passing them as a multiboot kernel and multiboot
|
||||||
|
module/initrd.
|
||||||
|
|
||||||
|
If you have xorriso and grub-mkrescue from GRUB 2 installed, then you can
|
||||||
can build a bootable .iso by typing:
|
can build a bootable .iso by typing:
|
||||||
|
|
||||||
cd ~/sortix &&
|
cd ~/sortix &&
|
||||||
make HOST=$SORTIX_PLATFORM sortix.iso
|
make HOST=$SORTIX_PLATFORM sortix.iso
|
||||||
|
|
||||||
This will produce a ~/sortix/sortix.iso file that is bootable on real hardware
|
This will produce a sortix.iso file that is bootable on real hardware and
|
||||||
and virtual machines. Alternatively, you can take the sortix.bin file and boot
|
virtual machines. This works by first building Sortix system and packaging up an
|
||||||
that with GRUB as a multiboot kernel and sortix.initrd (snapshot of the sysroot)
|
initrd, then it create a cdrom image with a bootloader configured to load the
|
||||||
as a multiboot module/initrd.
|
kernel and initrd stored on the cdrom.
|
||||||
|
|
||||||
You can clean the source directory fully:
|
You can clean the source directory fully:
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue