mirror of
https://github.com/tailix/mrubyvisor.git
synced 2025-06-09 18:52:05 -04:00
Build bootable ISO image
This commit is contained in:
parent
22d983f1fe
commit
d565cebb97
5 changed files with 40 additions and 11 deletions
3
.gitignore
vendored
3
.gitignore
vendored
|
@ -1,4 +1,7 @@
|
||||||
/build_config.rb.lock
|
/build_config.rb.lock
|
||||||
|
/image.iso
|
||||||
|
|
||||||
/dest/*
|
/dest/*
|
||||||
!/dest/.keep
|
!/dest/.keep
|
||||||
|
|
||||||
|
/rootfs/boot/mrubyvisor.multiboot2
|
||||||
|
|
43
Makefile
43
Makefile
|
@ -1,4 +1,4 @@
|
||||||
.PHONY: clean
|
.PHONY: $(MRUBYVISOR)
|
||||||
|
|
||||||
CCPREFIX = /home/kotovalexarian/repos/global/tailix/cross/root/bin/x86_64-elf-
|
CCPREFIX = /home/kotovalexarian/repos/global/tailix/cross/root/bin/x86_64-elf-
|
||||||
|
|
||||||
|
@ -6,27 +6,48 @@ AR = $(CCPREFIX)ar
|
||||||
AS = $(CCPREFIX)as
|
AS = $(CCPREFIX)as
|
||||||
CC = $(CCPREFIX)gcc
|
CC = $(CCPREFIX)gcc
|
||||||
LD = $(CCPREFIX)ld
|
LD = $(CCPREFIX)ld
|
||||||
|
RAKE = rake
|
||||||
RANLIB = $(CCPREFIX)ranlib
|
RANLIB = $(CCPREFIX)ranlib
|
||||||
|
|
||||||
RAKE = rake
|
ABS_REPO = $(shell pwd)
|
||||||
|
|
||||||
ROOT = $(shell pwd)
|
IMAGE = image.iso
|
||||||
DEST = $(ROOT)/dest
|
ROOTFS = rootfs
|
||||||
MRUBY_CONFIG = $(ROOT)/build_config.rb
|
DEST = dest
|
||||||
|
|
||||||
|
GRUBCFG = $(ROOTFS)/boot/grub/grub.cfg
|
||||||
|
LIBKERNAUX = $(DEST)/lib/libkernaux.a
|
||||||
|
LIBMRUBY = $(DEST)/lib/libmruby.a
|
||||||
|
MRUBYVISOR = $(ROOTFS)/boot/mrubyvisor.multiboot2
|
||||||
|
|
||||||
MRUBY_NAME = mrubyvisor
|
MRUBY_NAME = mrubyvisor
|
||||||
|
|
||||||
clean:
|
all: runc
|
||||||
rm -rf $(DEST)/*
|
|
||||||
|
|
||||||
dest/lib/libkernaux.a:
|
runc: $(IMAGE)
|
||||||
|
qemu-system-x86_64 -cdrom $< -serial stdio -display none
|
||||||
|
|
||||||
|
runw: $(IMAGE)
|
||||||
|
qemu-system-x86_64 -cdrom $< -serial stdio
|
||||||
|
|
||||||
|
clean:
|
||||||
|
rm -rf $(MRUBYVISOR) $(DEST)/*
|
||||||
|
|
||||||
|
$(IMAGE): $(GRUBCFG) $(MRUBYVISOR)
|
||||||
|
grub-mkrescue $(ROOTFS) -o $@
|
||||||
|
|
||||||
|
$(MRUBYVISOR): $(LIBKERNAUX) $(LIBMRUBY)
|
||||||
|
make -C src mrubyvisor.multiboot2
|
||||||
|
cp src/mrubyvisor.multiboot2 $@
|
||||||
|
|
||||||
|
$(LIBKERNAUX):
|
||||||
cd vendor/libkernaux && ./autogen.sh
|
cd vendor/libkernaux && ./autogen.sh
|
||||||
cd vendor/libkernaux && ./configure --host='x86_64-elf' --prefix='$(DEST)' --enable-freestanding --with-drivers --with-libc AR='$(AR)' AS='$(AS)' CC='$(CC)' LD='$(LD)' RANLIB='$(RANLIB)'
|
cd vendor/libkernaux && ./configure --host='x86_64-elf' --prefix='$(ABS_REPO)/$(DEST)' --enable-freestanding --with-drivers --with-libc AR='$(AR)' AS='$(AS)' CC='$(CC)' LD='$(LD)' RANLIB='$(RANLIB)'
|
||||||
cd vendor/libkernaux && make
|
cd vendor/libkernaux && make
|
||||||
cd vendor/libkernaux && make install
|
cd vendor/libkernaux && make install
|
||||||
|
|
||||||
dest/lib/libmruby.a: dest/lib/libkernaux.a
|
$(LIBMRUBY): $(LIBKERNAUX)
|
||||||
cd vendor/mruby && $(RAKE) MRUBY_CONFIG='$(MRUBY_CONFIG)' CROSS_AR='$(AR)' CROSS_CC='$(CC)' CROSS_LD='$(LD)'
|
cd vendor/mruby && $(RAKE) MRUBY_CONFIG='$(ABS_REPO)/build_config.rb' CROSS_AR='$(AR)' CROSS_CC='$(CC)' CROSS_LD='$(LD)'
|
||||||
mkdir -p $(DEST)/include $(DEST)/lib
|
mkdir -p $(DEST)/include $(DEST)/lib
|
||||||
cp vendor/mruby/build/$(MRUBY_NAME)/lib/libmruby.a $(DEST)/lib
|
cp vendor/mruby/build/$(MRUBY_NAME)/lib/libmruby.a $(DEST)/lib
|
||||||
cp -r vendor/mruby/include/* $(DEST)/include
|
cp -r vendor/mruby/include/* $(DEST)/include
|
||||||
|
|
5
rootfs/boot/grub/grub.cfg
Normal file
5
rootfs/boot/grub/grub.cfg
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
set timeout=0
|
||||||
|
|
||||||
|
menuentry "mrubyvisor" {
|
||||||
|
multiboot2 /boot/mrubyvisor.multiboot2
|
||||||
|
}
|
0
src/Makefile
Normal file
0
src/Makefile
Normal file
0
src/mrubyvisor.multiboot2
Normal file
0
src/mrubyvisor.multiboot2
Normal file
Loading…
Add table
Add a link
Reference in a new issue