In particular the mutex initialization for example won't actually
compile with e.g. gcc 2.95.
Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
This part of the script doesn't check if git command is available and produce error if not.
It is 2 years since address changed and it is more reasonable to remove it than fix it.
Signed-off-by: Lukasz Marek <lukasz.m.luki@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
this allows seperate installation of shared libs that should not conflict with
whatever is already installed.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* commit '8558595a59913a4667f57d5a4658b1340f1a4354':
configure: Express atomics/thread deps through the dependency system
Conflicts:
configure
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit '11bb5e10c36539bcc303ceaac6f88d9ecb66e07f':
build: Define __printf__ to __gnu_printf__ on MinGW*/gcc
Merged-by: Michael Niedermayer <michaelni@gmx.at>
avoids picking up a library that could produce invalid bitstreams and
fixes build issues with the same.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* commit '5db4e88ecd32485341f6150c00f5ee5bfa74f62d':
configure: Detect Solaris libc in an OpenIndiana/illumos compatible way
Merged-by: Michael Niedermayer <michaelni@gmx.at>
Some pthreads symbols might be present in libc (as shown on various *BSD)
but not all of them, leading to false positives.
Check for the most common compiler flags before the plain symbol check
to avoid known pitfalls.
* commit '7c3388711b7243d059db39aa04b754baf2156934':
configure: Add -D__USE_MINGW_ANSI_STDIO=1 to CPPFLAGS on MinGW32
Merged-by: Michael Niedermayer <michaelni@gmx.at>
No need to define it twice on mingw-w64 >= v3.
Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
* commit 'c869fcdeac3b7cd71a852b928902daadeca55685':
configure: Move toolchain dependency declarations to a more appropriate place
Merged-by: Michael Niedermayer <michaelni@gmx.at>
It was misplaced during merge of commit 120797e2ef
Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Directly loads AviSynth through LoadLibrary instead of relying on
Video for Windows, and supports using AvxSynth (via dlopen) to
open scripts on Linux and OS X.
Error messages from AviSynth/AvxSynth are now reported through
av_log and exit, rather than the traditional behavior of generating
an error video that the user would need to watch to diagnose.
The main rewrite was authored by d s <avxsynth.testing@gmail.com>
from the AvxSynth team, with additional contributions by
Oka Motofumi <chikuzen.mo@gmail.com>
Stephen Hutchinson <qyot27@gmail.com>
Diego Biurrun <diego@biurrun.de>
Anton Khirnov <anton@khirnov.net>
Signed-off-by: Anton Khirnov <anton@khirnov.net>
Include the freetype header, in-directly through a macro, like it
is done in the drawtext filter. Do not break if the header is moved.
Unfortunately the drawtext filter included the file where the include
macros are defined in a wrong way. This is not needed and breaks the
build. Remove that #include line too.
Signed-off-by: Alexander Strasser <eclipse7@gmx.net>
Replace the inline awk script with a Perl script which tracks the
dependencies recursively.
This allows to correctly track dependencies for files including files
with a second level include (for example: ffmpeg-devices.texi ->
devices.texi -> outdevs.texi).
This also adds a dependency on perl for computing the dependencies, which
should not be a problem since perl is already required all the way for
building documentation.
This is a variant of commit 628ceac652
which was reverted due to out-of-tree build failure.
Originally written by James Almer <jamrial@gmail.com>
With the following contributions by Timothy Gu <timothygu99@gmail.com>
* Use descriptions of libraries from the pkg-config file generation function
* Use "FFmpeg Project" as CompanyName (suggested by Alexander Strasser)
* Use "FFmpeg" for ProductName as MSDN says "name of the product with which the
file is distributed" [1].
* Use FFmpeg's version (N-xxxxx-gxxxxxxx) for ProductVersion per MSDN [1].
* Only build the .rc files when --enable-small is not enabled.
[1] http://msdn.microsoft.com/en-us/library/windows/desktop/aa381058.aspx
Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* qatar/master:
configure: Detect msvcrt libc with a CPP check instead of a link check
Conflicts:
configure
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit '5ec467328122b80fac94c2d5e3e7540d50381868':
configure: Add detected C library and host compiler to informative output
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit 'f058f384a0d76bfd125f4738dceab7c890186432':
configure: Do not use pthread_create to check for pthread
Merged-by: Michael Niedermayer <michaelni@gmx.at>
Certain instrumentation addons leads to a false positive in configure
and link failures at the end of the build phase.
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
This more closely matches the actual use, also we use plain
strip without these flags for striping
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
This will check if -wN '..@*' is available and fall back on -x if not;
when none are available, do not run strip at all to prevent removing
functions that might be actually needed.
This reverts commit ca21116b3f.
Revert suggested by Jamal:
"Bad secondary effect i just noticed: Every time version.h is changed
(git pull for example), anything that includes config.h will be
recompiled. And that means pretty much every single file in the tree.
"
* qatar/master:
build: Check for pod2man instead of perl for manual page generation
Conflicts:
configure
doc/Makefile
The code that this changes is mostly not part of ffmpeg
thus only a few whitespaces end up being merged
Merged-by: Michael Niedermayer <michaelni@gmx.at>
This partially reverts commit c0237d19a0
Some scripts make use of --disable-doc
Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
This allows installing into e.g. /usr/lib/ffmpeg and binaries linked
against ffmpeg will pick these .so file while binaries linked against
some fork or different version will pick the libraries in /usr/lib.
There will be still some issues for binaries that (indirectly) end up
depending on multiple variants, but for the simpler cases it should allow
different applications to use different (compatible) variants that
are installed at the same time.
Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
* qatar/master:
configure: Avoid requiring c99wrap for working around msys path issues
Conflicts:
configure
Merged-by: Michael Niedermayer <michaelni@gmx.at>
Msys is unable to convert unix style absolute paths to windows style
paths when combined with certain multichar MSVC options such as
-Fo<file>. We used to work around this issue by passing them as two
separate parameters separated by a space to c99wrap, which then mapped
them back to the actual parameter format that MSVC uses.
The only paths that actually are an issue are absolute unix style
paths, and the only place such absolute paths are used with the output
arguments (-Fo, -Fe, -Fi, -out:) are for the temp files within configure.
By setting TMPDIR to . for msvc/icl builds, we never need to use
absolute unix style paths for the file output, and we can use the
actual proper form of the file output parameters. This avoids requiring
the c99wrap wrapper for remapping the parameters for cases where the
c99 converter isn't invoked at all (MSVC2013 and ICL).
Signed-off-by: Martin Storsjö <martin@martin.st>
ICL doesn't return an error on unknown parameters, and will
always pass the symver_gnu_asm test, and since Windows
never has symbol versioning, just always disable it.
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
On some platforms (such as msys), symlinks are (poorly) emulated
by simply creating a copy of the file.
This means that when building out of tree, the build tree gets
a copy of the original makefile, which can lead to unintuitive
build errors when the original makefile gets updated later.
Instead simply create a stub makefile which includes the real
one.
Signed-off-by: Martin Storsjö <martin@martin.st>
Originally written by Ronald S. Bultje <rsbultje@gmail.com> and
Clément Bœsch <u@pkh.me>
Further contributions by:
Anton Khirnov <anton@khirnov.net>
Diego Biurrun <diego@biurrun.de>
Luca Barbato <lu_zero@gentoo.org>
Martin Storsjö <martin@martin.st>
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
Signed-off-by: Anton Khirnov <anton@khirnov.net>
MSVC does support enough of C99 to work without the converter since
the 2013 version. Try to detect which version of the compiler in
the path needs to run the C99 converter or not. When the converter
is omitted, compilation time is reduced quite drastically.
Prior to this, users could still use --cc="c99conv -noconv cl"
when running MSVC 2013 to achieve the same.
This checks the version number instead of doing a normal compile
test, since this check needs to be done earlier in configure, before
the normal compile test helpers are usable.
Signed-off-by: Martin Storsjö <martin@martin.st>
a758c5e added probing for various tools, such as AS. Unfortunately, GNU
AS is reading stdin with -v, and thus configure is stalled with
configure arguments such as --as=as.
Fixes Ticket #1898.
* commit '0338c396987c82b41d322630ea9712fe5f9561d6':
dsputil: Split off H.263 bits into their own H263DSPContext
Conflicts:
configure
libavcodec/mpegvideo.h
libavcodec/mpegvideo_enc.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
As another example of bizarre compiler behavior clang groks the
-Wmaybe-uninitialized option, but not -Wno-maybe-uninitialized
and spews a warning for every file that gets compiled.
* commit '23157d72b565e0228fec97f1eb059d4f8021a260':
configure: Split test_cflags function off from check_cflags
Merged-by: Michael Niedermayer <michaelni@gmx.at>
For some weird reason gcc does not check if the -Wno disabling variants
of warning flags match existing warning flags. Instead it swallows them
silently. That is, unless other warning or error messages are generated,
because then - for some even more bizarre reason - a complaint about the
unknown disable warning flag is issued along with the error or warning
message.
Thus to check for the availability of a warning disabling option, one
needs to check for the enabling variant instead and then add the
disabling variant to CFLAGS.
Initially written by Guillaume Martres <smarter@ubuntu.com> as a GSoC
project. Further contributions by the OpenHEVC project and other
developers, namely:
Mickaël Raulet <mraulet@insa-rennes.fr>
Seppo Tomperi <seppo.tomperi@vtt.fi>
Gildas Cocherel <gildas.cocherel@laposte.net>
Khaled Jerbi <khaled_jerbi@yahoo.fr>
Wassim Hamidouche <wassim.hamidouche@insa-rennes.fr>
Vittorio Giovara <vittorio.giovara@gmail.com>
Jan Ekström <jeebjp@gmail.com>
Anton Khirnov <anton@khirnov.net>
Martin Storsjö <martin@martin.st>
Luca Barbato <lu_zero@gentoo.org>
Yusuke Nakamura <muken.the.vfrmaniac@gmail.com>
Reimar Döffinger <Reimar.Doeffinger@gmx.de>
Diego Biurrun <diego@biurrun.de>
Signed-off-by: Anton Khirnov <anton@khirnov.net>
* commit 'dcd3eda6cb8884beeb67ef5eb61b4bb6b01d29ea':
configure: Move gcc-only -W option where it belongs
Merged-by: Michael Niedermayer <michaelni@gmx.at>
F4V is Adobe's mp4/iso media variant, with the most significant
addition/change being supporting other flash codecs than just
aac/h264.
Signed-off-by: Martin Storsjö <martin@martin.st>
Initially written by Guillaume Martres <smarter@ubuntu.com> as a GSoC
project. Further contributions by the OpenHEVC project and other
developers, namely:
Mickaël Raulet <mraulet@insa-rennes.fr>
Seppo Tomperi <seppo.tomperi@vtt.fi>
Gildas Cocherel <gildas.cocherel@laposte.net>
Khaled Jerbi <khaled_jerbi@yahoo.fr>
Wassim Hamidouche <wassim.hamidouche@insa-rennes.fr>
Vittorio Giovara <vittorio.giovara@gmail.com>
Jan Ekström <jeebjp@gmail.com>
Anton Khirnov <anton@khirnov.net>
Martin Storsjö <martin@martin.st>
Luca Barbato <lu_zero@gentoo.org>
Yusuke Nakamura <muken.the.vfrmaniac@gmail.com>
Signed-off-by: Anton Khirnov <anton@khirnov.net>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* commit '9e3946aadaef6f7d7ef15c31b5ff1e73d0ba79a1':
build: Require yasm 0.8.0 or higher
Conflicts:
configure
If someone wants to continue supporting older yasm/nasm versions, patches are of course welcome!
Merged-by: Michael Niedermayer <michaelni@gmx.at>
This is in preparation for removing a .rodata kludge
which was only required for older YASM versions.
The movbe instruction was introduced in 0.8.0, which already
had AVX, which was introduced in 0.7.0, and NASM introduced
movbe in 2.0.3, which is the same version which introduced
AVX support.
Also, make the failure message more accurate.
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
The implementation of 25cb0c1a involves lots of spurious labels.
The effect of keeping those labels around is making debugging harder.
Those labels are meaningless, and complicate the disassembly. Also,
gdb can't tell the difference between them and function entry points.
This new strip command is irrelevant to any usage of Libav that would
have used the old fully stripped version, because the old one was for
non-debug use.
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
otherwise enabling the filter would not work if the part hasnt been
enabled by other means already
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
The reverted commit introduced undefined behavior.
undefined in the sense that the evaluation order of the dependencies affects the results
Fixes Ticket2920
This reverts commit c32db6adab, reversing
changes made to 05f1b4e2ec.
Alternative solutions would be to change the dependency solver to handle non trivial
dependencies or to enable zlib by default before the dependency solver, this would
leave a zlib dependency in the libs though then even when no zlib is needed or used.
Qansi-alias worked on 12.x, then caused miscompilation on 13.x, but now
works again passing all FATE tests for icl version 14.
Signed-off-by: Diego Biurrun <diego@biurrun.de>
Prior to this on msvc/icl there was no handling of deprecated functions
and the deprecated warning was disabled.
After enabling there are a number of warnings relating to the CRT and
the use of the non-secure versions of several functions. Defining
_CRT_SECURE_NO_WARNINGS silences these warnings.
Signed-off-by: Martin Storsjö <martin@martin.st>
* commit '187105ff8a02bafc9c58d9d8363bb3f55a415635':
Fix references to deleted avcodec_encode_video() function
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit 'e2cd766ca1b9bb2ba72aca5f6ba5d8be15743984':
configure: Mention that icl does not build both static and shared libs
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit '7f9e893f56db52078e0f46677ed337b2e25fa94d':
build: Report an error message when a pc file is not found
Conflicts:
configure
Merged-by: Michael Niedermayer <michaelni@gmx.at>
Based on a patch by Wolfram Gloger <wmglo@dent.med.uni-muenchen.de>.
http://lists.ffmpeg.org/pipermail/ffmpeg-devel/2012-December/136677.html
The original patch was rebased by Tudor SUCIU <tudor.suciu@gmail.com>.
Lots of additional features and fixes are made by me.
Fixes ticket #2086.
Changes since last version:
- change default page to all pages
Signed-off-by: Marton Balint <cus@passwd.hu>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* commit '84146963d23d76b09af633e97413cd97d9b3021e':
configure: x86: Fix handling of i686 and cpunop features
Merged-by: Michael Niedermayer <michaelni@gmx.at>
The i686 feature really is a CPU feature and should be handled as such.
The cpunop dependency on i686 should be expressed with a standard _deps
declaration instead of a manual test.
This reverts commit bf36dc50ea, reversing
changes made to b7fc2693c7.
Conflicts:
libavcodec/h264.c
Keeping support for the old VDPAU API has been requested by our VDPAU maintainer
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* commit 'c9031c7c1446a1a63eff7c0bf50d1ee559adf3fb':
hlsenc: Add a proper dependency on the mpegts muxer
Conflicts:
libavformat/Makefile
Merged-by: Michael Niedermayer <michaelni@gmx.at>
The hls muxer itself doesn't have any direct (object file level)
dependencies on mpegtsenc.o, and including that object file
directly doesn't ensure that it is registered so that the muxer
actually is accessible.
Signed-off-by: Martin Storsjö <martin@martin.st>
* commit '61c31e4ee7ea79a9e74c0476b81244febf17e6d7':
configure: Properly set zlib dependencies for all components
Conflicts:
configure
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit 'a7d45e06e9757f49ea4e105cbefc3462a7324e9a':
configure: The W64 demuxer should select the WAV demuxer, not depend on it
Conflicts:
configure
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit '255d9c570e117f0fcb8e51fa2c5996f3c4b2052b':
riff: Move demuxing code to a separate file.
Conflicts:
configure
libavformat/riff.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit '3dd5c95deef51d7fbf6f4458ba42d1335d2f1472':
riff: Move muxing code to a separate file
Conflicts:
configure
libavformat/riff.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit '4822ee3ca620a92cd2b0a9a03ea9e34288192c79':
configure: Detect AIX ar command instead of hardcoding it in the OS section
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit '7ef760d95c73dfee021b8fdee04f65126eb7edd1':
configure: generate full msvc debug symbols when linking in debug mode
Merged-by: Michael Niedermayer <michaelni@gmx.at>
There is no record of this ever being used at all, anywhere,
since the feature was added in 2effd27446.
This gets rid of extra linker tricks just to support a feature
that isn't used, simplifying portability to other platforms.
Signed-off-by: Martin Storsjö <martin@martin.st>
The avresample maintainers decided not to support old versions of yasm.
Supporting old yasm in FFmpeg was no big effort in the last months,
so keep it for the time being.
* commit 'ef5b70affc6376bfeadd1ff649b79bad9a124fa8':
configure: Check for support for labels in the inline assembly
The timer code is not placed under ifdef as ours does not use labels
Merged-by: Michael Niedermayer <michaelni@gmx.at>
Use this for enabling the ppc timer.h implementation only on
assemblers that support labels in the inline assembly.
Signed-off-by: Martin Storsjö <martin@martin.st>
"Fork" is an ambiguous term, since there may be more than one fork, also
"fork" could be confused with the corresponding function. Also it seems
important to point the name of the referenced fork in the symbol.
Note: the old --enable-incompatible-fork-abi command is retained for
compatibility, although it should be considered deprecated.
Replace the inline awk script with a Perl script which tracks the
dependencies recursively.
This allows to correctly track dependencies for files including files
with a second level include (for example: ffmpeg-devices.texi ->
devices.texi -> outdevs.texi).
This also adds a dependency on perl for computing the dependencies, which
should not be a problem since perl is already required all the way for
building documentation.
* commit '9f4a16c52ea8f2383244587ea4cb534fe7f6da49':
configure: Do not explicitly set Oy for msvc/icl
Merged-by: Michael Niedermayer <michaelni@gmx.at>
Because O1 or O2 are required to build libav with msvc/icl, this must be
explicitly set instead of just omitting Oy.
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
It is implied by O1 or O2, both of which are required to build libav
with msvc/icl. Silences warnings when targeting x64 with icl.
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
* commit '6dc6598692da3b0ebda2d768681786343f26a4f4':
configure: Simplify an expression with enabled_all.
Merged-by: Michael Niedermayer <michaelni@gmx.at>
As of r5799 in MinGW-w64's trunk, which is he upcoming major version 3,
the POSIX-compliant vsnprintf implementation is disabled by default.
Enable it for this version. Keep using out own implementation for
prior versions, because it is broken in them.
Relevant Reference Thread: http://article.gmane.org/gmane.comp.gnu.mingw.w64.general/7133
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
frei0r license is GPL.
Based on a patch by Timothy Gu <timothygu99@gmail.com>.
See thread:
Subject: [FFmpeg-devel] [PATCH 1/2] LICENSE: Complete GPL'd external libraries list
Date: Thu, 6 Jun 2013 18:55:30 -0700
* commit '3fd0d166aa240ef547482d1af397c4a653031c2d':
configure: Don't explicitly disable PIC for windows targets
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit '2aa3325454545b63cd63e3d5884f8558790d51df':
configure: arm: Don't try to enable pic for shared libraries on win32
Merged-by: Michael Niedermayer <michaelni@gmx.at>
This avoids warnings about this option not having any effect on
this platform.
We still want to enable the pic configure item for these platforms
(if detected via the compiler builtin define __PIC__) to get proper
inline assembly workarounds.
Signed-off-by: Martin Storsjö <martin@martin.st>
This reverts e08c946c6 and 05165c2f7a. The actual intention of
e08c946c6 was to fix shared library builds for arm/win32, which
can also be accomplished in other ways.
Disabling pic on those platforms broke inline assembly on cygwin/64
(since some inline assembly requires knowing whether we are building
as PIC or not), and might also break inline assembly on other
compilers on windows.
As a side-effect, this unfortunately brings back all the warnings
about PIC not having any effect on that platform.
Signed-off-by: Martin Storsjö <martin@martin.st>
The object file format doesn't support PIC loads in ARM assembly,
there are no relocation types in PE/COFF that correspond to
BFD_RELOC_32_PCREL (R_ARM_REL32 in ELF).
Signed-off-by: Martin Storsjö <martin@martin.st>
* commit '14fb9d3d8ccf5f50180aabdb1afe8b570fea3d28':
configure: Separate commonalities in msvc and icl flags
Conflicts:
configure
Merged-by: Michael Niedermayer <michaelni@gmx.at>
Allows for easier handling of flags that may be specific to icl or msvc.
Furthermore, simplify the handling of warnings and remarks thanks to
icl's support of -Wall on Windows.
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
Based on the work of Jeff Moguillansky <Jeff.Moguillansky@am.sony.com>.
See thread:
Subject: [FFmpeg-devel] x11 output device for libavdevice
Date: Wed, 10 Apr 2013 23:10:47 +0000
* commit '78f75b6fa421dd39a715588e9487579f1ce5bada':
wavpack: extract sample rate from the bitstream
configure: support gcc-4.8 instrumentation
Conflicts:
libavcodec/wavpack.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>