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.
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>
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
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>
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
The modern MSVC for ARM always builds for thumb, and it can't be
disabled.
Also just use the default arch instead of trying to map the -march
parameter to MSVC's -arch parameter (which only takes the values
ARMv7VE and VFPv4).
Signed-off-by: Martin Storsjö <martin@martin.st>
Initial support for the ICL compiler on windows. Requires a new
c99wrap with ICL support (1.0.2+).
Currently not much different speed wise compared to msvc. In the
future with a few changes it can be made to support the inline asm.
This would be the primary reason for using it.
Passed all fate tests, versions tested:
13.1.1.171 (2013 Update 3) x86 and x64
12.1.5.344 (2011 Update 11) x86 and x64
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
Change the check_exec_crash test to use a function pointer instead of
simply calling the function. The EBP availability test will crash when
compiled with ICL likely due to compiler optimization shenanigans.
Originally the check_exec_crash code was moved out of main to fix a
problem with gcc's treatment of non-leaf main on x86_32. Libav already
moved the code out of main but the addition of the function pointer will
prevent any inlining which fixes the remaining problem.
A function pointer is used since it is compiler agnostic (as opposed to
say __attribute__ ((noinline)) which would only work with gcc compatible
compilers).
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
MSVC 2010 (or more precisely, Windows SDK 7.0 which comes with MSVC
2010) sets _WIN32_WINNT to the constant for Windows 7 if nothing is
set. This could lead to the libav configure script detecting and
using functions only present in Windows 7 or newer, which in most
cases isn't desired. If the caller explicitly wants this, the caller
can add the _WIN32_WINNT define via --extra-cflags, setting the desired
version.
Signed-off-by: Martin Storsjö <martin@martin.st>
With the parameter --toolchain valgrind-massif, the configure
script sets reasonable defaults that can be overridden as explained
in the documentation.
This makes it consistent with the msvc builds which automatically set
the DEP and ASLR flags by default. There really is no good reason why
they shouldn't be set.
The fact that binutils does not set them on by default boggles the mind.
Signed-off-by: Martin Storsjö <martin@martin.st>