# /**
# @file	Makefile
# @brief	Makefile for kernel
# Copyright (c) kaworu
# $Id: Makefile,v 1.18 2003/12/05 19:10:16 kaworu Exp $
# @author	kaworu
# @date	since 2002/10/13 update: $Date: 2003/12/05 19:10:16 $
# @version	$Revision: 1.18 $
# */
.SUFFIXES: .S .c .s .o .out
SHELL=		/bin/sh
TARGET=		kernel.out
CC=		/usr/bin/gcc
CLEANFILES+=	*.c~ *.o
CFLAGS=		-Wall -O2				\
		-fno-common				\
		-finhibit-size-directive		\
		-fno-ident				\
		-fomit-frame-pointer -fcall-used-ebx	\
		-I. -I $(MASTERINCLUDE)			\
		-nostdlib -u symbol_name
MASTERDIR?=	../../..
MASTEROBJDIR?=	../../../obj
MASTERINCLUDE?=	../../include

BINMODE=	444
M4?=		m4

HEAD=		boot.h
SRCS=		kernel.S idt.c gdt.c console.c kern_thread.c kprintf.c io.c rtc.c pic.c
OBJSA=		$(SRCS:.S=.o)
OBJS=		$(OBJSA:.c=.o)
OUTS=		$(OBJS:.o=.out)
LINT= 		lint
LINTFLAGS=	 -aabceghprsxF -L/usr/libdata -l lstdc

all: $(TARGET)

$(TARGET): $(OBJS)
#	$(LD)	-N -e kernel -Ttext 0 $(OBJS) -o $(TARGET).out --cref \
#	$(LD)	-N -e xsh 0x9600 $(OBJS) -o $(TARGET).out --cref \
#	$(LD)	-N -e start $(OBJS) -o $(TARGET) \
	$(LD)	-N -e start $(OBJS) -o $(TARGET) --cref \
		-Map kernel.map -T kernel.ls

# 	$(LD)	-N -e start $(OBJS) -o $(TARGET).out --cref \
# 		-Map $(TARGET).map -T kernel.ls
#	objcopy	-S -O binary $(TARGET).out $(TARGET)
	cp	kernel.out $(MASTEROBJDIR)
#kernel.o: kernel.S
#	$(CPP) -I $(MASTERINCLUDE) kernel.S kernel.s
#	$(AS) kernel.s $(AFLAGS) --defsym FLAGS=$(BOOT_BOOTO_FLAGS) \
#		--defsym TICKS=$(BOOT_BOOTO_TICKS) -o kernel.o
.c.o:
	$(CC) -c $(CFLAGS) $<

clean	:
	-rm -f *~ *.o *.s *.map kernel kernel.out

lint	:
	$(LINT)	-aacghnpu -D'LINT' -D'__func__="func"' -D'__restrict='  -I./ -I../../include $(SRCS)


