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