1NAME= smallkern 2SRCS= console.c main.c locore.S trap.S 3LDSCRIPT= ${NAME}.ldscript 4 5OBJDIR= /tmp/${NAME}.obj 6OBJS= ${SRCS:R:S/$/.o/g:S/^/${OBJDIR}\//g} 7CFLAGS= -g -std=c99 -Wall -Wextra -mno-red-zone -ffreestanding -D__x86_64__ 8 9all: /tmp/${NAME} 10 11/tmp/${NAME}: ${OBJS} ${LDSCRIPT} 12 ld -o ${.TARGET} \ 13 -X -z max-page-size=0x100000 -Ttext 0x100000 \ 14 -T ${.CURDIR}/${LDSCRIPT} ${OBJS} 15 16.for src in ${SRCS} 17${src:R:S/$/.o/g:S/^/${OBJDIR}\//g}: ${.CURDIR}/${src} 18 @[ -d ${OBJDIR} ] || mkdir -p ${OBJDIR} 19 cc ${CFLAGS} -o ${.TARGET} -c ${.ALLSRC} 20.endfor 21 22clean: 23 rm -f /tmp/${NAME} 24 rm -rf ${OBJDIR} 25