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