mrubyvisor/Makefile

58 lines
1.6 KiB
Makefile
Raw Normal View History

2022-11-27 12:10:32 +00:00
CCPREFIX = /home/kotovalexarian/repos/global/tailix/cross/root/bin/i386-elf-
2022-11-27 11:21:26 +00:00
AR = $(CCPREFIX)ar
AS = $(CCPREFIX)as
CC = $(CCPREFIX)gcc
LD = $(CCPREFIX)ld
2022-11-27 11:54:45 +00:00
RAKE = rake
2022-11-27 11:21:26 +00:00
RANLIB = $(CCPREFIX)ranlib
2022-11-27 12:10:32 +00:00
QEMU = qemu-system-i386
2022-11-27 11:21:26 +00:00
2022-11-27 11:54:45 +00:00
ABS_REPO = $(shell pwd)
2022-11-27 11:21:26 +00:00
2022-11-27 11:54:45 +00:00
IMAGE = image.iso
ROOTFS = rootfs
DEST = dest
2022-11-27 12:10:32 +00:00
SRC = src
2022-11-27 11:54:45 +00:00
GRUBCFG = $(ROOTFS)/boot/grub/grub.cfg
LIBKERNAUX = $(DEST)/lib/libkernaux.a
LIBMRUBY = $(DEST)/lib/libmruby.a
MRUBYVISOR = $(ROOTFS)/boot/mrubyvisor.multiboot2
2022-11-27 11:21:26 +00:00
MRUBY_NAME = mrubyvisor
2022-11-27 12:10:32 +00:00
.PHONY: $(IMAGE) $(MRUBYVISOR)
2022-11-27 11:54:45 +00:00
all: runc
runc: $(IMAGE)
2022-11-27 12:10:32 +00:00
$(QEMU) -cdrom $< -serial stdio -display none
2022-11-27 11:54:45 +00:00
runw: $(IMAGE)
2022-11-27 12:10:32 +00:00
$(QEMU) -cdrom $< -serial stdio
2022-11-27 11:54:45 +00:00
2022-11-27 11:21:26 +00:00
clean:
2022-11-27 11:54:45 +00:00
rm -rf $(MRUBYVISOR) $(DEST)/*
2022-11-27 12:10:32 +00:00
$(MAKE) -C $(SRC) clean
2022-11-27 11:54:45 +00:00
$(IMAGE): $(GRUBCFG) $(MRUBYVISOR)
grub-mkrescue $(ROOTFS) -o $@
$(MRUBYVISOR): $(LIBKERNAUX) $(LIBMRUBY)
2022-11-27 12:10:32 +00:00
$(MAKE) -C $(SRC) mrubyvisor.multiboot2 CCPREFIX='$(CCPREFIX)' DEST='$(ABS_REPO)/$(DEST)'
cp $(SRC)/mrubyvisor.multiboot2 $@
2022-11-27 11:21:26 +00:00
2022-11-27 11:54:45 +00:00
$(LIBKERNAUX):
2022-11-27 11:21:26 +00:00
cd vendor/libkernaux && ./autogen.sh
2022-11-27 12:35:43 +00:00
cd vendor/libkernaux && ./configure --host='i386-elf' --prefix='$(ABS_REPO)/$(DEST)' --enable-freestanding --enable-split-libc --with-drivers --with-libc AR='$(AR)' AS='$(AS)' CC='$(CC)' LD='$(LD)' RANLIB='$(RANLIB)'
2022-11-27 12:10:32 +00:00
cd vendor/libkernaux && $(MAKE)
cd vendor/libkernaux && $(MAKE) install
2022-11-27 11:21:26 +00:00
2022-11-27 11:54:45 +00:00
$(LIBMRUBY): $(LIBKERNAUX)
cd vendor/mruby && $(RAKE) MRUBY_CONFIG='$(ABS_REPO)/build_config.rb' CROSS_AR='$(AR)' CROSS_CC='$(CC)' CROSS_LD='$(LD)'
2022-11-27 11:21:26 +00:00
mkdir -p $(DEST)/include $(DEST)/lib
cp vendor/mruby/build/$(MRUBY_NAME)/lib/libmruby.a $(DEST)/lib
cp -r vendor/mruby/include/* $(DEST)/include
cp -r vendor/mruby/build/$(MRUBY_NAME)/include/* $(DEST)/include