90 lines
2.2 KiB
Makefile
90 lines
2.2 KiB
Makefile
# 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 apps/*.app $(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
|
|
|