SubDir HAIKU_TOP src system libroot posix glibc math ;

SubDirCcFlags -D_GNU_SOURCE -DUSE_IN_LIBIO ;

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

		SubDirSysHdrs $(HAIKU_TOP) src system libroot posix glibc include arch
			$(TARGET_ARCH) ;
		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 math ;
		SubDirSysHdrs $(HAIKU_TOP) src system libroot posix glibc ;

		UsePrivateHeaders libroot ;

		# ppc, m68k and arm use regular doubles as long doubles (through
		# aliases), so they must be built without these files.
		# FIXME: ppc should use ldbl-128ibm, and m68k should probably use
		# ldbl-96 as for x86.
		local longDoubleObjects ;
		switch $(architecture) {
			case ppc : longDoubleObjects = ;
			case m68k : longDoubleObjects = ;
			case arm : longDoubleObjects = ;
			case * : longDoubleObjects = cabsl.c cargl.c cimagl.c conjl.c creall.c k_casinhl.c ;
		}

		MergeObject <$(architecture)>posix_gnu_math.o :
			cabs.c cabsf.c
			carg.c cargf.c
			cimag.c cimagf.c
			conj.c conjf.c
			creal.c crealf.c

			k_casinh.c k_casinhf.c

			$(longDoubleObjects)
			;
	}
}
