1b450dd39SJohn Marino.include "../Makefile.inc" 2b450dd39SJohn Marino.include "Makefile.src" 3b450dd39SJohn Marino.PATH: ${GCCDIR}/libgcc 4b450dd39SJohn Marino.PATH: ${GCCDIR}/libgcc/soft-fp 5b450dd39SJohn Marino.PATH: ${GCCDIR}/libgcc/config/i386 6b450dd39SJohn Marino 7b450dd39SJohn MarinoLIB= gcc 8b450dd39SJohn Marino 9b450dd39SJohn MarinoCFLAGS+= -I${.CURDIR} 10b450dd39SJohn MarinoCFLAGS+= -I${.OBJDIR} 11b450dd39SJohn MarinoCFLAGS+= -I${GCCDIR}/libgcc 12b450dd39SJohn MarinoCFLAGS+= -I${GCCDIR}/libgcc/config/i386 13b450dd39SJohn MarinoCFLAGS+= -I../csu 14b450dd39SJohn MarinoCFLAGS+= -fbuilding-libgcc 15b450dd39SJohn MarinoCFLAGS+= -fno-stack-protector 16b450dd39SJohn MarinoCFLAGS+= -fvisibility=hidden 1716348f31SJohn MarinoCFLAGS+= -fpic 1816348f31SJohn MarinoCFLAGS+= -DPIC 19b450dd39SJohn MarinoCFLAGS+= -DIN_GCC 20b450dd39SJohn MarinoCFLAGS+= -DIN_LIBGCC2 21b450dd39SJohn MarinoCFLAGS+= -DHAVE_CC_TLS 22b450dd39SJohn MarinoCFLAGS+= -DHIDE_EXPORTS 23b450dd39SJohn Marino 24b450dd39SJohn Marino# FUNCS and SOFTFUNCS defined in Makefile.src 25b450dd39SJohn MarinoSRCS+= ${FUNCS:S/$/.c/} ${SOFTFUNCS:S/$/.c/} 26b450dd39SJohn MarinoCLEANFILES+= ${FUNCS:S/$/.c/} 27b450dd39SJohn Marino 28b450dd39SJohn Marino#generated sources 29b450dd39SJohn MarinoSRCS+= gthr-default.h sfp-machine.h 30b450dd39SJohn Marino 3164ed7155SJohn Marino# GCC's libgcc generates source files which depend on generated 32b450dd39SJohn Marino# header files, which means we have to generate our tools set before 33b450dd39SJohn Marino# we can build libgcc. The toolset is normally built afterwards. 34b450dd39SJohn Marino# 35b450dd39SJohn Marino# XXX for the world stage we could theoretically use the cc_tools generated 36b450dd39SJohn Marino# in the btools stage, but it's easier to regenerate them. 37b450dd39SJohn Marino# 3864ed7155SJohn Marino# Assumed to be built prior to this makefile: 3964ed7155SJohn Marino# gnu/usr.bin/cc47/cc_prep 4064ed7155SJohn Marino# gnu/usr.bin/cc47/cc_tools 4164ed7155SJohn Marino# gnu/lib/gcc47/csu 42b450dd39SJohn Marino 43b450dd39SJohn Marino.if ${GCC_CPU} == "i386" 44b450dd39SJohn MarinoEXTRA_HEADERS = \ 45b450dd39SJohn Marino ${GCCDIR}/gcc/config/i386/ammintrin.h \ 46b450dd39SJohn Marino ${GCCDIR}/gcc/config/i386/avx2intrin.h \ 47b450dd39SJohn Marino ${GCCDIR}/gcc/config/i386/avxintrin.h \ 48b450dd39SJohn Marino ${GCCDIR}/gcc/config/i386/bmi2intrin.h \ 49b450dd39SJohn Marino ${GCCDIR}/gcc/config/i386/bmiintrin.h \ 50b450dd39SJohn Marino ${GCCDIR}/gcc/config/i386/bmmintrin.h \ 51b450dd39SJohn Marino ${GCCDIR}/gcc/config/i386/emmintrin.h \ 52b450dd39SJohn Marino ${GCCDIR}/gcc/config/i386/f16cintrin.h \ 53b450dd39SJohn Marino ${GCCDIR}/gcc/config/i386/fma4intrin.h \ 54b450dd39SJohn Marino ${GCCDIR}/gcc/config/i386/fmaintrin.h \ 55b450dd39SJohn Marino ${GCCDIR}/gcc/config/i386/ia32intrin.h \ 56b450dd39SJohn Marino ${GCCDIR}/gcc/config/i386/immintrin.h \ 57b450dd39SJohn Marino ${GCCDIR}/gcc/config/i386/lwpintrin.h \ 58b450dd39SJohn Marino ${GCCDIR}/gcc/config/i386/lzcntintrin.h \ 59b450dd39SJohn Marino ${GCCDIR}/gcc/config/i386/mmintrin.h \ 60b450dd39SJohn Marino ${GCCDIR}/gcc/config/i386/nmmintrin.h \ 61b450dd39SJohn Marino ${GCCDIR}/gcc/config/i386/pmmintrin.h \ 62b450dd39SJohn Marino ${GCCDIR}/gcc/config/i386/popcntintrin.h \ 63b450dd39SJohn Marino ${GCCDIR}/gcc/config/i386/smmintrin.h \ 64b450dd39SJohn Marino ${GCCDIR}/gcc/config/i386/tbmintrin.h \ 65b450dd39SJohn Marino ${GCCDIR}/gcc/config/i386/tmmintrin.h \ 66b450dd39SJohn Marino ${GCCDIR}/gcc/config/i386/wmmintrin.h \ 67b450dd39SJohn Marino ${GCCDIR}/gcc/config/i386/x86intrin.h \ 68b450dd39SJohn Marino ${GCCDIR}/gcc/config/i386/xmmintrin.h \ 69b450dd39SJohn Marino ${GCCDIR}/gcc/config/i386/xopintrin.h \ 70b450dd39SJohn Marino ${GCCDIR}/gcc/config/i386/cpuid.h \ 71b450dd39SJohn Marino ${GCCDIR}/gcc/config/i386/mm3dnow.h \ 72*434e73e2SSascha Wildner ${GCCDIR}/gcc/config/i386/cross-stdarg.h 73b450dd39SJohn Marino 74b450dd39SJohn Marino#generated sources 75b450dd39SJohn MarinoSRCS+= mm_malloc.h unwind.h 76b450dd39SJohn Marino 77b450dd39SJohn MarinoINCS= ${EXTRA_HEADERS} mm_malloc.h unwind.h 78b450dd39SJohn MarinoINCSDIR= /usr/libdata/gcc${GCCSHORTVER} 79b450dd39SJohn Marino.endif 80b450dd39SJohn Marino 81b450dd39SJohn Marinomm_malloc.h: ${GCCDIR}/gcc/config/i386/gmm_malloc.h 82b450dd39SJohn Marino cp ${.ALLSRC} ${.TARGET} 83b450dd39SJohn Marino 84b450dd39SJohn Marinogthr-default.h: gthr-posix.h 85b450dd39SJohn Marino cp ${.ALLSRC} ${.TARGET} 86b450dd39SJohn Marino 87b450dd39SJohn Marinosfp-machine.h: ${GCCDIR}/libgcc/config/i386/sfp-machine.h 88b450dd39SJohn Marino cp ${.ALLSRC} ${.TARGET} 89b450dd39SJohn Marino 90b450dd39SJohn Marinoenable-execute-stack.c: enable-execute-stack-freebsd.c 91b450dd39SJohn Marino cp ${.ALLSRC} ${.TARGET} 92b450dd39SJohn Marino 93b450dd39SJohn Marinounwind.h: unwind-generic.h 94b450dd39SJohn Marino cp ${.ALLSRC} ${.TARGET} 95b450dd39SJohn Marino 96b450dd39SJohn MarinoCLEANFILES+= mm_malloc.h unwind.h gthr-default.h enable-execute-stack.c 97b450dd39SJohn Marino 98b450dd39SJohn Marino.include <bsd.lib.mk> 99