diff mbox series

[FFmpeg-devel,13/13] configure: Use a separate config_components.h header for $ALL_COMPONENTS

Message ID 20220223142951.40366-14-martin@martin.st
State New
Headers show
Series Reduce unnecessary recompilation | expand

Checks

Context Check Description
andriy/make_aarch64_jetson fail Make failed
andriy/make_armv7_RPi4 fail Make failed

Commit Message

Martin Storsjö Feb. 23, 2022, 2:29 p.m. UTC
This avoids unnecessary rebuilds of most source files if only the
list of enabled components has changed, but not the other properties
of the build, set in config.h.
---
 configure                          | 17 +++++++++++++++--
 fftools/ffplay.c                   |  1 +
 libavcodec/8svx.c                  |  1 +
 libavcodec/a64multienc.c           |  1 +
 libavcodec/aac_ac3_parser.c        |  1 +
 libavcodec/aactab.c                |  1 +
 libavcodec/aarch64/h264cmc_neon.S  |  1 +
 libavcodec/ac3_parser.c            |  1 +
 libavcodec/ac3dec.c                |  1 +
 libavcodec/ac3enc.c                |  1 +
 libavcodec/ac3enc_template.c       |  1 +
 libavcodec/adpcm.c                 |  1 +
 libavcodec/adpcmenc.c              |  1 +
 libavcodec/allcodecs.c             |  1 +
 libavcodec/aptxdec.c               |  1 +
 libavcodec/aptxenc.c               |  1 +
 libavcodec/arm/flacdsp_init_arm.c  |  1 +
 libavcodec/arm/h264cmc_neon.S      |  1 +
 libavcodec/assdec.c                |  1 +
 libavcodec/assenc.c                |  1 +
 libavcodec/asvdec.c                |  1 +
 libavcodec/asvenc.c                |  1 +
 libavcodec/audiotoolboxdec.c       |  1 +
 libavcodec/av1dec.c                |  1 +
 libavcodec/binkaudio.c             |  1 +
 libavcodec/bintext.c               |  1 +
 libavcodec/bsf.c                   |  1 +
 libavcodec/cyuv.c                  |  1 +
 libavcodec/flashsv.c               |  1 +
 libavcodec/g726.c                  |  1 +
 libavcodec/gsmdec.c                |  1 +
 libavcodec/h263dec.c               |  1 +
 libavcodec/h264_slice.c            |  1 +
 libavcodec/h264dec.c               |  2 ++
 libavcodec/hevcdec.c               |  1 +
 libavcodec/huffyuvdec.c            |  1 +
 libavcodec/huffyuvenc.c            |  1 +
 libavcodec/idctdsp.c               |  1 +
 libavcodec/iff.c                   |  1 +
 libavcodec/imc.c                   |  1 +
 libavcodec/ituh263dec.c            |  1 +
 libavcodec/ituh263enc.c            |  1 +
 libavcodec/lcldec.c                |  1 +
 libavcodec/libgsmdec.c             |  1 +
 libavcodec/libgsmenc.c             |  1 +
 libavcodec/libopencore-amr.c       |  1 +
 libavcodec/libvpx.c                |  1 +
 libavcodec/libvpxdec.c             |  1 +
 libavcodec/libvpxenc.c             |  1 +
 libavcodec/libx264.c               |  1 +
 libavcodec/me_cmp.c                |  1 +
 libavcodec/metasound_data.c        |  1 +
 libavcodec/mjpegdec.c              |  1 +
 libavcodec/mjpegenc.c              |  1 +
 libavcodec/mlpdec.c                |  1 +
 libavcodec/mlpenc.c                |  1 +
 libavcodec/mpeg12dec.c             |  1 +
 libavcodec/mpeg12enc.c             |  1 +
 libavcodec/mpeg4videodec.c         |  1 +
 libavcodec/mpegaudiodec_fixed.c    |  1 +
 libavcodec/mpegaudiodec_float.c    |  1 +
 libavcodec/mpegvideo.c             |  1 +
 libavcodec/mpegvideo_enc.c         |  1 +
 libavcodec/mpegvideo_motion.c      |  1 +
 libavcodec/msmpeg4.c               |  1 +
 libavcodec/msmpeg4dec.c            |  1 +
 libavcodec/mvcdec.c                |  1 +
 libavcodec/options.c               |  1 +
 libavcodec/opus_pvq.c              |  1 +
 libavcodec/pcm.c                   |  1 +
 libavcodec/pngdec.c                |  1 +
 libavcodec/pnmdec.c                |  1 +
 libavcodec/pnmenc.c                |  1 +
 libavcodec/proresdec2.c            |  1 +
 libavcodec/qpeldsp.c               |  1 +
 libavcodec/r210dec.c               |  1 +
 libavcodec/r210enc.c               |  1 +
 libavcodec/rv34_parser.c           |  1 +
 libavcodec/sonic.c                 |  1 +
 libavcodec/sp5xdec.c               |  1 +
 libavcodec/speedhq.c               |  1 +
 libavcodec/speedhqenc.c            |  1 +
 libavcodec/srtdec.c                |  1 +
 libavcodec/srtenc.c                |  1 +
 libavcodec/textdec.c               |  1 +
 libavcodec/v408dec.c               |  1 +
 libavcodec/v408enc.c               |  1 +
 libavcodec/vc1dec.c                |  1 +
 libavcodec/vc1dsp.c                |  1 +
 libavcodec/videotoolbox.c          |  1 +
 libavcodec/vorbis_parser.c         |  1 +
 libavcodec/vp3.c                   |  1 +
 libavcodec/vp56dsp.c               |  1 +
 libavcodec/vp8.c                   |  1 +
 libavcodec/vp8dsp.c                |  1 +
 libavcodec/vp9.c                   |  1 +
 libavcodec/wmadec.c                |  1 +
 libavcodec/wmaenc.c                |  1 +
 libavcodec/x86/flacdsp_init.c      |  1 +
 libavcodec/x86/hpeldsp_init.c      |  1 +
 libavfilter/aeval.c                |  1 +
 libavfilter/af_afade.c             |  1 +
 libavfilter/af_agate.c             |  1 +
 libavfilter/af_biquads.c           |  1 +
 libavfilter/af_sidechaincompress.c |  1 +
 libavfilter/avf_showspectrum.c     |  1 +
 libavfilter/avf_showwaves.c        |  1 +
 libavfilter/f_bench.c              |  1 +
 libavfilter/f_cue.c                |  1 +
 libavfilter/f_drawgraph.c          |  1 +
 libavfilter/f_graphmonitor.c       |  1 +
 libavfilter/f_interleave.c         |  1 +
 libavfilter/f_latency.c            |  1 +
 libavfilter/f_loop.c               |  1 +
 libavfilter/f_metadata.c           |  1 +
 libavfilter/f_perms.c              |  1 +
 libavfilter/f_realtime.c           |  1 +
 libavfilter/f_reverse.c            |  1 +
 libavfilter/f_segment.c            |  1 +
 libavfilter/f_select.c             |  1 +
 libavfilter/f_sendcmd.c            |  1 +
 libavfilter/f_sidedata.c           |  1 +
 libavfilter/lut3d.h                |  1 +
 libavfilter/setpts.c               |  1 +
 libavfilter/settb.c                |  1 +
 libavfilter/src_movie.c            |  1 +
 libavfilter/trim.c                 |  1 +
 libavfilter/vf_aspect.c            |  1 +
 libavfilter/vf_blend.c             |  1 +
 libavfilter/vf_colorconstancy.c    |  1 +
 libavfilter/vf_colorkey.c          |  1 +
 libavfilter/vf_convolution.c       |  1 +
 libavfilter/vf_convolve.c          |  1 +
 libavfilter/vf_drawbox.c           |  1 +
 libavfilter/vf_extractplanes.c     |  1 +
 libavfilter/vf_format.c            |  1 +
 libavfilter/vf_histogram.c         |  1 +
 libavfilter/vf_identity.c          |  1 +
 libavfilter/vf_lut.c               |  1 +
 libavfilter/vf_lut2.c              |  1 +
 libavfilter/vf_mix.c               |  1 +
 libavfilter/vf_neighbor.c          |  1 +
 libavfilter/vf_premultiply.c       |  1 +
 libavfilter/vf_setparams.c         |  1 +
 libavfilter/vf_stack.c             |  1 +
 libavfilter/vf_xmedian.c           |  1 +
 libavfilter/vsrc_testsrc.c         |  1 +
 libavformat/ac3dec.c               |  1 +
 libavformat/alp.c                  |  1 +
 libavformat/amr.c                  |  1 +
 libavformat/apm.c                  |  1 +
 libavformat/aptxdec.c              |  1 +
 libavformat/argo_asf.c             |  1 +
 libavformat/argo_cvg.c             |  1 +
 libavformat/asfenc.c               |  1 +
 libavformat/au.c                   |  1 +
 libavformat/av1dec.c               |  1 +
 libavformat/avidec.c               |  1 +
 libavformat/avienc.c               |  1 +
 libavformat/bintext.c              |  1 +
 libavformat/bit.c                  |  1 +
 libavformat/codec2.c               |  1 +
 libavformat/concat.c               |  1 +
 libavformat/dashenc.c              |  1 +
 libavformat/demux.c                |  1 +
 libavformat/file.c                 |  1 +
 libavformat/format.c               |  1 +
 libavformat/g726.c                 |  1 +
 libavformat/gopher.c               |  1 +
 libavformat/hashenc.c              |  1 +
 libavformat/hls.c                  |  1 +
 libavformat/hlsenc.c               |  1 +
 libavformat/http.c                 |  1 +
 libavformat/ilbc.c                 |  1 +
 libavformat/img2dec.c              |  1 +
 libavformat/img2enc.c              |  1 +
 libavformat/kvag.c                 |  1 +
 libavformat/matroskadec.c          |  1 +
 libavformat/matroskaenc.c          |  1 +
 libavformat/mj2kdec.c              |  1 +
 libavformat/mlpdec.c               |  1 +
 libavformat/mmf.c                  |  1 +
 libavformat/mov.c                  |  1 +
 libavformat/movenc.c               |  1 +
 libavformat/mpeg.c                 |  1 +
 libavformat/mpegenc.c              |  1 +
 libavformat/mpegts.c               |  1 +
 libavformat/network.c              |  1 +
 libavformat/oggenc.c               |  1 +
 libavformat/pcmdec.c               |  1 +
 libavformat/pcmenc.c               |  1 +
 libavformat/rawdec.c               |  1 +
 libavformat/rawenc.c               |  1 +
 libavformat/rawvideodec.c          |  1 +
 libavformat/riff.c                 |  1 +
 libavformat/rtmpproto.c            |  1 +
 libavformat/rtsp.c                 |  1 +
 libavformat/rtspdec.c              |  1 +
 libavformat/sdp.c                  |  1 +
 libavformat/segment.c              |  1 +
 libavformat/swfenc.c               |  1 +
 libavformat/voc.c                  |  1 +
 libavformat/wavdec.c               |  1 +
 libavformat/wavenc.c               |  1 +
 204 files changed, 219 insertions(+), 2 deletions(-)

Comments

Michael Niedermayer Feb. 24, 2022, 9:22 p.m. UTC | #1
On Wed, Feb 23, 2022 at 04:29:51PM +0200, Martin Storsjö wrote:
> This avoids unnecessary rebuilds of most source files if only the
> list of enabled components has changed, but not the other properties
> of the build, set in config.h.
> ---
>  configure                          | 17 +++++++++++++++--
>  fftools/ffplay.c                   |  1 +
>  libavcodec/8svx.c                  |  1 +
>  libavcodec/a64multienc.c           |  1 +
>  libavcodec/aac_ac3_parser.c        |  1 +
>  libavcodec/aactab.c                |  1 +
>  libavcodec/aarch64/h264cmc_neon.S  |  1 +
>  libavcodec/ac3_parser.c            |  1 +
>  libavcodec/ac3dec.c                |  1 +
>  libavcodec/ac3enc.c                |  1 +
>  libavcodec/ac3enc_template.c       |  1 +
>  libavcodec/adpcm.c                 |  1 +
>  libavcodec/adpcmenc.c              |  1 +
>  libavcodec/allcodecs.c             |  1 +
>  libavcodec/aptxdec.c               |  1 +
>  libavcodec/aptxenc.c               |  1 +
>  libavcodec/arm/flacdsp_init_arm.c  |  1 +
>  libavcodec/arm/h264cmc_neon.S      |  1 +
>  libavcodec/assdec.c                |  1 +
>  libavcodec/assenc.c                |  1 +
>  libavcodec/asvdec.c                |  1 +
>  libavcodec/asvenc.c                |  1 +
>  libavcodec/audiotoolboxdec.c       |  1 +
>  libavcodec/av1dec.c                |  1 +
>  libavcodec/binkaudio.c             |  1 +
>  libavcodec/bintext.c               |  1 +
>  libavcodec/bsf.c                   |  1 +
>  libavcodec/cyuv.c                  |  1 +
>  libavcodec/flashsv.c               |  1 +
>  libavcodec/g726.c                  |  1 +
>  libavcodec/gsmdec.c                |  1 +
>  libavcodec/h263dec.c               |  1 +
>  libavcodec/h264_slice.c            |  1 +
>  libavcodec/h264dec.c               |  2 ++
>  libavcodec/hevcdec.c               |  1 +
>  libavcodec/huffyuvdec.c            |  1 +
>  libavcodec/huffyuvenc.c            |  1 +
>  libavcodec/idctdsp.c               |  1 +
>  libavcodec/iff.c                   |  1 +
>  libavcodec/imc.c                   |  1 +
>  libavcodec/ituh263dec.c            |  1 +
>  libavcodec/ituh263enc.c            |  1 +
>  libavcodec/lcldec.c                |  1 +
>  libavcodec/libgsmdec.c             |  1 +
>  libavcodec/libgsmenc.c             |  1 +
>  libavcodec/libopencore-amr.c       |  1 +
>  libavcodec/libvpx.c                |  1 +
>  libavcodec/libvpxdec.c             |  1 +
>  libavcodec/libvpxenc.c             |  1 +
>  libavcodec/libx264.c               |  1 +
>  libavcodec/me_cmp.c                |  1 +
>  libavcodec/metasound_data.c        |  1 +
>  libavcodec/mjpegdec.c              |  1 +
>  libavcodec/mjpegenc.c              |  1 +
>  libavcodec/mlpdec.c                |  1 +
>  libavcodec/mlpenc.c                |  1 +
>  libavcodec/mpeg12dec.c             |  1 +
>  libavcodec/mpeg12enc.c             |  1 +
>  libavcodec/mpeg4videodec.c         |  1 +
>  libavcodec/mpegaudiodec_fixed.c    |  1 +
>  libavcodec/mpegaudiodec_float.c    |  1 +
>  libavcodec/mpegvideo.c             |  1 +
>  libavcodec/mpegvideo_enc.c         |  1 +
>  libavcodec/mpegvideo_motion.c      |  1 +
>  libavcodec/msmpeg4.c               |  1 +
>  libavcodec/msmpeg4dec.c            |  1 +
>  libavcodec/mvcdec.c                |  1 +
>  libavcodec/options.c               |  1 +
>  libavcodec/opus_pvq.c              |  1 +
>  libavcodec/pcm.c                   |  1 +
>  libavcodec/pngdec.c                |  1 +
>  libavcodec/pnmdec.c                |  1 +
>  libavcodec/pnmenc.c                |  1 +
>  libavcodec/proresdec2.c            |  1 +
>  libavcodec/qpeldsp.c               |  1 +
>  libavcodec/r210dec.c               |  1 +
>  libavcodec/r210enc.c               |  1 +
>  libavcodec/rv34_parser.c           |  1 +
>  libavcodec/sonic.c                 |  1 +
>  libavcodec/sp5xdec.c               |  1 +
>  libavcodec/speedhq.c               |  1 +
>  libavcodec/speedhqenc.c            |  1 +
>  libavcodec/srtdec.c                |  1 +
>  libavcodec/srtenc.c                |  1 +
>  libavcodec/textdec.c               |  1 +
>  libavcodec/v408dec.c               |  1 +
>  libavcodec/v408enc.c               |  1 +
>  libavcodec/vc1dec.c                |  1 +
>  libavcodec/vc1dsp.c                |  1 +
>  libavcodec/videotoolbox.c          |  1 +
>  libavcodec/vorbis_parser.c         |  1 +
>  libavcodec/vp3.c                   |  1 +
>  libavcodec/vp56dsp.c               |  1 +
>  libavcodec/vp8.c                   |  1 +
>  libavcodec/vp8dsp.c                |  1 +
>  libavcodec/vp9.c                   |  1 +
>  libavcodec/wmadec.c                |  1 +
>  libavcodec/wmaenc.c                |  1 +
>  libavcodec/x86/flacdsp_init.c      |  1 +
>  libavcodec/x86/hpeldsp_init.c      |  1 +
>  libavfilter/aeval.c                |  1 +
>  libavfilter/af_afade.c             |  1 +
>  libavfilter/af_agate.c             |  1 +
>  libavfilter/af_biquads.c           |  1 +
>  libavfilter/af_sidechaincompress.c |  1 +
>  libavfilter/avf_showspectrum.c     |  1 +
>  libavfilter/avf_showwaves.c        |  1 +
>  libavfilter/f_bench.c              |  1 +
>  libavfilter/f_cue.c                |  1 +
>  libavfilter/f_drawgraph.c          |  1 +
>  libavfilter/f_graphmonitor.c       |  1 +
>  libavfilter/f_interleave.c         |  1 +
>  libavfilter/f_latency.c            |  1 +
>  libavfilter/f_loop.c               |  1 +
>  libavfilter/f_metadata.c           |  1 +
>  libavfilter/f_perms.c              |  1 +
>  libavfilter/f_realtime.c           |  1 +
>  libavfilter/f_reverse.c            |  1 +
>  libavfilter/f_segment.c            |  1 +
>  libavfilter/f_select.c             |  1 +
>  libavfilter/f_sendcmd.c            |  1 +
>  libavfilter/f_sidedata.c           |  1 +
>  libavfilter/lut3d.h                |  1 +
>  libavfilter/setpts.c               |  1 +
>  libavfilter/settb.c                |  1 +
>  libavfilter/src_movie.c            |  1 +
>  libavfilter/trim.c                 |  1 +
>  libavfilter/vf_aspect.c            |  1 +
>  libavfilter/vf_blend.c             |  1 +
>  libavfilter/vf_colorconstancy.c    |  1 +
>  libavfilter/vf_colorkey.c          |  1 +
>  libavfilter/vf_convolution.c       |  1 +
>  libavfilter/vf_convolve.c          |  1 +
>  libavfilter/vf_drawbox.c           |  1 +
>  libavfilter/vf_extractplanes.c     |  1 +
>  libavfilter/vf_format.c            |  1 +
>  libavfilter/vf_histogram.c         |  1 +
>  libavfilter/vf_identity.c          |  1 +
>  libavfilter/vf_lut.c               |  1 +
>  libavfilter/vf_lut2.c              |  1 +
>  libavfilter/vf_mix.c               |  1 +
>  libavfilter/vf_neighbor.c          |  1 +
>  libavfilter/vf_premultiply.c       |  1 +
>  libavfilter/vf_setparams.c         |  1 +
>  libavfilter/vf_stack.c             |  1 +
>  libavfilter/vf_xmedian.c           |  1 +
>  libavfilter/vsrc_testsrc.c         |  1 +
>  libavformat/ac3dec.c               |  1 +
>  libavformat/alp.c                  |  1 +
>  libavformat/amr.c                  |  1 +
>  libavformat/apm.c                  |  1 +
>  libavformat/aptxdec.c              |  1 +
>  libavformat/argo_asf.c             |  1 +
>  libavformat/argo_cvg.c             |  1 +
>  libavformat/asfenc.c               |  1 +
>  libavformat/au.c                   |  1 +
>  libavformat/av1dec.c               |  1 +
>  libavformat/avidec.c               |  1 +
>  libavformat/avienc.c               |  1 +
>  libavformat/bintext.c              |  1 +
>  libavformat/bit.c                  |  1 +
>  libavformat/codec2.c               |  1 +
>  libavformat/concat.c               |  1 +
>  libavformat/dashenc.c              |  1 +
>  libavformat/demux.c                |  1 +
>  libavformat/file.c                 |  1 +
>  libavformat/format.c               |  1 +
>  libavformat/g726.c                 |  1 +
>  libavformat/gopher.c               |  1 +
>  libavformat/hashenc.c              |  1 +
>  libavformat/hls.c                  |  1 +
>  libavformat/hlsenc.c               |  1 +
>  libavformat/http.c                 |  1 +
>  libavformat/ilbc.c                 |  1 +
>  libavformat/img2dec.c              |  1 +
>  libavformat/img2enc.c              |  1 +
>  libavformat/kvag.c                 |  1 +
>  libavformat/matroskadec.c          |  1 +
>  libavformat/matroskaenc.c          |  1 +
>  libavformat/mj2kdec.c              |  1 +
>  libavformat/mlpdec.c               |  1 +
>  libavformat/mmf.c                  |  1 +
>  libavformat/mov.c                  |  1 +
>  libavformat/movenc.c               |  1 +
>  libavformat/mpeg.c                 |  1 +
>  libavformat/mpegenc.c              |  1 +
>  libavformat/mpegts.c               |  1 +
>  libavformat/network.c              |  1 +
>  libavformat/oggenc.c               |  1 +
>  libavformat/pcmdec.c               |  1 +
>  libavformat/pcmenc.c               |  1 +
>  libavformat/rawdec.c               |  1 +
>  libavformat/rawenc.c               |  1 +
>  libavformat/rawvideodec.c          |  1 +
>  libavformat/riff.c                 |  1 +
>  libavformat/rtmpproto.c            |  1 +
>  libavformat/rtsp.c                 |  1 +
>  libavformat/rtspdec.c              |  1 +
>  libavformat/sdp.c                  |  1 +
>  libavformat/segment.c              |  1 +
>  libavformat/swfenc.c               |  1 +
>  libavformat/voc.c                  |  1 +
>  libavformat/wavdec.c               |  1 +
>  libavformat/wavenc.c               |  1 +
>  204 files changed, 219 insertions(+), 2 deletions(-)

