SubDir HAIKU_TOP src add-ons kernel drivers audio echo 3g ;

SetSubDirSupportedPlatformsBeOSCompatible ;

if $(TARGET_PLATFORM) != haiku {
	UseHeaders [ FDirName $(HAIKU_TOP) headers os drivers ] : true ;
	# We need the public pcmcia headers also when not compiling for Haiku.
}

SubDirHdrs $(HAIKU_TOP) src add-ons kernel drivers audio echo ;
SubDirHdrs $(HAIKU_TOP) src add-ons kernel drivers audio echo generic ;
SubDirHdrs $(HAIKU_TOP) src add-ons kernel drivers audio echo generic DSP ;
SubDirHdrs $(HAIKU_TOP) src add-ons kernel drivers audio echo generic ASIC ;

UsePrivateHeaders [ FDirName kernel ] 			# For kernel_cpp.cpp
	media ;

# set some additional defines
SubDirCcFlags -DECHO_BEOS -DECHO3G_FAMILY ;
SubDirC++Flags -DECHO_BEOS -DECHO3G_FAMILY -fno-rtti -DAUTO_DUCK_ALLOCATE ;

local echo_files =
	C3g.cpp
	C3gDco.cpp
	CChannelMask.cpp
	CDaffyDuck.cpp
	CDspCommObject.cpp
	CDspCommObjectVmixer.cpp
	CEchoGals.cpp
	CEchoGals_info.cpp
	CEchoGals_midi.cpp
	CEchoGals_mixer.cpp
	CEchoGals_power.cpp
	CEchoGals_transport.cpp
	CEchoGalsMTC.cpp
	CEchoGalsVmixer.cpp
	CLineLevel.cpp
	CMidiInQ.cpp
	CMonitorCtrl.cpp
	CMtcSync.cpp
	CPipeOutCtrl.cpp
	;

KernelAddon echo3g :
	kernel_cpp.cpp
	debug.c
	echo.cpp
	midi.cpp
	multi.cpp
	util.c
	$(echo_files)
	OsSupportBeOS.cpp
;

# suppress warnings on some files including the echo headers which provoke ugly warnings
ObjectC++Flags $(echo_files) : -w ;
ObjectC++Flags echo.cpp : -w ;

SEARCH on [ FGristFiles
	$(echo_files)
	OsSupportBeOS.cpp
	] = [ FDirName $(HAIKU_TOP) src add-ons kernel drivers audio echo generic ] ;

SEARCH on [ FGristFiles
		kernel_cpp.cpp 
	] = [ FDirName $(HAIKU_TOP) src system kernel util ] ;

SEARCH on [ FGristFiles
		debug.c
		echo.cpp
		midi.cpp
		multi.cpp
		util.c
	] = [ FDirName $(HAIKU_TOP) src add-ons kernel drivers audio echo ] ;

Package haiku-echo3g-cvs
	:
	echo3g
	:
	boot home config add-ons kernel drivers bin ;

PackageDriverSymLink haiku-echo3g-cvs : audio hmulti echo3g ;
PackageDriverSymLink haiku-echo3g-cvs : midi echo3g ;

Package haiku-echo3g-cvs : <echo!driver>echo.settings
	: boot home config settings kernel drivers ;

