Follow-up r297842: Rework header generation to fix always rebuilding.
This reworks the handling of common headers to just include the needed logic rather than invoke MAKE. This avoids the problem listed in r297842 and avoids other dependency tracking issues. Pointyhat to: bdrewery Reported by: Nikolai Lifanov <lifanov@mail.lifanov.com> Sponsored by: EMC / Isilon Storage Division
This commit is contained in:
parent
b964b94376
commit
09fb6bff29
@ -7,10 +7,11 @@ GCCDIR= ${.CURDIR}/../../../contrib/gcc
|
||||
GCCLIB= ${.CURDIR}/../../../contrib/gcclibs
|
||||
CCDIR= ${.CURDIR}/../../usr.bin/cc
|
||||
.include "${CCDIR}/Makefile.tgt"
|
||||
.include "${CCDIR}/cc_tools/Makefile.hdrs"
|
||||
|
||||
.PATH: ${GCCDIR}/config/${GCC_CPU} ${GCCDIR}
|
||||
|
||||
SRCS= crtstuff.c tconfig.h tm.h options.h
|
||||
SRCS= crtstuff.c ${COMMONHDRS}
|
||||
OBJS= crtbegin.o crtend.o crtbeginT.o
|
||||
SOBJS= crtbeginS.o crtendS.o
|
||||
CSTD?= gnu89
|
||||
@ -70,8 +71,7 @@ crtendS.o: ${ENDSRC}
|
||||
${CC} ${CFLAGS} -g0 -DCRT_END ${CRTS_CFLAGS} \
|
||||
-c -o ${.TARGET} ${.ALLSRC:N*.h}
|
||||
|
||||
CLEANFILES+= tm.h tconfig.h options.h optionlist cs-tconfig.h cs-tm.h
|
||||
tm.h tconfig.h options.h: ${CCDIR}/cc_tools/Makefile .PHONY
|
||||
(cd ${.CURDIR}; ${MAKE} -f ${.ALLSRC} MFILE=${.ALLSRC} GCCDIR=${GCCDIR} ${.TARGET})
|
||||
COMMONHDRS+= tm.h tconfig.h options.h
|
||||
CLEANFILES+= ${COMMONHDRS} optionlist cs-tconfig.h cs-tm.h
|
||||
|
||||
.include <bsd.lib.mk>
|
||||
|
@ -3,6 +3,7 @@
|
||||
PACKAGE= clibs
|
||||
GCCDIR= ${.CURDIR}/../../../contrib/gcc
|
||||
GCCLIB= ${.CURDIR}/../../../contrib/gcclibs
|
||||
CCDIR= ${.CURDIR}/../../usr.bin/cc
|
||||
COMPILERRTDIR= ${.CURDIR}/../../../contrib/compiler-rt
|
||||
UNWINDINCDIR= ${.CURDIR}/../../../contrib/llvm/projects/libunwind/include
|
||||
UNWINDSRCDIR= ${.CURDIR}/../../../contrib/llvm/projects/libunwind/src
|
||||
@ -17,7 +18,8 @@ SHLIBDIR?= /lib
|
||||
#
|
||||
MK_SSP= no
|
||||
|
||||
.include "${.CURDIR}/../../usr.bin/cc/Makefile.tgt"
|
||||
.include "${CCDIR}/Makefile.tgt"
|
||||
.include "${CCDIR}/cc_tools/Makefile.hdrs"
|
||||
|
||||
.if ${TARGET_CPUARCH} == "arm"
|
||||
CFLAGS+= -DTARGET_ARM_EABI
|
||||
@ -29,7 +31,7 @@ CFLAGS+= -DIN_GCC -DIN_LIBGCC2 -D__GCC_FLOAT_NOT_NEEDED \
|
||||
-DHAVE_GTHR_DEFAULT \
|
||||
-I${GCCLIB}/include \
|
||||
-I${GCCDIR}/config -I${GCCDIR} -I. \
|
||||
-I${.CURDIR}/../../usr.bin/cc/cc_tools
|
||||
-I${CCDIR}/cc_tools
|
||||
|
||||
LDFLAGS+= -nodefaultlibs
|
||||
LIBADD+= c
|
||||
@ -340,13 +342,6 @@ ${_src:R:S/$/.So/}: ${_src} ${COMMONHDRS}
|
||||
.endfor
|
||||
|
||||
|
||||
#-----------------------------------------------------------------------
|
||||
#
|
||||
# Generated headers
|
||||
#
|
||||
${COMMONHDRS}: ${.CURDIR}/../../usr.bin/cc/cc_tools/Makefile .PHONY
|
||||
(cd ${.CURDIR}; ${MAKE} -f ${.ALLSRC} MFILE=${.ALLSRC} GCCDIR=${GCCDIR} ${.TARGET})
|
||||
|
||||
CLEANFILES += ${COMMONHDRS}
|
||||
CLEANFILES += cs-*.h option*
|
||||
|
||||
|
@ -4,17 +4,20 @@ MK_PROFILE= no
|
||||
MK_SSP= no
|
||||
|
||||
.include <src.opts.mk>
|
||||
.include "${.CURDIR}/../../usr.bin/cc/Makefile.tgt"
|
||||
|
||||
GCCDIR= ${.CURDIR}/../../../contrib/gcc
|
||||
GCCLIB= ${.CURDIR}/../../../contrib/gcclibs
|
||||
CCDIR= ${.CURDIR}/../../usr.bin/cc
|
||||
.include "${CCDIR}/Makefile.tgt"
|
||||
.include "${CCDIR}/cc_tools/Makefile.hdrs"
|
||||
|
||||
.PATH: ${GCCDIR}/config/${GCC_CPU} ${GCCDIR}
|
||||
|
||||
LIB= gcov
|
||||
|
||||
CFLAGS+= -DIN_GCC -DIN_LIBGCC2 -D__GCC_FLOAT_NOT_NEEDED
|
||||
CFLAGS+= -D_PTHREADS -DGTHREAD_USE_WEAK
|
||||
CFLAGS+= -I${.CURDIR}/../../usr.bin/cc/cc_tools \
|
||||
CFLAGS+= -I${CCDIR}/cc_tools \
|
||||
-I${GCCLIB}/include -I${GCCDIR}/config -I${GCCDIR} -I.
|
||||
|
||||
.if ${TARGET_CPUARCH} == "arm"
|
||||
@ -45,9 +48,6 @@ CC_S = ${CC} -c ${CFLAGS} ${PICFLAG} -DSHARED
|
||||
COMMONHDRS= tm.h tconfig.h gcov-iov.h options.h
|
||||
CLEANFILES+= ${COMMONHDRS} cs-tm.h cs-tconfig.h options.h optionlist
|
||||
|
||||
${COMMONHDRS}: ${.CURDIR}/../../usr.bin/cc/cc_tools/Makefile .PHONY
|
||||
(cd ${.CURDIR}; ${MAKE} -f ${.ALLSRC} MFILE=${.ALLSRC} GCCDIR=${GCCDIR} ${.TARGET})
|
||||
|
||||
${OBJS} beforedepend: ${COMMONHDRS}
|
||||
|
||||
${OBJS_T}: libgcov.c
|
||||
|
@ -5,6 +5,9 @@
|
||||
CFLAGS+= -I.
|
||||
|
||||
.include "../Makefile.inc"
|
||||
# Some of the logic needed in here is defined in Makefile.hdrs as it is shared
|
||||
# with gnu/lib.
|
||||
.include "Makefile.hdrs"
|
||||
|
||||
CFLAGS+= -g
|
||||
CFLAGS+= -DGENERATOR_FILE -DHAVE_CONFIG_H
|
||||
@ -21,51 +24,6 @@ LIBIBERTY= libiberty.a
|
||||
#
|
||||
# The list of headers to go into tm.h
|
||||
#
|
||||
TARGET_INC+= options.h
|
||||
.if ${TARGET_CPUARCH} == "amd64"
|
||||
TARGET_INC+= i386/biarch64.h
|
||||
.endif
|
||||
.if ${TARGET_CPUARCH} != "arm"
|
||||
TARGET_INC+= ${GCC_CPU}/${GCC_CPU}.h
|
||||
.endif
|
||||
.if ${TARGET_CPUARCH} == "i386" || ${TARGET_CPUARCH} == "amd64"
|
||||
TARGET_INC+= ${GCC_CPU}/unix.h
|
||||
TARGET_INC+= ${GCC_CPU}/att.h
|
||||
.endif
|
||||
TARGET_INC+= dbxelf.h
|
||||
TARGET_INC+= elfos-undef.h
|
||||
TARGET_INC+= elfos.h
|
||||
TARGET_INC+= freebsd-native.h
|
||||
TARGET_INC+= freebsd-spec.h
|
||||
TARGET_INC+= freebsd.h
|
||||
.if ${TARGET_CPUARCH} != "i386" && ${TARGET_CPUARCH} != "amd64"
|
||||
. if exists(${GCCDIR}/config/${GCC_CPU}/sysv4.h)
|
||||
TARGET_INC+= ${GCC_CPU}/sysv4.h
|
||||
. endif
|
||||
.endif
|
||||
.if ${TARGET_CPUARCH} == "amd64"
|
||||
TARGET_INC+= ${GCC_CPU}/x86-64.h
|
||||
.endif
|
||||
.if ${TARGET_CPUARCH} == "arm" || ${TARGET_CPUARCH} == "mips"
|
||||
TARGET_INC+= ${GCC_CPU}/elf.h
|
||||
.endif
|
||||
.if ${TARGET_CPUARCH} == "arm"
|
||||
TARGET_INC+= ${GCC_CPU}/aout.h
|
||||
TARGET_INC+= ${GCC_CPU}/bpabi.h
|
||||
.endif
|
||||
.if ${TARGET_ARCH} == "powerpc64"
|
||||
TARGET_INC+= ${GCC_CPU}/biarch64.h
|
||||
TARGET_INC+= ${GCC_CPU}/default64.h
|
||||
.endif
|
||||
TARGET_INC+= ${GCC_CPU}/freebsd.h
|
||||
.if ${TARGET_CPUARCH} == "amd64"
|
||||
TARGET_INC+= ${GCC_CPU}/freebsd64.h
|
||||
.endif
|
||||
.if ${TARGET_CPUARCH} == "arm"
|
||||
TARGET_INC+= ${GCC_CPU}/arm.h
|
||||
.endif
|
||||
TARGET_INC+= defaults.h
|
||||
|
||||
.for H in ${TARGET_INC}
|
||||
.for D in ${GCCDIR}/config ${GCCDIR} ${.CURDIR}
|
||||
.if exists($D/$H)
|
||||
@ -155,31 +113,6 @@ TREE_DEF_FILES=
|
||||
TREE_DEF_FILES+= cp/cp-tree.def
|
||||
.endif
|
||||
|
||||
#
|
||||
# Option files.
|
||||
#
|
||||
OPT_FILES= c.opt common.opt
|
||||
|
||||
.if exists(${GCCDIR}/config/${GCC_CPU}/${GCC_CPU}.opt)
|
||||
OPT_FILES+= ${GCCDIR}/config/${GCC_CPU}/${GCC_CPU}.opt
|
||||
.endif
|
||||
|
||||
.if exists(${.CURDIR}/${GCC_CPU}-freebsd.opt)
|
||||
OPT_FILES+= ${.CURDIR}/${GCC_CPU}-freebsd.opt
|
||||
.endif
|
||||
|
||||
.if ${TARGET_CPUARCH} == "powerpc"
|
||||
OPT_FILES+= ${GCCDIR}/config/${GCC_CPU}/sysv4.opt
|
||||
.endif
|
||||
|
||||
.if ${TARGET_CPUARCH} == "sparc64"
|
||||
OPT_FILES+= ${GCCDIR}/config/${GCC_CPU}/long-double-switch.opt
|
||||
.endif
|
||||
|
||||
.if exists(${.CURDIR}/freebsd.opt)
|
||||
OPT_FILES+= ${.CURDIR}/freebsd.opt
|
||||
.endif
|
||||
|
||||
#-----------------------------------------------------------------------
|
||||
# Build rules for header files and generator tools
|
||||
|
||||
@ -207,41 +140,13 @@ GENSRCS+= bconfig.h
|
||||
CLEANFILES+= cs-bconfig.h
|
||||
|
||||
# tconfig.h
|
||||
tconfig.h:
|
||||
TARGET_CPU_DEFAULT="${TARGET_CPU_DEFAULT}" \
|
||||
HEADERS="auto-host.h ansidecl.h" \
|
||||
DEFINES="USED_FOR_TARGET" \
|
||||
/bin/sh ${GCCDIR}/mkconfig.sh ${.TARGET}
|
||||
|
||||
GENSRCS+= tconfig.h
|
||||
CLEANFILES+= cs-tconfig.h
|
||||
|
||||
# Options
|
||||
optionlist: ${OPT_FILES}
|
||||
LC_ALL=C awk -f ${GCCDIR}/opt-gather.awk ${.ALLSRC} > ${.TARGET}
|
||||
|
||||
options.h: optionlist
|
||||
LC_ALL=C awk -f ${GCCDIR}/opt-functions.awk \
|
||||
-f ${GCCDIR}/opth-gen.awk \
|
||||
< ${.ALLSRC} > ${.TARGET}
|
||||
|
||||
options.c: optionlist
|
||||
LC_ALL=C awk -f ${GCCDIR}/opt-functions.awk \
|
||||
-f ${GCCDIR}/optc-gen.awk \
|
||||
-v header_name="config.h system.h coretypes.h tm.h" \
|
||||
< ${.ALLSRC} > ${.TARGET}
|
||||
GENONLY+= optionlist options.h options.c
|
||||
|
||||
# Target machine config
|
||||
tm.h:
|
||||
TARGET_CPU_DEFAULT="${TARGET_CPU_DEFAULT}" \
|
||||
HEADERS="${TARGET_INC}" \
|
||||
DEFINES="" \
|
||||
/bin/sh ${GCCDIR}/mkconfig.sh ${.TARGET}
|
||||
.if exists(${GCCDIR}/config/${GCC_CPU}/${GCC_CPU}-modes.def)
|
||||
echo '#define EXTRA_MODES_FILE "${GCC_CPU}/${GCC_CPU}-modes.def"' >> ${.TARGET}
|
||||
.endif
|
||||
|
||||
GENSRCS+= tm.h
|
||||
CLEANFILES+= cs-tm.h
|
||||
|
||||
@ -294,9 +199,6 @@ gtyp-gen.h: ${GTFILES}
|
||||
GENSRCS+= gtyp-gen.h
|
||||
|
||||
# Version header for gcov
|
||||
gcov-iov.h:
|
||||
echo "#define GCOV_VERSION ((gcov_unsigned_t)0x34303270)" >> ${.TARGET}
|
||||
|
||||
GENSRCS+= gcov-iov.h
|
||||
|
||||
# Multilib config file
|
||||
@ -346,20 +248,8 @@ gstdint.h:
|
||||
GENSRCS+= gstdint.h
|
||||
|
||||
# Linked headers
|
||||
gthr-default.h: ${GCCDIR}/gthr-posix.h .NOMETA
|
||||
ln -sf ${.ALLSRC} ${.TARGET}
|
||||
|
||||
GENSRCS+= gthr-default.h
|
||||
|
||||
.if ${TARGET_CPUARCH} == "arm"
|
||||
unwind.h: ${GCCDIR}/config/arm/unwind-arm.h
|
||||
.else
|
||||
unwind.h: ${GCCDIR}/unwind-generic.h
|
||||
.endif
|
||||
|
||||
unwind.h: .NOMETA
|
||||
ln -sf ${.ALLSRC} ${.TARGET}
|
||||
|
||||
GENSRCS+= unwind.h
|
||||
|
||||
#
|
||||
|
132
gnu/usr.bin/cc/cc_tools/Makefile.hdrs
Normal file
132
gnu/usr.bin/cc/cc_tools/Makefile.hdrs
Normal file
@ -0,0 +1,132 @@
|
||||
# $FreeBSD$
|
||||
#
|
||||
# This is logic for common headers shared inside of gnu/lib. It used to
|
||||
# live in gnu/usr.bin/cc/cc_tools/Makefile.
|
||||
|
||||
.if !defined(TARGET_CPUARCH) || !defined(GCC_CPU)
|
||||
.error ${.CURDIR}: Must include gnu/usr.bin/cc/Makefile.tgt first.
|
||||
.endif
|
||||
|
||||
#
|
||||
# The list of headers to go into tm.h
|
||||
#
|
||||
TARGET_INC+= options.h
|
||||
.if ${TARGET_CPUARCH} == "amd64"
|
||||
TARGET_INC+= i386/biarch64.h
|
||||
.endif
|
||||
.if ${TARGET_CPUARCH} != "arm"
|
||||
TARGET_INC+= ${GCC_CPU}/${GCC_CPU}.h
|
||||
.endif
|
||||
.if ${TARGET_CPUARCH} == "i386" || ${TARGET_CPUARCH} == "amd64"
|
||||
TARGET_INC+= ${GCC_CPU}/unix.h
|
||||
TARGET_INC+= ${GCC_CPU}/att.h
|
||||
.endif
|
||||
TARGET_INC+= dbxelf.h
|
||||
TARGET_INC+= elfos-undef.h
|
||||
TARGET_INC+= elfos.h
|
||||
TARGET_INC+= freebsd-native.h
|
||||
TARGET_INC+= freebsd-spec.h
|
||||
TARGET_INC+= freebsd.h
|
||||
.if ${TARGET_CPUARCH} != "i386" && ${TARGET_CPUARCH} != "amd64"
|
||||
. if exists(${GCCDIR}/config/${GCC_CPU}/sysv4.h)
|
||||
TARGET_INC+= ${GCC_CPU}/sysv4.h
|
||||
. endif
|
||||
.endif
|
||||
.if ${TARGET_CPUARCH} == "amd64"
|
||||
TARGET_INC+= ${GCC_CPU}/x86-64.h
|
||||
.endif
|
||||
.if ${TARGET_CPUARCH} == "arm" || ${TARGET_CPUARCH} == "mips"
|
||||
TARGET_INC+= ${GCC_CPU}/elf.h
|
||||
.endif
|
||||
.if ${TARGET_CPUARCH} == "arm"
|
||||
TARGET_INC+= ${GCC_CPU}/aout.h
|
||||
TARGET_INC+= ${GCC_CPU}/bpabi.h
|
||||
.endif
|
||||
.if ${TARGET_ARCH} == "powerpc64"
|
||||
TARGET_INC+= ${GCC_CPU}/biarch64.h
|
||||
TARGET_INC+= ${GCC_CPU}/default64.h
|
||||
.endif
|
||||
TARGET_INC+= ${GCC_CPU}/freebsd.h
|
||||
.if ${TARGET_CPUARCH} == "amd64"
|
||||
TARGET_INC+= ${GCC_CPU}/freebsd64.h
|
||||
.endif
|
||||
.if ${TARGET_CPUARCH} == "arm"
|
||||
TARGET_INC+= ${GCC_CPU}/arm.h
|
||||
.endif
|
||||
TARGET_INC+= defaults.h
|
||||
|
||||
#
|
||||
# Option files.
|
||||
#
|
||||
OPT_FILES= c.opt common.opt
|
||||
|
||||
.if exists(${GCCDIR}/config/${GCC_CPU}/${GCC_CPU}.opt)
|
||||
OPT_FILES+= ${GCCDIR}/config/${GCC_CPU}/${GCC_CPU}.opt
|
||||
.endif
|
||||
|
||||
.if exists(${.CURDIR}/${GCC_CPU}-freebsd.opt)
|
||||
OPT_FILES+= ${.CURDIR}/${GCC_CPU}-freebsd.opt
|
||||
.endif
|
||||
|
||||
.if ${TARGET_CPUARCH} == "powerpc"
|
||||
OPT_FILES+= ${GCCDIR}/config/${GCC_CPU}/sysv4.opt
|
||||
.endif
|
||||
|
||||
.if ${TARGET_CPUARCH} == "sparc64"
|
||||
OPT_FILES+= ${GCCDIR}/config/${GCC_CPU}/long-double-switch.opt
|
||||
.endif
|
||||
|
||||
.if exists(${.CURDIR}/freebsd.opt)
|
||||
OPT_FILES+= ${.CURDIR}/freebsd.opt
|
||||
.endif
|
||||
|
||||
|
||||
# Options
|
||||
optionlist: ${OPT_FILES}
|
||||
LC_ALL=C awk -f ${GCCDIR}/opt-gather.awk ${.ALLSRC} > ${.TARGET}
|
||||
|
||||
options.h: optionlist
|
||||
LC_ALL=C awk -f ${GCCDIR}/opt-functions.awk \
|
||||
-f ${GCCDIR}/opth-gen.awk \
|
||||
< ${.ALLSRC} > ${.TARGET}
|
||||
|
||||
options.c: optionlist
|
||||
LC_ALL=C awk -f ${GCCDIR}/opt-functions.awk \
|
||||
-f ${GCCDIR}/optc-gen.awk \
|
||||
-v header_name="config.h system.h coretypes.h tm.h" \
|
||||
< ${.ALLSRC} > ${.TARGET}
|
||||
|
||||
# Target machine config
|
||||
tm.h:
|
||||
TARGET_CPU_DEFAULT="${TARGET_CPU_DEFAULT}" \
|
||||
HEADERS="${TARGET_INC}" \
|
||||
DEFINES="" \
|
||||
/bin/sh ${GCCDIR}/mkconfig.sh ${.TARGET}
|
||||
.if exists(${GCCDIR}/config/${GCC_CPU}/${GCC_CPU}-modes.def)
|
||||
echo '#define EXTRA_MODES_FILE "${GCC_CPU}/${GCC_CPU}-modes.def"' >> ${.TARGET}
|
||||
.endif
|
||||
|
||||
# tconfig.h
|
||||
tconfig.h:
|
||||
TARGET_CPU_DEFAULT="${TARGET_CPU_DEFAULT}" \
|
||||
HEADERS="auto-host.h ansidecl.h" \
|
||||
DEFINES="USED_FOR_TARGET" \
|
||||
/bin/sh ${GCCDIR}/mkconfig.sh ${.TARGET}
|
||||
|
||||
# Version header for gcov
|
||||
gcov-iov.h:
|
||||
echo "#define GCOV_VERSION ((gcov_unsigned_t)0x34303270)" >> ${.TARGET}
|
||||
|
||||
# Linked headers
|
||||
gthr-default.h: ${GCCDIR}/gthr-posix.h .NOMETA
|
||||
ln -sf ${.ALLSRC} ${.TARGET}
|
||||
|
||||
.if ${TARGET_CPUARCH} == "arm"
|
||||
unwind.h: ${GCCDIR}/config/arm/unwind-arm.h
|
||||
.else
|
||||
unwind.h: ${GCCDIR}/unwind-generic.h
|
||||
.endif
|
||||
|
||||
unwind.h: .NOMETA
|
||||
ln -sf ${.ALLSRC} ${.TARGET}
|
||||
|
Loading…
Reference in New Issue
Block a user