Commit Graph

252 Commits

Author SHA1 Message Date
Andreas Cadhalpun b46aae0936 build: use a link instead of changing current directory when compiling
If links don't work, fall back to using the full source path as was
previously done.

This should fix build failures with MSVC.

Reviewed-by: Hendrik Leppkes <h.leppkes@gmail.com>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
2016-01-25 20:43:34 +01:00
Timothy Gu bd4d192081 common.mak: Use CCFLAGS for assembly generation as well
CCFLAGS is equivalent to CPPFLAGS + CFLAGS, and it is already being used
by other make rules like %.i and %.o. Simplifies common.mak.
2016-01-24 07:29:18 -08:00
Andreas Cadhalpun f503022ce5 build: fix make checkheaders in out-of-tree builds
Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
2016-01-23 21:47:40 +01:00
Andreas Cadhalpun 064963bd27 build: make out-of-tree builds bit-identical to in-tree builds
Previously the full source path was embedded inconsistently in the debug
information between in-tree/out-of-tree builds.

The 'vpath %.inc' becomes necessary for finding
libavfilter/all_channel_layouts.inc in out-of-tree builds.

The full source path is still embedded in the debug information, but
it's now independent of whether building in-tree or out-of-tree.

The biggest improvement of this patch is that gdb now always searches
for the path relative to the source directory. It still also searches
for the full path.
Previously it searched only for the full path in out-of-tree builds,
making the debug information generated by Debian's buildds rather hard
to use.

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
2016-01-22 00:30:59 +01:00
Hendrik Leppkes 3b0f63e110 Merge commit '9f57f134c19773d54269b6cb9ee455ff87c2e9e1'
* commit '9f57f134c19773d54269b6cb9ee455ff87c2e9e1':
  configure: ObjC support

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-12-05 12:21:33 +01:00
Hendrik Leppkes fcfb66ba9b Merge commit 'c1aac39eaccd32dc3b74ccfcce701d3d888fbc6b'
* commit 'c1aac39eaccd32dc3b74ccfcce701d3d888fbc6b':
  build: add Solaris symbol versioning

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-10-14 13:54:50 +02:00
Sean McGovern c1aac39eac build: add Solaris symbol versioning
The versioning facility in the Solaris linker differs from Linux in 3 ways:

1. It does not support globs in linker scripts for
symbol versioning -- this is a GNU extension.

2. The linker argument is '-M', instead of '--version-script'.

3. It is picky about line endings.
Each symbol or directive must be on a line of it's own.

Let's use make_sunver.pl from GCC to generate a version script that works
correctly with the Solaris linker. It's function is to correctly expand the
globs in the original generated version script.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-10-11 15:42:36 +02:00
Michael Niedermayer c1692439e0 Merge commit '3ae0e721c7b6e0483801b9039b3d140e3b68b7f5'
* commit '3ae0e721c7b6e0483801b9039b3d140e3b68b7f5':
  checkasm: Always link statically

Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-22 16:30:37 +02:00
Luca Barbato 3ae0e721c7 checkasm: Always link statically
Checkasm needs to use internal symbols that should not be made public.
2015-07-21 23:22:42 +02:00
Christophe Gisquet 2e5605f6fa x86: Makefile: fix DBG parameter evaluation
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-11 01:54:07 +01:00
Christophe Gisquet 3fdcb8ccdc Makefile: improve DBG option for asm
This improves the cleanup, dependency generation and DBG command issuing.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-02-21 03:23:55 +01:00
Christophe Gisquet bc8e044d8c x86/doc/Makefile: DBG=1 to preprocess external asm
The macro hell sometimes make it difficult to trace the source of
an error, so it is easier to analyze the preprocessed output.

This patch makes this automatical by specifying DBG=1 on the
command line: a file ffmpeg/dir/file.asm gets preprocessed to
builddir/dir/file.dbg.asm, which is then compiled.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-02-17 13:08:04 +01:00
Michael Niedermayer 9e6769d2dc Merge commit 'afe176265480880e1f702c96a8ba434b0d88728b'
* commit 'afe176265480880e1f702c96a8ba434b0d88728b':
  build: export library dependencies in ${name}_FFLIBS

Conflicts:
	common.mak

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-20 03:33:30 +02:00
Janne Grunau afe1762654 build: export library dependencies in ${name}_FFLIBS
Removes an ugly $(if) to avoid conflicts with $(FFLIBS-) in the
top-level MAkefile.
2014-05-20 00:43:51 +02:00
Michael Niedermayer dbd1fdd214 Merge commit '7e90133f6420b1c53652f972b9561600822881ee'
* commit '7e90133f6420b1c53652f972b9561600822881ee':
  build: do not append $(FFLIBS-) to $(FFLIBS) if $(NAME) is not defined

Conflicts:
	common.mak