breaks build on mingw64 here

libavcodec/libavcodec.a(h264dec.o):h264dec.c:(.rdata+0x570): undefined reference to `ff_h264_d3d11va2_hwaccel'
libavcodec/libavcodec.a(h264dec.o):h264dec.c:(.rdata+0x590): undefined reference to `ff_h264_d3d11va_hwaccel'
libavcodec/libavcodec.a(h264dec.o):h264dec.c:(.rdata+0x5b0): undefined reference to `ff_h264_dxva2_hwaccel'
libavcodec/libavcodec.a(hevcdec.o):hevcdec.c:(.rdata+0xab0): undefined reference to `ff_hevc_d3d11va2_hwaccel'
libavcodec/libavcodec.a(hevcdec.o):hevcdec.c:(.rdata+0xad0): undefined reference to `ff_hevc_d3d11va_hwaccel'
libavcodec/libavcodec.a(hevcdec.o):hevcdec.c:(.rdata+0xaf0): undefined reference to `ff_hevc_dxva2_hwaccel'
libavcodec/libavcodec.a(mpeg12dec.o):mpeg12dec.c:(.rdata+0xc10): undefined reference to `ff_mpeg2_d3d11va2_hwaccel'
libavcodec/libavcodec.a(mpeg12dec.o):mpeg12dec.c:(.rdata+0xc30): undefined reference to `ff_mpeg2_d3d11va_hwaccel'
libavcodec/libavcodec.a(mpeg12dec.o):mpeg12dec.c:(.rdata+0xc50): undefined reference to `ff_mpeg2_dxva2_hwaccel'
libavcodec/libavcodec.a(vc1dec.o):vc1dec.c:(.rdata+0x710): undefined reference to `ff_wmv3_d3d11va2_hwaccel'
libavcodec/libavcodec.a(vc1dec.o):vc1dec.c:(.rdata+0x730): undefined reference to `ff_wmv3_d3d11va_hwaccel'
libavcodec/libavcodec.a(vc1dec.o):vc1dec.c:(.rdata+0x750): undefined reference to `ff_wmv3_dxva2_hwaccel'
libavcodec/libavcodec.a(vc1dec.o):vc1dec.c:(.rdata+0x890): undefined reference to `ff_vc1_d3d11va2_hwaccel'
libavcodec/libavcodec.a(vc1dec.o):vc1dec.c:(.rdata+0x8b0): undefined reference to `ff_vc1_d3d11va_hwaccel'
libavcodec/libavcodec.a(vc1dec.o):vc1dec.c:(.rdata+0x8d0): undefined reference to `ff_vc1_dxva2_hwaccel'
libavcodec/libavcodec.a(vp9.o):vp9.c:(.rdata+0x630): undefined reference to `ff_vp9_d3d11va2_hwaccel'
libavcodec/libavcodec.a(vp9.o):vp9.c:(.rdata+0x650): undefined reference to `ff_vp9_d3d11va_hwaccel'
libavcodec/libavcodec.a(vp9.o):vp9.c:(.rdata+0x670): undefined reference to `ff_vp9_dxva2_hwaccel'
libavcodec/libavcodec.a(h264dec.o):h264dec.c:(.rdata+0x570): undefined reference to `ff_h264_d3d11va2_hwaccel'
libavcodec/libavcodec.a(h264dec.o):h264dec.c:(.rdata+0x590): undefined reference to `ff_h264_d3d11va_hwaccel'
libavcodec/libavcodec.a(h264dec.o):h264dec.c:(.rdata+0x5b0): undefined reference to `ff_h264_dxva2_hwaccel'
libavcodec/libavcodec.a(hevcdec.o):hevcdec.c:(.rdata+0xab0): undefined reference to `ff_hevc_d3d11va2_hwaccel'
libavcodec/libavcodec.a(hevcdec.o):hevcdec.c:(.rdata+0xad0): undefined reference to `ff_hevc_d3d11va_hwaccel'
libavcodec/libavcodec.a(hevcdec.o):hevcdec.c:(.rdata+0xaf0): undefined reference to `ff_hevc_dxva2_hwaccel'
libavcodec/libavcodec.a(mpeg12dec.o):mpeg12dec.c:(.rdata+0xc10): undefined reference to `ff_mpeg2_d3d11va2_hwaccel'
libavcodec/libavcodec.a(mpeg12dec.o):mpeg12dec.c:(.rdata+0xc30): undefined reference to `ff_mpeg2_d3d11va_hwaccel'
libavcodec/libavcodec.a(mpeg12dec.o):mpeg12dec.c:(.rdata+0xc50): undefined reference to `ff_mpeg2_dxva2_hwaccel'
libavcodec/libavcodec.a(vc1dec.o):vc1dec.c:(.rdata+0x710): undefined reference to `ff_wmv3_d3d11va2_hwaccel'
libavcodec/libavcodec.a(vc1dec.o):vc1dec.c:(.rdata+0x730): undefined reference to `ff_wmv3_d3d11va_hwaccel'
libavcodec/libavcodec.a(vc1dec.o):vc1dec.c:(.rdata+0x750): undefined reference to `ff_wmv3_dxva2_hwaccel'
libavcodec/libavcodec.a(vc1dec.o):vc1dec.c:(.rdata+0x890): undefined reference to `ff_vc1_d3d11va2_hwaccel'
libavcodec/libavcodec.a(vc1dec.o):vc1dec.c:(.rdata+0x8b0): undefined reference to `ff_vc1_d3d11va_hwaccel'
libavcodec/libavcodec.a(vc1dec.o):vc1dec.c:(.rdata+0x8d0): undefined reference to `ff_vc1_dxva2_hwaccel'
libavcodec/libavcodec.a(vp9.o):vp9.c:(.rdata+0x630): undefined reference to `ff_vp9_d3d11va2_hwaccel'
libavcodec/libavcodec.a(vp9.o):vp9.c:(.rdata+0x650): undefined reference to `ff_vp9_d3d11va_hwaccel'
libavcodec/libavcodec.a(vp9.o):vp9.c:(.rdata+0x670): undefined reference to `ff_vp9_dxva2_hwaccel'
collect2: error: ld returned 1 exit status
collect2: error: ld returned 1 exit status
Makefile:127: recipe for target 'ffprobe_g.exe' failed
make: *** [ffprobe_g.exe] Error 1
make: *** Waiting for unfinished jobs....
Makefile:127: recipe for target 'ffmpeg_g.exe' failed
make: *** [ffmpeg_g.exe] Error 1

[...]
Martin Storsjö Feb. 24, 2022, 9:35 p.m. UTC | #2
On Thu, 24 Feb 2022, Michael Niedermayer wrote:

