# Makefile for HOS # Josh Holtrop # Created: 07/08/04 # Modified: 06/13/05 # Assembler Information: NASM=nasm NASM_FLAGS=-f aout # C/C++ Information: CPPFLAGS=-fleading-underscore -fno-builtin -nostdlib -nostartfiles -nodefaultlibs -I. -Wall # -S -masm=intel CC=gcc CXX=g++ CXXFLAGS=-fno-rtti -fno-exceptions -D_HOS_CPP_ # Linker Information: LD=ld LDFLAGS=-nodefaultlibs -nostdlib --no-demangle -T link.ld # Files OBJS=boot.o lang/lang_a.o \ kernel.o mm/mm.o mm/vmm.o lang/conv.o display/kout.o \ display/display.o sys/pic.o char/keyboard.o lang/lang.o \ sys/pci_classes.o proc/proc.o proc/hash.o \ lang/string.o lang/new.o char/misc_char.o char/vconsole.o \ devices.o block/ramdisk.o fs/vfs.o fs/FileSystem.o fs/VFSMount.o \ fs/ext2/ext2.o fs/sysfs/sysfs.o fs/sysfs/sysfs_entry.o \ sys/pci.o fs/OpenFile.o fs/OpenDirectory.o \ fs/ext2/Ext2OpenDirectory.o fs/ext2/Ext2OpenFile.o \ fs/ext2/Ext2BlockCache.o CSRC=kernel.c mm/mm.c mm/vmm.c lang/conv.c display/kout.c \ display/display.c sys/pic.c char/keyboard.c lang/lang.c \ sys/pci_classes.c CXXSRC=lang/string.cpp lang/new.cpp char/misc_char.cpp char/vconsole.cpp \ block/ramdisk.cpp devices.cpp fs/vfs.cpp fs/FileSystem.o fs/VFSMount.o\ fs/ext2/ext2.cpp fs/sysfs/sysfs.cpp fs/sysfs/sysfs_entry.cpp \ sys/pci.cpp proc/proc.cpp proc/hash.cpp fs/OpenFile.cpp \ fs/OpenDirectory.cpp fs/ext2/Ext2OpenDirectory.cpp \ fs/ext2/Ext2OpenFile.cpp fs/ext2/Ext2BlockCache.cpp .PHONY: all depend clean html all: $(OBJS) $(LD) $(LDFLAGS) -Map kernel.map $(OBJS) -o kernel.bin @echo ' Kernel built: ' `ls -sk kernel.bin | cut -d' ' -f1`kb depend: makedepend -- $(CPPFLAGS) -- $(CSRC) $(CXXSRC) boot.o: boot.asm idt.inc gdt.inc $(NASM) $(NASM_FLAGS) -l boot.lst boot.asm -o boot.o lang/lang_a.o: lang/lang.asm $(NASM) $(NASM_FLAGS) -l lang.lst lang/lang.asm -o lang/lang_a.o clean: -rm -f $(OBJS) *.bin *.map *.lst *.out -find . -name '*~' | xargs rm -f html: -rm -rf html -mkdir html source-highlight --output-dir=html -f xhtml -n $(CSRC) $(CXXSRC) # The following is used by 'make' to automatically # generate dependency information # DO NOT DELETE kernel.o: kernel.h hos_defines.h multiboot.h module.h lang/lang.h functions.h kernel.o: sys/io.h mm/mm.h mm/vmm.h lang/conv.h devices.h display/display.h kernel.o: display/kout.h sys/pic.h char/keyboard.h block/ramdisk.h fs/vfs.h kernel.o: fs/ext2/ext2.h sys/pci.h proc/proc.h mm/mm.o: kernel.h hos_defines.h multiboot.h mm/mm.h mm/vmm.o: hos_defines.h kernel.h multiboot.h mm/vmm.h lang/lang.h mm/mm.h lang/conv.o: lang/conv.h hos_defines.h display/kout.o: hos_defines.h display/kout.h lang/conv.h devices.h display/kout.o: char/misc_char.h char/misc_char.h functions.h sys/io.h display/display.o: devices.h hos_defines.h char/vconsole.h display/display.h display/display.o: lang/lang.h kernel.h multiboot.h char/keyboard.h display/display.o: display/kout.h sys/pic.o: hos_defines.h sys/pic.h sys/io.h char/keyboard.o: hos_defines.h char/keyboard.h sys/io.h functions.h char/keyboard.o: lang/conv.h display/kout.h display/display.h devices.h lang/lang.o: lang/lang.h hos_defines.h sys/pci_classes.o: hos_defines.h sys/pci.h lang/string.o: lang/string.h lang/lang.h hos_defines.h lang/new.o: hos_defines.h mm/vmm.h multiboot.h char/misc_char.o: hos_defines.h devices.h char/misc_char.h sys/io.h char/vconsole.o: hos_defines.h mm/vmm.h multiboot.h lang/lang.h char/vconsole.o: display/display.h devices.h functions.h sys/io.h char/vconsole.o: char/vconsole.h block/ramdisk.o: functions.h hos_defines.h sys/io.h mm/vmm.h multiboot.h block/ramdisk.o: lang/lang.h block/ramdisk.h devices.h devices.o: hos_defines.h devices.h char/misc_char.h char/misc_char.h devices.o: char/vconsole.h block/ramdisk.h fs/vfs.o: hos_defines.h display/kout.h functions.h sys/io.h lang/lang.h fs/vfs.o: fs/vfs.h devices.h fs/FileSystem.h fs/OpenDirectory.h fs/OpenFile.h fs/vfs.o: lang/string.h fs/VFSMount.h fs/FileSystem.h fs/ext2/ext2.h fs/vfs.h fs/vfs.o: lang/vector.h fs/ext2/ext2.o: display/kout.h hos_defines.h mm/vmm.h multiboot.h lang/lang.h fs/ext2/ext2.o: fs/ext2/ext2.h fs/vfs.h devices.h fs/ext2/Ext2OpenDirectory.h fs/ext2/ext2.o: fs/OpenDirectory.h fs/vfs.h fs/OpenFile.h lang/string.h fs/ext2/ext2.o: fs/ext2/Ext2OpenFile.h fs/OpenFile.h fs/sysfs/sysfs.o: display/kout.h hos_defines.h fs/vfs.h devices.h fs/sysfs/sysfs.o: fs/sysfs/sysfs.h fs/sysfs/sysfs_entry.h lang/vector.h fs/sysfs/sysfs.o: lang/string.h fs/sysfs/sysfs_entry.o: fs/sysfs/sysfs_entry.h lang/vector.h hos_defines.h fs/sysfs/sysfs_entry.o: lang/string.h sys/pci.o: hos_defines.h display/kout.h sys/io.h sys/pci.h lang/vector.h proc/proc.o: hos_defines.h mm/mm.h kernel.h multiboot.h mm/vmm.h lang/lang.h proc/proc.o: functions.h sys/io.h display/kout.h proc/proc.h proc/hash.h proc/proc.o: lang/vector.h proc/hash.o: hos_defines.h proc/hash.h lang/vector.h display/kout.h mm/vmm.h proc/hash.o: multiboot.h fs/OpenFile.o: fs/OpenFile.h hos_defines.h fs/OpenDirectory.o: fs/vfs.h hos_defines.h devices.h fs/OpenDirectory.h fs/OpenDirectory.o: fs/OpenFile.h lang/string.h fs/ext2/Ext2OpenDirectory.o: display/kout.h hos_defines.h lang/lang.h fs/ext2/Ext2OpenDirectory.o: fs/vfs.h devices.h fs/ext2/Ext2OpenDirectory.h fs/ext2/Ext2OpenDirectory.o: fs/OpenDirectory.h fs/vfs.h fs/OpenFile.h fs/ext2/Ext2OpenDirectory.o: lang/string.h fs/ext2/ext2.h