See: efa9596831
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-14 14:02:19 +02:00
Janne Grunau 7e90133f64 build: do not append $(FFLIBS-) to $(FFLIBS) if $(NAME) is not defined
Avoids including disabled library Makefiles.
2014-05-14 09:46:43 +02:00
Michael Niedermayer efa9596831 common.mak: fix (not)building disabled libs
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-13 22:40:45 +02:00
Michael Niedermayer 3d7218d932 Merge commit '449511740f06a4675b0066730fa45cdb764ffafc'
* commit '449511740f06a4675b0066730fa45cdb764ffafc':
  build: handle library dependencies in configure

Conflicts:
	common.mak
	configure
	libavdevice/Makefile
	libavfilter/Makefile

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-13 22:40:32 +02:00
Janne Grunau 449511740f build: handle library dependencies in configure
Instead of setting FFLIBS in each library Makefile configure
exports FFLIBS-$library in config.mak.
2014-05-13 20:02:01 +02:00
Vadim Kalinsky 234f0bcb0c lavd: Add QTKit input device.
Signed-off-by: Thilo Borgmann <thilo.borgmann@mail.de>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-30 20:45:07 +02:00
Michael Niedermayer 1fc74926a5 Merge commit 'b339182eba34f28de5f1a477cdd2c84f1ef35d90'
* commit 'b339182eba34f28de5f1a477cdd2c84f1ef35d90':
  Move all example programs to doc/examples

Conflicts:
	configure
	doc/Makefile
	doc/doxy-wrapper.sh
	doc/examples/avcodec.c
	doc/examples/decoding_encoding.c
	doc/examples/metadata.c
	doc/examples/muxing.c
	doc/examples/transcode_aac.c
	libavcodec/Makefile
	libavcodec/api-example.c
	libavformat/Makefile

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-17 02:22:01 +01:00
Diego Biurrun b339182eba Move all example programs to doc/examples
Also drop support for building examples in library directories.
2014-02-16 21:37:21 +01:00
James Almer a12f679a5d common.mak: Less ugly version of the previous windres fix
Using subst here is a really ugly hack

Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-09 02:47:55 +01:00
James Almer 5f302b1f38 common.mak: fix the current fate failures with windres
Tested-by: Hendrik Leppkes <h.leppkes@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-09 02:02:37 +01:00
James Almer e2f800f8b7 windres: Track dependencies
Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-07 19:10:27 +01:00
James Almer 56572787ae Add Windows resource file support for shared libraries
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>
2013-12-05 23:42:07 +01:00
Michael Niedermayer 6f9be8120d Merge commit '5a9fcc7d2524d6c0f86b2855019ee9f4cf360276'
* commit '5a9fcc7d2524d6c0f86b2855019ee9f4cf360276':
  build: Add rule for building host-specific object files

Conflicts:
	Makefile

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-02 20:17:36 +01:00
Michael Niedermayer a6c455cf6b Merge commit 'ad477710244c761ad1c21246c34e0075fee12d11'
* commit 'ad477710244c761ad1c21246c34e0075fee12d11':
  build: Add shorthand for HOSTCC compile macro

Conflicts:
	Makefile

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-02 20:08:01 +01:00
Diego Biurrun ad47771024 build: Add shorthand for HOSTCC compile macro 2013-12-02 13:13:09 +01:00
Michael Niedermayer 3e78ceadf9 Merge commit 'e8fcdebb17fc59375fd9fc6c0a02a1d2e6d9fb23'
* commit 'e8fcdebb17fc59375fd9fc6c0a02a1d2e6d9fb23':
  build: Allow specifying extra object files when linking HOSTPROGS

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-15 12:19:45 +01:00
Diego Biurrun e8fcdebb17 build: Allow specifying extra object files when linking HOSTPROGS 2013-11-15 01:29:47 +01:00
Michael Niedermayer 90e1fc8bec Merge commit '47b6cfc2a0333fb24f074d27830bf35ae5007050'
* commit '47b6cfc2a0333fb24f074d27830bf35ae5007050':
  avformat/output-example: Declare link dependency on libswscale in the Makefile

Conflicts:
	libavformat/Makefile

Changes to libavformat/Makefile are not merged as our build system for the examples
is different.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-10-04 11:49:01 +02:00
Diego Biurrun 47b6cfc2a0 avformat/output-example: Declare link dependency on libswscale in the Makefile 2013-10-03 23:23:04 +02:00
Reinhard Tartler a862c7d336 Integrate lcov/gcov into Libav
The gcov/lcov are a common toolchain for visualizing code coverage with
the GNU/Toolchain. The documentation and implementation of this
integration was heavily inspired from the blog entry by Mike Melanson:
http://multimedia.cx/eggs/using-lcov-with-ffmpeg/
2013-04-05 18:55:11 +02:00
Michael Niedermayer dac1d92cb7 Merge commit '472391b9a7e15e3bff33b016e7b6dbfa6a555975'
* commit '472391b9a7e15e3bff33b016e7b6dbfa6a555975':
  ape: use correct context for the bit table printed in debug
  build: Move setting of SRC_DIR to the only place it is used

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-03-28 12:12:38 +01:00
Diego Biurrun 7c22d0489f build: Move setting of SRC_DIR to the only place it is used 2013-03-27 14:49:13 +01:00
Michael Niedermayer 845bf99312 Merge commit '4cc4b33f71d3982df404fceb4405d656c538bc74'
* commit '4cc4b33f71d3982df404fceb4405d656c538bc74':
  build: Add proper infrastructure for adding and checking host CPPFLAGS

