xref: /freebsd/lib/libcompiler_rt/Makefile (revision a3cf0ef5a295c885c895fabfd56470c0d1db322d)
1*a3cf0ef5SEd Schouten# $FreeBSD$
2*a3cf0ef5SEd Schouten
3*a3cf0ef5SEd Schouten.include <bsd.own.mk>
4*a3cf0ef5SEd Schouten
5*a3cf0ef5SEd SchoutenLIB=	compiler_rt
6*a3cf0ef5SEd SchoutenNO_PIC=
7*a3cf0ef5SEd SchoutenWARNS?=	2
8*a3cf0ef5SEd Schouten
9*a3cf0ef5SEd SchoutenCFLAGS+=${PICFLAG}
10*a3cf0ef5SEd Schouten
11*a3cf0ef5SEd Schouten.if ${MACHINE_CPUARCH} == "amd64"
12*a3cf0ef5SEd SchoutenCRTARCH=x86_64
13*a3cf0ef5SEd Schouten.else
14*a3cf0ef5SEd SchoutenCRTARCH=${MACHINE_CPUARCH}
15*a3cf0ef5SEd Schouten.endif
16*a3cf0ef5SEd Schouten
17*a3cf0ef5SEd SchoutenCRTSRC=${.CURDIR}/../../contrib/compiler-rt/lib
18*a3cf0ef5SEd Schouten
19*a3cf0ef5SEd Schouten.PATH: ${CRTSRC}/${CRTARCH} ${CRTSRC}
20*a3cf0ef5SEd Schouten
21*a3cf0ef5SEd SchoutenSRCF=	absvdi2 \
22*a3cf0ef5SEd Schouten	absvsi2 \
23*a3cf0ef5SEd Schouten	absvti2 \
24*a3cf0ef5SEd Schouten	addvdi3 \
25*a3cf0ef5SEd Schouten	addvsi3 \
26*a3cf0ef5SEd Schouten	addvti3 \
27*a3cf0ef5SEd Schouten	ashldi3 \
28*a3cf0ef5SEd Schouten	ashlti3 \
29*a3cf0ef5SEd Schouten	ashrdi3 \
30*a3cf0ef5SEd Schouten	ashrti3 \
31*a3cf0ef5SEd Schouten	clear_cache \
32*a3cf0ef5SEd Schouten	clzdi2 \
33*a3cf0ef5SEd Schouten	clzsi2 \
34*a3cf0ef5SEd Schouten	clzti2 \
35*a3cf0ef5SEd Schouten	cmpdi2 \
36*a3cf0ef5SEd Schouten	cmpti2 \
37*a3cf0ef5SEd Schouten	comparedf2 \
38*a3cf0ef5SEd Schouten	comparesf2 \
39*a3cf0ef5SEd Schouten	ctzdi2 \
40*a3cf0ef5SEd Schouten	ctzsi2 \
41*a3cf0ef5SEd Schouten	ctzti2 \
42*a3cf0ef5SEd Schouten	divdc3 \
43*a3cf0ef5SEd Schouten	divdi3 \
44*a3cf0ef5SEd Schouten	divsc3 \
45*a3cf0ef5SEd Schouten	divti3 \
46*a3cf0ef5SEd Schouten	divxc3 \
47*a3cf0ef5SEd Schouten	enable_execute_stack \
48*a3cf0ef5SEd Schouten	eprintf \
49*a3cf0ef5SEd Schouten	ffsdi2 \
50*a3cf0ef5SEd Schouten	ffsti2 \
51*a3cf0ef5SEd Schouten	fixdfdi \
52*a3cf0ef5SEd Schouten	fixdfti \
53*a3cf0ef5SEd Schouten	fixsfdi \
54*a3cf0ef5SEd Schouten	fixsfti \
55*a3cf0ef5SEd Schouten	fixunsdfdi \
56*a3cf0ef5SEd Schouten	fixunsdfsi \
57*a3cf0ef5SEd Schouten	fixunsdfti \
58*a3cf0ef5SEd Schouten	fixunssfdi \
59*a3cf0ef5SEd Schouten	fixunssfsi \
60*a3cf0ef5SEd Schouten	fixunssfti \
61*a3cf0ef5SEd Schouten	fixunsxfdi \
62*a3cf0ef5SEd Schouten	fixunsxfsi \
63*a3cf0ef5SEd Schouten	fixunsxfti \
64*a3cf0ef5SEd Schouten	fixxfdi \
65*a3cf0ef5SEd Schouten	fixxfti \
66*a3cf0ef5SEd Schouten	floatdidf \
67*a3cf0ef5SEd Schouten	floatdisf \
68*a3cf0ef5SEd Schouten	floatdixf \
69*a3cf0ef5SEd Schouten	floattidf \
70*a3cf0ef5SEd Schouten	floattisf \
71*a3cf0ef5SEd Schouten	floattixf \
72*a3cf0ef5SEd Schouten	floatundidf \
73*a3cf0ef5SEd Schouten	floatundisf \
74*a3cf0ef5SEd Schouten	floatundixf \
75*a3cf0ef5SEd Schouten	floatunsidf \
76*a3cf0ef5SEd Schouten	floatunsisf \
77*a3cf0ef5SEd Schouten	floatuntidf \
78*a3cf0ef5SEd Schouten	floatuntisf \
79*a3cf0ef5SEd Schouten	floatuntixf \
80*a3cf0ef5SEd Schouten	lshrdi3 \
81*a3cf0ef5SEd Schouten	lshrti3 \
82*a3cf0ef5SEd Schouten	moddi3 \
83*a3cf0ef5SEd Schouten	modti3 \
84*a3cf0ef5SEd Schouten	muldc3 \
85*a3cf0ef5SEd Schouten	muldi3 \
86*a3cf0ef5SEd Schouten	mulsc3 \
87*a3cf0ef5SEd Schouten	multi3 \
88*a3cf0ef5SEd Schouten	mulvdi3 \
89*a3cf0ef5SEd Schouten	mulvsi3 \
90*a3cf0ef5SEd Schouten	mulvti3 \
91*a3cf0ef5SEd Schouten	mulxc3 \
92*a3cf0ef5SEd Schouten	negdf2 \
93*a3cf0ef5SEd Schouten	negdi2 \
94*a3cf0ef5SEd Schouten	negsf2 \
95*a3cf0ef5SEd Schouten	negti2 \
96*a3cf0ef5SEd Schouten	negvdi2 \
97*a3cf0ef5SEd Schouten	negvsi2 \
98*a3cf0ef5SEd Schouten	negvti2 \
99*a3cf0ef5SEd Schouten	paritydi2 \
100*a3cf0ef5SEd Schouten	paritysi2 \
101*a3cf0ef5SEd Schouten	parityti2 \
102*a3cf0ef5SEd Schouten	popcountdi2 \
103*a3cf0ef5SEd Schouten	popcountsi2 \
104*a3cf0ef5SEd Schouten	popcountti2 \
105*a3cf0ef5SEd Schouten	powidf2 \
106*a3cf0ef5SEd Schouten	powisf2 \
107*a3cf0ef5SEd Schouten	powitf2 \
108*a3cf0ef5SEd Schouten	powixf2 \
109*a3cf0ef5SEd Schouten	subvdi3 \
110*a3cf0ef5SEd Schouten	subvsi3 \
111*a3cf0ef5SEd Schouten	subvti3 \
112*a3cf0ef5SEd Schouten	trampoline_setup \
113*a3cf0ef5SEd Schouten	ucmpdi2 \
114*a3cf0ef5SEd Schouten	ucmpti2 \
115*a3cf0ef5SEd Schouten	udivdi3 \
116*a3cf0ef5SEd Schouten	udivmoddi4 \
117*a3cf0ef5SEd Schouten	udivmodti4 \
118*a3cf0ef5SEd Schouten	udivti3 \
119*a3cf0ef5SEd Schouten	umoddi3 \
120*a3cf0ef5SEd Schouten	umodti3
121*a3cf0ef5SEd Schouten
122*a3cf0ef5SEd Schouten# These are already shipped by libc.a on arm and mips
123*a3cf0ef5SEd Schouten.if ${MACHINE_CPUARCH} != "arm" && ${MACHINE_CPUARCH} != "mips"
124*a3cf0ef5SEd SchoutenSRCF+=	adddf3 \
125*a3cf0ef5SEd Schouten	addsf3 \
126*a3cf0ef5SEd Schouten	divdf3 \
127*a3cf0ef5SEd Schouten	divsf3 \
128*a3cf0ef5SEd Schouten	divsi3 \
129*a3cf0ef5SEd Schouten	extendsfdf2 \
130*a3cf0ef5SEd Schouten	fixdfsi \
131*a3cf0ef5SEd Schouten	fixsfsi \
132*a3cf0ef5SEd Schouten	floatsidf \
133*a3cf0ef5SEd Schouten	floatsisf \
134*a3cf0ef5SEd Schouten	modsi3 \
135*a3cf0ef5SEd Schouten	muldf3 \
136*a3cf0ef5SEd Schouten	mulsf3 \
137*a3cf0ef5SEd Schouten	truncdfsf2 \
138*a3cf0ef5SEd Schouten	udivsi3 \
139*a3cf0ef5SEd Schouten	umodsi3
140*a3cf0ef5SEd Schouten.endif
141*a3cf0ef5SEd Schouten
142*a3cf0ef5SEd Schouten.for file in ${SRCF}
143*a3cf0ef5SEd Schouten. if ${MACHINE_CPUARCH} != "arm" && exists(${CRTSRC}/${CRTARCH}/${file}.S)
144*a3cf0ef5SEd SchoutenSRCS+=	${file}.S
145*a3cf0ef5SEd Schouten. else
146*a3cf0ef5SEd SchoutenSRCS+=	${file}.c
147*a3cf0ef5SEd Schouten. endif
148*a3cf0ef5SEd Schouten.endfor
149*a3cf0ef5SEd Schouten
150*a3cf0ef5SEd Schouten.if ${MK_INSTALLLIB} != "no"
151*a3cf0ef5SEd SchoutenSYMLINKS+=libcompiler_rt.a ${LIBDIR}/libgcc.a
152*a3cf0ef5SEd Schouten.endif
153*a3cf0ef5SEd Schouten.if ${MK_PROFILE} != "no"
154*a3cf0ef5SEd SchoutenSYMLINKS+=libcompiler_rt_p.a ${LIBDIR}/libgcc_p.a
155*a3cf0ef5SEd Schouten.endif
156*a3cf0ef5SEd Schouten
157*a3cf0ef5SEd Schouten.include <bsd.lib.mk>
158