# /**
# @file	Makefile
# @brief	Makefile for kernel
# Copyright (c) kaworu
# $Id: Makefile,v 1.1.1.1 2003/10/12 18:01:01 kaworu Exp $
# @author	kaworu
# @date	since 2002/10/13 update: $Date: 2003/10/12 18:01:01 $
# @version	$Revision: 1.1.1.1 $
# */
.SUFFIXES: .S .c .s .o .out
TARGET=		kernel
CC=		/usr/bin/gcc
CLEANFILES+=	*.c~ *.o
CFLAGS=		-Wall -O2				\
		-fno-common				\
		-finhibit-size-directive		\
		-fno-ident				\
		-fomit-frame-pointer -fcall-used-ebx	\
		-I ../include -I.

BINMODE=	444
M4?=		m4

HEAD=		boot.h
#SRCS=		kernel.S main.c
SRCS=		kernel.S kbd.c kprintf.c shell.c #main.c setup.c
OBJSA=		$(SRCS:.S=.o)
OBJS=		$(OBJSA:.c=.o)
OUTS=		$(OBJS:.o=.out)


all: $(TARGET)

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

#	objcopy	-S -O binary $(TARGET).out $(TARGET)
#	cp	kernel ../z8/z.out
	cp	kernel.out ../boot/kernel
kernel.o: kernel.S
	$(CPP) kernel.S kernel.s -I../include
	$(AS) kernel.s $(AFLAGS) --defsym FLAGS=$(BOOT_BOOTO_FLAGS) \
		--defsym TICKS=$(BOOT_BOOTO_TICKS) -o kernel.o
.c.o:
	$(CC) -c $(CFLAGS) $<

img:
	dd if=/dev/zero of=$boot.img bs=512 count=2880
	dd if=kernel of=boot.img conv=notrunc

#crt.o	: crt.S
#	$(CPP) crt.S crt.s
#	$(AS) crt.s $(AFLAGS) --defsym FLAGS=$(BOOT_BOOTO_FLAGS) \
#		--defsym TICKS=$(BOOT_BOOTO_TICKS)  -o crt.o

clean	:
	-rm -f *.c~ *.o *.s~ *.txt~ a.out Makefile~ *.h~ *.s~ *.S~ *.img *.map $(TARGET) $(TARGET).img crt.s *.out
lint	:
	$(LINT)	-C libc -h -c -g -I./ $(CSRC)

#.include <bsd.prog.mk>
