NAME = avutil
DESC = FFmpeg utility library

HEADERS = adler32.h                                                     \
          aes.h                                                         \
          aes_ctr.h                                                     \
          ambient_viewing_environment.h                                 \
          attributes.h                                                  \
          audio_fifo.h                                                  \
          avassert.h                                                    \
          avstring.h                                                    \
          avutil.h                                                      \
          base64.h                                                      \
          blowfish.h                                                    \
          bprint.h                                                      \
          bswap.h                                                       \
          buffer.h                                                      \
          cast5.h                                                       \
          camellia.h                                                    \
          channel_layout.h                                              \
          common.h                                                      \
          container_fifo.h                                              \
          cpu.h                                                         \
          crc.h                                                         \
          csp.h                                                         \
          des.h                                                         \
          detection_bbox.h                                              \
          dict.h                                                        \
          display.h                                                     \
          dovi_meta.h                                                   \
          downmix_info.h                                                \
          encryption_info.h                                             \
          error.h                                                       \
          eval.h                                                        \
          executor.h                                                    \
          fifo.h                                                        \
          file.h                                                        \
          film_grain_params.h                                           \
          frame.h                                                       \
          hash.h                                                        \
          hdr_dynamic_metadata.h                                        \
          hdr_dynamic_vivid_metadata.h                                  \
          hmac.h                                                        \
          hwcontext.h                                                   \
          hwcontext_cuda.h                                              \
          hwcontext_d3d11va.h                                           \
          hwcontext_d3d12va.h                                           \
          hwcontext_drm.h                                               \
          hwcontext_dxva2.h                                             \
          hwcontext_amf.h                                               \
          hwcontext_qsv.h                                               \
          hwcontext_mediacodec.h                                        \
          hwcontext_opencl.h                                            \
          hwcontext_oh.h                                                \
          hwcontext_vaapi.h                                             \
          hwcontext_videotoolbox.h                                      \
          hwcontext_vdpau.h                                             \
          hwcontext_vulkan.h                                            \
          iamf.h                                                        \
          imgutils.h                                                    \
          intfloat.h                                                    \
          intreadwrite.h                                                \
          lfg.h                                                         \
          log.h                                                         \
          lzo.h                                                         \
          macros.h                                                      \
          mathematics.h                                                 \
          mastering_display_metadata.h                                  \
          md5.h                                                         \
          mem.h                                                         \
          motion_vector.h                                               \
          murmur3.h                                                     \
          opt.h                                                         \
          parseutils.h                                                  \
          pixdesc.h                                                     \
          pixelutils.h                                                  \
          pixfmt.h                                                      \
          random_seed.h                                                 \
          rc4.h                                                         \
          rational.h                                                    \
          refstruct.h                                                   \
          replaygain.h                                                  \
          ripemd.h                                                      \
          samplefmt.h                                                   \
          sha.h                                                         \
          sha512.h                                                      \
          spherical.h                                                   \
          stereo3d.h                                                    \
          tdrdi.h                                                       \
          threadmessage.h                                               \
          time.h                                                        \
          timecode.h                                                    \
          timestamp.h                                                   \
          tree.h                                                        \
          twofish.h                                                     \
          uuid.h                                                        \
          version.h                                                     \
          video_enc_params.h                                            \
          xtea.h                                                        \
          tea.h                                                         \
          tx.h                                                          \
          video_hint.h

ARCH_HEADERS = bswap.h                                                  \
               intmath.h                                                \
               intreadwrite.h                                           \
               timer.h                                                  \

BUILT_HEADERS = avconfig.h                                              \
                ffversion.h