> On Wed, Feb 23, 2022 at 04:29:51PM +0200, Martin Storsjö wrote:
>> This avoids unnecessary rebuilds of most source files if only the
>> list of enabled components has changed, but not the other properties
>> of the build, set in config.h.
>> ---
>>  configure                          | 17 +++++++++++++++--
>>  fftools/ffplay.c                   |  1 +
>>  libavcodec/8svx.c                  |  1 +
>>  libavcodec/a64multienc.c           |  1 +
>>  libavcodec/aac_ac3_parser.c        |  1 +
>>  libavcodec/aactab.c                |  1 +
>>  libavcodec/aarch64/h264cmc_neon.S  |  1 +
>>  libavcodec/ac3_parser.c            |  1 +
>>  libavcodec/ac3dec.c                |  1 +
>>  libavcodec/ac3enc.c                |  1 +
>>  libavcodec/ac3enc_template.c       |  1 +
>>  libavcodec/adpcm.c                 |  1 +
>>  libavcodec/adpcmenc.c              |  1 +
>>  libavcodec/allcodecs.c             |  1 +
>>  libavcodec/aptxdec.c               |  1 +
>>  libavcodec/aptxenc.c               |  1 +
>>  libavcodec/arm/flacdsp_init_arm.c  |  1 +
>>  libavcodec/arm/h264cmc_neon.S      |  1 +
>>  libavcodec/assdec.c                |  1 +
>>  libavcodec/assenc.c                |  1 +
>>  libavcodec/asvdec.c                |  1 +
>>  libavcodec/asvenc.c                |  1 +
>>  libavcodec/audiotoolboxdec.c       |  1 +
>>  libavcodec/av1dec.c                |  1 +
>>  libavcodec/binkaudio.c             |  1 +
>>  libavcodec/bintext.c               |  1 +
>>  libavcodec/bsf.c                   |  1 +
>>  libavcodec/cyuv.c                  |  1 +
>>  libavcodec/flashsv.c               |  1 +
>>  libavcodec/g726.c                  |  1 +
>>  libavcodec/gsmdec.c                |  1 +
>>  libavcodec/h263dec.c               |  1 +
>>  libavcodec/h264_slice.c            |  1 +
>>  libavcodec/h264dec.c               |  2 ++
>>  libavcodec/hevcdec.c               |  1 +
>>  libavcodec/huffyuvdec.c            |  1 +
>>  libavcodec/huffyuvenc.c            |  1 +
>>  libavcodec/idctdsp.c               |  1 +
>>  libavcodec/iff.c                   |  1 +
>>  libavcodec/imc.c                   |  1 +
>>  libavcodec/ituh263dec.c            |  1 +
>>  libavcodec/ituh263enc.c            |  1 +
>>  libavcodec/lcldec.c                |  1 +
>>  libavcodec/libgsmdec.c             |  1 +
>>  libavcodec/libgsmenc.c             |  1 +
>>  libavcodec/libopencore-amr.c       |  1 +
>>  libavcodec/libvpx.c                |  1 +
>>  libavcodec/libvpxdec.c             |  1 +
>>  libavcodec/libvpxenc.c             |  1 +
>>  libavcodec/libx264.c               |  1 +
>>  libavcodec/me_cmp.c                |  1 +
>>  libavcodec/metasound_data.c        |  1 +
>>  libavcodec/mjpegdec.c              |  1 +
>>  libavcodec/mjpegenc.c              |  1 +
>>  libavcodec/mlpdec.c                |  1 +
>>  libavcodec/mlpenc.c                |  1 +
>>  libavcodec/mpeg12dec.c             |  1 +
>>  libavcodec/mpeg12enc.c             |  1 +
>>  libavcodec/mpeg4videodec.c         |  1 +
>>  libavcodec/mpegaudiodec_fixed.c    |  1 +
>>  libavcodec/mpegaudiodec_float.c    |  1 +
>>  libavcodec/mpegvideo.c             |  1 +
>>  libavcodec/mpegvideo_enc.c         |  1 +
>>  libavcodec/mpegvideo_motion.c      |  1 +
>>  libavcodec/msmpeg4.c               |  1 +
>>  libavcodec/msmpeg4dec.c            |  1 +
>>  libavcodec/mvcdec.c                |  1 +
>>  libavcodec/options.c               |  1 +
>>  libavcodec/opus_pvq.c              |  1 +
>>  libavcodec/pcm.c                   |  1 +
>>  libavcodec/pngdec.c                |  1 +
>>  libavcodec/pnmdec.c                |  1 +
>>  libavcodec/pnmenc.c                |  1 +
>>  libavcodec/proresdec2.c            |  1 +
>>  libavcodec/qpeldsp.c               |  1 +
>>  libavcodec/r210dec.c               |  1 +
>>  libavcodec/r210enc.c               |  1 +
>>  libavcodec/rv34_parser.c           |  1 +
>>  libavcodec/sonic.c                 |  1 +
>>  libavcodec/sp5xdec.c               |  1 +
>>  libavcodec/speedhq.c               |  1 +
>>  libavcodec/speedhqenc.c            |  1 +
>>  libavcodec/srtdec.c                |  1 +
>>  libavcodec/srtenc.c                |  1 +
>>  libavcodec/textdec.c               |  1 +
>>  libavcodec/v408dec.c               |  1 +
>>  libavcodec/v408enc.c               |  1 +
>>  libavcodec/vc1dec.c                |  1 +
>>  libavcodec/vc1dsp.c                |  1 +
>>  libavcodec/videotoolbox.c          |  1 +
>>  libavcodec/vorbis_parser.c         |  1 +
>>  libavcodec/vp3.c                   |  1 +
>>  libavcodec/vp56dsp.c               |  1 +
>>  libavcodec/vp8.c                   |  1 +
>>  libavcodec/vp8dsp.c                |  1 +
>>  libavcodec/vp9.c                   |  1 +
>>  libavcodec/wmadec.c                |  1 +
>>  libavcodec/wmaenc.c                |  1 +
>>  libavcodec/x86/flacdsp_init.c      |  1 +
>>  libavcodec/x86/hpeldsp_init.c      |  1 +
>>  libavfilter/aeval.c                |  1 +
>>  libavfilter/af_afade.c             |  1 +
>>  libavfilter/af_agate.c             |  1 +
>>  libavfilter/af_biquads.c           |  1 +
>>  libavfilter/af_sidechaincompress.c |  1 +
>>  libavfilter/avf_showspectrum.c     |  1 +
>>  libavfilter/avf_showwaves.c        |  1 +
>>  libavfilter/f_bench.c              |  1 +
>>  libavfilter/f_cue.c                |  1 +
>>  libavfilter/f_drawgraph.c          |  1 +
>>  libavfilter/f_graphmonitor.c       |  1 +
>>  libavfilter/f_interleave.c         |  1 +
>>  libavfilter/f_latency.c            |  1 +
>>  libavfilter/f_loop.c               |  1 +
>>  libavfilter/f_metadata.c           |  1 +
>>  libavfilter/f_perms.c              |  1 +
>>  libavfilter/f_realtime.c           |  1 +
>>  libavfilter/f_reverse.c            |  1 +
>>  libavfilter/f_segment.c            |  1 +
>>  libavfilter/f_select.c             |  1 +
>>  libavfilter/f_sendcmd.c            |  1 +
>>  libavfilter/f_sidedata.c           |  1 +
>>  libavfilter/lut3d.h                |  1 +
>>  libavfilter/setpts.c               |  1 +
>>  libavfilter/settb.c                |  1 +
>>  libavfilter/src_movie.c            |  1 +
>>  libavfilter/trim.c                 |  1 +
>>  libavfilter/vf_aspect.c            |  1 +
>>  libavfilter/vf_blend.c             |  1 +
>>  libavfilter/vf_colorconstancy.c    |  1 +
>>  libavfilter/vf_colorkey.c          |  1 +
>>  libavfilter/vf_convolution.c       |  1 +
>>  libavfilter/vf_convolve.c          |  1 +
>>  libavfilter/vf_drawbox.c           |  1 +
>>  libavfilter/vf_extractplanes.c     |  1 +
>>  libavfilter/vf_format.c            |  1 +
>>  libavfilter/vf_histogram.c         |  1 +
>>  libavfilter/vf_identity.c          |  1 +
>>  libavfilter/vf_lut.c               |  1 +
>>  libavfilter/vf_lut2.c              |  1 +
>>  libavfilter/vf_mix.c               |  1 +
>>  libavfilter/vf_neighbor.c          |  1 +
>>  libavfilter/vf_premultiply.c       |  1 +
>>  libavfilter/vf_setparams.c         |  1 +
>>  libavfilter/vf_stack.c             |  1 +
>>  libavfilter/vf_xmedian.c           |  1 +
>>  libavfilter/vsrc_testsrc.c         |  1 +
>>  libavformat/ac3dec.c               |  1 +
>>  libavformat/alp.c                  |  1 +
>>  libavformat/amr.c                  |  1 +
>>  libavformat/apm.c                  |  1 +
>>  libavformat/aptxdec.c              |  1 +
>>  libavformat/argo_asf.c             |  1 +
>>  libavformat/argo_cvg.c             |  1 +
>>  libavformat/asfenc.c               |  1 +
>>  libavformat/au.c                   |  1 +
>>  libavformat/av1dec.c               |  1 +
>>  libavformat/avidec.c               |  1 +
>>  libavformat/avienc.c               |  1 +
>>  libavformat/bintext.c              |  1 +
>>  libavformat/bit.c                  |  1 +
>>  libavformat/codec2.c               |  1 +
>>  libavformat/concat.c               |  1 +
>>  libavformat/dashenc.c              |  1 +
>>  libavformat/demux.c                |  1 +
>>  libavformat/file.c                 |  1 +
>>  libavformat/format.c               |  1 +
>>  libavformat/g726.c                 |  1 +
>>  libavformat/gopher.c               |  1 +
>>  libavformat/hashenc.c              |  1 +
>>  libavformat/hls.c                  |  1 +
>>  libavformat/hlsenc.c               |  1 +
>>  libavformat/http.c                 |  1 +
>>  libavformat/ilbc.c                 |  1 +
>>  libavformat/img2dec.c              |  1 +
>>  libavformat/img2enc.c              |  1 +
>>  libavformat/kvag.c                 |  1 +
>>  libavformat/matroskadec.c          |  1 +
>>  libavformat/matroskaenc.c          |  1 +
>>  libavformat/mj2kdec.c              |  1 +
>>  libavformat/mlpdec.c               |  1 +
>>  libavformat/mmf.c                  |  1 +
>>  libavformat/mov.c                  |  1 +
>>  libavformat/movenc.c               |  1 +
>>  libavformat/mpeg.c                 |  1 +
>>  libavformat/mpegenc.c              |  1 +
>>  libavformat/mpegts.c               |  1 +
>>  libavformat/network.c              |  1 +
>>  libavformat/oggenc.c               |  1 +
>>  libavformat/pcmdec.c               |  1 +
>>  libavformat/pcmenc.c               |  1 +
>>  libavformat/rawdec.c               |  1 +
>>  libavformat/rawenc.c               |  1 +
>>  libavformat/rawvideodec.c          |  1 +
>>  libavformat/riff.c                 |  1 +
>>  libavformat/rtmpproto.c            |  1 +
>>  libavformat/rtsp.c                 |  1 +
>>  libavformat/rtspdec.c              |  1 +
>>  libavformat/sdp.c                  |  1 +
>>  libavformat/segment.c              |  1 +
>>  libavformat/swfenc.c               |  1 +
>>  libavformat/voc.c                  |  1 +
>>  libavformat/wavdec.c               |  1 +
>>  libavformat/wavenc.c               |  1 +
>>  204 files changed, 219 insertions(+), 2 deletions(-)
>
> breaks build on mingw64 here
>
> libavcodec/libavcodec.a(h264dec.o):h264dec.c:(.rdata+0x570): undefined reference to `ff_h264_d3d11va2_hwaccel'
> libavcodec/libavcodec.a(h264dec.o):h264dec.c:(.rdata+0x590): undefined reference to `ff_h264_d3d11va_hwaccel'
> libavcodec/libavcodec.a(h264dec.o):h264dec.c:(.rdata+0x5b0): undefined reference to `ff_h264_dxva2_hwaccel'
> libavcodec/libavcodec.a(hevcdec.o):hevcdec.c:(.rdata+0xab0): undefined reference to `ff_hevc_d3d11va2_hwaccel'
> libavcodec/libavcodec.a(hevcdec.o):hevcdec.c:(.rdata+0xad0): undefined reference to `ff_hevc_d3d11va_hwaccel'
> libavcodec/libavcodec.a(hevcdec.o):hevcdec.c:(.rdata+0xaf0): undefined reference to `ff_hevc_dxva2_hwaccel'
> libavcodec/libavcodec.a(mpeg12dec.o):mpeg12dec.c:(.rdata+0xc10): undefined reference to `ff_mpeg2_d3d11va2_hwaccel'
> libavcodec/libavcodec.a(mpeg12dec.o):mpeg12dec.c:(.rdata+0xc30): undefined reference to `ff_mpeg2_d3d11va_hwaccel'
> libavcodec/libavcodec.a(mpeg12dec.o):mpeg12dec.c:(.rdata+0xc50): undefined reference to `ff_mpeg2_dxva2_hwaccel'
> libavcodec/libavcodec.a(vc1dec.o):vc1dec.c:(.rdata+0x710): undefined reference to `ff_wmv3_d3d11va2_hwaccel'
> libavcodec/libavcodec.a(vc1dec.o):vc1dec.c:(.rdata+0x730): undefined reference to `ff_wmv3_d3d11va_hwaccel'
> libavcodec/libavcodec.a(vc1dec.o):vc1dec.c:(.rdata+0x750): undefined reference to `ff_wmv3_dxva2_hwaccel'
> libavcodec/libavcodec.a(vc1dec.o):vc1dec.c:(.rdata+0x890): undefined reference to `ff_vc1_d3d11va2_hwaccel'
> libavcodec/libavcodec.a(vc1dec.o):vc1dec.c:(.rdata+0x8b0): undefined reference to `ff_vc1_d3d11va_hwaccel'
> libavcodec/libavcodec.a(vc1dec.o):vc1dec.c:(.rdata+0x8d0): undefined reference to `ff_vc1_dxva2_hwaccel'
> libavcodec/libavcodec.a(vp9.o):vp9.c:(.rdata+0x630): undefined reference to `ff_vp9_d3d11va2_hwaccel'
> libavcodec/libavcodec.a(vp9.o):vp9.c:(.rdata+0x650): undefined reference to `ff_vp9_d3d11va_hwaccel'
> libavcodec/libavcodec.a(vp9.o):vp9.c:(.rdata+0x670): undefined reference to `ff_vp9_dxva2_hwaccel'
> libavcodec/libavcodec.a(h264dec.o):h264dec.c:(.rdata+0x570): undefined reference to `ff_h264_d3d11va2_hwaccel'
> libavcodec/libavcodec.a(h264dec.o):h264dec.c:(.rdata+0x590): undefined reference to `ff_h264_d3d11va_hwaccel'
> libavcodec/libavcodec.a(h264dec.o):h264dec.c:(.rdata+0x5b0): undefined reference to `ff_h264_dxva2_hwaccel'
> libavcodec/libavcodec.a(hevcdec.o):hevcdec.c:(.rdata+0xab0): undefined reference to `ff_hevc_d3d11va2_hwaccel'
> libavcodec/libavcodec.a(hevcdec.o):hevcdec.c:(.rdata+0xad0): undefined reference to `ff_hevc_d3d11va_hwaccel'
> libavcodec/libavcodec.a(hevcdec.o):hevcdec.c:(.rdata+0xaf0): undefined reference to `ff_hevc_dxva2_hwaccel'
> libavcodec/libavcodec.a(mpeg12dec.o):mpeg12dec.c:(.rdata+0xc10): undefined reference to `ff_mpeg2_d3d11va2_hwaccel'
> libavcodec/libavcodec.a(mpeg12dec.o):mpeg12dec.c:(.rdata+0xc30): undefined reference to `ff_mpeg2_d3d11va_hwaccel'
> libavcodec/libavcodec.a(mpeg12dec.o):mpeg12dec.c:(.rdata+0xc50): undefined reference to `ff_mpeg2_dxva2_hwaccel'
> libavcodec/libavcodec.a(vc1dec.o):vc1dec.c:(.rdata+0x710): undefined reference to `ff_wmv3_d3d11va2_hwaccel'
> libavcodec/libavcodec.a(vc1dec.o):vc1dec.c:(.rdata+0x730): undefined reference to `ff_wmv3_d3d11va_hwaccel'
> libavcodec/libavcodec.a(vc1dec.o):vc1dec.c:(.rdata+0x750): undefined reference to `ff_wmv3_dxva2_hwaccel'
> libavcodec/libavcodec.a(vc1dec.o):vc1dec.c:(.rdata+0x890): undefined reference to `ff_vc1_d3d11va2_hwaccel'
> libavcodec/libavcodec.a(vc1dec.o):vc1dec.c:(.rdata+0x8b0): undefined reference to `ff_vc1_d3d11va_hwaccel'
> libavcodec/libavcodec.a(vc1dec.o):vc1dec.c:(.rdata+0x8d0): undefined reference to `ff_vc1_dxva2_hwaccel'
> libavcodec/libavcodec.a(vp9.o):vp9.c:(.rdata+0x630): undefined reference to `ff_vp9_d3d11va2_hwaccel'
> libavcodec/libavcodec.a(vp9.o):vp9.c:(.rdata+0x650): undefined reference to `ff_vp9_d3d11va_hwaccel'
> libavcodec/libavcodec.a(vp9.o):vp9.c:(.rdata+0x670): undefined reference to `ff_vp9_dxva2_hwaccel'
> collect2: error: ld returned 1 exit status
> collect2: error: ld returned 1 exit status
> Makefile:127: recipe for target 'ffprobe_g.exe' failed
> make: *** [ffprobe_g.exe] Error 1
> make: *** Waiting for unfinished jobs....
> Makefile:127: recipe for target 'ffmpeg_g.exe' failed
> make: *** [ffmpeg_g.exe] Error 1

Thanks - I also ran into this one later and have it fixed locally.

// Martin
diff mbox series

Patch

diff --git a/configure b/configure
index 1535dc3c5b..cc5b9e0013 100755
--- a/configure
+++ b/configure
@@ -7788,17 +7788,30 @@  print_config ARCH_   "$config_files" $ARCH_LIST
 print_config HAVE_   "$config_files" $HAVE_LIST
 print_config CONFIG_ "$config_files" $CONFIG_LIST       \
                                      $CONFIG_EXTRA      \
-                                     $ALL_COMPONENTS    \
 
 echo "#endif /* FFMPEG_CONFIG_H */" >> $TMPH
-echo "endif # FFMPEG_CONFIG_MAK" >> ffbuild/config.mak
 
 # Do not overwrite an unchanged config.h to avoid superfluous rebuilds.
 cp_if_changed $TMPH config.h
 touch ffbuild/.config
 
+# Copy config.asm before printing ALL_COMPONENTS; that's not needed in assembly.
 enabled x86asm && cp_if_changed $TMPASM config.asm
 
+# Reopen a new TMPH for config_components.h.
+cat > $TMPH <<EOF
+/* Automatically generated by configure - do not modify! */
+#ifndef FFMPEG_CONFIG_COMPONENTS_H
+#define FFMPEG_CONFIG_COMPONENTS_H
+EOF
+
+print_config CONFIG_ "$config_files" $ALL_COMPONENTS
+
+echo "#endif /* FFMPEG_CONFIG_COMPONENTS_H */" >> $TMPH
+echo "endif # FFMPEG_CONFIG_MAK" >> ffbuild/config.mak
+
+cp_if_changed $TMPH config_components.h
+
 cat > $TMPH <<EOF
 /* Generated by ffmpeg configure */
 #ifndef AVUTIL_AVCONFIG_H
diff --git a/fftools/ffplay.c b/fftools/ffplay.c
index ac48d8765d..b79ae8fb58 100644
--- a/fftools/ffplay.c
+++ b/fftools/ffplay.c
@@ -24,6 +24,7 @@ 
  */
 
 #include "config.h"
+#include "config_components.h"
 #include <inttypes.h>
 #include <math.h>
 #include <limits.h>
diff --git a/libavcodec/8svx.c b/libavcodec/8svx.c
index 6ef8cd73fe..bedcb50461 100644
--- a/libavcodec/8svx.c
+++ b/libavcodec/8svx.c
@@ -39,6 +39,7 @@ 
 
 #include "libavutil/avassert.h"
 #include "avcodec.h"
+#include "config_components.h"
 #include "internal.h"
 #include "libavutil/common.h"
 
diff --git a/libavcodec/a64multienc.c b/libavcodec/a64multienc.c
index 7bdf4a61b1..d5b31afb39 100644
--- a/libavcodec/a64multienc.c
+++ b/libavcodec/a64multienc.c
@@ -26,6 +26,7 @@ 
 
 #include "a64colors.h"
 #include "a64tables.h"
+#include "config_components.h"
 #include "elbg.h"
 #include "encode.h"
 #include "internal.h"
diff --git a/libavcodec/aac_ac3_parser.c b/libavcodec/aac_ac3_parser.c
index e84d30aea2..c78f63671a 100644
--- a/libavcodec/aac_ac3_parser.c
+++ b/libavcodec/aac_ac3_parser.c
@@ -24,6 +24,7 @@ 
 #include "libavutil/common.h"
 #include "parser.h"
 #include "aac_ac3_parser.h"
