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 ;

# Enabling C++ structures in C only code
Includes [ FGristFiles kernel_c++_structs.h ]
	: <src!system!kernel>kernel_c++_struct_sizes.h ;

SubDirCcFlags [ FDefines _KERNEL=1 ] ;

KernelStaticLibrary libfreebsd_network.a :
	bus.c
	callout.cpp
	clock.c
	compat.c
	compat_cpp.cpp
	condvar.c
	Condvar.cpp
	device.c
	driver.c
	eventhandler.c
	fbsd_busdma_x86.c
	fbsd_ether.c
	fbsd_if_media.c
	fbsd_mbuf.c
	fbsd_mbuf2.c
	fbsd_mii.c
	fbsd_mii_bitbang.c
	fbsd_mii_physubr.c
	fbsd_time.c
	firmware.c
	if.c
	libkern.c
	mbuf.c
	mii.c
	mutex.c
	priv.cpp
	synch.c
	systm.c
	taskqueue.c
	unit.c
	Unit.cpp
	;

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

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

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

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