diff --git a/sys/boot/pc98/kgzldr/Makefile b/sys/boot/pc98/kgzldr/Makefile
index 5e1e866e8567..9fed53da63cd 100644
--- a/sys/boot/pc98/kgzldr/Makefile
+++ b/sys/boot/pc98/kgzldr/Makefile
@@ -1,24 +1,34 @@
 # $FreeBSD$
 
-FILES=	kgzldr.o
-SRCS=	start.s boot.c inflate.c lib.c crt.s sio.s
+SRCS=	boot.c inflate.c lib.c
 OBJS=	${SRCS:N*.h:R:S/$/.o/g}
 CFLAGS=	-ffreestanding
 CFLAGS+=-Os
 CFLAGS+=-DKZIP
 LDFLAGS=-nostdlib -static -r
-BINDIR=	/usr/lib
 .PATH:	${.CURDIR}/../../../kern
 
 .PATH:	${.CURDIR}/../../i386/kgzldr
 AFLAGS+=--defsym PC98=1
 
-CLEANFILES=${FILES}
+.for asm in start crt sio
+OBJS+=	${asm}.o
+${asm}.o: ${asm}.s
+	as -o ${.TARGET} ${.ALLSRC:M*${asm}*}
+.endfor
+
+CLEANFILES=kgzldr.o
 
 BOOT_COMCONSOLE_PORT?=	0x238
 AFLAGS+=--defsym SIO_PRT=${BOOT_COMCONSOLE_PORT}
 
+all: ${OBJS} kgzldr.o
+
 kgzldr.o: ${OBJS}
 	${CC} ${LDFLAGS} -o ${.TARGET} ${OBJS}
 
-.include <bsd.prog.mk>
+realinstall:
+	${INSTALL} -o ${LIBOWN} -g ${LIBGRP} -m ${LIBMODE} \
+	    kgzldr.o ${DESTDIR}${LIBDIR}
+
+.include <bsd.lib.mk>