1298218Sbdrewery# $FreeBSD$
2298218Sbdrewery#
3298218Sbdrewery# This is logic for common headers shared inside of gnu/lib.  It used to
4298218Sbdrewery# live in gnu/usr.bin/cc/cc_tools/Makefile.
5298218Sbdrewery
6298218Sbdrewery.if !defined(TARGET_CPUARCH) || !defined(GCC_CPU)
7298218Sbdrewery.error ${.CURDIR}: Must include gnu/usr.bin/cc/Makefile.tgt first.
8298218Sbdrewery.endif
9298218Sbdrewery
10298218Sbdrewery#
11298218Sbdrewery# The list of headers to go into tm.h
12298218Sbdrewery#
13298218SbdreweryTARGET_INC+=	options.h
14298218Sbdrewery.if ${TARGET_CPUARCH} == "amd64"
15298218SbdreweryTARGET_INC+=	i386/biarch64.h
16298218Sbdrewery.endif
17298218Sbdrewery.if ${TARGET_CPUARCH} != "arm"
18298218SbdreweryTARGET_INC+=	${GCC_CPU}/${GCC_CPU}.h
19298218Sbdrewery.endif
20298218Sbdrewery.if ${TARGET_CPUARCH} == "i386" || ${TARGET_CPUARCH} == "amd64"
21298218SbdreweryTARGET_INC+=	${GCC_CPU}/unix.h
22298218SbdreweryTARGET_INC+=	${GCC_CPU}/att.h
23298218Sbdrewery.endif
24298218SbdreweryTARGET_INC+=	dbxelf.h
25298218SbdreweryTARGET_INC+=	elfos-undef.h
26298218SbdreweryTARGET_INC+=	elfos.h
27298218SbdreweryTARGET_INC+=	freebsd-native.h
28298218SbdreweryTARGET_INC+=	freebsd-spec.h
29298218SbdreweryTARGET_INC+=	freebsd.h
30298218Sbdrewery.if ${TARGET_CPUARCH} != "i386" && ${TARGET_CPUARCH} != "amd64"
31298218Sbdrewery. if exists(${GCCDIR}/config/${GCC_CPU}/sysv4.h)
32298218SbdreweryTARGET_INC+=	${GCC_CPU}/sysv4.h
33298218Sbdrewery. endif
34298218Sbdrewery.endif
35298218Sbdrewery.if ${TARGET_CPUARCH} == "amd64"
36298218SbdreweryTARGET_INC+=	${GCC_CPU}/x86-64.h
37298218Sbdrewery.endif
38298218Sbdrewery.if ${TARGET_CPUARCH} == "arm" || ${TARGET_CPUARCH} == "mips"
39298218SbdreweryTARGET_INC+=	${GCC_CPU}/elf.h
40298218Sbdrewery.endif
41298218Sbdrewery.if ${TARGET_CPUARCH} == "arm"
42298218SbdreweryTARGET_INC+=	${GCC_CPU}/aout.h
43298218SbdreweryTARGET_INC+=	${GCC_CPU}/bpabi.h
44298218Sbdrewery.endif
45298218Sbdrewery.if ${TARGET_ARCH} == "powerpc64"
46298218SbdreweryTARGET_INC+=	${GCC_CPU}/biarch64.h
47298218SbdreweryTARGET_INC+=    ${GCC_CPU}/default64.h
48298218Sbdrewery.endif
49298218SbdreweryTARGET_INC+=	${GCC_CPU}/freebsd.h
50298218Sbdrewery.if ${TARGET_CPUARCH} == "amd64"
51298218SbdreweryTARGET_INC+=	${GCC_CPU}/freebsd64.h
52298218Sbdrewery.endif
53298218Sbdrewery.if ${TARGET_CPUARCH} == "arm"
54298218SbdreweryTARGET_INC+=	${GCC_CPU}/arm.h
55298218Sbdrewery.endif
56298218SbdreweryTARGET_INC+=	defaults.h
57298218Sbdrewery
58298218Sbdrewery#
59298218Sbdrewery# Option files.
60298218Sbdrewery#
61298218SbdreweryOPT_FILES=	c.opt common.opt
62298218Sbdrewery
63298218Sbdrewery.if exists(${GCCDIR}/config/${GCC_CPU}/${GCC_CPU}.opt)
64298218SbdreweryOPT_FILES+=	${GCCDIR}/config/${GCC_CPU}/${GCC_CPU}.opt
65298218Sbdrewery.endif
66298218Sbdrewery
67298218Sbdrewery.if exists(${.CURDIR}/${GCC_CPU}-freebsd.opt)
68298218SbdreweryOPT_FILES+=	${.CURDIR}/${GCC_CPU}-freebsd.opt
69298218Sbdrewery.endif
70298218Sbdrewery
71298218Sbdrewery.if ${TARGET_CPUARCH} == "powerpc"
72298218SbdreweryOPT_FILES+=	${GCCDIR}/config/${GCC_CPU}/sysv4.opt
73298218Sbdrewery.endif
74298218Sbdrewery
75298218Sbdrewery.if ${TARGET_CPUARCH} == "sparc64"
76298218SbdreweryOPT_FILES+=	${GCCDIR}/config/${GCC_CPU}/long-double-switch.opt
77298218Sbdrewery.endif
78298218Sbdrewery
79298218Sbdrewery.if exists(${.CURDIR}/freebsd.opt)
80298218SbdreweryOPT_FILES+=	${.CURDIR}/freebsd.opt
81298218Sbdrewery.endif
82298218Sbdrewery
83298218Sbdrewery
84298218Sbdrewery# Options
85298218Sbdreweryoptionlist: ${OPT_FILES}
86298218Sbdrewery	LC_ALL=C awk -f ${GCCDIR}/opt-gather.awk ${.ALLSRC} > ${.TARGET}
87298218Sbdrewery
88298218Sbdreweryoptions.h:	optionlist
89298218Sbdrewery	LC_ALL=C awk -f ${GCCDIR}/opt-functions.awk \
90298218Sbdrewery	    -f ${GCCDIR}/opth-gen.awk \
91298218Sbdrewery		< ${.ALLSRC} > ${.TARGET}
92298218Sbdrewery
93298218Sbdreweryoptions.c:	optionlist
94298218Sbdrewery	LC_ALL=C awk -f ${GCCDIR}/opt-functions.awk \
95298218Sbdrewery	    -f ${GCCDIR}/optc-gen.awk \
96298218Sbdrewery		-v header_name="config.h system.h coretypes.h tm.h" \
97298218Sbdrewery		< ${.ALLSRC} > ${.TARGET}
98298218Sbdrewery
99298218Sbdrewery# Target machine config
100298218Sbdrewerytm.h:
101298218Sbdrewery	TARGET_CPU_DEFAULT="${TARGET_CPU_DEFAULT}" \
102298218Sbdrewery	HEADERS="${TARGET_INC}" \
103298218Sbdrewery	DEFINES="" \
104298218Sbdrewery	/bin/sh ${GCCDIR}/mkconfig.sh ${.TARGET}
105298218Sbdrewery.if exists(${GCCDIR}/config/${GCC_CPU}/${GCC_CPU}-modes.def)
106298218Sbdrewery	echo '#define EXTRA_MODES_FILE "${GCC_CPU}/${GCC_CPU}-modes.def"' >> ${.TARGET}
107298218Sbdrewery.endif
108298218Sbdrewery
109298218Sbdrewery# tconfig.h
110298218Sbdrewerytconfig.h:
111298218Sbdrewery	TARGET_CPU_DEFAULT="${TARGET_CPU_DEFAULT}" \
112298218Sbdrewery	HEADERS="auto-host.h ansidecl.h" \
113298218Sbdrewery	DEFINES="USED_FOR_TARGET" \
114298218Sbdrewery	/bin/sh ${GCCDIR}/mkconfig.sh ${.TARGET}
115298218Sbdrewery
116298218Sbdrewery# Version header for gcov
117298218Sbdrewerygcov-iov.h:
118298218Sbdrewery	echo "#define GCOV_VERSION ((gcov_unsigned_t)0x34303270)" >> ${.TARGET}
119298218Sbdrewery
120298218Sbdrewery# Linked headers
121298218Sbdrewerygthr-default.h: ${GCCDIR}/gthr-posix.h .NOMETA
122298218Sbdrewery	ln -sf ${.ALLSRC} ${.TARGET}
123298218Sbdrewery
124298218Sbdrewery.if ${TARGET_CPUARCH} == "arm"
125298218Sbdreweryunwind.h: ${GCCDIR}/config/arm/unwind-arm.h
126298218Sbdrewery.else
127298218Sbdreweryunwind.h: ${GCCDIR}/unwind-generic.h
128298218Sbdrewery.endif
129298218Sbdrewery
130298218Sbdreweryunwind.h: .NOMETA
131298218Sbdrewery	ln -sf ${.ALLSRC} ${.TARGET}
132298218Sbdrewery
133