# Makefile for HOS # Josh Holtrop # Created: 07/08/04 # Modified: 08/22/04 # Assembler Information: NASM=nasm NASM_FLAGS=-f aout # C Information: CC=gcc CPP=g++ CC_FLAGS=-fleading-underscore -fno-builtin -nostdlib -nostartfiles -nodefaultlibs -I. -Wall CPP_FLAGS=$(CC_FLAGS) -fno-rtti -fno-exceptions # Linker Information: LD=ld LD_FLAGS=-nodefaultlibs -nostdlib --no-demangle -T link.ld all: Asm_Kernel C_Kernel @echo ' LD kernel.bin' @$(LD) $(LD_FLAGS) -Map kernel.map \ boot.o kernel.o lang_a.o mm.o vmm.o conv.o kout.o \ vconsole.o display.o devices.o pic.o keyboard.o \ ramdisk.o vfs.o lang_c.o \ string.o new.o ext2.o misc_char.o -o kernel.bin @echo ' Kernel built: ' `ls -sk kernel.bin | cut -d' ' -f1`kb Asm_Kernel: @echo ' NASM boot.o' @$(NASM) $(NASM_FLAGS) -l boot.lst boot.asm -o boot.o @echo ' NASM lang_a.o' @$(NASM) $(NASM_FLAGS) -l lang.lst lang/lang.asm -o lang_a.o C_Kernel: @echo ' CC kernel.o' @$(CC) $(CC_FLAGS) -c kernel.c -o kernel.o @echo ' CC mm.o' @$(CC) $(CC_FLAGS) -c mm/mm.c -o mm.o @echo ' CC vmm.o' @$(CC) $(CC_FLAGS) -c mm/vmm.c -o vmm.o @echo ' CC conv.o' @$(CC) $(CC_FLAGS) -c lang/conv.c -o conv.o @echo ' CC kout.o' @$(CC) $(CC_FLAGS) -c display/kout.c -o kout.o @echo ' CC display.o' @$(CC) $(CC_FLAGS) -c display/display.c -o display.o @echo ' CC pic.o' @$(CC) $(CC_FLAGS) -c sys/pic.c -o pic.o @echo ' CC keyboard.o' @$(CC) $(CC_FLAGS) -c char/keyboard.c -o keyboard.o @echo ' CC lang_c.o' @$(CC) $(CC_FLAGS) -c lang/lang.c -o lang_c.o @echo ' CPP string.o' @$(CPP) $(CPP_FLAGS) -c lang/string.cpp -o string.o @echo ' CPP new.o' @$(CPP) $(CPP_FLAGS) -c lang/new.cpp -o new.o @echo ' CPP vfs.o' @$(CPP) $(CPP_FLAGS) -c fs/vfs.cpp -o vfs.o @echo ' CPP ext2.o' @$(CPP) $(CPP_FLAGS) -c fs/ext2.cpp -o ext2.o @echo ' CPP misc_char.o' @$(CPP) $(CPP_FLAGS) -c char/misc_char.cpp -o misc_char.o @echo ' CPP ramdisk.o' @$(CPP) $(CPP_FLAGS) -c block/ramdisk.cpp -o ramdisk.o @echo ' CPP vconsole.o' @$(CPP) $(CPP_FLAGS) -c char/vconsole.cpp -o vconsole.o @echo ' CPP devices.o' @$(CPP) $(CPP_FLAGS) -c devices.cpp -o devices.o ################################################# # Clean up the source directory of any binaries # ################################################# clean: -rm -f *.o *.bin *.map *.lst *.out *~ fs/*~ sys/*~ block/*~ char/*~ lang/*~ mm/*~ display/*~