Index: sys/compat/aoutm68k/Makefile
===================================================================
RCS file: /cvsroot/src/sys/compat/aoutm68k/Makefile,v
retrieving revision 1.6
diff -u -p -u -r1.6 Makefile
--- sys/compat/aoutm68k/Makefile	4 May 2006 22:27:51 -0000	1.6
+++ sys/compat/aoutm68k/Makefile	14 Jan 2014 18:31:34 -0000
@@ -1,14 +1,5 @@
 #	$NetBSD: Makefile,v 1.6 2006/05/04 22:27:51 tsutsui Exp $
 
-.include <bsd.sys.mk>		# for HOST_SH
+SYSCALL_PREFIX=aoutm68k
 
-DEP=	syscalls.conf syscalls.master ../../kern/makesyscalls.sh
-OBJS=	aoutm68k_sysent.c aoutm68k_syscalls.c \
-	aoutm68k_syscall.h aoutm68k_syscallargs.h
-
-${OBJS}: ${DEP}
-	${HOST_SH} ../../kern/makesyscalls.sh syscalls.conf syscalls.master
-
-all: ${OBJS}
-
-.include <bsd.kinc.mk>
+.include <bsd.syscall.mk>
Index: sys/compat/freebsd/Makefile
===================================================================
RCS file: /cvsroot/src/sys/compat/freebsd/Makefile,v
retrieving revision 1.7
diff -u -p -u -r1.7 Makefile
--- sys/compat/freebsd/Makefile	11 Dec 2005 12:20:02 -0000	1.7
+++ sys/compat/freebsd/Makefile	14 Jan 2014 18:31:35 -0000
@@ -1,14 +1,5 @@
 #	$NetBSD: Makefile,v 1.7 2005/12/11 12:20:02 christos Exp $
 
-.include <bsd.sys.mk>		# for HOST_SH
+SYSCALL_PREFIX=freebsd
 
-DEP=	syscalls.conf syscalls.master ../../kern/makesyscalls.sh
-OBJS=	freebsd_sysent.c freebsd_syscalls.c \
-	freebsd_syscall.h freebsd_syscallargs.h
-
-${OBJS}: ${DEP}
-	${HOST_SH} ../../kern/makesyscalls.sh syscalls.conf syscalls.master
-
-all: ${OBJS}
-
-.include <bsd.kinc.mk>
+.include <bsd.syscall.mk>
Index: sys/compat/ibcs2/Makefile
===================================================================
RCS file: /cvsroot/src/sys/compat/ibcs2/Makefile,v
retrieving revision 1.5
diff -u -p -u -r1.5 Makefile
--- sys/compat/ibcs2/Makefile	11 Dec 2005 12:20:02 -0000	1.5
+++ sys/compat/ibcs2/Makefile	14 Jan 2014 18:31:35 -0000
@@ -1,13 +1,5 @@
 #	$NetBSD: Makefile,v 1.5 2005/12/11 12:20:02 christos Exp $
 
-.include <bsd.sys.mk>		# for HOST_SH
+SYSCALL_PREFIX=ibcs2
 
-DEP=	syscalls.conf syscalls.master ../../kern/makesyscalls.sh
-OBJS=	ibcs2_sysent.c ibcs2_syscalls.c ibcs2_syscall.h ibcs2_syscallargs.h
-
-${OBJS}: ${DEP}
-	${HOST_SH} ../../kern/makesyscalls.sh syscalls.conf syscalls.master
-
-all: ${OBJS}
-
-.include <bsd.kinc.mk>
+.include <bsd.syscall.mk>
Index: sys/compat/linux/Makefile.inc
===================================================================
RCS file: /cvsroot/src/sys/compat/linux/Makefile.inc,v
retrieving revision 1.5
diff -u -p -u -r1.5 Makefile.inc
--- sys/compat/linux/Makefile.inc	11 Dec 2005 12:20:12 -0000	1.5
+++ sys/compat/linux/Makefile.inc	14 Jan 2014 18:31:35 -0000
@@ -1,11 +1,5 @@
 #	$NetBSD: Makefile.inc,v 1.5 2005/12/11 12:20:12 christos Exp $
 
-.include <bsd.sys.mk>		# for HOST_SH
+SYSCALL_PREFIX=linux
 
