109 lines
4.3 KiB
Makefile
109 lines
4.3 KiB
Makefile
# 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
|
|
|
|
# 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
|
|
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
|
|
|
|
.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 fs/vfs.h
|
|
fs/vfs.o: devices.h lang/string.h fs/FileSystem.h fs/VFSMount.h
|
|
fs/vfs.o: fs/FileSystem.h fs/vfs.h fs/ext2/ext2.h 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/sysfs/sysfs.o: display/kout.h hos_defines.h fs/vfs.h devices.h
|
|
fs/sysfs/sysfs.o: fs/sysfs/sysfs.h fs/FileSystem.h lang/vector.h
|
|
fs/sysfs/sysfs.o: lang/string.h fs/sysfs/sysfs_entry.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
|