commit 7c956fefc2035666770958e2cfaf278e20e6472a from: Omar Polo date: Mon Jan 03 18:05:54 2022 UTC track file dependency using -MMD if available While here, move the SRCS variable to the configure and add the -includes in Makefile.local; it de-clutters the Makefile a bit. commit - 613c827165ea6fbd5ff7d7b6160f52a33978ed6f commit + 7c956fefc2035666770958e2cfaf278e20e6472a blob - e880c6146ab2980a0c4267a24539487e19ca96c8 blob + dc03d1d3f522da6feda4cf3234e9ef16407d825f --- Makefile +++ Makefile @@ -14,16 +14,12 @@ include Makefile.local y.tab.c: parse.y ${YACC} -b y parse.y -SRCS = gmid.c iri.c utf8.c ex.c server.c sandbox.c mime.c puny.c \ - utils.c log.c dirs.c fcgi.c proxy.c -OBJS = ${SRCS:.c=.o} y.tab.o ${COMPAT} +gmid: ${GMID_OBJS} + ${CC} ${GMID_OBJS} -o $@ ${LDFLAGS} -gmid: ${OBJS} - ${CC} ${OBJS} -o gmid ${LDFLAGS} +gg: ${GG_OBJS} + ${CC} ${GG_OBJS} -o $@ ${LDFLAGS} -gg: gg.o iri.o utf8.o ${COMPAT} - ${CC} gg.o iri.o utf8.o ${COMPAT} -o $@ ${LDFLAGS} - static: ${OBJS} ${CC} ${OBJS} -o gmid ${LDFLAGS} ${STATIC} blob - 83991aff2732ef8d9c8596649f6f6ab7f398c107 blob + 4d88d235a3b7fab68000216ca0c17d78b7cac86e --- configure +++ configure @@ -220,6 +220,12 @@ else echo 1>&3 fi +if runtest noop MMD -MMD; then + CFLAGS="${CFLAGS} -MMD" + echo "adding -MMD to CFLAGS" 1>&2 + echo "adding -MMD to CFLAGS" 1>&3 +fi + # -------- # tests for config.h @@ -407,6 +413,25 @@ echo "file config.h: written" 1>&3 # -------- # tests for Makefile.local +GMID_SRCS="dirs.c ex.c fcgi.c gmid.c iri.c log.c mime.c proxy.c puny.c" +GMID_SRCS="${GMID_SRCS} sandbox.c server.c utf8.c utils.c y.tab.c" + +GMID_OBJS= +for src in ${GMID_SRCS}; do + GMID_OBJS="${GMID_OBJS} ${src%.c}.o" +done +GMID_OBJS="${GMID_OBJS} ${COMPAT}" + +GG_SRCS="gg.c iri.c utf8.c" + +GG_OBJS= +for src in ${GG_SRCS}; do + GG_OBJS="${GG_OBJS} ${src%.c}.o" +done +GG_OBJS="${GG_OBJS} ${COMPAT}" + +ALL_SRCS="${GMID_SRCS} gg.c" + exec > Makefile.local [ -z "${BINDIR}" ] && BINDIR="${PREFIX}/bin" @@ -433,6 +458,9 @@ INSTALL_LIB = ${INSTALL_LIB} INSTALL_MAN = ${INSTALL_MAN} INSTALL_DATA = ${INSTALL_DATA} +GMID_OBJS = ${GMID_OBJS} +GG_OBJS = ${GG_OBJS} + VERSION = ${VERSION} __HEREDOC__ @@ -441,8 +469,17 @@ printf "COMPAT =" for comp in ${COMPAT}; do printf " %s/%s" "$PWD" "$comp" done -printf "\n" +printf "\n\n" +# Include dependency info +for src in ${ALL_SRCS}; do + printf "-include ${src%.c}.d\n" +done + +for comp in ${COMPAT}; do + printf "-include ${comp%.o}.d\n" +done + echo "file Makefile.local: written" 1>&2 echo "file Makefile.local: written" 1>&3