diff options
author | Bryan Drewery <bdrewery@FreeBSD.org> | 2019-08-16 22:34:10 +0000 |
---|---|---|
committer | Bryan Drewery <bdrewery@FreeBSD.org> | 2019-08-16 22:34:10 +0000 |
commit | dc89d06976b7ce93b0e934f3dcd567def521bab4 (patch) | |
tree | 81949de881d646662950dabedf3d24da011929f0 /lib/libsysdecode | |
parent | 49366f62991ba8e723c0fcadd60007afe4d3b0a5 (diff) | |
download | src-dc89d06976b7ce93b0e934f3dcd567def521bab4.tar.gz src-dc89d06976b7ce93b0e934f3dcd567def521bab4.zip |
Rework r339635 to fix .depend.tables.h handling.
Avoid touching the tables.h file unless it has changed to avoid unneeded
rebuilds.
Also revert r350301's explicit dependencies.
Reviewed by: emaste
MFC after: 2 weeks
X-MFC-With: r339635 (kevans request)
PR: 238828
Sponsored by: DellEMC
Differential Revision: https://reviews.freebsd.org/D21295
Notes
Notes:
svn path=/head/; revision=351151
Diffstat (limited to 'lib/libsysdecode')
-rw-r--r-- | lib/libsysdecode/Makefile | 9 | ||||
-rw-r--r-- | lib/libsysdecode/mktables | 21 |
2 files changed, 18 insertions, 12 deletions
diff --git a/lib/libsysdecode/Makefile b/lib/libsysdecode/Makefile index 2be244a6da46..c96a39e0ffac 100644 --- a/lib/libsysdecode/Makefile +++ b/lib/libsysdecode/Makefile @@ -107,7 +107,7 @@ MLINKS+=sysdecode_mask.3 sysdecode_accessmode.3 \ sysdecode_mask.3 sysdecode_wait4_options.3 \ sysdecode_mask.3 sysdecode_wait6_options.3 -CLEANFILES= ioctl.c ioctl.c.tmp tables.h tables.h.tmp +CLEANFILES= ioctl.c ioctl.c.tmp tables.h .if defined(COMPAT_32BIT) CPP+= -m32 @@ -123,11 +123,8 @@ CFLAGS.gcc.ioctl.c+= -Wno-redundant-decls CFLAGS.gcc+= ${CFLAGS.gcc.${.IMPSRC}} DEPENDOBJS+= tables.h -incdir=${SYSROOT:U${DESTDIR}}${INCLUDEDIR} -tables.h: mktables ${incdir}/netinet/in.h ${incdir}/netinet/tcp.h \ - ${incdir}/netinet6/in6.h - sh ${.CURDIR}/mktables ${incdir} ${.TARGET}.tmp && \ - mv -f ${.TARGET}.tmp ${.TARGET} +tables.h: mktables + sh ${.CURDIR}/mktables ${SYSROOT:U${DESTDIR}}${INCLUDEDIR} ${.TARGET} # mkioctls runs find(1) for headers so needs to rebuild every time. This used # to be a hack only done in buildworld. diff --git a/lib/libsysdecode/mktables b/lib/libsysdecode/mktables index 39f3a4f30b4a..4765ca5d8beb 100644 --- a/lib/libsysdecode/mktables +++ b/lib/libsysdecode/mktables @@ -43,7 +43,8 @@ fi include_dir=$1 if [ -n "$2" ]; then output_file="$2" - exec > "$output_file" + output_tmp=$(mktemp -u) + exec > "$output_tmp" fi all_headers= @@ -167,9 +168,17 @@ fi # Generate a .depend file for our output file if [ -n "$output_file" ]; then - echo "$output_file: \\" > ".depend.$output_file" - echo "$all_headers" | tr ' ' '\n' | sort -u | - sed -e "s,^, $include_dir/," -e 's,$, \\,' >> \ - ".depend.$output_file" - echo >> ".depend.$output_file" + depend_tmp=$(mktemp -u) + { + echo "$output_file: \\" + echo "$all_headers" | tr ' ' '\n' | sort -u | + sed -e "s,^, $include_dir/," -e 's,$, \\,' + echo + } > "$depend_tmp" + if cmp -s "$output_tmp" "$output_file"; then + rm -f "$output_tmp" "$depend_tmp" + else + mv -f "$depend_tmp" ".depend.${output_file}" + mv -f "$output_tmp" "$output_file" + fi fi |