SubDir HAIKU_TOP src add-ons media media-add-ons usb_webcam ; usbKitLibraryName = libdevice.so ; # source directories local sourceDirs = addons/quickcam addons/sonix addons/uvc addons cstransforms sensors ; local sourceDir ; for sourceDir in $(sourceDirs) { SEARCH_SOURCE += [ FDirName $(HAIKU_TOP) src add-ons media media-add-ons usb_webcam $(sourceDir) ] ; } ## addon sources local addonSources ; addonSources = QuickCamDevice.cpp SonixCamDevice.cpp NW80xCamDevice.cpp # UVCCamDevice.cpp UVCDeframer.cpp ; ## colorspace transforms sources local csTransformsSources ; csTransformsSources = Bayer.cpp ; ## sensors sources local sensorsSources ; sensorsSources = hdcs1000.cpp hv7131e1.cpp pas106b.cpp pb0100.cpp tas5110c1b.cpp tas5130d1b.cpp ; ## how to build header files from sources to include the list of built-in addons rule USBWebcamHeaderGen header : macro : sources { header = [ FGristFiles $(header) ] ; sources = [ FGristFiles $(sources) ] ; SEARCH on $(sources) = $(SEARCH_SOURCE) ; Depends $(header) : $(sources) ; MakeLocateArch $(header) ; GREP_DEFINE on $(header) = $(macro) ; USBWebcamHeaderGen1 $(header) : $(sources) ; LocalClean clean : $(header) ; } actions USBWebcamHeaderGen1 { grep -h -a $(GREP_DEFINE) $(2) > $(1) ; } local architectureObject ; for architectureObject in [ MultiArchSubDirSetup ] { on $(architectureObject) { USBWebcamHeaderGen CamInternalAddons.h : B_WEBCAM_MKINTFUNC : $(addonSources) ; USBWebcamHeaderGen CamInternalSensors.h : B_WEBCAM_DECLARE_SENSOR : $(sensorsSources) ; USBWebcamHeaderGen CamInternalColorSpaceTransforms.h : B_WEBCAM_DECLARE_CSTRANSFORM : $(csTransformsSources) ; for sourceDir in $(sourceDirs) { SEARCH_SOURCE += [ FDirName $(HAIKU_TOP) src add-ons media media-add-ons usb_webcam $(sourceDir) ] ; } Addon [ MultiArchDefaultGristFiles usb_webcam.media_addon ] : $(addonSources) $(csTransformsSources) $(sensorsSources) AddOn.cpp Producer.cpp CamBufferedFilterInterface.cpp CamBufferingDeframer.cpp CamColorSpaceTransform.cpp CamDeframer.cpp CamDevice.cpp CamFilterInterface.cpp CamRoster.cpp CamSensor.cpp CamStreamingDeframer.cpp : be media $(usbKitLibraryName) [ TargetLibsupc++ ] ; } } # force dependancies Includes [ FGristFiles CamRoster.cpp ] : [ FGristFiles CamInternalAddons.h ] ; Includes [ FGristFiles CamDevice.cpp ] : [ FGristFiles CamInternalSensors.h ] ; Includes [ FGristFiles CamColorSpaceTransform.cpp ] : [ FGristFiles CamInternalColorSpaceTransforms.h ] ;