SubDir OBOS_TOP src add-ons kernel file_systems bfs ;

# save original optimization level
oldOPTIM = $(OPTIM) ;

# R5 support is currently disabled!
#
# Have a look in src/tests/add-ons/kernel/file_systems/bfs/r5/
# for an R5 compatible version.
# In order to make the current BFS version R5 compatible again,
# we would need to port over the Haiku cache API to R5.

# set some additional defines
{
	local defines =
		UNSAFE_GET_VNODE
		#BFS_BIG_ENDIAN_ONLY
		;

	if $(DEBUG) = 0 {
		# the gcc on BeOS doesn't compile BFS correctly with -O2 or more
		OPTIM = -O1 ;
	}

	defines = [ FDefines $(defines) ] ;
	SubDirCcFlags $(defines) -Wall -Wno-multichar ;
	SubDirC++Flags $(defines) -Wall -Wno-multichar -fno-rtti ;
}

UsePrivateHeaders [ FDirName kernel ] ;			# For kernel_cpp.cpp
UsePrivateHeaders [ FDirName kernel disk_device_manager ] ;
UsePrivateHeaders [ FDirName storage ] ;

KernelAddon bfs : kernel file_systems :
	BlockAllocator.cpp
	BPlusTree.cpp
	kernel_cpp.cpp
	Attribute.cpp
	Debug.cpp
	Index.cpp
	Inode.cpp
	Journal.cpp
	Query.cpp
	Utility.cpp
	Volume.cpp

	kernel_interface.cpp
	disk_device_interface.cpp
	;

SEARCH on [ FGristFiles
		kernel_cpp.cpp 
	] = [ FDirName $(OBOS_TOP) src kernel core util ] ;

# restore original optimization level
OPTIM = $(oldOPTIM) ;
