SubDir OBOS_TOP src servers input ;

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

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

	SetupObjectsDir ;

	SEARCH on $(source) = $(SEARCH_SOURCE) ;
	MakeLocate $(binary) : $(LOCATE_TARGET) ;

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

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

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

SEARCH on US-International.keymap
	  += [ FDirName $(SUBDIR) $(DOTDOT) $(DOTDOT) apps bin keymap ] ;

AddResources input_server : input_server.rdef ;

UsePrivateHeaders app ;
UsePrivateHeaders input ;
UsePrivateHeaders storage ;

SubDirC++Flags -DADD_ON_STABLE_SECONDS=1 ;	# for AddOnMonitorHandler.cpp

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

	AddOnManager.cpp
	DeviceManager.cpp

	MouseSettings.cpp
	KeyboardSettings.cpp

	SystemKeymap.cpp

	MethodReplicant.cpp
	MethodMenuItem.cpp

	# storage
	AddOnMonitor.cpp
	AddOnMonitorHandler.cpp
	NodeMonitorHandler.cpp

	: be
;

if $(COMPILE_FOR_R5) {
	LinkSharedOSLibs input_server : stdc++.r4 ;
} else {
	LinkSharedOSLibs input_server : <boot!home!config!lib>libopenbeos.so stdc++.r4 ;
}

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 ;