-DEP=	syscalls.conf syscalls.master ../../../../kern/makesyscalls.sh
-OBJS=	linux_sysent.c linux_syscalls.c linux_syscall.h linux_syscallargs.h
-
-${OBJS}: ${DEP}
-	${HOST_SH} ../../../../kern/makesyscalls.sh syscalls.conf syscalls.master
-
-all: ${OBJS}
+.include <bsd.syscall.mk>
Index: sys/compat/linux32/Makefile.inc
===================================================================
RCS file: /cvsroot/src/sys/compat/linux32/Makefile.inc,v
retrieving revision 1.2
diff -u -p -u -r1.2 Makefile.inc
--- sys/compat/linux32/Makefile.inc	23 Mar 2007 12:26:10 -0000	1.2
+++ sys/compat/linux32/Makefile.inc	14 Jan 2014 18:31:35 -0000
@@ -1,11 +1,5 @@
 #	$NetBSD: Makefile.inc,v 1.2 2007/03/23 12:26:10 njoly Exp $
 
-.include <bsd.sys.mk>		# for HOST_SH
+SYSCALL_PREFIX=linux32
 
-DEP=	syscalls.conf syscalls.master ../../../../kern/makesyscalls.sh
-OBJS=	linux32_sysent.c linux32_syscalls.c linux32_syscall.h linux32_syscallargs.h
-
-${OBJS}: ${DEP}
-	${HOST_SH} ../../../../kern/makesyscalls.sh syscalls.conf syscalls.master
-
-all: ${OBJS}
+.include <bsd.syscall.mk>
Index: sys/compat/netbsd32/Makefile
===================================================================
RCS file: /cvsroot/src/sys/compat/netbsd32/Makefile,v
retrieving revision 1.7
diff -u -p -u -r1.7 Makefile
--- sys/compat/netbsd32/Makefile	20 Mar 2012 09:18:00 -0000	1.7
+++ sys/compat/netbsd32/Makefile	14 Jan 2014 18:31:35 -0000
@@ -1,11 +1,5 @@
 #	$NetBSD: Makefile,v 1.7 2012/03/20 09:18:00 martin Exp $
 
-.include <bsd.sys.mk>		# for HOST_SH
+SYSCALL_PREFIX=netbsd32
 
-DEP=	syscalls.conf syscalls.master ../../kern/makesyscalls.sh
-OBJS=	netbsd32_sysent.c netbsd32_syscalls.c netbsd32_syscall.h netbsd32_syscallargs.h
-
-${OBJS}: ${DEP}
-	${HOST_SH} ../../kern/makesyscalls.sh syscalls.conf syscalls.master
-
-all: ${OBJS}
+.include <bsd.syscall.mk>
Index: sys/compat/osf1/Makefile
===================================================================
RCS file: /cvsroot/src/sys/compat/osf1/Makefile,v
retrieving revision 1.6
diff -u -p -u -r1.6 Makefile
--- sys/compat/osf1/Makefile	11 Dec 2005 12:20:23 -0000	1.6
+++ sys/compat/osf1/Makefile	14 Jan 2014 18:31:35 -0000
@@ -1,13 +1,5 @@
 #	$NetBSD: Makefile,v 1.6 2005/12/11 12:20:23 christos Exp $
 
-.include <bsd.sys.mk>		# for HOST_SH
+SYSCALL_PREFIX=osf1
 
-DEP=	syscalls.conf syscalls.master ../../kern/makesyscalls.sh
-OBJS=	osf1_sysent.c osf1_syscalls.c osf1_syscall.h osf1_syscallargs.h
-
-${OBJS}: ${DEP}
-	${HOST_SH} ../../kern/makesyscalls.sh syscalls.conf syscalls.master
-
-all: ${OBJS}
-
-.include <bsd.kinc.mk>
+.include <bsd.syscall.mk>
Index: sys/compat/sunos/Makefile
===================================================================
RCS file: /cvsroot/src/sys/compat/sunos/Makefile,v
retrieving revision 1.5
diff -u -p -u -r1.5 Makefile
--- sys/compat/sunos/Makefile	11 Dec 2005 12:20:23 -0000	1.5
+++ sys/compat/sunos/Makefile	14 Jan 2014 18:31:35 -0000
@@ -1,13 +1,5 @@
 #	$NetBSD: Makefile,v 1.5 2005/12/11 12:20:23 christos Exp $
 
