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

Michael Niedermayer michael at niedermayer.cc
Thu Feb 24 23:22:00 EET 2022


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

[...]
-- 
Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

If you fake or manipulate statistics in a paper in physics you will never
get a job again.
If you fake or manipulate statistics in a paper in medicin you will get
a job for life at the pharma industry.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 195 bytes
Desc: not available
URL: <https://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20220224/b519af21/attachment.sig>


More information about the ffmpeg-devel mailing list