⛏️ index : haiku.git

SubDir HAIKU_TOP src libs compat freebsd_network ;

UseHeaders [ FDirName $(SUBDIR) ] : true ;
UseHeaders [ FDirName $(SUBDIR) compat ] : true ;
UsePrivateHeaders net ;
UsePrivateKernelHeaders ;
UseHeaders $(HAIKU_PRIVATE_KERNEL_HEADERS) : true ;

SubDirCcFlags [ FDefines _KERNEL=1 ] ;
SubDirC++Flags [ FDefines _KERNEL=1 ] ;

KernelStaticLibrary libfreebsd_network.a :
	fbsd_ether.c
	fbsd_if.c
	fbsd_if_media.c
	fbsd_kern_mbuf.c
	fbsd_uipc_mbuf.c
	fbsd_uipc_mbuf2.c
	fbsd_subr_bufring.c
	fbsd_subr_sbuf.c
	fbsd_time.c
	fbsd_timingsafe.c

	bus.cpp
	bus_dma.cpp
	callout.cpp
	clock.c
	condvar.cpp
	device.c
	device_hooks.c
	driver.c
	eventhandler.c
	firmware.c
	if.c
	libkern.cpp
	malloc.cpp
	mbuf.c
	mutex.c
	pci.cpp
	priv.cpp
	smp.c
	subr_autoconf.cpp
	synch.cpp
	systm.cpp
	sysinit.c
	taskqueue.c
	unit.cpp
	;

SEARCH_SOURCE += [ FDirName $(SUBDIR) dev usb ] ;

KernelStaticLibrary freebsd_usb.a :
	fbsd_usb_error.c
	fbsd_usb_util.c
	fbsd_usb_lookup.c
	usb.cpp
	usb_util.c
	;

SEARCH_SOURCE += [ FDirName $(SUBDIR) dev mii ] ;

KernelStaticLibrary freebsd_mii.a :
	mii.c
	mii_bitbang.c
	mii_physubr.c
	miibus.c
	ukphy.c
	ukphy_subr.c
	;

Includes [ FGristFiles ukphy.c ] : <src!libs!compat!freebsd_network>miidevs.h ;

rule MIIHeaderGen
{
	SEARCH on $(2) = [ FDirName $(SUBDIR) compat dev mii ] ;
	SEARCH on $(3) = [ FDirName $(SUBDIR) tools ] ;

	Depends $(1) : $(2) $(3) ;
	MakeLocateCommonPlatform $(<) ;
	MIIHeaderGen1 $(1) : $(2) $(3) ;
	LocalClean clean : $(<) ;
}

actions MIIHeaderGen1
{
	awk -v HEADERFILE=$(1) -f $(2[2]) $(2[1])
}

MIIHeaderGen [ FGristFiles miidevs.h ] : miidevs : miidevs2h.awk ;

rule USBDevsHeaderGen
{
	SEARCH on $(2) = [ FDirName $(SUBDIR) compat dev usb ] ;
	SEARCH on $(3) = [ FDirName $(SUBDIR) tools ] ;

	Depends $(1) : $(2) $(3) ;
	MakeLocateCommonPlatform $(<) ;
	USBDevsHeaderGen1 $(1) : $(2) $(3) ;
	LocalClean clean : $(<) ;
}

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

USBDevsHeaderGen [ FGristFiles usbdevs.h usbdevs_data.h ] : usbdevs
    : usbdevs2h.awk ;