-plugin_dirs := \
- themes \
- audio_transitions \
- video_transitions \
- transforms \
- colors \
- exotic \
- audio_tools \
- video_tools \
- blending \
- tv_effects \
-blondtheme := themes
-bluedottheme := themes
-brighttheme := themes
-suv := themes
+plugin_dirs := themes
+themes := theme_bright theme_suv theme_blond theme_blue theme_blue_dot \
+ theme_hulk theme_pinklady theme_unflat theme_blond_cv
-crossfade := audio_transitions
+plugin_dirs += audio_transitions
+audio_transitions := crossfade
-bandslide := video_transitions
-bandwipe := video_transitions
-dissolve := video_transitions
-flip := video_transitions
-irissquare := video_transitions
-shapewipe := video_transitions
-slide := video_transitions
-wipe := video_transitions
-zoom := video_transitions
+plugin_dirs += video_transitions
+video_transitions := bandslide bandwipe dissolve flip irissquare \
+ shapewipe slide wipe zoom
-1080to480 := transforms
-1080to540 := transforms
-720to480 := transforms
-lens := transforms
-perspective := transforms
-photoscale := transforms
-polar := transforms
-rotate := transforms
-scale := transforms
-translate := transforms
-whirl := transforms
+plugin_dirs += transforms
+transforms := 1080to480 1080to540 720to480 lens perspective photoscale \
+ polar rotate scale translate whirl
-brightness := colors
-bluebanana := colors
-C41 := colors
-color3way := colors
-colorbalance := colors
-huesaturation := colors
-gamma := colors
-gradient := colors
-histogram := colors
-threshold := colors
+plugin_dirs += colors
+colors := brightness bluebanana C41 color3way colorbalance huesaturation \
+ gamma gradient histogram threshold
-aging := exotic
-burn := exotic
-dot := exotic
-holo := exotic
-oil := exotic
+plugin_dirs += exotic
+exotic := aging burn dot holo oil edge
-audioscope := audio_tools
-cdripper := audio_tools
-compressor := audio_tools
-dcoffset := audio_tools
-delayaudio := audio_tools
-denoisefft := audio_tools
-denoise := audio_tools
-despike := audio_tools
-downsample := audio_tools
-echocancel := audio_tools
-echo := audio_tools
-freeverb := audio_tools
-gain := audio_tools
-graphic := audio_tools
-interpolateaudio := audio_tools
-invertaudio := audio_tools
-leveleffect := audio_tools
-loopaudio := audio_tools
-normalize := audio_tools
-overlayaudio := audio_tools
-parametric := audio_tools
-pitch := audio_tools
-removegaps := audio_tools
-resample := audio_tools
-resamplert := audio_tools
-reverb := audio_tools
-reverseaudio := audio_tools
-synthesizer := audio_tools
-timestretch := audio_tools
-timestretchrt := audio_tools
-vocoder := audio_tools
+plugin_dirs += audio_tools
+audio_tools := audioscope cdripper compressor dcoffset delayaudio \
+ denoisefft denoise despike downsample echocancel echo freeverb \
+ gain graphic interpolateaudio invertaudio leveleffect loopaudio \
+ normalize overlayaudio parametric pitch removegaps resample \
+ resamplert reverb reverseaudio synthesizer timestretch timestretchrt \
+ vocoder
-blur := video_tools
-decimate := video_tools
-delayvideo := video_tools
-denoisemjpeg := video_tools
-denoisevideo := video_tools
-fieldframe := video_tools
-flash := video_tools
-framefield := video_tools
-freezeframe := video_tools
-greycstoration := video_tools
-interpolatepixels := video_tools
-interpolatevideo := video_tools
-invertvideo := video_tools
-linearblur := video_tools
-loopvideo := video_tools
-motion2 := video_tools
-motionblur := video_tools
-motion := video_tools
-overlay := video_tools
-radialblur := video_tools
-reframe := video_tools
-reframert := video_tools
-reroute := video_tools
-reversevideo := video_tools
-seltempavg := video_tools
-sharpen := video_tools
-spectrogram := video_tools
-svg := video_tools
-titler := video_tools
-timeavg := video_tools
-timefront := video_tools
-unsharp := video_tools
-videoscope := video_tools
-wave := video_tools
-zoomblur := video_tools
+plugin_dirs += video_tools
+video_tools := blur decimate delayvideo denoisemjpeg denoisevideo fieldframe \
+ flash framefield freezeframe greycstoration interpolatepixels \
+ interpolatevideo invertvideo linearblur loopvideo motion2 motionblur \
+ motion overlay radialblur reframe reframert reroute reversevideo \
+ seltempavg sharpen spectrogram svg titler timeavg timefront unsharp \
+ videoscope wave zoomblur
-chromakeyhsv := blending
-chromakey := blending
-diffkey := blending
+plugin_dirs += blending
+blending := chromakeyhsv chromakey diffkey
-deinterlace-cv := tv_effects
-deinterlace := tv_effects
-ivtc := tv_effects
-liveaudio := tv_effects
-livevideo := tv_effects
-rgb601 := tv_effects
-rgbshift := tv_effects
-shiftinterlace := tv_effects
-swapchannels := tv_effects
-swapframes := tv_effects
-yuv := tv_effects
-yuvshift := tv_effects
+plugin_dirs += tv_effects
+tv_effects := deinterlace-cv deinterlace ivtc liveaudio livevideo rgb601 \
+ rgbshift shiftinterlace swapchannels swapframes yuv yuvshift
+
+$(foreach dir,$(plugin_dirs),$(foreach plugin,$($(dir)), $(eval $(plugin):=$(dir))))