SubDir HAIKU_TOP src servers input ;

SetSubDirSupportedPlatformsBeOSCompatible ;

if $(COMPILE_FOR_R5) {
	SubDirC++Flags -DCOMPILE_FOR_R5 ;
}

rule MkKeymapHeader {
	local binary = $(1) ;
	local source = $(2) ;

	SEARCH on $(source) = $(SEARCH_SOURCE) ;
	MakeLocateArch $(binary) ;

	Depends $(binary) : $(source) <build>keymap ;
	MkKeymapHeader1 $(binary) : <build>keymap $(source) ;
	LocalClean clean : $(binary) ;
}

actions MkKeymapHeader1 {
	$(HOST_ADD_BUILD_COMPATIBILITY_LIB_DIR)
	$(2[1]) -o "$(1)" -h "$(2[2-])" ;
}

MkKeymapHeader [ FGristFiles SystemKeymap.h ] : US-International.keymap ;

SEARCH on US-International.keymap
	  += [ FDirName $(SUBDIR) $(DOTDOT) $(DOTDOT) data etc keymaps ] ;

AddResources input_server : input_server.rdef ;

UsePrivateHeaders app input interface shared storage ;
UsePrivateSystemHeaders ;


SubDirC++Flags -DADD_ON_STABLE_SECONDS=1 ;	# for AddOnMonitorHandler.cpp
if $(TARGET_PLATFORM) != haiku {
	SubDirC++Flags -DCOMPILE_FOR_R5 ;
	#APPSERVER_TEST_MODE = 1 ;
	if $(APPSERVER_TEST_MODE) {
		SubDirC++Flags -DAPPSERVER_TEST_MODE ;
	} else {
		SubDirC++Flags -DAPPSERVER_R5_COMM ;
	}
} else {
	APPSERVER_TEST_MODE = 0 ;
}

Server input_server :
	InputServer.cpp
	InputServerDevice.cpp
	InputServerFilter.cpp
	InputServerMethod.cpp

	AddOnManager.cpp

	MouseSettings.cpp
	KeyboardSettings.cpp

	MethodReplicant.cpp
	MethodMenuItem.cpp
	BottomlineWindow.cpp

	PathList.cpp

	# storage
	AddOnMonitor.cpp
	AddOnMonitorHandler.cpp
	NodeMonitorHandler.cpp

	: be $(TARGET_LIBSTDC++)
;

SEARCH on [ FGristFiles AddOnMonitor.cpp
	AddOnMonitorHandler.cpp
	NodeMonitorHandler.cpp ] += [ FDirName $(SUBDIR) $(DOTDOT) $(DOTDOT) kits storage ] ;

Package haiku-inputkit-cvs :
	input_server :
	boot beos system servers ;

Packages haiku-inputkit-cvs :
	README LICENSE install.sh ;
