When either makesyscalls.lua or syscalls.master changes, all of the ${GENERATED} targets are now out-of-date. With make jobs > 1, this means we will run the makesyscalls script in parallel for the same ABI, generating the same set of output files. Prior to r356603 , there is a large window for interlacing output for some of the generated files that we were generating in-place rather than staging in a temp dir. After that, we still should't need to run the script more than once per-ABI as the first invocation should update all of them. Add .ORDER to do so cleanly. Reviewed by: brooks Discussed with: sjg Differential Revision: https://reviews.freebsd.org/D23099
29 lines
605 B
Makefile
29 lines
605 B
Makefile
# Makefile for syscall tables
|
|
#
|
|
# $FreeBSD$
|
|
|
|
# Don't use an OBJDIR
|
|
.OBJDIR: ${.CURDIR}
|
|
|
|
.include <src.lua.mk>
|
|
|
|
MAKESYSCALLS= ../../tools/makesyscalls.lua
|
|
SRCS= syscalls.conf \
|
|
syscalls.master
|
|
GENERATED= linux_proto.h \
|
|
linux_syscall.h \
|
|
linux_syscalls.c \
|
|
linux_sysent.c \
|
|
linux_systrace_args.c
|
|
|
|
all:
|
|
@echo "make sysent only"
|
|
|
|
# We .ORDER these explicitly so that we only run MAKESYSCALLS once, rather than
|
|
# potentially once for each ${GENERATED} file.
|
|
.ORDER: ${GENERATED}
|
|
sysent: ${GENERATED}
|
|
|
|
${GENERATED}: ${MAKESYSCALLS} ${SRCS}
|
|
${LUA} ${MAKESYSCALLS} syscalls.master syscalls.conf
|