hos/kernel/Makefile

79 lines
2.3 KiB
Makefile

# 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/*~