OBJS = adler32.o                                                        \
       aes.o                                                            \
       aes_ctr.o                                                        \
       ambient_viewing_environment.o                                    \
       audio_fifo.o                                                     \
       avstring.o                                                       \
       avsscanf.o                                                       \
       base64.o                                                         \
       blowfish.o                                                       \
       bprint.o                                                         \
       buffer.o                                                         \
       cast5.o                                                          \
       camellia.o                                                       \
       channel_layout.o                                                 \
       container_fifo.o                                                 \
       cpu.o                                                            \
       crc.o                                                            \
       csp.o                                                            \
       des.o                                                            \
       detection_bbox.o                                                 \
       dict.o                                                           \
       display.o                                                        \
       dovi_meta.o                                                      \
       downmix_info.o                                                   \
       encryption_info.o                                                \
       error.o                                                          \
       eval.o                                                           \
       executor.o                                                       \
       fifo.o                                                           \
       file.o                                                           \
       file_open.o                                                      \
       float_dsp.o                                                      \
       float_scalarproduct.o                                            \
       film_grain_params.o                                              \
       fixed_dsp.o                                                      \
       frame.o                                                          \
       hash.o                                                           \
       hdr_dynamic_metadata.o                                           \
       hdr_dynamic_vivid_metadata.o                                     \
       hmac.o                                                           \
       hwcontext.o                                                      \
       iamf.o                                                           \
       imgutils.o                                                       \
       integer.o                                                        \
       intmath.o                                                        \
       lfg.o                                                            \
       lls.o                                                            \
       log.o                                                            \
       log2_tab.o                                                       \
       lzo.o                                                            \
       mathematics.o                                                    \
       mastering_display_metadata.o                                     \
       md5.o                                                            \
       mem.o                                                            \
       murmur3.o                                                        \
       opt.o                                                            \
       parseutils.o                                                     \
       pixdesc.o                                                        \
       pixelutils.o                                                     \
       random_seed.o                                                    \
       rational.o                                                       \
       refstruct.o                                                      \
       reverse.o                                                        \
       rc4.o                                                            \
       ripemd.o                                                         \
       samplefmt.o                                                      \
       side_data.o                                                      \
       sha.o                                                            \
       sha512.o                                                         \
       slicethread.o                                                    \
       spherical.o                                                      \
       stereo3d.o                                                       \
       tdrdi.o                                                          \
       threadmessage.o                                                  \
       time.o                                                           \
       timecode.o                                                       \
       timecode_internal.o                                              \
       timestamp.o                                                      \
       tree.o                                                           \
       twofish.o                                                        \
       utils.o                                                          \
       xga_font_data.o                                                  \
       xtea.o                                                           \
       tea.o                                                            \
       tx.o                                                             \
       tx_float.o                                                       \
       tx_double.o                                                      \
       tx_int32.o                                                       \
       uuid.o                                                           \
       version.o                                                        \
       video_enc_params.o                                               \
       video_hint.o                                                     \


OBJS-$(CONFIG_CUDA)                     += hwcontext_cuda.o
OBJS-$(CONFIG_D3D11VA)                  += hwcontext_d3d11va.o
OBJS-$(CONFIG_D3D12VA)                  += hwcontext_d3d12va.o
OBJS-$(CONFIG_DXVA2)                    += hwcontext_dxva2.o
OBJS-$(CONFIG_AMF)                      += hwcontext_amf.o
OBJS-$(CONFIG_LIBDRM)                   += hwcontext_drm.o
OBJS-$(CONFIG_MACOS_KPERF)              += macos_kperf.o
OBJS-$(CONFIG_MEDIACODEC)               += hwcontext_mediacodec.o
OBJS-$(CONFIG_OHCODEC)                  += hwcontext_oh.o
OBJS-$(CONFIG_OPENCL)                   += hwcontext_opencl.o
OBJS-$(CONFIG_QSV)                      += hwcontext_qsv.o
OBJS-$(CONFIG_VAAPI)                    += hwcontext_vaapi.o
OBJS-$(CONFIG_VIDEOTOOLBOX)             += hwcontext_videotoolbox.o
OBJS-$(CONFIG_VDPAU)                    += hwcontext_vdpau.o
OBJS-$(CONFIG_VULKAN)                   += hwcontext_vulkan.o vulkan.o

OBJS-$(!CONFIG_VULKAN)                  += hwcontext_stub.o

OBJS += $(COMPAT_OBJS:%=../compat/%)

