# Makefile for HOS # 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: make -C kernel 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