SubDir HAIKU_TOP src tools ;

UseHeaders [ FDirName $(HAIKU_TOP) headers build private app ] : true ;
UseHeaders [ FDirName $(HAIKU_TOP) headers build private storage ] : true ;

SEARCH_SOURCE += [ FDirName $(HAIKU_TOP) src/bin ] ;

local tools =
	<build>catattr
	<build>copyattr
	<build>generate_attribute_stores
	<build>listattr
	<build>mimeset
	<build>mkindex
	<build>rm_attrs_tmp
	<build>rmattr
	<build>settype
	<build>setversion
	<build>xres
;

USES_BE_API on $(tools) = true ;

# TODO: temporary kludge
local libHaikuCompat ;
if $(HOST_PLATFORM) in r5 bone dano {
	ObjectC++Flags database_support.cpp UpdateMimeInfoThread.cpp
		MimeUpdateThread.cpp
		: -include [ FDirName $(HAIKU_TOP) headers build
			HaikuBuildCompatibility.h ] ;
	libHaikuCompat = libhaikucompat_build.a ;
}

BuildPlatformMain <build>catattr : catattr.cpp : $(HOST_LIBBE) ;

UsePrivateObjectHeaders copyattr.cpp : shared : : true ;
BuildPlatformMain <build>copyattr : copyattr.cpp
	: $(HOST_LIBBE) $(HOST_LIBSTDC++) $(HOST_LIBSUPC++) ;

BuildPlatformMain <build>create_image : create_image.cpp : $(HOST_LIBSUPC++) ;

BuildPlatformMain <build>data_to_source : data_to_source.cpp
	: $(HOST_LIBSUPC++) ;

BuildPlatformMain <build>generate_attribute_stores
	: generate_attribute_stores.cpp : $(HOST_LIBBE) $(HOST_LIBSUPC++) ;

UsePrivateObjectHeaders generate_boot_screen.cpp : shared : : true ;
UsePrivateObjectHeaders ColorQuantizer.cpp : shared : : true ;
BuildPlatformMain <build>generate_boot_screen :
	generate_boot_screen.cpp
	ColorQuantizer.cpp
	: $(HOST_LIBSUPC++) $(HOST_LIBSTDC++) png z ;

BuildPlatformMain <build>listattr : listattr.cpp : $(HOST_LIBBE) ;

if $(HOST_PLATFORM_BEOS_COMPATIBLE) {
	AddResources <build>mimeset : mimeset.rdef ;
}
BuildPlatformMain <build>mimeset :
	mimeset.cpp
	Mime.cpp
	database_support.cpp
	UpdateMimeInfoThread.cpp
	MimeUpdateThread.cpp
	: $(HOST_LIBBE) $(HOST_LIBSTDC++) $(HOST_LIBSUPC++) $(libHaikuCompat)
;

BuildPlatformMain <build>mkindex : mkindex.cpp : $(HOST_LIBBE) ;

# We want rm_attrs to be self-contained, so we link against the static libroot.
HOST_LIBROOT on <build>rm_attrs_tmp = $(HOST_STATIC_LIBROOT) ;
BuildPlatformMain <build>rm_attrs_tmp : rm_attrs.cpp
	: $(HOST_LIBSUPC++) $(HOST_LIBSTDC++) ;
MakeLocateDebug <build>rm_attrs ;
File <build>rm_attrs : <build>rm_attrs_tmp ;
MODE on <build>rm_attrs = 755 ;

BuildPlatformMain <build>rmattr : rmattr.cpp : $(HOST_LIBBE) ;

BuildPlatformMain <build>set_haiku_revision : set_haiku_revision.cpp
	: $(HOST_LIBSTDC++) $(HOST_LIBSUPC++) ;

BuildPlatformMain <build>settype : settype.cpp : $(HOST_LIBBE)
	$(HOST_LIBSTDC++) $(HOST_LIBSUPC++) ;

BuildPlatformMain <build>setversion : setversion.cpp : $(HOST_LIBBE)
	$(HOST_LIBSTDC++) $(HOST_LIBSUPC++) $(libHaikuCompat) ;

BuildPlatformMain <build>xres : xres.cpp : $(HOST_LIBBE) $(HOST_LIBSTDC++)
	$(HOST_LIBSUPC++) ;

SEARCH on [ FGristFiles
		Mime.cpp
	] = [ FDirName $(HAIKU_TOP) src build libbe storage ] ;

SEARCH on [ FGristFiles
		UpdateMimeInfoThread.cpp MimeUpdateThread.cpp database_support.cpp
	] = [ FDirName $(HAIKU_TOP) src build libbe storage mime ] ;

SEARCH on [ FGristFiles
		ColorQuantizer.cpp
	] = [ FDirName $(HAIKU_TOP) src kits shared ] ;

SubInclude HAIKU_TOP src tools addattr ;
SubInclude HAIKU_TOP src tools anyboot ;
SubInclude HAIKU_TOP src tools bfs_shell ;
SubInclude HAIKU_TOP src tools cppunit ;
SubInclude HAIKU_TOP src tools docbook ;
SubInclude HAIKU_TOP src tools elfsymbolpatcher ;
SubInclude HAIKU_TOP src tools fixup_amiga_boot_checksum ;
SubInclude HAIKU_TOP src tools fixup_tos_boot_checksum ;
SubInclude HAIKU_TOP src tools fs_shell ;
SubInclude HAIKU_TOP src tools gensyscalls ;
SubInclude HAIKU_TOP src tools hack_coff ;
SubInclude HAIKU_TOP src tools icu ;
SubInclude HAIKU_TOP src tools keymap ;
SubInclude HAIKU_TOP src tools locale ;
SubInclude HAIKU_TOP src tools makebootable ;
SubInclude HAIKU_TOP src tools rc ;
SubInclude HAIKU_TOP src tools remote_disk_server ;
SubInclude HAIKU_TOP src tools resattr ;
SubInclude HAIKU_TOP src tools rman ;
SubInclude HAIKU_TOP src tools translation ;
SubInclude HAIKU_TOP src tools unzip ;
SubInclude HAIKU_TOP src tools vmdkimage ;
SubInclude HAIKU_TOP src tools unflatten ;
SubInclude HAIKU_TOP src tools zip ;