-.include <bsd.sys.mk>		# for HOST_SH
+SYACALL_PREFIX=sunos
 
-DEP=	syscalls.conf syscalls.master ../../kern/makesyscalls.sh
-OBJS=	sunos_sysent.c sunos_syscalls.c sunos_syscall.h sunos_syscallargs.h
-
-${OBJS}: ${DEP}
-	${HOST_SH} ../../kern/makesyscalls.sh syscalls.conf syscalls.master
-
-all: ${OBJS}
-
-.include <bsd.kinc.mk>
+.include <bsd.syscall.mk>
Index: sys/compat/sunos32/Makefile
===================================================================
RCS file: /cvsroot/src/sys/compat/sunos32/Makefile,v
retrieving revision 1.5
diff -u -p -u -r1.5 Makefile
--- sys/compat/sunos32/Makefile	11 Dec 2005 12:20:23 -0000	1.5
+++ sys/compat/sunos32/Makefile	14 Jan 2014 18:31:35 -0000
@@ -1,14 +1,5 @@
 #	$NetBSD: Makefile,v 1.5 2005/12/11 12:20:23 christos Exp $
 
-.include <bsd.sys.mk>		# for HOST_SH
+SYSCALL_PREFIX=sunos32
 
-DEP=	syscalls.conf syscalls.master ../../kern/makesyscalls.sh
-OBJS=	sunos32_sysent.c sunos32_syscalls.c sunos32_syscall.h sunos32_syscallargs.h
-
-${OBJS}: ${DEP}
-	${HOST_SH} ../../kern/makesyscalls.sh syscalls.conf syscalls.master
-
-
-all: ${OBJS}
-
-.include <bsd.kinc.mk>
+.include <bsd.syscall.mk>
Index: sys/compat/svr4/Makefile
===================================================================
RCS file: /cvsroot/src/sys/compat/svr4/Makefile,v
retrieving revision 1.5
diff -u -p -u -r1.5 Makefile
--- sys/compat/svr4/Makefile	11 Dec 2005 12:20:25 -0000	1.5
+++ sys/compat/svr4/Makefile	14 Jan 2014 18:31:35 -0000
@@ -1,13 +1,5 @@
 #	$NetBSD: Makefile,v 1.5 2005/12/11 12:20:25 christos Exp $
 
-.include <bsd.sys.mk>		# for HOST_SH
+SYSCALL_PREFIX=svr4
 
-DEP=	syscalls.conf syscalls.master ../../kern/makesyscalls.sh
-OBJS=	svr4_sysent.c svr4_syscalls.c svr4_syscall.h svr4_syscallargs.h
-
-${OBJS}: ${DEP}
-	${HOST_SH} ../../kern/makesyscalls.sh syscalls.conf syscalls.master
-
-all: ${OBJS}
-
-.include <bsd.kinc.mk>
+.include <bsd.syscall.mk>
Index: sys/compat/svr4_32/Makefile
===================================================================
RCS file: /cvsroot/src/sys/compat/svr4_32/Makefile,v
retrieving revision 1.6
diff -u -p -u -r1.6 Makefile
--- sys/compat/svr4_32/Makefile	25 Oct 2008 22:27:38 -0000	1.6
+++ sys/compat/svr4_32/Makefile	14 Jan 2014 18:31:35 -0000
@@ -1,16 +1,5 @@
 #	$NetBSD: Makefile,v 1.6 2008/10/25 22:27:38 apb Exp $
 
-.include <bsd.sys.mk>		# for HOST_SH
+SYSCALL_PREFIX=svr4_32
 
-DEP=	syscalls.conf syscalls.master ../../kern/makesyscalls.sh
-OBJS=	svr4_32_sysent.c svr4_32_syscalls.c svr4_32_syscall.h svr4_32_syscallargs.h
-
-#syscalls.master: ../svr4/syscalls.master sed.script
-#	${TOOL_SED} -f sed.script < ../svr4/syscalls.master > syscalls.master
-
-${OBJS}: ${DEP}
-	${HOST_SH} ../../kern/makesyscalls.sh syscalls.conf syscalls.master
-
-all: ${OBJS}
-
-.include <bsd.kinc.mk>
+.include <bsd.syscall.mk>
Index: sys/compat/ultrix/Makefile
===================================================================
RCS file: /cvsroot/src/sys/compat/ultrix/Makefile,v
retrieving revision 1.5
diff -u -p -u -r1.5 Makefile
--- sys/compat/ultrix/Makefile	11 Dec 2005 12:20:30 -0000	1.5
+++ sys/compat/ultrix/Makefile	14 Jan 2014 18:31:35 -0000
@@ -1,13 +1,5 @@
 #	$NetBSD: Makefile,v 1.5 2005/12/11 12:20:30 christos Exp $
 
