81 lines
2.4 KiB
Makefile
81 lines
2.4 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 vesafb.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 ' CC vesafb.o'
|
|
@$(CC) $(CC_FLAGS) -c display/vesafb.c -o vesafb.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/*~
|
|
|
|
|