xref: /dragonfly/gnu/lib/gcc47/libgcc/Makefile (revision 77b0c609)
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
31beforedepend: cc_prep cc_tools csu
32.ORDER: cc_prep cc_tools csu ${SRCS}
33
34# This is kinda messy, but it's easier then rearranging the top level
35# build.  gcc's libgcc generates source files which depend on generated
36# header files, which means we have to generate our tools set before
37# we can build libgcc.  The toolset is normally built afterwards.
38#
39# XXX for the world stage we could theoretically use the cc_tools generated
40# in the btools stage, but it's easier to regenerate them.
41#
42cc_prep: .PHONY
43	cd ${CCDIR}/cc_prep; ${MAKE} depend
44
45cc_tools: .PHONY
46	cd ${CCDIR}/cc_tools; ${MAKE} depend
47
48csu: .PHONY
49	cd ${.CURDIR}/../csu; ${MAKE} depend
50
51.if ${GCC_CPU} == "i386"
52EXTRA_HEADERS = \
53	${GCCDIR}/gcc/config/i386/ammintrin.h \
54	${GCCDIR}/gcc/config/i386/avx2intrin.h \
55	${GCCDIR}/gcc/config/i386/avxintrin.h \
56	${GCCDIR}/gcc/config/i386/bmi2intrin.h \
57	${GCCDIR}/gcc/config/i386/bmiintrin.h \
58	${GCCDIR}/gcc/config/i386/bmmintrin.h \
59	${GCCDIR}/gcc/config/i386/emmintrin.h \
60	${GCCDIR}/gcc/config/i386/f16cintrin.h \
61	${GCCDIR}/gcc/config/i386/fma4intrin.h \
62	${GCCDIR}/gcc/config/i386/fmaintrin.h \
63	${GCCDIR}/gcc/config/i386/ia32intrin.h \
64	${GCCDIR}/gcc/config/i386/immintrin.h \
65	${GCCDIR}/gcc/config/i386/lwpintrin.h \
66	${GCCDIR}/gcc/config/i386/lzcntintrin.h \
67	${GCCDIR}/gcc/config/i386/mmintrin.h \
68	${GCCDIR}/gcc/config/i386/nmmintrin.h \
69	${GCCDIR}/gcc/config/i386/pmmintrin.h \
70	${GCCDIR}/gcc/config/i386/popcntintrin.h \
71	${GCCDIR}/gcc/config/i386/smmintrin.h \
72	${GCCDIR}/gcc/config/i386/tbmintrin.h \
73	${GCCDIR}/gcc/config/i386/tmmintrin.h \
74	${GCCDIR}/gcc/config/i386/wmmintrin.h \
75	${GCCDIR}/gcc/config/i386/x86intrin.h \
76	${GCCDIR}/gcc/config/i386/xmmintrin.h \
77	${GCCDIR}/gcc/config/i386/xopintrin.h \
78	${GCCDIR}/gcc/config/i386/cpuid.h \
79	${GCCDIR}/gcc/config/i386/mm3dnow.h \
80	${GCCDIR}/gcc/config/i386/cross-stdarg.h \
81	${GCCDIR}/gcc/ginclude/tgmath.h
82
83#generated sources
84SRCS+=	mm_malloc.h unwind.h
85
86INCS=		${EXTRA_HEADERS} mm_malloc.h unwind.h
87INCSDIR=	/usr/libdata/gcc${GCCSHORTVER}
88.endif
89
90mm_malloc.h: ${GCCDIR}/gcc/config/i386/gmm_malloc.h
91	cp ${.ALLSRC} ${.TARGET}
92
93gthr-default.h: gthr-posix.h
94	cp ${.ALLSRC} ${.TARGET}
95
96sfp-machine.h: ${GCCDIR}/libgcc/config/i386/sfp-machine.h
97	cp ${.ALLSRC} ${.TARGET}
98
99enable-execute-stack.c: enable-execute-stack-freebsd.c
100	cp ${.ALLSRC} ${.TARGET}
101
102unwind.h: unwind-generic.h
103	cp ${.ALLSRC} ${.TARGET}
104
105CLEANFILES+=	mm_malloc.h unwind.h gthr-default.h enable-execute-stack.c
106
107.include <bsd.lib.mk>
108