xref: /dflybsd-src/gnu/lib/gcc80/libgcc/Makefile (revision 2233c95bde434daa782d51440e2219ed852a02dd)
1*2233c95bSzrj.include "../Makefile.inc"
2*2233c95bSzrj.include "Makefile.src"
3*2233c95bSzrj.PATH: ${GCCDIR}/libgcc
4*2233c95bSzrj.PATH: ${GCCDIR}/libgcc/soft-fp
5*2233c95bSzrj.PATH: ${GCCDIR}/libgcc/config/i386
6*2233c95bSzrj
7*2233c95bSzrjLIB=		gcc
8*2233c95bSzrj
9*2233c95bSzrj# this is a special case
10*2233c95bSzrjNOSHARED=	YES
11*2233c95bSzrj
12*2233c95bSzrjCFLAGS+=	-I${.CURDIR}
13*2233c95bSzrjCFLAGS+=	-I${.OBJDIR}
14*2233c95bSzrjCFLAGS+=	-I${GCCDIR}/libgcc
15*2233c95bSzrjCFLAGS+=	-I${GCCDIR}/libgcc/config/i386
16*2233c95bSzrjCFLAGS+=	-I../csu
17*2233c95bSzrjCFLAGS+=	-fbuilding-libgcc
18*2233c95bSzrjCFLAGS+=	-fno-stack-protector
19*2233c95bSzrjCFLAGS+=	-fvisibility=hidden
20*2233c95bSzrjCFLAGS+=	-fpic
21*2233c95bSzrjCFLAGS+=	-DPIC
22*2233c95bSzrjCFLAGS+=	-DIN_GCC
23*2233c95bSzrjCFLAGS+=	-DIN_LIBGCC2
24*2233c95bSzrjCFLAGS+=	-DHAVE_CC_TLS
25*2233c95bSzrjCFLAGS+=	-DHIDE_EXPORTS
26*2233c95bSzrj
27*2233c95bSzrj# FUNCS and SOFTFUNCS defined in Makefile.src
28*2233c95bSzrjOBJS=		${FUNCS:S/$/.o/} ${FUNCS_ST:S/$/.o/}
29*2233c95bSzrjSRCS=		${SOFTFUNCS:S/$/.c/}
30*2233c95bSzrj
31*2233c95bSzrj#generated sources
32*2233c95bSzrjSRCS+=		gthr-default.h sfp-machine.h
33*2233c95bSzrj
34*2233c95bSzrj# GCC's libgcc generates source files which depend on generated
35*2233c95bSzrj# header files, which means we have to generate our tools set before
36*2233c95bSzrj# we can build libgcc.  The toolset is normally built afterwards.
37*2233c95bSzrj#
38*2233c95bSzrj# XXX for the world stage we could theoretically use the cc_tools generated
39*2233c95bSzrj# in the btools stage, but it's easier to regenerate them.
40*2233c95bSzrj#
41*2233c95bSzrj# Assumed to be built prior to this makefile:
42*2233c95bSzrj#   gnu/usr.bin/cc80/cc_prep
43*2233c95bSzrj#   gnu/usr.bin/cc80/cc_tools
44*2233c95bSzrj#   gnu/lib/gcc80/csu
45*2233c95bSzrj
46*2233c95bSzrj# derived from generated build/gcc/Makefile
47*2233c95bSzrjEXTRA_HEADERS = \
48*2233c95bSzrj	${GCCDIR}/gcc/config/i386/cpuid.h \
49*2233c95bSzrj	${GCCDIR}/gcc/config/i386/mmintrin.h \
50*2233c95bSzrj	${GCCDIR}/gcc/config/i386/mm3dnow.h \
51*2233c95bSzrj	${GCCDIR}/gcc/config/i386/xmmintrin.h \
52*2233c95bSzrj	${GCCDIR}/gcc/config/i386/emmintrin.h \
53*2233c95bSzrj	${GCCDIR}/gcc/config/i386/pmmintrin.h \
54*2233c95bSzrj	${GCCDIR}/gcc/config/i386/tmmintrin.h \
55*2233c95bSzrj	${GCCDIR}/gcc/config/i386/ammintrin.h \
56*2233c95bSzrj	${GCCDIR}/gcc/config/i386/smmintrin.h \
57*2233c95bSzrj	${GCCDIR}/gcc/config/i386/nmmintrin.h \
58*2233c95bSzrj	${GCCDIR}/gcc/config/i386/bmmintrin.h \
59*2233c95bSzrj	${GCCDIR}/gcc/config/i386/fma4intrin.h \
60*2233c95bSzrj	${GCCDIR}/gcc/config/i386/wmmintrin.h \
61*2233c95bSzrj	${GCCDIR}/gcc/config/i386/immintrin.h \
62*2233c95bSzrj	${GCCDIR}/gcc/config/i386/x86intrin.h \
63*2233c95bSzrj	${GCCDIR}/gcc/config/i386/avxintrin.h \
64*2233c95bSzrj	${GCCDIR}/gcc/config/i386/xopintrin.h \
65*2233c95bSzrj	${GCCDIR}/gcc/config/i386/ia32intrin.h \
66*2233c95bSzrj	${GCCDIR}/gcc/config/i386/cross-stdarg.h \
67*2233c95bSzrj	${GCCDIR}/gcc/config/i386/lwpintrin.h \
68*2233c95bSzrj	${GCCDIR}/gcc/config/i386/popcntintrin.h \
69*2233c95bSzrj	${GCCDIR}/gcc/config/i386/lzcntintrin.h \
70*2233c95bSzrj	${GCCDIR}/gcc/config/i386/bmiintrin.h \
71*2233c95bSzrj	${GCCDIR}/gcc/config/i386/bmi2intrin.h \
72*2233c95bSzrj	${GCCDIR}/gcc/config/i386/tbmintrin.h \
73*2233c95bSzrj	${GCCDIR}/gcc/config/i386/avx2intrin.h \
74*2233c95bSzrj	${GCCDIR}/gcc/config/i386/avx512fintrin.h \
75*2233c95bSzrj	${GCCDIR}/gcc/config/i386/fmaintrin.h \
76*2233c95bSzrj	${GCCDIR}/gcc/config/i386/f16cintrin.h \
77*2233c95bSzrj	${GCCDIR}/gcc/config/i386/rtmintrin.h \
78*2233c95bSzrj	${GCCDIR}/gcc/config/i386/xtestintrin.h \
79*2233c95bSzrj	${GCCDIR}/gcc/config/i386/rdseedintrin.h \
80*2233c95bSzrj	${GCCDIR}/gcc/config/i386/prfchwintrin.h \
81*2233c95bSzrj	${GCCDIR}/gcc/config/i386/adxintrin.h \
82*2233c95bSzrj	${GCCDIR}/gcc/config/i386/fxsrintrin.h \
83*2233c95bSzrj	${GCCDIR}/gcc/config/i386/xsaveintrin.h \
84*2233c95bSzrj	${GCCDIR}/gcc/config/i386/xsaveoptintrin.h \
85*2233c95bSzrj	${GCCDIR}/gcc/config/i386/avx512cdintrin.h \
86*2233c95bSzrj	${GCCDIR}/gcc/config/i386/avx512erintrin.h \
87*2233c95bSzrj	${GCCDIR}/gcc/config/i386/avx512pfintrin.h \
88*2233c95bSzrj	${GCCDIR}/gcc/config/i386/shaintrin.h \
89*2233c95bSzrj	${GCCDIR}/gcc/config/i386/clflushoptintrin.h \
90*2233c95bSzrj	${GCCDIR}/gcc/config/i386/xsavecintrin.h \
91*2233c95bSzrj	${GCCDIR}/gcc/config/i386/xsavesintrin.h \
92*2233c95bSzrj	${GCCDIR}/gcc/config/i386/avx512dqintrin.h \
93*2233c95bSzrj	${GCCDIR}/gcc/config/i386/avx512bwintrin.h \
94*2233c95bSzrj	${GCCDIR}/gcc/config/i386/avx512vlintrin.h \
95*2233c95bSzrj	${GCCDIR}/gcc/config/i386/avx512vlbwintrin.h \
96*2233c95bSzrj	${GCCDIR}/gcc/config/i386/avx512vldqintrin.h \
97*2233c95bSzrj	${GCCDIR}/gcc/config/i386/avx512ifmaintrin.h \
98*2233c95bSzrj	${GCCDIR}/gcc/config/i386/avx512ifmavlintrin.h \
99*2233c95bSzrj	${GCCDIR}/gcc/config/i386/avx512vbmiintrin.h \
100*2233c95bSzrj	${GCCDIR}/gcc/config/i386/avx512vbmivlintrin.h \
101*2233c95bSzrj	${GCCDIR}/gcc/config/i386/avx5124fmapsintrin.h \
102*2233c95bSzrj	${GCCDIR}/gcc/config/i386/avx5124vnniwintrin.h \
103*2233c95bSzrj	${GCCDIR}/gcc/config/i386/avx512vpopcntdqintrin.h \
104*2233c95bSzrj	${GCCDIR}/gcc/config/i386/clwbintrin.h \
105*2233c95bSzrj	${GCCDIR}/gcc/config/i386/mwaitxintrin.h \
106*2233c95bSzrj	${GCCDIR}/gcc/config/i386/clzerointrin.h \
107*2233c95bSzrj	${GCCDIR}/gcc/config/i386/pkuintrin.h \
108*2233c95bSzrj	${GCCDIR}/gcc/config/i386/sgxintrin.h \
109*2233c95bSzrj	${GCCDIR}/gcc/config/i386/cetintrin.h \
110*2233c95bSzrj	${GCCDIR}/gcc/config/i386/gfniintrin.h \
111*2233c95bSzrj	${GCCDIR}/gcc/config/i386/cet.h \
112*2233c95bSzrj	${GCCDIR}/gcc/config/i386/avx512vbmi2intrin.h \
113*2233c95bSzrj	${GCCDIR}/gcc/config/i386/avx512vbmi2vlintrin.h \
114*2233c95bSzrj	${GCCDIR}/gcc/config/i386/avx512vnniintrin.h \
115*2233c95bSzrj	${GCCDIR}/gcc/config/i386/avx512vnnivlintrin.h \
116*2233c95bSzrj	${GCCDIR}/gcc/config/i386/vaesintrin.h \
117*2233c95bSzrj	${GCCDIR}/gcc/config/i386/vpclmulqdqintrin.h \
118*2233c95bSzrj	${GCCDIR}/gcc/config/i386/avx512vpopcntdqvlintrin.h \
119*2233c95bSzrj	${GCCDIR}/gcc/config/i386/avx512bitalgintrin.h \
120*2233c95bSzrj	${GCCDIR}/gcc/config/i386/pconfigintrin.h \
121*2233c95bSzrj	${GCCDIR}/gcc/config/i386/wbnoinvdintrin.h \
122*2233c95bSzrj	${GCCDIR}/gcc/config/i386/movdirintrin.h \
123*2233c95bSzrj	${GCCDIR}/gcc/ginclude/stdatomic.h \
124*2233c95bSzrj	${GCCDIR}/gcc/ginclude/stdfix.h
125*2233c95bSzrj
126*2233c95bSzrj#generated sources
127*2233c95bSzrjSRCS+=	mm_malloc.h unwind.h
128*2233c95bSzrj
129*2233c95bSzrjINCS=		${EXTRA_HEADERS} mm_malloc.h unwind.h
130*2233c95bSzrjINCSDIR=	/usr/libdata/gcc${GCCSHORTVER}
131*2233c95bSzrj
132*2233c95bSzrjmm_malloc.h: ${GCCDIR}/gcc/config/i386/gmm_malloc.h
133*2233c95bSzrj	cp ${.ALLSRC} ${.TARGET}
134*2233c95bSzrj
135*2233c95bSzrjgthr-default.h: gthr-posix.h
136*2233c95bSzrj	cp ${.ALLSRC} ${.TARGET}
137*2233c95bSzrj
138*2233c95bSzrjsfp-machine.h: ${GCCDIR}/libgcc/config/i386/sfp-machine.h
139*2233c95bSzrj	cp ${.ALLSRC} ${.TARGET}
140*2233c95bSzrj
141*2233c95bSzrjenable-execute-stack.c: enable-execute-stack-mprotect.c
142*2233c95bSzrj	cp ${.ALLSRC} ${.TARGET}
143*2233c95bSzrj
144*2233c95bSzrjunwind.h: unwind-generic.h
145*2233c95bSzrj	cp ${.ALLSRC} ${.TARGET}
146*2233c95bSzrj
147*2233c95bSzrjCLEANFILES+=	mm_malloc.h unwind.h gthr-default.h enable-execute-stack.c
148*2233c95bSzrj
149*2233c95bSzrj.include <bsd.lib.mk>
150