xref: /haiku/src/system/libroot/posix/glibc/arch/x86/Jamfile (revision 002f37b0cca92e4cf72857c72ac95db5a8b09615)
1SubDir HAIKU_TOP src system libroot posix glibc arch x86 ;
2
3SubDirSysHdrs $(HAIKU_TOP) src system libroot posix glibc include arch x86 ;
4SubDirSysHdrs $(HAIKU_TOP) src system libroot posix glibc include arch generic ;
5SubDirSysHdrs $(HAIKU_TOP) src system libroot posix glibc include ;
6SubDirSysHdrs $(HAIKU_TOP) src system libroot posix glibc libio ;
7SubDirSysHdrs $(HAIKU_TOP) src system libroot posix glibc stdlib ;
8SubDirSysHdrs $(HAIKU_TOP) src system libroot posix glibc math ;
9SubDirSysHdrs $(HAIKU_TOP) src system libroot posix glibc ;
10
11SubDirHdrs $(HAIKU_TOP) src system libroot posix glibc arch generic ;
12
13UsePrivateHeaders libroot ;
14
15if $(OPTIM) = -O0 {
16	OPTIM = -O ;
17}
18
19# don't compile with debugging
20DEBUG = 0 ;
21
22SubDirCcFlags -D_GNU_SOURCE -D_IEEE_LIBM ;
23
24local genericSources =
25	cmp.c dbl2mpn.c divrem.c
26	memrchr.c
27	mpn2dbl.c mpn2flt.c mpn2ldbl.c
28	mul.c mul_n.c
29	e_cosh.c e_coshf.c e_coshl.c
30	e_sinh.c e_sinhf.c e_sinhl.c
31	e_asinl.c
32	e_gamma_r.c e_gammaf_r.c e_gammal_r.c
33	e_j0.c e_j0f.c
34	e_j1.c e_j1f.c
35	e_jn.c e_jnf.c
36	e_hypotl.c
37	e_ilogbl.c
38	e_lgamma_r.c e_lgammaf_r.c e_lgammal_r.c
39	k_cos.c k_cosf.c
40	k_sin.c k_sinf.c
41	k_tan.c k_tanf.c
42	s_cacos.c s_cacosf.c
43	s_cacosh.c s_cacoshf.c
44	s_casin.c s_casinf.c
45	s_casinh.c s_casinhf.c
46	s_catan.c s_catanf.c
47	s_catanh.c s_catanhf.c
48	s_ccos.c s_ccosf.c #s_ccosl.c
49	s_ccosh.c s_ccoshf.c #s_ccoshl.c
50	s_clog.c s_clogf.c #s_clogl.c
51	s_clog10.c s_clog10f.c #s_clog10l.c
52	s_cpow.c s_cpowf.c #s_cpowl.c
53	s_cproj.c s_cprojf.c #s_cprojl.c
54	s_csin.c s_csinf.c #s_csinl.c
55	s_csinh.c s_csinhf.c #s_csinhl.c
56	s_csqrt.c s_csqrtf.c #s_csqrtl.c
57	s_ctan.c s_ctanf.c #s_ctanl.c
58	s_ctanh.c s_ctanhf.c #s_ctanhl.c
59	s_erf.c s_erff.c s_erfl.c
60	s_fpclassify.c s_fpclassifyf.c # s_fpclassifyl.c
61	s_isinf.c s_isinff.c
62	s_isnan.c s_isnanf.c
63	s_ldexp.c s_ldexpf.c s_ldexpl.c
64	s_llround.c s_llroundf.c s_llroundl.c
65	s_lround.c s_lroundf.c s_lroundl.c
66	s_matherr.c
67	s_modf.c s_modff.c s_modfl.c
68	s_nan.c s_nanf.c s_nanl.c
69	s_nextafter.c s_nextafterf.c
70	s_nexttowardl.c
71	s_signbit.c s_signbitf.c s_signbitl.c
72	s_round.c s_roundf.c s_roundl.c
73	s_signgam.c
74	s_tanh.c s_tanhf.c s_tanhl.c
75
76	w_acos.c w_acosf.c w_acosl.c
77	w_acosh.c w_acoshf.c w_acoshl.c
78	w_asin.c w_asinf.c w_asinl.c
79	w_atan2.c w_atan2f.c w_atan2l.c
80	w_atanh.c w_atanhf.c w_atanhl.c
81	w_cosh.c w_coshf.c w_coshl.c
82	w_drem.c w_dremf.c w_dreml.c
83	w_exp.c w_expf.c w_expl.c
84	w_exp10.c w_exp10f.c w_exp10l.c
85	w_exp2.c w_exp2f.c w_exp2l.c
86	w_fmod.c w_fmodf.c w_fmodl.c
87	w_hypot.c w_hypotf.c w_hypotl.c
88	w_ilogbl.c
89	w_j0.c w_j0f.c
90	w_j1.c w_j1f.c
91	w_jn.c w_jnf.c
92	w_lgamma.c w_lgammaf.c w_lgammal.c
93	w_lgamma_r.c w_lgammaf_r.c w_lgammal_r.c
94	w_log.c w_logf.c w_logl.c
95	w_log10.c w_log10f.c w_log10l.c
96	w_log2.c w_log2f.c w_log2l.c
97	w_pow.c w_powf.c w_powl.c
98	w_remainder.c w_remainderf.c w_remainderl.c
99	w_scalb.c w_scalbf.c w_scalbl.c
100	w_sinh.c w_sinhf.c w_sinhl.c
101	w_sqrt.c w_sqrtf.c w_sqrtl.c
102	w_tgamma.c w_tgammaf.c w_tgammal.c
103	;
104
105local architectureObject ;
106for architectureObject in [ MultiArchSubDirSetup x86 x86_gcc2 ] {
107	on $(architectureObject) {
108		local architecture = $(TARGET_PACKAGING_ARCH) ;
109
110		MergeObject <$(architecture)>posix_gnu_arch_$(TARGET_ARCH)_other.o :
111			add_n.S
112			addmul_1.S
113			fegetround.c
114			fesetround.c
115			fraiseexcpt.c
116			ldbl2mpn.c
117			mpa.c mpatan.c mpatan2.c mptan.c
118
119			mplog.c
120			mul_1.S
121			lshift.S rshift.S
122			sub_n.S
123			submul_1.S
124			;
125
126
127		MergeObject <$(architecture)>posix_gnu_arch_$(TARGET_ARCH)_e.o :
128			e_acos.S e_acosf.S e_acosl.c
129			e_acosh.S e_acoshf.S e_acoshl.S
130			e_asin.S e_asinf.S
131			e_atan2.S e_atan2f.S e_atan2l.c
132			e_atanh.S e_atanhf.S e_atanhl.S
133			e_exp.S e_expf.S e_expl.c
134			e_exp2.S e_exp2f.S e_exp2l.S
135			e_exp10.S e_exp10f.S e_exp10l.S
136			e_fmod.S e_fmodf.S e_fmodl.c
137			e_hypot.S e_hypotf.S
138			e_log.S e_logf.S e_logl.S
139			e_log2.S e_log2f.S e_log2l.S
140			e_log10.S e_log10f.S e_log10l.S
141			e_pow.S e_powf.S e_powl.S
142			e_remainder.S e_remainderf.S e_remainderl.S
143			e_scalb.S e_scalbf.S e_scalbl.S
144			e_sqrt.S e_sqrtf.S e_sqrtl.c
145			;
146
147		MergeObject <$(architecture)>posix_gnu_arch_$(TARGET_ARCH)_s.o :
148			s_asinh.S s_asinhf.S s_asinhl.S
149			s_atan.S s_atanf.S s_atanl.c
150			s_cbrt.S s_cbrtf.S s_cbrtl.S
151			s_ceil.S s_ceilf.S s_ceill.S
152			s_cexp.S s_cexpf.S s_cexpl.S
153			s_copysign.S s_copysignf.S s_copysignl.S
154			s_cos.S s_cosf.S s_cosl.S
155			s_expm1.S s_expm1f.S s_expm1l.S
156			s_fdim.S s_fdimf.S s_fdiml.S
157			s_fabs.S s_fabsf.S s_fabsl.S
158			s_finite.S s_finitef.S s_finitel.S
159			s_floor.S s_floorf.S s_floorl.S
160			s_fma.S s_fmaf.S s_fmal.S
161			s_fmax.S s_fmaxf.S s_fmaxl.S
162			s_fmin.S s_fminf.S s_fminl.S
163			s_fpclassifyl.c
164			s_frexp.S s_frexpf.S s_frexpl.S
165			s_ilogb.S s_ilogbf.S
166			s_isinfl.c
167			s_isnanl.c
168			s_llrint.S s_llrintf.S s_llrintl.S
169			s_log1p.S s_log1pf.S s_log1pl.S
170			s_logb.S s_logbf.S s_logbl.c
171			s_lrint.S s_lrintf.S s_lrintl.S
172			s_nearbyint.S s_nearbyintf.S s_nearbyintl.S
173			s_nextafterl.c
174			s_nexttoward.c s_nexttowardf.c
175			s_remquo.S s_remquof.S s_remquol.S
176			s_rint.S s_rintf.S s_rintl.c
177			s_scalbln.c s_scalblnf.c s_scalblnl.c
178			s_scalbn.S s_scalbnf.S s_scalbnl.S
179			s_significand.S s_significandf.S
180			s_sin.S s_sinf.S s_sinl.S
181			s_sincos.S s_sincosf.S s_sincosl.S
182			s_tan.S s_tanf.S s_tanl.S
183			s_trunc.S s_truncf.S s_truncl.S
184			;
185
186		MergeObject <$(architecture)>posix_gnu_arch_$(TARGET_ARCH)_generic.o :
187			$(genericSources)
188			;
189
190		MergeObjectFromObjects <$(architecture)>posix_gnu_arch_$(TARGET_ARCH).o
191			: :
192			<$(architecture)>posix_gnu_arch_$(TARGET_ARCH)_e.o
193			<$(architecture)>posix_gnu_arch_$(TARGET_ARCH)_generic.o
194			<$(architecture)>posix_gnu_arch_$(TARGET_ARCH)_other.o
195			<$(architecture)>posix_gnu_arch_$(TARGET_ARCH)_s.o
196			;
197
198		SEARCH on [ FGristFiles $(genericSources) ]
199			= [ FDirName $(HAIKU_TOP) src system libroot posix glibc arch
200				generic ] ;
201	}
202}
203