SubDir HAIKU_TOP src preferences devices ;

SetSubDirSupportedPlatformsBeOSCompatible ;

rule ISAPnPHeaderGen
{
	SEARCH on $(2) = $(SEARCH_SOURCE) ;
	SEARCH on $(3) = $(SEARCH_SOURCE) ;

	Depends $(1) : $(2) $(3) ;
	MakeLocateArch $(<) ;
	ISAPnPHeaderGen1 $(1) : $(2) $(3) ;
	LocalClean clean : $(<) ;
}

actions ISAPnPHeaderGen1
{
	grep '^PNP[[:xdigit:]][[:xdigit:]][[:xdigit:]][[:xdigit:]] '  $(2[1]) | gawk -f $(2[2]) > $(1) ;
}

ISAPnPHeaderGen [ FGristFiles isapnpids.h ] : isapnp_devids.txt : devlist2h.awk ;

rule USBHeaderGen
{
	SEARCH on $(2) = $(SEARCH_SOURCE) ;
	SEARCH on $(3) = $(SEARCH_SOURCE) ;

	Depends $(1) : $(2) $(3) ;
	MakeLocateArch $(<) ;
	USBHeaderGen1 $(1) : $(2) $(3) ;
	LocalClean clean : $(<) ;
}

actions USBHeaderGen1
{
	gawk -v HEADERFILE=$(1[1]) -v DATAFILE=$(1[2]) -f $(2[2]) $(2[1])
}

USBHeaderGen [ FGristFiles usbdevs.h usbdevs_data.h ] : usbdevs : usb_devlist2h.awk ;

rule PCIHeaderGen
{
	SEARCH on $(2) = $(SEARCH_SOURCE) ;
	SEARCH on $(3) = $(SEARCH_SOURCE) ;

	Depends $(1) : $(2) $(3) ;
	MakeLocateArch $(<) ;
	PCIHeaderGen1 $(1) : $(2) $(3) ;
	LocalClean clean : $(<) ;
}

actions PCIHeaderGen1
{
	gawk -v HEADERFILE=$(1) -f $(2[2]) $(2[1])
}

PCIHeaderGen [ FGristFiles pcihdr.h ] : pci.ids : pci-header.awk ;

Preference Devices :
	Devices.cpp
	DevicesWindow.cpp
	ResourceUsageWindow.cpp
	ModemWindow.cpp
	cm_wrapper.c
	DevicesInfo.cpp
	ConfigurationWindow.cpp
	: be $(TARGET_LIBSUPC++)
	: Devices.rdef
;

Includes [ FGristFiles DevicesInfo.cpp ] : [ FGristFiles isapnpids.h usbdevs.h usbdevs_data.h ] ;
Includes [ FGristFiles ConfigurationWindow.cpp ] : [ FGristFiles pcihdr.h ] ;
