git: 009db0d40c6a - main - ncurses: serialize the tinfo build a little bit
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Wed, 24 Jan 2024 05:01:01 UTC
The branch main has been updated by kevans:
URL: https://cgit.FreeBSD.org/src/commit/?id=009db0d40c6acffe0b9d835cb15a75cc3361173b
commit 009db0d40c6acffe0b9d835cb15a75cc3361173b
Author: Kyle Evans <kevans@FreeBSD.org>
AuthorDate: 2024-01-24 05:00:36 +0000
Commit: Kyle Evans <kevans@FreeBSD.org>
CommitDate: 2024-01-24 05:00:36 +0000
ncurses: serialize the tinfo build a little bit
Move ncurses_dll.h to GENHDRS to start with; it's been generated from
ncurses_dll.h.in for years, so it's not actually in a different category
than all of the other GENHDRS. Slap an .ORDER on it to ensure that we
build ncurses_dll.h and curses.h before any *.c gets compiled.
This should sufficiently address a build race seen downstream where
ncurses_dll.h is present but not yet populated.
Reviewed by: bapt
Sponsored by: NetApp, Inc.
Sponsored by: Klara, Inc.
Differential Revision: https://reviews.freebsd.org/D43540
---
lib/ncurses/tinfo/Makefile | 14 +++++++++++---
1 file changed, 11 insertions(+), 3 deletions(-)
diff --git a/lib/ncurses/tinfo/Makefile b/lib/ncurses/tinfo/Makefile
index c1ea75d3aacd..a0b191f50785 100644
--- a/lib/ncurses/tinfo/Makefile
+++ b/lib/ncurses/tinfo/Makefile
@@ -74,6 +74,7 @@ GENHDRS= \
hashsize.h \
init_keytry.h \
ncurses_def.h \
+ ncurses_dll.h \
nomacros.h \
parametrized.h \
term.h \
@@ -170,9 +171,8 @@ CWARNFLAGS.comp_parse.c= ${NO_WUNUSED_BUT_SET_VARIABLE}
CWARNFLAGS.read_entry.c= ${NO_WUNUSED_BUT_SET_VARIABLE}
# Installed
-HEADERS= curses.h term.h termcap.h unctrl.h
-SRCHDRS= ncurses_dll.h
-CLEANFILES+= ncurses_dll.h
+HEADERS= curses.h ncurses_dll.h term.h termcap.h unctrl.h
+SRCHDRS=
INCS= ${HEADERS} ${SRCHDRS}
INCSLINKS= curses.h ${INCLUDEDIR}/ncurses.h
@@ -214,6 +214,14 @@ FILESGROUPS= DOCS
# Generated source
.ORDER: names.c codes.c
+# Serialize the build just a little bit; there's nothing stopping the build from
+# proceeding before ncurses_dll.h and curses.h are actually generated on a clean
+# build since we have no dependency information to prevent it.
+.ORDER: ncurses_dll.h curses.h
+.for f in ${SRCS:M*.c}
+.ORDER: curses.h ${f}
+.endfor
+
names.c: MKnames.awk
${AWK} -f ${NCURSES_DIR}/ncurses/tinfo/MKnames.awk bigstrings=${USE_BIG_STRINGS} ${NCURSES_DIR}/include/Caps > names.c