+#include "config_components.h"
 
 int ff_aac_ac3_parse(AVCodecParserContext *s1,
                      AVCodecContext *avctx,
diff --git a/libavcodec/aactab.c b/libavcodec/aactab.c
index 0553f41a61..0f4941d5df 100644
--- a/libavcodec/aactab.c
+++ b/libavcodec/aactab.c
@@ -28,6 +28,7 @@ 
  */
 
 #include "config.h"
+#include "config_components.h"
 #include "libavutil/mem_internal.h"
 #include "libavutil/thread.h"
 #include "aac.h"
diff --git a/libavcodec/aarch64/h264cmc_neon.S b/libavcodec/aarch64/h264cmc_neon.S
index 8be7578001..258aeb7e85 100644
--- a/libavcodec/aarch64/h264cmc_neon.S
+++ b/libavcodec/aarch64/h264cmc_neon.S
@@ -20,6 +20,7 @@ 
  */
 
 #include "libavutil/aarch64/asm.S"
+#include "config_components.h"
 
 /* chroma_mc8(uint8_t *dst, uint8_t *src, ptrdiff_t stride, int h, int x, int y) */
 .macro  h264_chroma_mc8 type, codec=h264
diff --git a/libavcodec/ac3_parser.c b/libavcodec/ac3_parser.c
index f3c7d27d59..86e8d417eb 100644
--- a/libavcodec/ac3_parser.c
+++ b/libavcodec/ac3_parser.c
@@ -21,6 +21,7 @@ 
  */
 
 #include "config.h"
+#include "config_components.h"
 
 #include "libavutil/channel_layout.h"
 #include "parser.h"
diff --git a/libavcodec/ac3dec.c b/libavcodec/ac3dec.c
index ae00373dcb..ddf8513246 100644
--- a/libavcodec/ac3dec.c
+++ b/libavcodec/ac3dec.c
@@ -40,6 +40,7 @@ 
 #include "ac3_parser_internal.h"
 #include "ac3dec.h"
 #include "ac3dec_data.h"
+#include "config_components.h"
 #include "kbdwin.h"
 
 /**
diff --git a/libavcodec/ac3enc.c b/libavcodec/ac3enc.c
index 034aa0beb9..e9b2e5a19c 100644
--- a/libavcodec/ac3enc.c
+++ b/libavcodec/ac3enc.c
@@ -38,6 +38,7 @@ 
 #include "libavutil/opt.h"
 #include "libavutil/thread.h"
 #include "avcodec.h"
+#include "config_components.h"
 #include "encode.h"
 #include "internal.h"
 #include "me_cmp.h"
diff --git a/libavcodec/ac3enc_template.c b/libavcodec/ac3enc_template.c
index 5ecef3b178..1ff3789f09 100644
--- a/libavcodec/ac3enc_template.c
+++ b/libavcodec/ac3enc_template.c
@@ -33,6 +33,7 @@ 
 #include "libavutil/mem_internal.h"
 
 #include "audiodsp.h"
+#include "config_components.h"
 #include "internal.h"
 #include "ac3enc.h"
 #include "eac3enc.h"
diff --git a/libavcodec/adpcm.c b/libavcodec/adpcm.c
index cfde5f58b9..9c4d7bd3b1 100644
--- a/libavcodec/adpcm.c
+++ b/libavcodec/adpcm.c
@@ -35,6 +35,7 @@ 
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 #include "avcodec.h"
+#include "config_components.h"
 #include "get_bits.h"
 #include "bytestream.h"
 #include "adpcm.h"
diff --git a/libavcodec/adpcmenc.c b/libavcodec/adpcmenc.c
index b0f6f209b7..c2688a2685 100644
--- a/libavcodec/adpcmenc.c
+++ b/libavcodec/adpcmenc.c
@@ -25,6 +25,7 @@ 
 #include "libavutil/opt.h"
 
 #include "avcodec.h"
+#include "config_components.h"
 #include "put_bits.h"
 #include "bytestream.h"
 #include "adpcm.h"
diff --git a/libavcodec/allcodecs.c b/libavcodec/allcodecs.c
index d1e10197de..58b8befa2b 100644
--- a/libavcodec/allcodecs.c
+++ b/libavcodec/allcodecs.c
@@ -28,6 +28,7 @@ 
 #include <string.h>
 
 #include "config.h"
+#include "config_components.h"
 #include "libavutil/thread.h"
 #include "codec.h"
 #include "codec_id.h"
diff --git a/libavcodec/aptxdec.c b/libavcodec/aptxdec.c
index bdcc076c41..173dbaa2de 100644
--- a/libavcodec/aptxdec.c
+++ b/libavcodec/aptxdec.c
@@ -22,6 +22,7 @@ 
 
 #include "libavutil/channel_layout.h"
 #include "aptx.h"
+#include "config_components.h"
 
 /*
  * Half-band QMF synthesis filter realized with a polyphase FIR filter.
diff --git a/libavcodec/aptxenc.c b/libavcodec/aptxenc.c
index 5ea6053c26..fca30745ab 100644
--- a/libavcodec/aptxenc.c
+++ b/libavcodec/aptxenc.c
@@ -22,6 +22,7 @@ 
 
 #include "libavutil/channel_layout.h"
 #include "aptx.h"
+#include "config_components.h"
 #include "encode.h"
 
 /*
diff --git a/libavcodec/arm/flacdsp_init_arm.c b/libavcodec/arm/flacdsp_init_arm.c
index c4a6e3a535..bac9ff1959 100644
--- a/libavcodec/arm/flacdsp_init_arm.c
+++ b/libavcodec/arm/flacdsp_init_arm.c
@@ -21,6 +21,7 @@ 
 #include "libavutil/attributes.h"
 #include "libavcodec/flacdsp.h"
 #include "config.h"
+#include "config_components.h"
 
 void ff_flac_lpc_16_arm(int32_t *samples, const int coeffs[32], int order,
                         int qlevel, int len);
diff --git a/libavcodec/arm/h264cmc_neon.S b/libavcodec/arm/h264cmc_neon.S
index 5a4159eedd..847c7c6afa 100644
--- a/libavcodec/arm/h264cmc_neon.S
+++ b/libavcodec/arm/h264cmc_neon.S
@@ -19,6 +19,7 @@ 
  */
 
 #include "libavutil/arm/asm.S"
+#include "config_components.h"
 
 /* chroma_mc8(uint8_t *dst, uint8_t *src, ptrdiff_t stride, int h, int x, int y) */
 .macro  h264_chroma_mc8 type, codec=h264
diff --git a/libavcodec/assdec.c b/libavcodec/assdec.c
index 319279490c..a9697d045d 100644
--- a/libavcodec/assdec.c
+++ b/libavcodec/assdec.c
@@ -23,6 +23,7 @@ 
 
 #include "avcodec.h"
 #include "ass.h"
+#include "config_components.h"
 #include "internal.h"
 #include "libavutil/internal.h"
 #include "libavutil/mem.h"
diff --git a/libavcodec/assenc.c b/libavcodec/assenc.c
index a6d107ded2..61c416d616 100644
--- a/libavcodec/assenc.c
+++ b/libavcodec/assenc.c
@@ -23,6 +23,7 @@ 
 
 #include "avcodec.h"
 #include "ass.h"
+#include "config_components.h"
 #include "internal.h"
 #include "libavutil/avstring.h"
 #include "libavutil/internal.h"
diff --git a/libavcodec/asvdec.c b/libavcodec/asvdec.c
index 60a4e138c4..36bedb5928 100644
--- a/libavcodec/asvdec.c
+++ b/libavcodec/asvdec.c
@@ -30,6 +30,7 @@ 
 #include "asv.h"
 #include "avcodec.h"
 #include "blockdsp.h"
+#include "config_components.h"
 #include "idctdsp.h"
 #include "internal.h"
 #include "mpeg12data.h"
diff --git a/libavcodec/asvenc.c b/libavcodec/asvenc.c
index ff96338e8a..d8eec960c4 100644
--- a/libavcodec/asvenc.c
+++ b/libavcodec/asvenc.c
@@ -29,6 +29,7 @@ 
 #include "aandcttab.h"
 #include "asv.h"
 #include "avcodec.h"
+#include "config_components.h"
 #include "dct.h"
 #include "encode.h"
 #include "fdctdsp.h"
diff --git a/libavcodec/audiotoolboxdec.c b/libavcodec/audiotoolboxdec.c
index 9939fef218..b7c746ef6f 100644
--- a/libavcodec/audiotoolboxdec.c
+++ b/libavcodec/audiotoolboxdec.c
@@ -23,6 +23,7 @@ 
 #include <AudioToolbox/AudioToolbox.h>
 
 #include "config.h"
+#include "config_components.h"
 #include "avcodec.h"
 #include "ac3_parser_internal.h"
 #include "bytestream.h"
diff --git a/libavcodec/av1dec.c b/libavcodec/av1dec.c
index b354d8d03c..1c65e3df9f 100644
--- a/libavcodec/av1dec.c
+++ b/libavcodec/av1dec.c
@@ -24,6 +24,7 @@ 
 #include "avcodec.h"
 #include "av1dec.h"
 #include "bytestream.h"
+#include "config_components.h"
 #include "hwconfig.h"
 #include "internal.h"
 #include "profiles.h"
diff --git a/libavcodec/binkaudio.c b/libavcodec/binkaudio.c
index f808141ba5..fec1e530cb 100644
--- a/libavcodec/binkaudio.c
+++ b/libavcodec/binkaudio.c
@@ -34,6 +34,7 @@ 
 
 #define BITSTREAM_READER_LE
 #include "avcodec.h"
+#include "config_components.h"
 #include "dct.h"
 #include "decode.h"
 #include "get_bits.h"
diff --git a/libavcodec/bintext.c b/libavcodec/bintext.c
index 553f020738..8eaddc0834 100644
--- a/libavcodec/bintext.c
+++ b/libavcodec/bintext.c
@@ -32,6 +32,7 @@ 
 #include "libavutil/xga_font_data.h"
 #include "avcodec.h"
 #include "cga_data.h"
+#include "config_components.h"
 #include "bintext.h"
 #include "internal.h"
 
diff --git a/libavcodec/bsf.c b/libavcodec/bsf.c
index 8ba021cb47..60761e6f7d 100644
--- a/libavcodec/bsf.c
+++ b/libavcodec/bsf.c
@@ -19,6 +19,7 @@ 
 #include <string.h>
 
 #include "config.h"
+#include "config_components.h"
 
 #include "libavutil/avassert.h"
 #include "libavutil/log.h"
diff --git a/libavcodec/cyuv.c b/libavcodec/cyuv.c
index cfaa5cfa66..1c52c36373 100644
--- a/libavcodec/cyuv.c
+++ b/libavcodec/cyuv.c
@@ -33,6 +33,7 @@ 
 #include <string.h>
 
 #include "avcodec.h"
+#include "config_components.h"
 #include "internal.h"
 #include "libavutil/internal.h"
 
diff --git a/libavcodec/flashsv.c b/libavcodec/flashsv.c
index 00f77f4902..dfe2b7b926 100644
--- a/libavcodec/flashsv.c
+++ b/libavcodec/flashsv.c
@@ -40,6 +40,7 @@ 
 #include "libavutil/intreadwrite.h"
 #include "avcodec.h"
 #include "bytestream.h"
+#include "config_components.h"
 #include "get_bits.h"
 #include "internal.h"
 
diff --git a/libavcodec/g726.c b/libavcodec/g726.c
index 2a0148c1d5..0cb1ca6f73 100644
--- a/libavcodec/g726.c
+++ b/libavcodec/g726.c
@@ -26,6 +26,7 @@ 
 #include "libavutil/channel_layout.h"
 #include "libavutil/opt.h"
 #include "avcodec.h"
+#include "config_components.h"
 #include "encode.h"
 #include "internal.h"
 #include "get_bits.h"
diff --git a/libavcodec/gsmdec.c b/libavcodec/gsmdec.c
index c169112311..6d19784d4e 100644
--- a/libavcodec/gsmdec.c
+++ b/libavcodec/gsmdec.c
@@ -26,6 +26,7 @@ 
 
 #include "libavutil/channel_layout.h"
 #include "avcodec.h"
+#include "config_components.h"
 #include "get_bits.h"
 #include "internal.h"
 #include "msgsmdec.h"
diff --git a/libavcodec/h263dec.c b/libavcodec/h263dec.c
index e940b7f7c7..2d67cffcc3 100644
--- a/libavcodec/h263dec.c
+++ b/libavcodec/h263dec.c
@@ -28,6 +28,7 @@ 
 #define UNCHECKED_BITSTREAM_READER 1
 
 #include "avcodec.h"
+#include "config_components.h"
 #include "error_resilience.h"
 #include "flvdec.h"
 #include "h263.h"
diff --git a/libavcodec/h264_slice.c b/libavcodec/h264_slice.c
index 110a41772a..bbb57d969e 100644
--- a/libavcodec/h264_slice.c
+++ b/libavcodec/h264_slice.c
@@ -34,6 +34,7 @@ 
 #include "internal.h"
 #include "cabac.h"
 #include "cabac_functions.h"
+#include "config_components.h"
 #include "error_resilience.h"
 #include "avcodec.h"
 #include "h264.h"
diff --git a/libavcodec/h264dec.c b/libavcodec/h264dec.c
index 856fbca680..fd7f83d874 100644
--- a/libavcodec/h264dec.c
+++ b/libavcodec/h264dec.c
@@ -33,6 +33,8 @@ 
 #include "libavutil/thread.h"
 #include "libavutil/video_enc_params.h"
 
+#include "config_components.h"
+
 #include "internal.h"
 #include "error_resilience.h"
 #include "avcodec.h"
diff --git a/libavcodec/hevcdec.c b/libavcodec/hevcdec.c
index 1d4ad42278..79c4fbb0e5 100644
--- a/libavcodec/hevcdec.c
+++ b/libavcodec/hevcdec.c
@@ -38,6 +38,7 @@ 
 #include "bswapdsp.h"
 #include "bytestream.h"
 #include "cabac_functions.h"
+#include "config_components.h"
 #include "golomb.h"
 #include "hevc.h"
 #include "hevc_data.h"
diff --git a/libavcodec/huffyuvdec.c b/libavcodec/huffyuvdec.c
index a5e0ef5818..b879214aac 100644
--- a/libavcodec/huffyuvdec.c
+++ b/libavcodec/huffyuvdec.c
@@ -33,6 +33,7 @@ 
 #define UNCHECKED_BITSTREAM_READER 1
 
 #include "avcodec.h"
+#include "config_components.h"
 #include "get_bits.h"
 #include "huffyuv.h"
 #include "huffyuvdsp.h"
diff --git a/libavcodec/huffyuvenc.c b/libavcodec/huffyuvenc.c
index 97497a8e75..222e8b35ec 100644
--- a/libavcodec/huffyuvenc.c
+++ b/libavcodec/huffyuvenc.c
@@ -29,6 +29,7 @@ 
  */
 
 #include "avcodec.h"
+#include "config_components.h"
 #include "encode.h"
 #include "huffyuv.h"
 #include "huffman.h"
diff --git a/libavcodec/idctdsp.c b/libavcodec/idctdsp.c
index fbcec8436c..df3aeb0676 100644
--- a/libavcodec/idctdsp.c
+++ b/libavcodec/idctdsp.c
@@ -17,6 +17,7 @@ 
  */
 
 #include "config.h"
+#include "config_components.h"
 #include "libavutil/attributes.h"
 #include "libavutil/common.h"
 #include "avcodec.h"
diff --git a/libavcodec/iff.c b/libavcodec/iff.c
index 1dcf0e00ed..6eb2bb0141 100644
--- a/libavcodec/iff.c
+++ b/libavcodec/iff.c
@@ -32,6 +32,7 @@ 
 
 #include "bytestream.h"
 #include "avcodec.h"
+#include "config_components.h"
 #include "internal.h"
 #include "mathops.h"
 
diff --git a/libavcodec/imc.c b/libavcodec/imc.c
index 116c273ba0..859ae652f3 100644
--- a/libavcodec/imc.c
+++ b/libavcodec/imc.c
@@ -42,6 +42,7 @@ 
 #include "libavutil/thread.h"
 
 #include "avcodec.h"
+#include "config_components.h"
 #include "bswapdsp.h"
 #include "get_bits.h"
 #include "fft.h"
diff --git a/libavcodec/ituh263dec.c b/libavcodec/ituh263dec.c
index 0c9473af56..c8cd03f936 100644
--- a/libavcodec/ituh263dec.c
+++ b/libavcodec/ituh263dec.c
@@ -36,6 +36,7 @@ 
 #include "libavutil/mem_internal.h"
 #include "libavutil/thread.h"
 #include "avcodec.h"
+#include "config_components.h"
 #include "mpegvideo.h"
 #include "h263.h"
 #include "h263data.h"
diff --git a/libavcodec/ituh263enc.c b/libavcodec/ituh263enc.c
index 8bedecb36e..ced4b8c307 100644
--- a/libavcodec/ituh263enc.c
+++ b/libavcodec/ituh263enc.c
@@ -32,6 +32,7 @@ 
 #include "libavutil/attributes.h"
 #include "libavutil/thread.h"
 #include "avcodec.h"
+#include "config_components.h"
 #include "mpegvideo.h"
 #include "mpegvideodata.h"
 #include "flvenc.h"
diff --git a/libavcodec/lcldec.c b/libavcodec/lcldec.c
index f3b7a8ac1b..f9b54b3c99 100644
--- a/libavcodec/lcldec.c
+++ b/libavcodec/lcldec.c
@@ -43,6 +43,7 @@ 
 #include "libavutil/mem.h"
 #include "libavutil/pixdesc.h"
 #include "avcodec.h"
+#include "config_components.h"
 #include "bytestream.h"
 #include "internal.h"
 #include "lcl.h"
diff --git a/libavcodec/libgsmdec.c b/libavcodec/libgsmdec.c
index ae4a952d99..2e6aa037ea 100644
--- a/libavcodec/libgsmdec.c
+++ b/libavcodec/libgsmdec.c
@@ -28,6 +28,7 @@ 
 // The idiosyncrasies of GSM-in-WAV are explained at http://kbs.cs.tu-berlin.de/~jutta/toast.html
 
 #include "config.h"
+#include "config_components.h"
 #if HAVE_GSM_H
 #include <gsm.h>
 #else
diff --git a/libavcodec/libgsmenc.c b/libavcodec/libgsmenc.c
index a2f6c1c62e..fab6b0cffb 100644
--- a/libavcodec/libgsmenc.c
+++ b/libavcodec/libgsmenc.c
@@ -28,6 +28,7 @@ 
 // The idiosyncrasies of GSM-in-WAV are explained at http://kbs.cs.tu-berlin.de/~jutta/toast.html
 
 #include "config.h"
+#include "config_components.h"
 #if HAVE_GSM_H
 #include <gsm.h>
 #else
diff --git a/libavcodec/libopencore-amr.c b/libavcodec/libopencore-amr.c
index 2df1c5090f..4bcfbd62dc 100644
--- a/libavcodec/libopencore-amr.c
+++ b/libavcodec/libopencore-amr.c
@@ -27,6 +27,7 @@ 
 #include "libavutil/opt.h"
 #include "avcodec.h"
 #include "audio_frame_queue.h"
+#include "config_components.h"
 #include "encode.h"
 #include "internal.h"
 
diff --git a/libavcodec/libvpx.c b/libavcodec/libvpx.c
index cc055a0032..c2b00232d2 100644
--- a/libavcodec/libvpx.c
+++ b/libavcodec/libvpx.c
@@ -21,6 +21,7 @@ 
 #include <vpx/vpx_codec.h>
 #include "libvpx.h"
 #include "config.h"
+#include "config_components.h"
 
 #if CONFIG_LIBVPX_VP9_ENCODER
 #include <vpx/vpx_encoder.h>
diff --git a/libavcodec/libvpxdec.c b/libavcodec/libvpxdec.c
index b2aa205036..2e3b9d3ad8 100644
--- a/libavcodec/libvpxdec.c
+++ b/libavcodec/libvpxdec.c
@@ -33,6 +33,7 @@ 
 #include "libavutil/imgutils.h"
 #include "libavutil/intreadwrite.h"
 #include "avcodec.h"
+#include "config_components.h"
 #include "decode.h"
 #include "internal.h"
 #include "libvpx.h"
diff --git a/libavcodec/libvpxenc.c b/libavcodec/libvpxenc.c
index 8f94ba15dc..8c0a7f3fae 100644
--- a/libavcodec/libvpxenc.c
+++ b/libavcodec/libvpxenc.c
@@ -29,6 +29,7 @@ 
 #include <vpx/vp8cx.h>
 
 #include "avcodec.h"
+#include "config_components.h"
 #include "encode.h"
 #include "internal.h"
 #include "libavutil/avassert.h"
diff --git a/libavcodec/libx264.c b/libavcodec/libx264.c
index c5e0231b12..81ab1b0813 100644
--- a/libavcodec/libx264.c
+++ b/libavcodec/libx264.c
@@ -28,6 +28,7 @@ 
 #include "libavutil/time.h"
 #include "libavutil/intreadwrite.h"
 #include "avcodec.h"
+#include "config_components.h"
 #include "encode.h"
 #include "internal.h"
 #include "packet_internal.h"
diff --git a/libavcodec/me_cmp.c b/libavcodec/me_cmp.c
index b2f87d2e1b..4c1de44eda 100644
--- a/libavcodec/me_cmp.c
+++ b/libavcodec/me_cmp.c
@@ -29,6 +29,7 @@ 
 #include "me_cmp.h"
 #include "mpegvideoenc.h"
 #include "config.h"
+#include "config_components.h"
 
 /* (i - 256) * (i - 256) */
 const uint32_t ff_square_tab[512] = {
diff --git a/libavcodec/metasound_data.c b/libavcodec/metasound_data.c
index 22b2730dda..b2044364fa 100644
--- a/libavcodec/metasound_data.c
+++ b/libavcodec/metasound_data.c
@@ -20,6 +20,7 @@ 
  */
 
 #include "config.h"
+#include "config_components.h"
 #include "metasound_data.h"
 
 #if CONFIG_METASOUND_DECODER
diff --git a/libavcodec/mjpegdec.c b/libavcodec/mjpegdec.c
index 267609d96a..a9fc2281fe 100644
--- a/libavcodec/mjpegdec.c
+++ b/libavcodec/mjpegdec.c
@@ -35,6 +35,7 @@ 
 #include "libavutil/avassert.h"
 #include "libavutil/opt.h"
 #include "avcodec.h"
+#include "config_components.h"
 #include "blockdsp.h"
 #include "copy_block.h"
 #include "decode.h"
diff --git a/libavcodec/mjpegenc.c b/libavcodec/mjpegenc.c
index 08671b0df7..9bd33f439f 100644
--- a/libavcodec/mjpegenc.c
+++ b/libavcodec/mjpegenc.c
@@ -33,6 +33,7 @@ 
 #include "libavutil/pixdesc.h"
 
 #include "avcodec.h"
+#include "config_components.h"
 #include "jpegtables.h"
 #include "mjpegenc_common.h"
 #include "mjpegenc_huffman.h"
diff --git a/libavcodec/mlpdec.c b/libavcodec/mlpdec.c
index 29fac54542..9d5c2e1b21 100644
--- a/libavcodec/mlpdec.c
+++ b/libavcodec/mlpdec.c
@@ -27,6 +27,7 @@ 
 #include <stdint.h>
 
 #include "avcodec.h"
+#include "config_components.h"
 #include "libavutil/internal.h"
 #include "libavutil/intreadwrite.h"
 #include "libavutil/channel_layout.h"
diff --git a/libavcodec/mlpenc.c b/libavcodec/mlpenc.c
index d8783b6f56..8cf42b8e72 100644
--- a/libavcodec/mlpenc.c
+++ b/libavcodec/mlpenc.c
@@ -21,6 +21,7 @@ 
  */
 
 #include "avcodec.h"
+#include "config_components.h"
 #include "encode.h"
 #include "internal.h"
 #include "put_bits.h"
diff --git a/libavcodec/mpeg12dec.c b/libavcodec/mpeg12dec.c
index 9e4e26aa67..49cb4727a3 100644
--- a/libavcodec/mpeg12dec.c
+++ b/libavcodec/mpeg12dec.c
@@ -36,6 +36,7 @@ 
 #include "libavutil/timecode.h"
 
 #include "avcodec.h"
+#include "config_components.h"
 #include "error_resilience.h"
 #include "hwconfig.h"
 #include "idctdsp.h"
diff --git a/libavcodec/mpeg12enc.c b/libavcodec/mpeg12enc.c
index 03692994b5..6110f117c6 100644
--- a/libavcodec/mpeg12enc.c
+++ b/libavcodec/mpeg12enc.c
@@ -28,6 +28,7 @@ 
 #include <stdint.h>
 
 #include "config.h"
+#include "config_components.h"
 #include "libavutil/attributes.h"
 #include "libavutil/avassert.h"
 #include "libavutil/log.h"
diff --git a/libavcodec/mpeg4videodec.c b/libavcodec/mpeg4videodec.c
index 0e0ebb674b..0a839846d3 100644
--- a/libavcodec/mpeg4videodec.c
+++ b/libavcodec/mpeg4videodec.c
@@ -25,6 +25,7 @@ 
 #include "libavutil/internal.h"
 #include "libavutil/opt.h"
 #include "libavutil/thread.h"
+#include "config_components.h"
 #include "error_resilience.h"
 #include "hwconfig.h"
 #include "idctdsp.h"
diff --git a/libavcodec/mpegaudiodec_fixed.c b/libavcodec/mpegaudiodec_fixed.c
index f9f24330fd..ac0b1f3bb3 100644
--- a/libavcodec/mpegaudiodec_fixed.c
+++ b/libavcodec/mpegaudiodec_fixed.c
@@ -19,6 +19,7 @@ 
  */
 
 #include "config.h"
+#include "config_components.h"
 #include "libavutil/samplefmt.h"
 
 #define USE_FLOATS 0
diff --git a/libavcodec/mpegaudiodec_float.c b/libavcodec/mpegaudiodec_float.c
index c7b7839997..912e6d189a 100644
--- a/libavcodec/mpegaudiodec_float.c
+++ b/libavcodec/mpegaudiodec_float.c
@@ -20,6 +20,7 @@ 
  */
 
 #include "config.h"
+#include "config_components.h"
 #include "libavutil/samplefmt.h"
 
 #define USE_FLOATS 1
diff --git a/libavcodec/mpegvideo.c b/libavcodec/mpegvideo.c
index fc970e9614..587a383963 100644
--- a/libavcodec/mpegvideo.c
+++ b/libavcodec/mpegvideo.c
@@ -34,6 +34,7 @@ 
 
 #include "avcodec.h"
 #include "blockdsp.h"
+#include "config_components.h"
 #include "h264chroma.h"
 #include "idctdsp.h"
 #include "mathops.h"
diff --git a/libavcodec/mpegvideo_enc.c b/libavcodec/mpegvideo_enc.c
index c69114ea15..b09ee2a192 100644
--- a/libavcodec/mpegvideo_enc.c
+++ b/libavcodec/mpegvideo_enc.c
@@ -41,6 +41,7 @@ 
 #include "libavutil/opt.h"
 #include "libavutil/thread.h"
 #include "avcodec.h"
+#include "config_components.h"
 #include "dct.h"
 #include "encode.h"
 #include "idctdsp.h"
diff --git a/libavcodec/mpegvideo_motion.c b/libavcodec/mpegvideo_motion.c
index 876a7375f8..76f66db3a6 100644
--- a/libavcodec/mpegvideo_motion.c
+++ b/libavcodec/mpegvideo_motion.c
@@ -26,6 +26,7 @@ 
 #include "libavutil/mem_internal.h"
 
 #include "avcodec.h"
+#include "config_components.h"
 #include "h261.h"
 #include "mpegutils.h"
 #include "mpegvideo.h"
diff --git a/libavcodec/msmpeg4.c b/libavcodec/msmpeg4.c
index f12586dd64..bf061ed8d3 100644
--- a/libavcodec/msmpeg4.c
+++ b/libavcodec/msmpeg4.c
@@ -30,6 +30,7 @@ 
 #include "libavutil/thread.h"
 
 #include "avcodec.h"
+#include "config_components.h"
 #include "idctdsp.h"
 #include "mpegvideo.h"
 #include "msmpeg4.h"
diff --git a/libavcodec/msmpeg4dec.c b/libavcodec/msmpeg4dec.c
index 29edd94427..f149e8b7e2 100644
--- a/libavcodec/msmpeg4dec.c
+++ b/libavcodec/msmpeg4dec.c
@@ -25,6 +25,7 @@ 
 #include "libavutil/thread.h"
 
 #include "avcodec.h"
+#include "config_components.h"
 #include "internal.h"
 #include "mpegutils.h"
 #include "mpegvideo.h"
diff --git a/libavcodec/mvcdec.c b/libavcodec/mvcdec.c
index ae5ce4c0d7..a0a8ef937c 100644
--- a/libavcodec/mvcdec.c
+++ b/libavcodec/mvcdec.c
@@ -28,6 +28,7 @@ 
 
 #include "avcodec.h"
 #include "bytestream.h"
+#include "config_components.h"
 #include "internal.h"
 
 typedef struct MvcContext {
diff --git a/libavcodec/options.c b/libavcodec/options.c
index bba6078b62..55ae5b9c2d 100644
--- a/libavcodec/options.c
+++ b/libavcodec/options.c
@@ -25,6 +25,7 @@ 
  */
 
 #include "avcodec.h"
+#include "config_components.h"
 #include "internal.h"
 #include "libavutil/avassert.h"
 #include "libavutil/internal.h"
diff --git a/libavcodec/opus_pvq.c b/libavcodec/opus_pvq.c
index a4ab7c46eb..e5ed24f411 100644
--- a/libavcodec/opus_pvq.c
+++ b/libavcodec/opus_pvq.c
@@ -23,6 +23,7 @@ 
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "config_components.h"
 #include "opustab.h"
 #include "opus_pvq.h"
 
diff --git a/libavcodec/pcm.c b/libavcodec/pcm.c
index e9b8eab484..e535446765 100644
--- a/libavcodec/pcm.c
+++ b/libavcodec/pcm.c
@@ -25,6 +25,7 @@ 
  */
 
 #include "config.h"
+#include "config_components.h"
 #include "libavutil/attributes.h"
 #include "libavutil/float_dsp.h"
 #include "libavutil/thread.h"
diff --git a/libavcodec/pngdec.c b/libavcodec/pngdec.c
index 39bb652f67..2f4605c57d 100644
--- a/libavcodec/pngdec.c
+++ b/libavcodec/pngdec.c
@@ -30,6 +30,7 @@ 
 #include "libavutil/mastering_display_metadata.h"
 
 #include "avcodec.h"
+#include "config_components.h"
 #include "bytestream.h"
 #include "internal.h"
 #include "apng.h"
diff --git a/libavcodec/pnmdec.c b/libavcodec/pnmdec.c
index 01f9dade1a..bf5ad68deb 100644
--- a/libavcodec/pnmdec.c
+++ b/libavcodec/pnmdec.c
@@ -20,6 +20,7 @@ 
  */
 
 #include "avcodec.h"
+#include "config_components.h"
 #include "internal.h"
 #include "put_bits.h"
 #include "pnm.h"
diff --git a/libavcodec/pnmenc.c b/libavcodec/pnmenc.c
index 8378f90d08..6bc5663c5b 100644
--- a/libavcodec/pnmenc.c
+++ b/libavcodec/pnmenc.c
@@ -23,6 +23,7 @@ 
 #include "libavutil/imgutils.h"
 #include "libavutil/pixdesc.h"
 #include "avcodec.h"
+#include "config_components.h"
 #include "encode.h"
 #include "internal.h"
 
diff --git a/libavcodec/proresdec2.c b/libavcodec/proresdec2.c
index 3ab6666f74..d88254c78c 100644
--- a/libavcodec/proresdec2.c
+++ b/libavcodec/proresdec2.c
@@ -32,6 +32,7 @@ 
 #include "libavutil/mem_internal.h"
 
 #include "avcodec.h"
+#include "config_components.h"
 #include "get_bits.h"
 #include "hwconfig.h"
 #include "idctdsp.h"
diff --git a/libavcodec/qpeldsp.c b/libavcodec/qpeldsp.c
index 6e52b33657..c1eab6120d 100644
--- a/libavcodec/qpeldsp.c
+++ b/libavcodec/qpeldsp.c
@@ -29,6 +29,7 @@ 
 #include <stdint.h>
 
 #include "config.h"
+#include "config_components.h"
 #include "libavutil/attributes.h"
 #include "copy_block.h"
 #include "qpeldsp.h"
diff --git a/libavcodec/r210dec.c b/libavcodec/r210dec.c
index 476f1c0680..3acb5e58c7 100644
--- a/libavcodec/r210dec.c
+++ b/libavcodec/r210dec.c
@@ -21,6 +21,7 @@ 
  */
 
 #include "avcodec.h"
+#include "config_components.h"
 #include "internal.h"
 #include "libavutil/bswap.h"
 #include "libavutil/common.h"
diff --git a/libavcodec/r210enc.c b/libavcodec/r210enc.c
index 7a72ba4695..1d281f2322 100644
--- a/libavcodec/r210enc.c
+++ b/libavcodec/r210enc.c
@@ -21,6 +21,7 @@ 
  */
 
 #include "avcodec.h"
+#include "config_components.h"
 #include "encode.h"
 #include "internal.h"
 #include "bytestream.h"
diff --git a/libavcodec/rv34_parser.c b/libavcodec/rv34_parser.c
index 03469ed0d1..4ce95d5329 100644
--- a/libavcodec/rv34_parser.c
+++ b/libavcodec/rv34_parser.c
@@ -24,6 +24,7 @@ 
  * RV30/40 parser
  */
 
+#include "config_components.h"
 #include "parser.h"
 #include "libavutil/intreadwrite.h"
 
diff --git a/libavcodec/sonic.c b/libavcodec/sonic.c
index cf1cfb1460..fde8f44d55 100644
--- a/libavcodec/sonic.c
+++ b/libavcodec/sonic.c
@@ -19,6 +19,7 @@ 
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 #include "avcodec.h"
+#include "config_components.h"
 #include "encode.h"
 #include "get_bits.h"
 #include "golomb.h"
diff --git a/libavcodec/sp5xdec.c b/libavcodec/sp5xdec.c
index a1b43f8f80..6415778af1 100644
--- a/libavcodec/sp5xdec.c
+++ b/libavcodec/sp5xdec.c
@@ -25,6 +25,7 @@ 
  */
 
 #include "avcodec.h"
+#include "config_components.h"
 #include "internal.h"
 #include "mjpeg.h"
 #include "mjpegdec.h"
diff --git a/libavcodec/speedhq.c b/libavcodec/speedhq.c
index fd4ea0d75e..77c5e46e4b 100644
--- a/libavcodec/speedhq.c
+++ b/libavcodec/speedhq.c
@@ -27,6 +27,7 @@ 
 #define BITSTREAM_READER_LE
 
 #include "config.h"
+#include "config_components.h"
 #include "libavutil/attributes.h"
 #include "libavutil/mem_internal.h"
 
diff --git a/libavcodec/speedhqenc.c b/libavcodec/speedhqenc.c
index e59af7f0d3..38df8ae5d5 100644
--- a/libavcodec/speedhqenc.c
+++ b/libavcodec/speedhqenc.c
@@ -30,6 +30,7 @@ 
 #include "libavutil/thread.h"
 
 #include "avcodec.h"
+#include "config_components.h"
 #include "mpeg12data.h"
 #include "mpeg12enc.h"
 #include "mpegvideo.h"
diff --git a/libavcodec/srtdec.c b/libavcodec/srtdec.c
index 4f16226b83..fdc02b57bd 100644
--- a/libavcodec/srtdec.c
+++ b/libavcodec/srtdec.c
@@ -25,6 +25,7 @@ 
 #include "libavutil/parseutils.h"
 #include "avcodec.h"
 #include "ass.h"
+#include "config_components.h"
 #include "htmlsubtitles.h"
 #include "internal.h"
 
diff --git a/libavcodec/srtenc.c b/libavcodec/srtenc.c
index 2e3ac55770..98982f00d6 100644
--- a/libavcodec/srtenc.c
+++ b/libavcodec/srtenc.c
@@ -21,6 +21,7 @@ 
 
 #include <stdarg.h>
 #include "avcodec.h"
+#include "config_components.h"
 #include "libavutil/avstring.h"
 #include "libavutil/bprint.h"
 #include "ass_split.h"
diff --git a/libavcodec/textdec.c b/libavcodec/textdec.c
index 308553660a..b569f1ac63 100644
--- a/libavcodec/textdec.c
+++ b/libavcodec/textdec.c
@@ -25,6 +25,7 @@ 
 
 #include "avcodec.h"
 #include "ass.h"
+#include "config_components.h"
 #include "internal.h"
 #include "libavutil/bprint.h"
 #include "libavutil/opt.h"
diff --git a/libavcodec/v408dec.c b/libavcodec/v408dec.c
index 749b3b65e5..acf86ba00b 100644
--- a/libavcodec/v408dec.c
+++ b/libavcodec/v408dec.c
@@ -20,6 +20,7 @@ 
  */
 
 #include "avcodec.h"
+#include "config_components.h"
 #include "internal.h"
 
 static av_cold int v408_decode_init(AVCodecContext *avctx)
diff --git a/libavcodec/v408enc.c b/libavcodec/v408enc.c
index 31bf48406c..2392449b4f 100644
--- a/libavcodec/v408enc.c
+++ b/libavcodec/v408enc.c
@@ -22,6 +22,7 @@ 
 
 #include "libavutil/intreadwrite.h"
 #include "avcodec.h"
+#include "config_components.h"
 #include "encode.h"
 #include "internal.h"
 
diff --git a/libavcodec/vc1dec.c b/libavcodec/vc1dec.c
index d9939a8ba1..33ae1ca492 100644
--- a/libavcodec/vc1dec.c
+++ b/libavcodec/vc1dec.c
@@ -28,6 +28,7 @@ 
 
 #include "avcodec.h"
 #include "blockdsp.h"
+#include "config_components.h"
 #include "get_bits.h"
 #include "hwconfig.h"
 #include "internal.h"
diff --git a/libavcodec/vc1dsp.c b/libavcodec/vc1dsp.c
index 04fc8b12f3..c529e21963 100644
--- a/libavcodec/vc1dsp.c
+++ b/libavcodec/vc1dsp.c
@@ -27,6 +27,7 @@ 
 #include "libavutil/avassert.h"
 #include "libavutil/common.h"
 #include "libavutil/intreadwrite.h"
+#include "config_components.h"
 #include "h264chroma.h"
 #include "qpeldsp.h"
 #include "rnd_avg.h"
diff --git a/libavcodec/videotoolbox.c b/libavcodec/videotoolbox.c
index 29c781cda4..9083f6ff29 100644
--- a/libavcodec/videotoolbox.c
+++ b/libavcodec/videotoolbox.c
@@ -21,6 +21,7 @@ 
  */
 
 #include "config.h"
+#include "config_components.h"
 #include "videotoolbox.h"
 #include "libavutil/hwcontext_videotoolbox.h"
 #include "vt_internal.h"
diff --git a/libavcodec/vorbis_parser.c b/libavcodec/vorbis_parser.c
index 194ae13da3..3c8c4b2385 100644
--- a/libavcodec/vorbis_parser.c
+++ b/libavcodec/vorbis_parser.c
@@ -27,6 +27,7 @@ 
 
 #include "libavutil/log.h"
 
+#include "config_components.h"
 #include "get_bits.h"
 #include "parser.h"
 #include "xiph.h"
diff --git a/libavcodec/vp3.c b/libavcodec/vp3.c
index e2418eb6fa..415c7f5590 100644
--- a/libavcodec/vp3.c
+++ b/libavcodec/vp3.c
@@ -38,6 +38,7 @@ 
 #include "libavutil/mem_internal.h"
 
 #include "avcodec.h"
+#include "config_components.h"
 #include "get_bits.h"
 #include "hpeldsp.h"
 #include "internal.h"
diff --git a/libavcodec/vp56dsp.c b/libavcodec/vp56dsp.c
index de6803e0fb..d368e3292d 100644
--- a/libavcodec/vp56dsp.c
+++ b/libavcodec/vp56dsp.c
@@ -22,6 +22,7 @@ 
 #include <stdint.h>
 
 #include "config.h"
+#include "config_components.h"
 #include "libavutil/attributes.h"
 #include "vp56dsp.h"
 #include "libavutil/common.h"
diff --git a/libavcodec/vp8.c b/libavcodec/vp8.c
index d779804e64..02dcefdd83 100644
--- a/libavcodec/vp8.c
+++ b/libavcodec/vp8.c
@@ -28,6 +28,7 @@ 
 #include "libavutil/mem_internal.h"
 
 #include "avcodec.h"
+#include "config_components.h"
 #include "hwconfig.h"
 #include "internal.h"
 #include "mathops.h"
diff --git a/libavcodec/vp8dsp.c b/libavcodec/vp8dsp.c
index 732a483b62..b19330d6ae 100644
--- a/libavcodec/vp8dsp.c
+++ b/libavcodec/vp8dsp.c
@@ -28,6 +28,7 @@ 
 #include "libavutil/common.h"
 #include "libavutil/intreadwrite.h"
 
+#include "config_components.h"
 #include "mathops.h"
 #include "vp8dsp.h"
 
diff --git a/libavcodec/vp9.c b/libavcodec/vp9.c
index 7ef10f7a80..5e99cccbf1 100644
--- a/libavcodec/vp9.c
+++ b/libavcodec/vp9.c
@@ -22,6 +22,7 @@ 
  */
 
 #include "avcodec.h"
+#include "config_components.h"
 #include "get_bits.h"
 #include "hwconfig.h"
 #include "internal.h"
diff --git a/libavcodec/wmadec.c b/libavcodec/wmadec.c
index 9955aaa7d6..c886c71c37 100644
--- a/libavcodec/wmadec.c
+++ b/libavcodec/wmadec.c
@@ -37,6 +37,7 @@ 
 #include "libavutil/ffmath.h"
 
 #include "avcodec.h"
+#include "config_components.h"
 #include "internal.h"
 #include "wma.h"
 
diff --git a/libavcodec/wmaenc.c b/libavcodec/wmaenc.c
index 66e3537cb0..02c92a2dc7 100644
--- a/libavcodec/wmaenc.c
+++ b/libavcodec/wmaenc.c
@@ -23,6 +23,7 @@ 
 #include "libavutil/ffmath.h"
 
 #include "avcodec.h"
+#include "config_components.h"
 #include "encode.h"
 #include "internal.h"
 #include "wma.h"
diff --git a/libavcodec/x86/flacdsp_init.c b/libavcodec/x86/flacdsp_init.c
index 6315b6903e..ed2e5ed15b 100644
--- a/libavcodec/x86/flacdsp_init.c
+++ b/libavcodec/x86/flacdsp_init.c
@@ -22,6 +22,7 @@ 
 #include "libavcodec/flacdsp.h"
 #include "libavutil/x86/cpu.h"
 #include "config.h"
+#include "config_components.h"
 
 void ff_flac_lpc_32_sse4(int32_t *samples, const int coeffs[32], int order,
                          int qlevel, int len);
diff --git a/libavcodec/x86/hpeldsp_init.c b/libavcodec/x86/hpeldsp_init.c
index d89928cec6..3e8b4a44c9 100644
--- a/libavcodec/x86/hpeldsp_init.c
+++ b/libavcodec/x86/hpeldsp_init.c
@@ -30,6 +30,7 @@ 
 #include "libavcodec/pixels.h"
 #include "fpel.h"
 #include "hpeldsp.h"
+#include "config_components.h"
 
 void ff_put_pixels8_x2_mmxext(uint8_t *block, const uint8_t *pixels,
                               ptrdiff_t line_size, int h);
diff --git a/libavfilter/aeval.c b/libavfilter/aeval.c
index 42cfa81325..f89faf7258 100644
--- a/libavfilter/aeval.c
+++ b/libavfilter/aeval.c
@@ -30,6 +30,7 @@ 
 #include "libavutil/parseutils.h"
 #include "avfilter.h"
 #include "audio.h"
+#include "config_components.h"
 #include "filters.h"
 #include "internal.h"
 
diff --git a/libavfilter/af_afade.c b/libavfilter/af_afade.c
index c57709050e..eef585c14a 100644
--- a/libavfilter/af_afade.c
+++ b/libavfilter/af_afade.c
@@ -26,6 +26,7 @@ 
 #include "libavutil/opt.h"
 #include "audio.h"
 #include "avfilter.h"
+#include "config_components.h"
 #include "filters.h"
 #include "internal.h"
 
diff --git a/libavfilter/af_agate.c b/libavfilter/af_agate.c
index 682f17c7dd..0efad1f43e 100644
--- a/libavfilter/af_agate.c
+++ b/libavfilter/af_agate.c
@@ -28,6 +28,7 @@ 
 #include "libavutil/opt.h"
 #include "avfilter.h"
 #include "audio.h"
+#include "config_components.h"
 #include "filters.h"
 #include "formats.h"
 #include "hermite.h"
diff --git a/libavfilter/af_biquads.c b/libavfilter/af_biquads.c
index ee42b2a034..2e5e432519 100644
--- a/libavfilter/af_biquads.c
+++ b/libavfilter/af_biquads.c
@@ -68,6 +68,7 @@ 
 #include "libavutil/opt.h"
 #include "audio.h"
 #include "avfilter.h"
+#include "config_components.h"
 #include "internal.h"
 
 enum FilterType {
diff --git a/libavfilter/af_sidechaincompress.c b/libavfilter/af_sidechaincompress.c
index c0ce82066b..e1b58898ed 100644
--- a/libavfilter/af_sidechaincompress.c
+++ b/libavfilter/af_sidechaincompress.c
@@ -31,6 +31,7 @@ 
 
 #include "audio.h"
 #include "avfilter.h"
+#include "config_components.h"
 #include "filters.h"
 #include "formats.h"
 #include "hermite.h"
diff --git a/libavfilter/avf_showspectrum.c b/libavfilter/avf_showspectrum.c
index 610dc98c93..ea8ec2a4a9 100644
--- a/libavfilter/avf_showspectrum.c
+++ b/libavfilter/avf_showspectrum.c
@@ -38,6 +38,7 @@ 
 #include "libavutil/parseutils.h"
 #include "libavutil/xga_font_data.h"
 #include "audio.h"
+#include "config_components.h"
 #include "video.h"
 #include "avfilter.h"
 #include "filters.h"
diff --git a/libavfilter/avf_showwaves.c b/libavfilter/avf_showwaves.c
index 853f6bbdcb..c27e612a7a 100644
--- a/libavfilter/avf_showwaves.c
+++ b/libavfilter/avf_showwaves.c
@@ -29,6 +29,7 @@ 
 #include "libavutil/opt.h"
 #include "libavutil/parseutils.h"
 #include "avfilter.h"
+#include "config_components.h"
 #include "filters.h"
 #include "formats.h"
 #include "audio.h"
diff --git a/libavfilter/f_bench.c b/libavfilter/f_bench.c
index 109a530d7c..f1d2a4c69d 100644
--- a/libavfilter/f_bench.c
+++ b/libavfilter/f_bench.c
@@ -19,6 +19,7 @@ 
 #include "libavutil/opt.h"
 #include "libavutil/time.h"
 #include "avfilter.h"
+#include "config_components.h"
 #include "formats.h"
 #include "internal.h"
 
diff --git a/libavfilter/f_cue.c b/libavfilter/f_cue.c
index d90fe54b9a..99184824ae 100644
--- a/libavfilter/f_cue.c
+++ b/libavfilter/f_cue.c
@@ -21,6 +21,7 @@ 
 #include "libavutil/opt.h"
 #include "libavutil/time.h"
 #include "avfilter.h"
+#include "config_components.h"
 #include "filters.h"
 #include "internal.h"
 
diff --git a/libavfilter/f_drawgraph.c b/libavfilter/f_drawgraph.c
index b6fcb3b75e..da608a44f3 100644
--- a/libavfilter/f_drawgraph.c
+++ b/libavfilter/f_drawgraph.c
@@ -25,6 +25,7 @@ 
 #include "libavutil/intreadwrite.h"
 #include "libavutil/opt.h"
 #include "avfilter.h"
+#include "config_components.h"
 #include "formats.h"
 #include "internal.h"
 #include "video.h"
diff --git a/libavfilter/f_graphmonitor.c b/libavfilter/f_graphmonitor.c
index 51d0a568e3..a18ef65526 100644
--- a/libavfilter/f_graphmonitor.c
+++ b/libavfilter/f_graphmonitor.c
@@ -27,6 +27,7 @@ 
 #include "libavutil/timestamp.h"
 #include "libavutil/xga_font_data.h"
 #include "avfilter.h"
+#include "config_components.h"
 #include "filters.h"
 #include "formats.h"
 #include "internal.h"
diff --git a/libavfilter/f_interleave.c b/libavfilter/f_interleave.c
index b60e89762f..4c160a40e0 100644
--- a/libavfilter/f_interleave.c
+++ b/libavfilter/f_interleave.c
@@ -28,6 +28,7 @@ 
 #include "libavutil/opt.h"
 
 #include "avfilter.h"
+#include "config_components.h"
 #include "formats.h"
 #include "filters.h"
 #include "internal.h"
diff --git a/libavfilter/f_latency.c b/libavfilter/f_latency.c
index 6f16d6677e..597d2cb259 100644
--- a/libavfilter/f_latency.c
+++ b/libavfilter/f_latency.c
@@ -20,6 +20,7 @@ 
 
 #include "libavutil/opt.h"
 #include "avfilter.h"
+#include "config_components.h"
 #include "filters.h"
 #include "formats.h"
 #include "internal.h"
diff --git a/libavfilter/f_loop.c b/libavfilter/f_loop.c
index f8ae4a6a3a..48eddb14fa 100644
--- a/libavfilter/f_loop.c
+++ b/libavfilter/f_loop.c
@@ -24,6 +24,7 @@ 
 #include "libavutil/opt.h"
 #include "avfilter.h"
 #include "audio.h"
+#include "config_components.h"
 #include "filters.h"
 #include "formats.h"
 #include "internal.h"
diff --git a/libavfilter/f_metadata.c b/libavfilter/f_metadata.c
index 5f5091e9b7..21c2abb7c3 100644
--- a/libavfilter/f_metadata.c
+++ b/libavfilter/f_metadata.c
@@ -34,6 +34,7 @@ 
 #include "libavformat/avio.h"
 #include "avfilter.h"
 #include "audio.h"
+#include "config_components.h"
 #include "formats.h"
 #include "internal.h"
 #include "video.h"
diff --git a/libavfilter/f_perms.c b/libavfilter/f_perms.c
index 5e2f4ecdf4..f98bb2c649 100644
--- a/libavfilter/f_perms.c
+++ b/libavfilter/f_perms.c
@@ -22,6 +22,7 @@ 
 #include "libavutil/opt.h"
 #include "libavutil/random_seed.h"
 #include "audio.h"
+#include "config_components.h"
 #include "video.h"
 
 enum mode {
diff --git a/libavfilter/f_realtime.c b/libavfilter/f_realtime.c
index 9a60ded0ca..4edadad892 100644
--- a/libavfilter/f_realtime.c
+++ b/libavfilter/f_realtime.c
@@ -21,6 +21,7 @@ 
 #include "libavutil/opt.h"
 #include "libavutil/time.h"
 #include "avfilter.h"
+#include "config_components.h"
 #include "internal.h"
 #include <float.h>
 
diff --git a/libavfilter/f_reverse.c b/libavfilter/f_reverse.c
index f7a7e716fa..35748b8116 100644
--- a/libavfilter/f_reverse.c
+++ b/libavfilter/f_reverse.c
@@ -20,6 +20,7 @@ 
 
 #include "libavutil/opt.h"
 #include "avfilter.h"
+#include "config_components.h"
 #include "formats.h"
 #include "internal.h"
 #include "video.h"
diff --git a/libavfilter/f_segment.c b/libavfilter/f_segment.c
index 5f44634803..4579bce2da 100644
--- a/libavfilter/f_segment.c
+++ b/libavfilter/f_segment.c
@@ -29,6 +29,7 @@ 
 
 #include "audio.h"
 #include "avfilter.h"
+#include "config_components.h"
 #include "filters.h"
 #include "internal.h"
 
diff --git a/libavfilter/f_select.c b/libavfilter/f_select.c
index b61d88f4fe..a039e742eb 100644
--- a/libavfilter/f_select.c
+++ b/libavfilter/f_select.c
@@ -32,6 +32,7 @@ 
 #include "libavutil/pixdesc.h"
 #include "avfilter.h"
 #include "audio.h"
+#include "config_components.h"
 #include "formats.h"
 #include "internal.h"
 #include "video.h"
diff --git a/libavfilter/f_sendcmd.c b/libavfilter/f_sendcmd.c
index 7261a05aae..a6b40d6b03 100644
--- a/libavfilter/f_sendcmd.c
+++ b/libavfilter/f_sendcmd.c
@@ -30,6 +30,7 @@ 
 #include "libavutil/opt.h"
 #include "libavutil/parseutils.h"
 #include "avfilter.h"
+#include "config_components.h"
 #include "internal.h"
 #include "audio.h"
 #include "video.h"
diff --git a/libavfilter/f_sidedata.c b/libavfilter/f_sidedata.c
index 8eccd4a06e..d126c4d656 100644
--- a/libavfilter/f_sidedata.c
+++ b/libavfilter/f_sidedata.c
@@ -26,6 +26,7 @@ 
 #include "libavutil/frame.h"
 #include "libavutil/opt.h"
 #include "avfilter.h"
+#include "config_components.h"
 #include "formats.h"
 #include "internal.h"
 
diff --git a/libavfilter/lut3d.h b/libavfilter/lut3d.h
index bc32eac91c..b217e81bdc 100644
--- a/libavfilter/lut3d.h
+++ b/libavfilter/lut3d.h
@@ -24,6 +24,7 @@ 
 #include "libavutil/pixdesc.h"
 #include "framesync.h"
 #include "avfilter.h"
+#include "config_components.h"
 
 enum interp_mode {
     INTERPOLATE_NEAREST,
diff --git a/libavfilter/setpts.c b/libavfilter/setpts.c
index 054feb05f1..58f0d13452 100644
--- a/libavfilter/setpts.c
+++ b/libavfilter/setpts.c
@@ -33,6 +33,7 @@ 
 #include "libavutil/time.h"
 #include "audio.h"
 #include "avfilter.h"
+#include "config_components.h"
 #include "filters.h"
 #include "internal.h"
 #include "video.h"
diff --git a/libavfilter/settb.c b/libavfilter/settb.c
index 67d310afbd..94461cc354 100644
--- a/libavfilter/settb.c
+++ b/libavfilter/settb.c
@@ -34,6 +34,7 @@ 
 #include "libavutil/rational.h"
 #include "audio.h"
 #include "avfilter.h"
+#include "config_components.h"
 #include "filters.h"
 #include "internal.h"
 #include "video.h"
diff --git a/libavfilter/src_movie.c b/libavfilter/src_movie.c
index b89a680883..76d33fc6f4 100644
--- a/libavfilter/src_movie.c
+++ b/libavfilter/src_movie.c
@@ -44,6 +44,7 @@ 
 
 #include "audio.h"
 #include "avfilter.h"
+#include "config_components.h"
 #include "formats.h"
 #include "internal.h"
 #include "video.h"
diff --git a/libavfilter/trim.c b/libavfilter/trim.c
index e627903c64..06c50cd91a 100644
--- a/libavfilter/trim.c
+++ b/libavfilter/trim.c
@@ -19,6 +19,7 @@ 
 #include <stdint.h>
 
 #include "config.h"
+#include "config_components.h"
 
 #include "libavutil/channel_layout.h"
 #include "libavutil/common.h"
diff --git a/libavfilter/vf_aspect.c b/libavfilter/vf_aspect.c
index 2d1eaa954b..0a49d2f5d1 100644
--- a/libavfilter/vf_aspect.c
+++ b/libavfilter/vf_aspect.c
@@ -33,6 +33,7 @@ 
 #include "libavutil/pixdesc.h"
 
 #include "avfilter.h"
+#include "config_components.h"
 #include "internal.h"
 #include "video.h"
 
diff --git a/libavfilter/vf_blend.c b/libavfilter/vf_blend.c
index 2d433e439f..0bc1932491 100644
--- a/libavfilter/vf_blend.c
+++ b/libavfilter/vf_blend.c
@@ -24,6 +24,7 @@ 
 #include "libavutil/opt.h"
 #include "libavutil/pixfmt.h"
 #include "avfilter.h"
+#include "config_components.h"
 #include "formats.h"
 #include "framesync.h"
 #include "internal.h"
diff --git a/libavfilter/vf_colorconstancy.c b/libavfilter/vf_colorconstancy.c
index ba6359462e..1150801eda 100644
--- a/libavfilter/vf_colorconstancy.c
+++ b/libavfilter/vf_colorconstancy.c
@@ -33,6 +33,7 @@ 
 #include "libavutil/pixdesc.h"
 
 #include "avfilter.h"
+#include "config_components.h"
 #include "formats.h"
 #include "internal.h"
 #include "video.h"
diff --git a/libavfilter/vf_colorkey.c b/libavfilter/vf_colorkey.c
index ed43722c03..6d1cc0c957 100644
--- a/libavfilter/vf_colorkey.c
+++ b/libavfilter/vf_colorkey.c
@@ -21,6 +21,7 @@ 
 #include "libavutil/opt.h"
 #include "libavutil/imgutils.h"
 #include "avfilter.h"
+#include "config_components.h"
 #include "formats.h"
 #include "internal.h"
 #include "video.h"
diff --git a/libavfilter/vf_convolution.c b/libavfilter/vf_convolution.c
index 6e6fe0d887..278eb75b0a 100644
--- a/libavfilter/vf_convolution.c
+++ b/libavfilter/vf_convolution.c
@@ -26,6 +26,7 @@ 
 #include "libavutil/opt.h"
 #include "libavutil/pixdesc.h"
 #include "avfilter.h"
+#include "config_components.h"
 #include "convolution.h"
 #include "formats.h"
 #include "internal.h"
diff --git a/libavfilter/vf_convolve.c b/libavfilter/vf_convolve.c
index 55afb582b4..a5e7b70932 100644
--- a/libavfilter/vf_convolve.c
+++ b/libavfilter/vf_convolve.c
@@ -26,6 +26,7 @@ 
 #include "libavutil/tx.h"
 
 #include "avfilter.h"
+#include "config_components.h"
 #include "formats.h"
 #include "framesync.h"
 #include "internal.h"
diff --git a/libavfilter/vf_drawbox.c b/libavfilter/vf_drawbox.c
index 919652e50f..62cb51453b 100644
--- a/libavfilter/vf_drawbox.c
+++ b/libavfilter/vf_drawbox.c
@@ -33,6 +33,7 @@ 
 #include "libavutil/parseutils.h"
 #include "libavutil/detection_bbox.h"
 #include "avfilter.h"
+#include "config_components.h"
 #include "formats.h"
 #include "internal.h"
 #include "video.h"
diff --git a/libavfilter/vf_extractplanes.c b/libavfilter/vf_extractplanes.c
index 5b5fd6e232..338e876ccf 100644
--- a/libavfilter/vf_extractplanes.c
+++ b/libavfilter/vf_extractplanes.c
@@ -24,6 +24,7 @@ 
 #include "libavutil/pixdesc.h"
 
 #include "avfilter.h"
+#include "config_components.h"
 #include "drawutils.h"
 #include "filters.h"
 #include "internal.h"
diff --git a/libavfilter/vf_format.c b/libavfilter/vf_format.c
index c78acbf87b..c26a96d806 100644
--- a/libavfilter/vf_format.c
+++ b/libavfilter/vf_format.c
@@ -31,6 +31,7 @@ 
 #include "libavutil/opt.h"
 
 #include "avfilter.h"
+#include "config_components.h"
 #include "formats.h"
 #include "internal.h"
 #include "video.h"
diff --git a/libavfilter/vf_histogram.c b/libavfilter/vf_histogram.c
index bf80b2c4fc..0813e42610 100644
--- a/libavfilter/vf_histogram.c
+++ b/libavfilter/vf_histogram.c
@@ -25,6 +25,7 @@ 
 #include "libavutil/imgutils.h"
 #include "libavutil/intreadwrite.h"
 #include "avfilter.h"
+#include "config_components.h"
 #include "formats.h"
 #include "internal.h"
 #include "video.h"
diff --git a/libavfilter/vf_identity.c b/libavfilter/vf_identity.c
index cc30761388..b84b4c2fa5 100644
--- a/libavfilter/vf_identity.c
+++ b/libavfilter/vf_identity.c
@@ -27,6 +27,7 @@ 
 #include "libavutil/opt.h"
 #include "libavutil/pixdesc.h"
 #include "avfilter.h"
+#include "config_components.h"
 #include "drawutils.h"
 #include "formats.h"
 #include "framesync.h"
diff --git a/libavfilter/vf_lut.c b/libavfilter/vf_lut.c
index fd5b364797..19cc0f67ab 100644
--- a/libavfilter/vf_lut.c
+++ b/libavfilter/vf_lut.c
@@ -31,6 +31,7 @@ 
 #include "libavutil/opt.h"
 #include "libavutil/pixdesc.h"
 #include "avfilter.h"
+#include "config_components.h"
 #include "drawutils.h"
 #include "formats.h"
 #include "internal.h"
diff --git a/libavfilter/vf_lut2.c b/libavfilter/vf_lut2.c
index 868c0496fa..dd21d24b2f 100644
--- a/libavfilter/vf_lut2.c
+++ b/libavfilter/vf_lut2.c
@@ -24,6 +24,7 @@ 
 #include "libavutil/opt.h"
 #include "libavutil/pixdesc.h"
 #include "avfilter.h"
+#include "config_components.h"
 #include "drawutils.h"
 #include "formats.h"
 #include "internal.h"
diff --git a/libavfilter/vf_mix.c b/libavfilter/vf_mix.c
index 8206517579..20e5a0dd9c 100644
--- a/libavfilter/vf_mix.c
+++ b/libavfilter/vf_mix.c
@@ -25,6 +25,7 @@ 
 #include "libavutil/pixdesc.h"
 
 #include "avfilter.h"
+#include "config_components.h"
 #include "formats.h"
 #include "internal.h"
 #include "framesync.h"
diff --git a/libavfilter/vf_neighbor.c b/libavfilter/vf_neighbor.c
index f48fb306b2..5a06d0d92f 100644
--- a/libavfilter/vf_neighbor.c
+++ b/libavfilter/vf_neighbor.c
@@ -24,6 +24,7 @@ 
 #include "libavutil/pixdesc.h"
 #include "libavutil/opt.h"
 #include "avfilter.h"
+#include "config_components.h"
 #include "formats.h"
 #include "internal.h"
 #include "video.h"
diff --git a/libavfilter/vf_premultiply.c b/libavfilter/vf_premultiply.c
index 4b60de7b7b..8c417c83ae 100644
--- a/libavfilter/vf_premultiply.c
+++ b/libavfilter/vf_premultiply.c
@@ -22,6 +22,7 @@ 
 #include "libavutil/pixdesc.h"
 #include "libavutil/opt.h"
 #include "avfilter.h"
+#include "config_components.h"
 #include "filters.h"
 #include "formats.h"
 #include "framesync.h"
diff --git a/libavfilter/vf_setparams.c b/libavfilter/vf_setparams.c
index b3893adc13..09e3217d46 100644
--- a/libavfilter/vf_setparams.c
+++ b/libavfilter/vf_setparams.c
@@ -21,6 +21,7 @@ 
 #include "libavutil/pixfmt.h"
 #include "libavutil/opt.h"
 #include "avfilter.h"
+#include "config_components.h"
 #include "internal.h"
 #include "video.h"
 
diff --git a/libavfilter/vf_stack.c b/libavfilter/vf_stack.c
index f584e8349b..c981829e4e 100644
--- a/libavfilter/vf_stack.c
+++ b/libavfilter/vf_stack.c
@@ -25,6 +25,7 @@ 
 #include "libavutil/pixdesc.h"
 
 #include "avfilter.h"
+#include "config_components.h"
 #include "drawutils.h"
 #include "formats.h"
 #include "internal.h"
diff --git a/libavfilter/vf_xmedian.c b/libavfilter/vf_xmedian.c
index 148ab555bb..ff2d22610f 100644
--- a/libavfilter/vf_xmedian.c
+++ b/libavfilter/vf_xmedian.c
@@ -26,6 +26,7 @@ 
 #include "libavutil/qsort.h"
 
 #include "avfilter.h"
+#include "config_components.h"
 #include "formats.h"
 #include "internal.h"
 #include "framesync.h"
diff --git a/libavfilter/vsrc_testsrc.c b/libavfilter/vsrc_testsrc.c
index 20b915d472..8c03e5103c 100644
--- a/libavfilter/vsrc_testsrc.c
+++ b/libavfilter/vsrc_testsrc.c
@@ -44,6 +44,7 @@ 
 #include "libavutil/parseutils.h"
 #include "libavutil/xga_font_data.h"
 #include "avfilter.h"
+#include "config_components.h"
 #include "drawutils.h"
 #include "filters.h"
 #include "formats.h"
diff --git a/libavformat/ac3dec.c b/libavformat/ac3dec.c
index ad9b65a9be..89a9e82310 100644
--- a/libavformat/ac3dec.c
+++ b/libavformat/ac3dec.c
@@ -23,6 +23,7 @@ 
 #include "libavutil/crc.h"
 #include "libavcodec/ac3_parser.h"
 #include "avformat.h"
+#include "config_components.h"
 #include "rawdec.h"
 
 static int ac3_eac3_probe(const AVProbeData *p, enum AVCodecID expected_codec_id)
diff --git a/libavformat/alp.c b/libavformat/alp.c
index f46bdb4511..fc95f5ecb2 100644
--- a/libavformat/alp.c
+++ b/libavformat/alp.c
@@ -22,6 +22,7 @@ 
 
 #include "libavutil/channel_layout.h"
 #include "avformat.h"
+#include "config_components.h"
 #include "internal.h"
 #include "rawenc.h"
 #include "libavutil/intreadwrite.h"
diff --git a/libavformat/amr.c b/libavformat/amr.c
index bc22c2f84f..63efc159cd 100644
--- a/libavformat/amr.c
+++ b/libavformat/amr.c
@@ -27,6 +27,7 @@  Write and read amr data according to RFC3267, http://www.ietf.org/rfc/rfc3267.tx
 #include "libavutil/intreadwrite.h"
 #include "avformat.h"
 #include "avio_internal.h"
+#include "config_components.h"
 #include "internal.h"
 #include "rawdec.h"
 #include "rawenc.h"
diff --git a/libavformat/apm.c b/libavformat/apm.c
index 1ced771745..c72d9abfe4 100644
--- a/libavformat/apm.c
+++ b/libavformat/apm.c
@@ -20,6 +20,7 @@ 
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 #include "avformat.h"
+#include "config_components.h"
 #include "internal.h"
 #include "rawenc.h"
 #include "libavutil/channel_layout.h"
diff --git a/libavformat/aptxdec.c b/libavformat/aptxdec.c
index 7153e262a1..7afdc816d7 100644
--- a/libavformat/aptxdec.c
+++ b/libavformat/aptxdec.c
@@ -22,6 +22,7 @@ 
 
 #include "libavutil/opt.h"
 #include "avformat.h"
+#include "config_components.h"
 
 #define APTX_BLOCK_SIZE   4
 #define APTX_PACKET_SIZE  (256*APTX_BLOCK_SIZE)
diff --git a/libavformat/argo_asf.c b/libavformat/argo_asf.c
index 2b3569ebc3..53d498a3de 100644
--- a/libavformat/argo_asf.c
+++ b/libavformat/argo_asf.c
@@ -21,6 +21,7 @@ 
  */
 #include "libavutil/avstring.h"
 #include "avformat.h"
+#include "config_components.h"
 #include "internal.h"
 #include "libavutil/channel_layout.h"
 #include "libavutil/intreadwrite.h"
diff --git a/libavformat/argo_cvg.c b/libavformat/argo_cvg.c
index f59e93496f..e807c07de6 100644
--- a/libavformat/argo_cvg.c
+++ b/libavformat/argo_cvg.c
@@ -23,6 +23,7 @@ 
 #include "libavutil/avstring.h"
 #include "libavutil/channel_layout.h"
 #include "avformat.h"
+#include "config_components.h"
 #include "internal.h"
 #include "libavutil/opt.h"
 #include "libavutil/intreadwrite.h"
diff --git a/libavformat/asfenc.c b/libavformat/asfenc.c
index 041019b186..4db57bdd1f 100644
--- a/libavformat/asfenc.c
+++ b/libavformat/asfenc.c
@@ -26,6 +26,7 @@ 
 #include "avformat.h"
 #include "avlanguage.h"
 #include "avio_internal.h"
+#include "config_components.h"
 #include "internal.h"
 #include "riff.h"
 #include "asf.h"
diff --git a/libavformat/au.c b/libavformat/au.c
index 9bd408f65c..95ca3901a8 100644
--- a/libavformat/au.c
+++ b/libavformat/au.c
@@ -29,6 +29,7 @@ 
 
 #include "libavutil/bprint.h"
 #include "avformat.h"
+#include "config_components.h"
 #include "internal.h"
 #include "avio_internal.h"
 #include "pcm.h"
diff --git a/libavformat/av1dec.c b/libavformat/av1dec.c
index 6e1c2a45ff..350f5360d5 100644
--- a/libavformat/av1dec.c
+++ b/libavformat/av1dec.c
@@ -20,6 +20,7 @@ 
  */
 
 #include "config.h"
+#include "config_components.h"
 
 #include "libavutil/common.h"
 #include "libavutil/opt.h"
diff --git a/libavformat/avidec.c b/libavformat/avidec.c
index 0f0e6846da..c9eb635dc8 100644
--- a/libavformat/avidec.c
+++ b/libavformat/avidec.c
@@ -30,6 +30,7 @@ 
 #include "libavutil/mathematics.h"
 #include "avformat.h"
 #include "avi.h"
+#include "config_components.h"
 #include "dv.h"
 #include "internal.h"
 #include "isom.h"
diff --git a/libavformat/avienc.c b/libavformat/avienc.c
index be2493ce55..e36e88335f 100644
--- a/libavformat/avienc.c
+++ b/libavformat/avienc.c
@@ -25,6 +25,7 @@ 
 #include "internal.h"
 #include "avi.h"
 #include "avio_internal.h"
+#include "config_components.h"
 #include "riff.h"
 #include "mpegts.h"
 #include "libavformat/avlanguage.h"
diff --git a/libavformat/bintext.c b/libavformat/bintext.c
index 1270c7fb2c..5e58b16f23 100644
--- a/libavformat/bintext.c
+++ b/libavformat/bintext.c
@@ -34,6 +34,7 @@ 
 #include "libavutil/opt.h"
 #include "libavutil/parseutils.h"
 #include "avformat.h"
+#include "config_components.h"
 #include "internal.h"
 #include "sauce.h"
 #include "libavcodec/bintext.h"
diff --git a/libavformat/bit.c b/libavformat/bit.c
index 380cbd37cd..73f98603bc 100644
--- a/libavformat/bit.c
+++ b/libavformat/bit.c
@@ -19,6 +19,7 @@ 
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 #include "avformat.h"
+#include "config_components.h"
 #include "internal.h"
 #include "libavcodec/get_bits.h"
 #include "libavcodec/put_bits.h"
diff --git a/libavformat/codec2.c b/libavformat/codec2.c
index 0b992836b3..26be9713d0 100644
--- a/libavformat/codec2.c
+++ b/libavformat/codec2.c
@@ -26,6 +26,7 @@ 
 #include "libavutil/opt.h"
 #include "avio_internal.h"
 #include "avformat.h"
+#include "config_components.h"
 #include "internal.h"
 #include "rawenc.h"
 #include "pcm.h"
diff --git a/libavformat/concat.c b/libavformat/concat.c
index faeba2293a..d8d3c1a7c6 100644
--- a/libavformat/concat.c
+++ b/libavformat/concat.c
@@ -27,6 +27,7 @@ 
 
 #include "avformat.h"
 #include "avio_internal.h"
+#include "config_components.h"
 #include "url.h"
 
 #define AV_CAT_SEPARATOR "|"
diff --git a/libavformat/dashenc.c b/libavformat/dashenc.c
index 4709bc6615..1bd5aac956 100644
--- a/libavformat/dashenc.c
+++ b/libavformat/dashenc.c
@@ -21,6 +21,7 @@ 
  */
 
 #include "config.h"
+#include "config_components.h"
 #if HAVE_UNISTD_H
 #include <unistd.h>
 #endif
diff --git a/libavformat/demux.c b/libavformat/demux.c
index ec34b65288..1fdee84933 100644
--- a/libavformat/demux.c
+++ b/libavformat/demux.c
@@ -22,6 +22,7 @@ 
 #include <stdint.h>
 
 #include "config.h"
+#include "config_components.h"
 
 #include "libavutil/avassert.h"
 #include "libavutil/avstring.h"
diff --git a/libavformat/file.c b/libavformat/file.c
index 7001750c80..4b9498c591 100644
--- a/libavformat/file.c
+++ b/libavformat/file.c
@@ -23,6 +23,7 @@ 
 #include "libavutil/internal.h"
 #include "libavutil/opt.h"
 #include "avformat.h"
+#include "config_components.h"
 #if HAVE_DIRENT_H
 #include <dirent.h>
 #endif
diff --git a/libavformat/format.c b/libavformat/format.c
index 52b85c16a2..151fd4ad70 100644
--- a/libavformat/format.c
+++ b/libavformat/format.c
@@ -26,6 +26,7 @@ 
 
 #include "avio_internal.h"
 #include "avformat.h"
+#include "config_components.h"
 #include "id3v2.h"
 #include "internal.h"
 
diff --git a/libavformat/g726.c b/libavformat/g726.c
index 4b08d0a9f7..5add1a8084 100644
--- a/libavformat/g726.c
+++ b/libavformat/g726.c
@@ -20,6 +20,7 @@ 
  */
 
 #include "avformat.h"
+#include "config_components.h"
 #include "internal.h"
 #include "libavutil/opt.h"
 
diff --git a/libavformat/gopher.c b/libavformat/gopher.c
index 9bbe171640..9497ffacf2 100644
--- a/libavformat/gopher.c
+++ b/libavformat/gopher.c
@@ -24,6 +24,7 @@ 
  */
 
 #include "config.h"
+#include "config_components.h"
 
 #include "libavutil/avstring.h"
 #include "avformat.h"
diff --git a/libavformat/hashenc.c b/libavformat/hashenc.c
index 622491d2e5..7953adc8c8 100644
--- a/libavformat/hashenc.c
+++ b/libavformat/hashenc.c
@@ -24,6 +24,7 @@ 
 #include "libavutil/intreadwrite.h"
 #include "libavutil/opt.h"
 #include "avformat.h"
+#include "config_components.h"
 #include "internal.h"
 
 struct HashContext {
diff --git a/libavformat/hls.c b/libavformat/hls.c
index 06bc46c23f..52d26709f2 100644
--- a/libavformat/hls.c
+++ b/libavformat/hls.c
@@ -36,6 +36,7 @@ 
 #include "libavutil/dict.h"
 #include "libavutil/time.h"
 #include "avformat.h"
+#include "config_components.h"
 #include "internal.h"
 #include "avio_internal.h"
 #include "id3v2.h"
diff --git a/libavformat/hlsenc.c b/libavformat/hlsenc.c
index ef8973cea1..14eb7c4530 100644
--- a/libavformat/hlsenc.c
+++ b/libavformat/hlsenc.c
@@ -21,6 +21,7 @@ 
  */
 
 #include "config.h"
+#include "config_components.h"
 #include <float.h>
 #include <stdint.h>
 #if HAVE_UNISTD_H
diff --git a/libavformat/http.c b/libavformat/http.c
index c79db955e8..4c2504af13 100644
--- a/libavformat/http.c
+++ b/libavformat/http.c
@@ -33,6 +33,7 @@ 
 #include "libavutil/parseutils.h"
 
 #include "avformat.h"
+#include "config_components.h"
 #include "http.h"
 #include "httpauth.h"
 #include "internal.h"
diff --git a/libavformat/ilbc.c b/libavformat/ilbc.c
index 0cbdd3d5b8..eb3300654a 100644
--- a/libavformat/ilbc.c
+++ b/libavformat/ilbc.c
@@ -20,6 +20,7 @@ 
  */
 
 #include "avformat.h"
+#include "config_components.h"
 #include "internal.h"
 #include "rawenc.h"
 
diff --git a/libavformat/img2dec.c b/libavformat/img2dec.c
index 8608252d83..7ffe0d7edb 100644
--- a/libavformat/img2dec.c
+++ b/libavformat/img2dec.c
@@ -32,6 +32,7 @@ 
 #include "libavcodec/gif.h"
 #include "avformat.h"
 #include "avio_internal.h"
+#include "config_components.h"
 #include "internal.h"
 #include "img2.h"
 #include "libavcodec/mjpeg.h"
diff --git a/libavformat/img2enc.c b/libavformat/img2enc.c
index ded91d6b98..17a1bcf68c 100644
--- a/libavformat/img2enc.c
+++ b/libavformat/img2enc.c
@@ -29,6 +29,7 @@ 
 #include "libavutil/time_internal.h"
 #include "avformat.h"
 #include "avio_internal.h"
+#include "config_components.h"
 #include "internal.h"
 #include "img2.h"
 
diff --git a/libavformat/kvag.c b/libavformat/kvag.c
index a277c28128..0fbda0e95a 100644
--- a/libavformat/kvag.c
+++ b/libavformat/kvag.c
@@ -23,6 +23,7 @@ 
 #include "libavutil/channel_layout.h"
 #include "avformat.h"
 #include "avio_internal.h"
+#include "config_components.h"
 #include "internal.h"
 #include "rawenc.h"
 #include "libavutil/intreadwrite.h"
diff --git a/libavformat/matroskadec.c b/libavformat/matroskadec.c
index 31e5111225..ba20c2f6fb 100644
--- a/libavformat/matroskadec.c
+++ b/libavformat/matroskadec.c
@@ -29,6 +29,7 @@ 
  */
 
 #include "config.h"
+#include "config_components.h"
 
 #include <inttypes.h>
 #include <stdio.h>
diff --git a/libavformat/matroskaenc.c b/libavformat/matroskaenc.c
index e8df5db3bd..93c969bf03 100644
--- a/libavformat/matroskaenc.c
+++ b/libavformat/matroskaenc.c
@@ -22,6 +22,7 @@ 
 #include <stdint.h>
 
 #include "config.h"
+#include "config_components.h"
 
 #include "av1.h"
 #include "avc.h"
diff --git a/libavformat/mj2kdec.c b/libavformat/mj2kdec.c
index 703ff91efb..416f45f11f 100644
--- a/libavformat/mj2kdec.c
+++ b/libavformat/mj2kdec.c
@@ -21,6 +21,7 @@ 
 
 #include "libavutil/intreadwrite.h"
 #include "avformat.h"
+#include "config_components.h"
 #include "rawdec.h"
 
 #if CONFIG_MJPEG_2000_DEMUXER
diff --git a/libavformat/mlpdec.c b/libavformat/mlpdec.c
index f0996fef31..4402d46c2d 100644
--- a/libavformat/mlpdec.c
+++ b/libavformat/mlpdec.c
@@ -23,6 +23,7 @@ 
 
 #include "avformat.h"
 #include "avio_internal.h"
+#include "config_components.h"
 #include "internal.h"
 #include "rawdec.h"
 #include "libavutil/intreadwrite.h"
diff --git a/libavformat/mmf.c b/libavformat/mmf.c
index e836390bff..1958577b68 100644
--- a/libavformat/mmf.c
+++ b/libavformat/mmf.c
@@ -22,6 +22,7 @@ 
 #include "libavutil/channel_layout.h"
 #include "avformat.h"
 #include "avio_internal.h"
+#include "config_components.h"
 #include "internal.h"
 #include "pcm.h"
 #include "rawenc.h"
diff --git a/libavformat/mov.c b/libavformat/mov.c
index 5e26267810..fb35e0024b 100644
--- a/libavformat/mov.c
+++ b/libavformat/mov.c
@@ -53,6 +53,7 @@ 
 #include "libavcodec/mpegaudiodecheader.h"
 #include "libavcodec/mlp_parse.h"
 #include "avformat.h"
+#include "config_components.h"
 #include "internal.h"
 #include "avio_internal.h"
 #include "dovi_isom.h"
diff --git a/libavformat/movenc.c b/libavformat/movenc.c
index 14482abe8d..3885bba433 100644
--- a/libavformat/movenc.c
+++ b/libavformat/movenc.c
@@ -27,6 +27,7 @@ 
 #include "movenc.h"
 #include "avformat.h"
 #include "avio_internal.h"
+#include "config_components.h"
 #include "dovi_isom.h"
 #include "riff.h"
 #include "avio.h"
diff --git a/libavformat/mpeg.c b/libavformat/mpeg.c
index ca15d9f241..6c74b32df4 100644
--- a/libavformat/mpeg.c
+++ b/libavformat/mpeg.c
@@ -22,6 +22,7 @@ 
 #include "libavutil/channel_layout.h"
 #include "avformat.h"
 #include "avio_internal.h"
+#include "config_components.h"
 #include "internal.h"
 #include "mpeg.h"
 
diff --git a/libavformat/mpegenc.c b/libavformat/mpegenc.c
index 64248695bd..bd01331ccd 100644
--- a/libavformat/mpegenc.c
+++ b/libavformat/mpegenc.c
@@ -31,6 +31,7 @@ 
 
 #include "avformat.h"
 #include "avio_internal.h"
+#include "config_components.h"
 #include "internal.h"
 #include "mpeg.h"
 
diff --git a/libavformat/mpegts.c b/libavformat/mpegts.c
index e23f596490..993230d49d 100644
--- a/libavformat/mpegts.c
+++ b/libavformat/mpegts.c
@@ -34,6 +34,7 @@ 
 #include "libavcodec/get_bits.h"
 #include "libavcodec/opus.h"
 #include "avformat.h"
+#include "config_components.h"
 #include "mpegts.h"
 #include "internal.h"
 #include "avio_internal.h"
diff --git a/libavformat/network.c b/libavformat/network.c
index 96fe636745..001ed0ad52 100644
--- a/libavformat/network.c
+++ b/libavformat/network.c
@@ -19,6 +19,7 @@ 
  */
 
 #include <fcntl.h>
+#include "config_components.h"
 #include "network.h"
 #include "tls.h"
 #include "url.h"
diff --git a/libavformat/oggenc.c b/libavformat/oggenc.c
index 31f47dadf6..eee180d709 100644
--- a/libavformat/oggenc.c
+++ b/libavformat/oggenc.c
@@ -30,6 +30,7 @@ 
 #include "libavcodec/flac.h"
 #include "avformat.h"
 #include "avio_internal.h"
+#include "config_components.h"
 #include "internal.h"
 #include "version.h"
 #include "vorbiscomment.h"
diff --git a/libavformat/pcmdec.c b/libavformat/pcmdec.c
index 63539a47c0..457669763d 100644
--- a/libavformat/pcmdec.c
+++ b/libavformat/pcmdec.c
@@ -21,6 +21,7 @@ 
 
 #include "libavutil/avstring.h"
 #include "avformat.h"
+#include "config_components.h"
 #include "internal.h"
 #include "pcm.h"
 #include "libavutil/log.h"
diff --git a/libavformat/pcmenc.c b/libavformat/pcmenc.c
index cbfcee7b41..d322eb9085 100644
--- a/libavformat/pcmenc.c
+++ b/libavformat/pcmenc.c
@@ -20,6 +20,7 @@ 
  */
 
 #include "avformat.h"
+#include "config_components.h"
 #include "rawenc.h"
 
 #define PCMDEF_0(name_, long_name_, ext, codec)
diff --git a/libavformat/rawdec.c b/libavformat/rawdec.c
index 15e26c03bd..848f19de1c 100644
--- a/libavformat/rawdec.c
+++ b/libavformat/rawdec.c
@@ -20,6 +20,7 @@ 
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "config_components.h"
 #include "avformat.h"
 #include "internal.h"
 #include "avio_internal.h"
diff --git a/libavformat/rawenc.c b/libavformat/rawenc.c
index 4bbae7717b..57da29c606 100644
--- a/libavformat/rawenc.c
+++ b/libavformat/rawenc.c
@@ -23,6 +23,7 @@ 
 #include "libavutil/intreadwrite.h"
 
 #include "avformat.h"
+#include "config_components.h"
 #include "rawenc.h"
 #include "internal.h"
 
diff --git a/libavformat/rawvideodec.c b/libavformat/rawvideodec.c
index 7b1a534452..dbf975a89e 100644
--- a/libavformat/rawvideodec.c
+++ b/libavformat/rawvideodec.c
@@ -25,6 +25,7 @@ 
 #include "libavutil/opt.h"
 #include "internal.h"
 #include "avformat.h"
+#include "config_components.h"
 
 typedef struct RawVideoDemuxerContext {
     const AVClass *class;     /**< Class for private options. */
diff --git a/libavformat/riff.c b/libavformat/riff.c
index 27a9706510..6e0a02fa78 100644
--- a/libavformat/riff.c
+++ b/libavformat/riff.c
@@ -20,6 +20,7 @@ 
  */
 
 #include "config.h"
+#include "config_components.h"
 #include "libavutil/common.h"
 #include "avformat.h"
 #include "internal.h"
diff --git a/libavformat/rtmpproto.c b/libavformat/rtmpproto.c
index 88557140f7..b17adfa843 100644
--- a/libavformat/rtmpproto.c
+++ b/libavformat/rtmpproto.c
@@ -33,6 +33,7 @@ 
 #include "libavutil/opt.h"
 #include "libavutil/random_seed.h"
 #include "avformat.h"
+#include "config_components.h"
 #include "internal.h"
 
 #include "network.h"
diff --git a/libavformat/rtsp.c b/libavformat/rtsp.c
index f1992f193e..42019294ed 100644
--- a/libavformat/rtsp.c
+++ b/libavformat/rtsp.c
@@ -32,6 +32,7 @@ 
 #include "libavutil/time.h"
 #include "avformat.h"
 #include "avio_internal.h"
+#include "config_components.h"
 
 #if HAVE_POLL_H
 #include <poll.h>
diff --git a/libavformat/rtspdec.c b/libavformat/rtspdec.c
index eee6329025..662af221df 100644
--- a/libavformat/rtspdec.c
+++ b/libavformat/rtspdec.c
@@ -25,6 +25,7 @@ 
 #include "libavutil/random_seed.h"
 #include "libavutil/time.h"
 #include "avformat.h"
+#include "config_components.h"
 
 #include "internal.h"
 #include "network.h"
diff --git a/libavformat/sdp.c b/libavformat/sdp.c
index d63a0b34c4..9992c25610 100644
--- a/libavformat/sdp.c
+++ b/libavformat/sdp.c
@@ -27,6 +27,7 @@ 
 #include "libavcodec/xiph.h"
 #include "libavcodec/mpeg4audio.h"
 #include "avformat.h"
+#include "config_components.h"
 #include "internal.h"
 #include "avc.h"
 #include "hevc.h"
diff --git a/libavformat/segment.c b/libavformat/segment.c
index e9b0aa4fa8..a7144f739f 100644
--- a/libavformat/segment.c
+++ b/libavformat/segment.c
@@ -29,6 +29,7 @@ 
 
 #include "avformat.h"
 #include "avio_internal.h"
+#include "config_components.h"
 #include "internal.h"
 
 #include "libavutil/avassert.h"
diff --git a/libavformat/swfenc.c b/libavformat/swfenc.c
index 9eb22ee9b3..d850557117 100644
--- a/libavformat/swfenc.c
+++ b/libavformat/swfenc.c
@@ -24,6 +24,7 @@ 
 #include "libavutil/avassert.h"
 #include "libavutil/fifo.h"
 #include "avformat.h"
+#include "config_components.h"
 #include "flv.h"
 #include "swf.h"
 
diff --git a/libavformat/voc.c b/libavformat/voc.c
index 04ec0da9ba..a836ecb79b 100644
--- a/libavformat/voc.c
+++ b/libavformat/voc.c
@@ -20,6 +20,7 @@ 
  */
 
 #include "config.h"
+#include "config_components.h"
 #include "voc.h"
 #include "internal.h"
 
diff --git a/libavformat/wavdec.c b/libavformat/wavdec.c
index 01090b6947..c53e6a1841 100644
--- a/libavformat/wavdec.c
+++ b/libavformat/wavdec.c
@@ -28,6 +28,7 @@ 
 #include <stdint.h>
 
 #include "config.h"
+#include "config_components.h"
 #include "libavutil/avassert.h"
 #include "libavutil/dict.h"
 #include "libavutil/intreadwrite.h"
diff --git a/libavformat/wavenc.c b/libavformat/wavenc.c
index 2317700be1..4e703354ea 100644
--- a/libavformat/wavenc.c
+++ b/libavformat/wavenc.c
@@ -43,6 +43,7 @@ 
 #include "avformat.h"
 #include "avio.h"
 #include "avio_internal.h"
+#include "config_components.h"
 #include "internal.h"
 #include "riff.h"