Makefile: database.h removal by toplevel Makefile

This commit is contained in:
Darryl L. Miles 2024-10-16 17:47:19 +01:00 committed by R. Timothy Edwards
parent f0ade2fc55
commit 2947e7ea3d
2 changed files with 16 additions and 3 deletions

View File

@ -47,9 +47,9 @@ mains: database/database.h modules libs
for dir in ${PROGRAMS}; do \ for dir in ${PROGRAMS}; do \
(cd $$dir && ${MAKE} main) || exit 1; done (cd $$dir && ${MAKE} main) || exit 1; done
database/database.h: database/database.h.in database/database.h: ${MAGICDIR}/database/database.h.in
@echo --- making header file database/database.h @echo --- making header file database/database.h
${SCRIPTS}/makedbh database/database.h.in database/database.h ${SCRIPTS}/makedbh ${MAGICDIR}/database/database.h.in database/database.h
modules: database/database.h depend modules: database/database.h depend
@echo --- making modules @echo --- making modules
@ -124,6 +124,7 @@ distclean:
${RM} defs.mak old.defs.mak ${MAGICDIR}/scripts/defs.mak ${RM} defs.mak old.defs.mak ${MAGICDIR}/scripts/defs.mak
${RM} ${MAGICDIR}/scripts/default.conf ${RM} ${MAGICDIR}/scripts/default.conf
${RM} ${MAGICDIR}/scripts/config.log ${MAGICDIR}/scripts/config.status ${RM} ${MAGICDIR}/scripts/config.log ${MAGICDIR}/scripts/config.status
${RM} database/database.h
${RM} scripts/magic.spec magic-${VERSION} magic-${VERSION}.tgz ${RM} scripts/magic.spec magic-${VERSION} magic-${VERSION}.tgz
${RM} *.log ${RM} *.log

View File

@ -15,6 +15,18 @@ SRCS = DBbound.c DBcell.c DBcellbox.c DBcellcopy.c \
include ${MAGICDIR}/defs.mak include ${MAGICDIR}/defs.mak
LIB_OBJS += ${MAGICDIR}/tiles/libtiles.o ${MAGICDIR}/utils/libutils.o LIB_OBJS += ${MAGICDIR}/tiles/libtiles.o ${MAGICDIR}/utils/libutils.o
CLEANS += database.h # database.h is managed by the toplevel Makefile, because it has a build dependency
# order affecting multiple modules that need it. Both the creation time and the
# removal time (during 'clean') are managed by toplevel Makefile.
# if it was additionally removed by this clause here, it only causes bogus errors
# to be seen during some make operations due to race conditions caused by the
# unexpected removal by this clause in parallel MAKE execution of other modules
# that thought the file existed. FWIW database.h should be created first (near the
# start of top level build) and removed last (near the end of a top level clean).
#CLEANS += database.h
# This is delegated back to the top level Makefile
database.h: ${MAGICDIR}/database/database.h.in
${MAKE} -C ${MAGICDIR} database/database.h
include ${MAGICDIR}/rules.mak include ${MAGICDIR}/rules.mak