Newer
Older
Scratch / mobius / src / kernel / Makefile
OBJS=	start.o isr.o kstart.o i386.o \
	main.o memory.o vm86.o thread.o \
	module.o mod_pe.o device.o \
	syscall.o ramdisk.o handle.o \
	vmm.o serial.o obj.o sys.o \
	fs.o config.o cache.o port.o \
	vga.o text.o vga4.o \
	../kernelu/fullpath.o ../kernelu/resource.o \
	font8x8.o font8x16.o cupertino.o t.o \
	mbstowcs.o wcstombs.o strtok.o wprintf.o \
	hash.o
RES=	kernel.res.o

CFLAGS=	-DKERNEL -ffreestanding -g
LDFLAGS=--section-alignment 0x1000 --file-alignment 0x1000 \
	--image-base 0xc0000000 --subsystem native \
	-T kernel.ld --entry _keEntry
LIBS=		$(LIB)/libc_s.lib

include	../make.actions

TARGET=	$(BIN)/kernel.exe

all:	$(TARGET) $(RAMDISK) $(LIB)/kernel.lib

vga4.d:	../drivers/video/vga4.c
	$(CC) $(CFLAGS) -M -c $< -o $@

vga4.o:	../drivers/video/vga4.c
	$(CC) $(CFLAGS) -c $< -o $@

kernel.res.o:	kernel.rc logo2.bmp

kernel.exp:	kernel.def
	dlltool -e kernel.exp -m i386 --input-def kernel.def -D kernel.exe

$(LIB)/kernel.lib:	kernel.def
	dlltool -m i386 --input-def kernel.def --output-lib $(LIB)/kernel.lib

$(TARGET):	Makefile $(OBJS) $(LIBS) $(RES) kernel.ld kernel.exp
	ld -s -o $(TARGET) \
		$(OBJS) \
		kernel.exp \
		$(LIBS) $(RES) $(LDFLAGS)
#	objdump -ld $(TARGET) > listing.txt
#	nm $(TARGET) | sort > symbols.txt

clean:
	rm $(OBJS)
	rm $(TARGET)
	rm $(OBJS:.o=.d)
	rm listing.txt
	rm symbols.txt

rebuild:	clean all

include $(OBJS:.o=.d)