SubDir HAIKU_TOP src system libroot posix glibc arch sparc ;

SubDirSysHdrs $(HAIKU_TOP) src system libroot posix glibc include arch sparc ;
SubDirSysHdrs $(HAIKU_TOP) src system libroot posix glibc include arch generic ;
SubDirSysHdrs $(HAIKU_TOP) src system libroot posix glibc include ;
SubDirSysHdrs $(HAIKU_TOP) src system libroot posix glibc libio ;
SubDirSysHdrs $(HAIKU_TOP) src system libroot posix glibc stdlib ;
SubDirSysHdrs $(HAIKU_TOP) src system libroot posix glibc math ;
SubDirSysHdrs $(HAIKU_TOP) src system libroot posix glibc ;

SubDirHdrs $(HAIKU_TOP) src system libroot posix glibc arch generic ;

UsePrivateHeaders libroot ;

if $(OPTIM) = -O0 {
	OPTIM = -O ;
}

SubDirCcFlags -D_GNU_SOURCE -D_IEEE_LIBM -DPIC ;
SubDirAsFlags -DPIC ;

local genericSources =
	cmp.c dbl2mpn.c divrem.c
	mpn2dbl.c mpn2flt.c mpn2ldbl.c
	mul.c mul_n.c
	ldbl2mpn.c

	s_isnan.c s_isnanf.c
	s_finite.c s_finitef.c
	s_isinf.c s_isinff.c

	s_clog.c s_clogf.c s_clogl.c
	s_csqrt.c s_csqrtf.c s_csqrtl.c
	s_cacos.c s_cacosf.c s_cacosl.c
	s_cacosh.c s_cacoshf.c s_cacoshl.c
	s_casin.c s_casinf.c s_casinl.c
	s_casinh.c s_casinhf.c s_casinhl.c
	s_catan.c s_catanf.c s_catanl.c
	s_catanh.c s_catanhf.c s_catanhl.c
	s_csin.c s_csinf.c s_csinl.c
	s_csinh.c s_csinhf.c s_csinhl.c
	s_ctan.c s_ctanf.c s_ctanl.c
	s_ctanh.c s_ctanhf.c s_ctanhl.c
	s_ccos.c s_ccosf.c s_ccosl.c
	s_ccosh.c s_ccoshf.c s_ccoshl.c
	s_cexp.c s_cexpf.c s_cexpl.c
	s_clog10.c s_clog10f.c s_clog10l.c
	s_cpow.c s_cpowf.c s_cpowl.c
	s_cproj.c s_cprojf.c s_cprojl.c
	;

local architectureObject ;
for architectureObject in [ MultiArchSubDirSetup sparc ] {
	on $(architectureObject) {
		local architecture = $(TARGET_PACKAGING_ARCH) ;

		MergeObject <$(architecture)>posix_gnu_arch_$(TARGET_ARCH).o :
			add_n.S
			addmul_1.S

			mul_1.S
			lshift.S rshift.S
			sub_n.S
			submul_1.S

			$(genericSources)
			;

		SEARCH on [ FGristFiles $(genericSources) ]
			= [ FDirName $(HAIKU_TOP) src system libroot posix glibc arch
				generic ] ;
	}
}