Conflicts:
	Makefile
	configure

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-24 15:24:38 +01:00
Michael Niedermayer 39b03932c2 Merge commit '8a11ce43d08352f7a290355ebb5b29c495ad9609'
* commit '8a11ce43d08352f7a290355ebb5b29c495ad9609':
  build: Ensure that output directories for header objects are created
  h264: Get rid of unnecessary casts

Conflicts:
	common.mak

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-20 11:54:06 +01:00
Diego Biurrun 8a11ce43d0 build: Ensure that output directories for header objects are created 2013-02-20 00:45:30 +01:00
Michael Niedermayer 9696ad6a76 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  build: fix 'clean' target
  ZeroCodec: Flip output

Conflicts:
	libavcodec/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-11 08:24:45 +01:00
Mans Rullgard 395c3feb3b build: fix 'clean' target
This fixes removal of TOOLS as well as HOSTPROGS declared in the
top-level Makefile.  The clean target in common.mak needs to be
eval'd since the variables used within are reset for each library.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-12-10 17:23:53 +00:00
Michael Niedermayer 25ca8aef54 Merge commit '4a606c830ae664013cea33800094d4d0f4ec62da'
* commit '4a606c830ae664013cea33800094d4d0f4ec62da':
  av_memcpy_backptr: optimise some special cases
  mpegvideo: simplify dxy calculation in hpel_motion()
  build: add rules to generate preprocessed source files

Conflicts:
	Makefile
	libavutil/mem.c
	library.mak

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-23 13:30:51 +01:00
Michael Niedermayer 9766d9c985 Merge commit '04581c8c77ce779e4e70684ac45302972766be0f'
* commit '04581c8c77ce779e4e70684ac45302972766be0f':
  x86: yasm: Use complete source path for macro helper %includes

Conflicts:
	Makefile

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-31 13:57:09 +01:00
Michael Niedermayer 9aa630a520 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  configure: sanitise sparc vis check
  configure: recognise more sparc variants as --cpu argument
  build: Include HEADERS-yes in the HEADERS variable
  pcm: change references to raw to pcm
  ffv1: set the range coder state in decode_slice_header
  pcmdec: change default of channels parameter to 1

Conflicts:
	libavformat/pcmdec.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-26 15:20:48 +02:00
Martin Storsjö 121604b024 build: Include HEADERS-yes in the HEADERS variable
This makes sure the previously always installed public header
lzo.h is installed if the LZO functionality is enabled.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-10-25 18:36:11 +03:00
Michael Niedermayer e80cbdbc57 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  mpegvideo: drop unnecessary arguments to hpel_motion()
  mpegvideo: drop 'inline' from some functions
  nellymoserdec: drop support for s16 output.
  bmpdec: only initialize palette for pal8.
  build: Properly remove object files while cleaning
  flacdsp: arm optimised lpc filter
  compat/vsnprintf: return number of bytes required on truncation.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-16 14:55:00 +02:00
Mans Rullgard 1c9d54b468 build: Properly remove object files while cleaning
Previously, object files in, for example, compat/ were left
after a clean or distclean was run.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2012-09-15 19:44:05 -04:00
Michael Niedermayer e8e4c8bdde Merge remote-tracking branch 'qatar/master'
* qatar/master:
  build: allow non-standard variations of linker -l/-L flags
  Add reminders to update the codec descriptor list with new codec IDs.

Conflicts:
	Makefile
	configure
	libavcodec/avcodec.h
	libavformat/Makefile

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-30 17:28:21 +02:00
Michael Niedermayer 8579d4b2f0 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  build: export filtered -lz flag in config.mak
  build: add separate setting for host linker
  configure: probe_cc: use separate variable for linker output flag
  x86: Always compile files with functions that are called unconditionally
  x86: mpegvideoenc: fix linking with --disable-mmx
  x86: mpegvideoenc: Do not abuse HAVE_ variables for template instantiation

Conflicts:
	Makefile
	configure
	libavcodec/x86/Makefile

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-29 18:13:00 +02:00
Mans Rullgard 8db73c61a7 build: allow non-standard variations of linker -l/-L flags
This enables replacing the -l and -L flags used to specify the
just-built libraries when linking the tools and shared libs with
non-standard syntaxes.  System library flags are already handled
by the filtering mechanism in configure.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-08-29 14:16:54 +01:00