-.include <bsd.sys.mk>		# for HOST_SH
+SYSCALL_PREFIX=ultrix
 
-DEP=	syscalls.conf syscalls.master ../../kern/makesyscalls.sh
-OBJS=	ultrix_sysent.c ultrix_syscalls.c ultrix_syscall.h ultrix_syscallargs.h
-
-${OBJS}: ${DEP}
-	${HOST_SH} ../../kern/makesyscalls.sh syscalls.conf syscalls.master
-
-all: ${OBJS}
-
-.include <bsd.kinc.mk>
+.include <bsd.syscall.mk>
? share/mk/new
? share/mk/o
? share/mk/x
? share/mk/y
Index: share/mk/Makefile
===================================================================
RCS file: /cvsroot/src/share/mk/Makefile,v
retrieving revision 1.47
diff -u -p -r1.47 Makefile
--- share/mk/Makefile	15 Nov 2012 23:51:53 -0000	1.47
+++ share/mk/Makefile	14 Jan 2014 18:33:59 -0000
@@ -13,7 +13,7 @@ FILES=	bsd.README bsd.buildinstall.mk bs
 	bsd.kmodule.mk bsd.lib.mk bsd.links.mk bsd.lua.mk \
 	bsd.man.mk bsd.nls.mk \
 	bsd.obj.mk bsd.own.mk bsd.prog.mk bsd.rpc.mk bsd.shlib.mk \
-	bsd.subdir.mk bsd.sys.mk bsd.test.mk bsd.x11.mk sys.mk
+	bsd.subdir.mk bsd.sys.mk bsd.syscall.mk bsd.test.mk bsd.x11.mk sys.mk
 
 FILESDIR=/usr/share/mk
 .endif
Index: share/mk/bsd.README
===================================================================
RCS file: /cvsroot/src/share/mk/bsd.README,v
retrieving revision 1.324
diff -u -p -r1.324 bsd.README
--- share/mk/bsd.README	14 Jan 2014 11:32:35 -0000	1.324
+++ share/mk/bsd.README	14 Jan 2014 18:33:59 -0000
@@ -1123,6 +1123,11 @@ kernel Makefiles.  It uses similar varia
 Please see <bsd.kinc.mk> for more details, and keep the documentation
 in that file up to date.
 
+=-=-=-=-=   bsd.syscall.mk =-=-=-=-=
+
+The include file <bsd.syscall.mk> contains the logic to create syscall
+files for various emulations. It includes <bsd.kinc.mk> to handle the
+rest of the targets.
 
 =-=-=-=-=   bsd.lib.mk   =-=-=-=-=
 
Index: share/mk/bsd.syscall.mk
===================================================================
RCS file: share/mk/bsd.syscall.mk
diff -N share/mk/bsd.syscall.mk
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ share/mk/bsd.syscall.mk	14 Jan 2014 18:33:59 -0000
@@ -0,0 +1,17 @@
+# $NetBSD$
+#
+.include <bsd.own.mk>
+.include <bsd.sys.mk>
+
+SYSCALL_OBJS?=	${SYSCALL_PREFIX}_sysent.c ${SYSCALL_PREFIX}_syscalls.c \
+	${SYSCALL_PREFIX}_syscall.h ${SYSCALL_PREFIX}_syscallargs.h
+
+SYSCALL_DEPS?=	${NETBSDSRCDIR}/sys/kern/makesyscalls.sh \
+	syscalls.conf syscalls.master
+
+all: ${SYSCALL_OBJS}
+
+${SYSCALL_OBJS}: ${SYSCALL_DEPS}
+	${HOST_SH} ${.ALLSRC}
+
+.include <bsd.kinc.mk>