update Makefile to wrap rscons and add run target
This commit is contained in:
parent
a9a2f6dcaf
commit
a91ea8d620
91
Makefile
91
Makefile
@ -1,88 +1,7 @@
|
|||||||
# Makefile for HOS
|
.PHONY: all
|
||||||
# Josh Holtrop
|
|
||||||
# Created: 07/09/04
|
|
||||||
|
|
||||||
FLOPPY=/dev/fd0
|
|
||||||
FLOPPY_IMAGE=hos.flp
|
|
||||||
FLOPPY_MOUNT=./mnt_flp
|
|
||||||
GRUB_IMAGE=grub.flp
|
|
||||||
INITRD=hos_initrd
|
|
||||||
INITRD_DIR=initrd
|
|
||||||
INITRD_MOUNT=./mnt_initrd
|
|
||||||
INITRD_SIZE=100 #initrd size in kb
|
|
||||||
MOUNT=sudo mount
|
|
||||||
UMOUNT=sudo umount
|
|
||||||
|
|
||||||
# Do not print "Entering directory ..."
|
|
||||||
MAKEFLAGS += --no-print-directory
|
|
||||||
|
|
||||||
.PHONY: all clean initrd apps grub_image install install_img depend copy_image bochs bochsq
|
|
||||||
|
|
||||||
all:
|
all:
|
||||||
${MAKE} -C kernel
|
./rscons build
|
||||||
${MAKE} -C rmmod
|
|
||||||
|
|
||||||
clean:
|
|
||||||
-${MAKE} -C kernel clean
|
|
||||||
-${MAKE} -C rmmod clean
|
|
||||||
-rm -f *~ *.out hos.flp \#* hos_initrd hos_initrd.gz
|
|
||||||
|
|
||||||
apps:
|
|
||||||
${MAKE} -C apps
|
|
||||||
|
|
||||||
grub_image:
|
|
||||||
dd if=/dev/zero of=$(GRUB_IMAGE) bs=1024 seek=1440 count=0
|
|
||||||
-mkdir $(FLOPPY_MOUNT)
|
|
||||||
mke2fs -F $(GRUB_IMAGE)
|
|
||||||
$(MOUNT) -t ext2 -o loop $(GRUB_IMAGE) $(FLOPPY_MOUNT)
|
|
||||||
-mkdir -p $(FLOPPY_MOUNT)/boot/grub
|
|
||||||
-cp /boot/grub/stage1 /boot/grub/stage2 /boot/grub/e2fs_stage1_5 $(FLOPPY_MOUNT)/boot/grub
|
|
||||||
$(UMOUNT) $(FLOPPY_MOUNT)
|
|
||||||
-rmdir $(FLOPPY_MOUNT)
|
|
||||||
echo "(fd0) $(GRUB_IMAGE)" > grub_image_device.map.tmp
|
|
||||||
echo "root (fd0)" > grub_commands.tmp
|
|
||||||
echo "setup (fd0)" >> grub_commands.tmp
|
|
||||||
echo "quit" >> grub_commands.tmp
|
|
||||||
grub --device-map grub_image_device.map.tmp < grub_commands.tmp
|
|
||||||
rm grub_commands.tmp
|
|
||||||
rm grub_image_device.map.tmp
|
|
||||||
|
|
||||||
copy_image:
|
|
||||||
cp $(GRUB_IMAGE) $(FLOPPY_IMAGE)
|
|
||||||
|
|
||||||
install: FDEV=$(FLOPPY)
|
|
||||||
install_img: FDEV=$(FLOPPY_IMAGE)
|
|
||||||
install_img: MOUNT_FLAGS=-o loop
|
|
||||||
install_img: copy_image
|
|
||||||
install install_img:
|
|
||||||
-mkdir $(FLOPPY_MOUNT)
|
|
||||||
$(MOUNT) -t ext2 $(MOUNT_FLAGS) $(FDEV) $(FLOPPY_MOUNT)
|
|
||||||
-cp kernel/kernel.bin $(FLOPPY_MOUNT)
|
|
||||||
-cp rmmod/rmmod.bin $(FLOPPY_MOUNT)
|
|
||||||
-cp menu.lst $(FLOPPY_MOUNT)/boot/grub
|
|
||||||
-cp $(INITRD).gz $(FLOPPY_MOUNT)/$(INITRD).gz
|
|
||||||
$(UMOUNT) $(FLOPPY_MOUNT)
|
|
||||||
-rmdir $(FLOPPY_MOUNT)
|
|
||||||
|
|
||||||
initrd:
|
|
||||||
dd if=/dev/zero of=$(INITRD) bs=1024 count=$(INITRD_SIZE)
|
|
||||||
mke2fs -Fv -m0 -r0 -i1024 $(INITRD)
|
|
||||||
-mkdir $(INITRD_MOUNT)
|
|
||||||
$(MOUNT) -t ext2 -o loop $(INITRD) $(INITRD_MOUNT)
|
|
||||||
cp -Pr $(INITRD_DIR)/* $(INITRD_MOUNT)
|
|
||||||
$(UMOUNT) $(INITRD_MOUNT)
|
|
||||||
rm -rf $(INITRD_MOUNT)
|
|
||||||
gzip -c $(INITRD) > $(INITRD).gz
|
|
||||||
|
|
||||||
depend:
|
|
||||||
${MAKE} -C kernel depend
|
|
||||||
|
|
||||||
bochs:
|
|
||||||
bochs
|
|
||||||
|
|
||||||
bochsq:
|
|
||||||
echo 'c' | bochs -q
|
|
||||||
|
|
||||||
wordcount:
|
|
||||||
find . -regex '\(.*\.[ch]\)\|\(.*\.asm\)\|\(.*\.inc\)\|\(.*\.cpp\)' | xargs cat | wc
|
|
||||||
|
|
||||||
|
.PHONY: run
|
||||||
|
run:
|
||||||
|
qemu-system-x86_64 -bios OVMF.fd -hda build/hos.img
|
||||||
|
Loading…
x
Reference in New Issue
Block a user