# Object files to satisfy dependencies of other libraries for static builds
STLIBOBJS-$(CONFIG_EXR_DECODER)         += half2float.o float2half.o
STLIBOBJS-$(CONFIG_EXR_ENCODER)         += float2half.o
STLIBOBJS-$(CONFIG_PHM_DECODER)         += half2float.o
STLIBOBJS-$(CONFIG_PHM_ENCODER)         += float2half.o
STLIBOBJS-$(CONFIG_SWSCALE)             += half2float.o

# Windows resource file
SHLIBOBJS-$(HAVE_GNU_WINDRES)           += avutilres.o

SKIPHEADERS                            += objc.h
SKIPHEADERS-$(CONFIG_ZLIB)             += zlib_utils.h
SKIPHEADERS-$(HAVE_CUDA_H)             += hwcontext_cuda.h
SKIPHEADERS-$(CONFIG_CUDA)             += hwcontext_cuda_internal.h     \
                                          cuda_check.h
SKIPHEADERS-$(CONFIG_D3D11VA)          += hwcontext_d3d11va.h
SKIPHEADERS-$(CONFIG_D3D12VA)          += hwcontext_d3d12va.h
SKIPHEADERS-$(CONFIG_DXVA2)            += hwcontext_dxva2.h
SKIPHEADERS-$(CONFIG_AMF)              += hwcontext_amf.h               \
                                          hwcontext_amf_internal.h
SKIPHEADERS-$(CONFIG_QSV)              += hwcontext_qsv.h
SKIPHEADERS-$(CONFIG_OPENCL)           += hwcontext_opencl.h
SKIPHEADERS-$(CONFIG_VAAPI)            += hwcontext_vaapi.h
SKIPHEADERS-$(CONFIG_VIDEOTOOLBOX)     += hwcontext_videotoolbox.h
SKIPHEADERS-$(CONFIG_VDPAU)            += hwcontext_vdpau.h
SKIPHEADERS-$(CONFIG_VULKAN)           += hwcontext_vulkan.h vulkan.h   \
                                          vulkan_functions.h            \
                                          vulkan_loader.h
SKIPHEADERS-$(CONFIG_LIBSHADERC)       += vulkan_spirv.h
SKIPHEADERS-$(CONFIG_LIBGLSLANG)       += vulkan_spirv.h
SKIPHEADERS-$(CONFIG_SHADER_COMPRESSION) += zlib_utils.h

TESTPROGS = adler32                                                     \
            aes                                                         \
            aes_ctr                                                     \
            audio_fifo                                                  \
            avstring                                                    \
            base64                                                      \
            blowfish                                                    \
            bprint                                                      \
            cast5                                                       \
            camellia                                                    \
            channel_layout                                              \
            color_utils                                                 \
            cpu                                                         \
            crc                                                         \
            des                                                         \
            dict                                                        \
            display                                                     \
            encryption_info                                             \
            error                                                       \
            eval                                                        \
            file                                                        \
            fifo                                                        \
            hash                                                        \
            hmac                                                        \
            hwdevice                                                    \
            integer                                                     \
            imgutils                                                    \
            lfg                                                         \
            lls                                                         \
            log                                                         \
            md5                                                         \
            murmur3                                                     \
            opt                                                         \
            pca                                                         \
            parseutils                                                  \
            pixdesc                                                     \
            pixelutils                                                  \
            pixfmt_best                                                 \
            random_seed                                                 \
            rational                                                    \
            ripemd                                                      \
            sha                                                         \
            sha512                                                      \
            side_data_array                                             \
            softfloat                                                   \
            tree                                                        \
            twofish                                                     \
            utf8                                                        \
            uuid                                                        \
            xtea                                                        \
            tea                                                         \

TESTPROGS-$(HAVE_THREADS)            += cpu_init
TESTPROGS-$(HAVE_LZO1X_999_COMPRESS) += lzo

TOOLS = crypto_bench ffhash ffeval ffescape

tools/crypto_bench$(EXESUF): ELIBS += $(if $(VERSUS),$(subst +, -l,+$(VERSUS)),)
tools/crypto_bench.o: CFLAGS += -DUSE_EXT_LIBS=0$(if $(VERSUS),$(subst +,+USE_,+$(VERSUS)),)

$(SUBDIR)tests/lzo$(EXESUF): ELIBS = -llzo2
