Commit Graph

64 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
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
Ganesh Ajjanagadde
e34a3468f2 build: add LDLIBFLAGS
Fixes Ticket4673

Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-07-08 14:35:02 +02:00
James Almer
a9af9da631 library.mak: Workaround SDL redefining main and breaking fate tests on mingw
Fixes Ticket3368

Commit message by commiter
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-19 12:12:27 +02:00
Ingo Brückl
083b1a32d5 build: add configure option pkgconfigdir
This allows the user to override the directory for the installation
of the pkg-config files (from the default LIBDIR/pkgconfig).

It follows the usual behaviour of Makefiles generated by automake.

Signed-off-by: Ingo Brückl <ib@wupperonline.de>
Reviewed-by: Andreas Cadhalpun <andreas.cadhalpun@googlemail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-29 20:36:10 +02: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
dac096cf39 Merge commit 'bb0babd7054bed7edfd9f4d6b20cdba864de1830'
* commit 'bb0babd7054bed7edfd9f4d6b20cdba864de1830':
  build: Support executable only ldflags

Conflicts:
	Makefile

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-22 02:45:45 +02:00
Luca Barbato
bb0babd705 build: Support executable only ldflags
The options is useful to build position-independent executables on
hardened systems (e.g. Android L and Gentoo Hardened).
2014-07-21 22:18:35 +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
Michael Niedermayer
71052d85c1 Merge commit '3a26ccbf0d9f806d067e76a3f484170abecb36b3'
* commit '3a26ccbf0d9f806d067e76a3f484170abecb36b3':
  build: doxy: Include code examples in Doxygen documentation

Conflicts:
	doc/Makefile

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-14 15:23:29 +01:00
Diego Biurrun
3a26ccbf0d build: doxy: Include code examples in Doxygen documentation 2014-02-14 12:01:35 +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
e975c147e1 library.mak: only run asm strip if ASMSTRIP flags are set
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-28 21:52:46 +01:00
Michael Niedermayer
e283c26c35 build sys: rename STRIPFLAGS to ASMSTRIPFLAGS
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>
2013-11-28 21:29:13 +01:00
Michael Niedermayer
71b95f2ab6 Merge commit '0673ede985a6560e7efb86dab1c58fb7f95ce587'
* commit '0673ede985a6560e7efb86dab1c58fb7f95ce587':
  configure: add strip flags checks

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-28 21:27:17 +01:00
Vittorio Giovara
0673ede985 configure: add strip flags checks
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.
2013-11-28 15:37:10 +01:00
Ingo Brückl
8fbb0979da build: remove pointless condition
$(STRIP) always expands to something, because it is one of the commands
in the BRIEF list. This renders the condition pointless.

Signed-off-by: Ingo Brückl <ib@wupperonline.de>
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2013-10-29 14:00:29 +00:00
Ingo Brückl
94d707af3c build: remove pointless condition
$(STRIP) always expands to something, because it is one of the commands
in the BRIEF list. This renders the condition pointless.

Signed-off-by: Ingo Brückl <ib@wupperonline.de>
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2013-10-24 10:51:03 +01:00
Michael Niedermayer
3d5a995eac Merge commit 'e52567c2954f627d420b30f75f71af2f2e4afe80'
* commit 'e52567c2954f627d420b30f75f71af2f2e4afe80':
  build: Strip spurious labels

Conflicts:
	configure

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-10-08 10:45:37 +02:00
Loren Merritt
e52567c295 build: Strip spurious labels
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>
2013-10-07 06:20:15 -04: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
Cyrille Faucheux
75758f84de build: fixes a "can't cd to..." issue when installing shared libraries.
The problem is reproducible with a relative prefix path.
2013-02-15 08:39:35 +01:00
Michael Niedermayer
7491356111 Merge commit '304b806cb524fb040f8e09a241040f1af2cb820b'
* commit '304b806cb524fb040f8e09a241040f1af2cb820b':
  build: Make library minor version visible in the Makefile
  x86: mpeg4qpel: Make movsxifnidn do the right thing

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-12 13:26:22 +01:00
Diego Biurrun
304b806cb5 build: Make library minor version visible in the Makefile
This allows employing that number in library install commands.
2013-02-11 20:17:15 +01:00
James Almer
13eb9fcf56 build: Remove superfluous MAKE variable for the build suffix
Use BUILDSUF instead.

Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-03 13:08:36 +01:00
Steven Boswell II
6289a8296a build-sys: Fix pkgconfig files when ffmpeg is built with --build-suffix
Tested-on: Fedora Core 14, 16, and 17.
Tested-on: Ubuntu by commiter

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-02 03:24:16 +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
Mans Rullgard
c262649291 build: add rules to generate preprocessed source files
This is useful for debugging.  Dependencies for these files are not
generated due to limitations in many compilers.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-11-23 12:03:32 +00:00
Michael Niedermayer
2581d9bcbb Merge remote-tracking branch 'qatar/master'
* qatar/master:
  doc: add apidoc target for doxygen API documentation
  matroskadec: do not use avpacket internals

Conflicts:
	doc/Makefile
	libavformat/matroskadec.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-03 14:48:51 +01:00
Janne Grunau
b3fab1f2cd doc: add apidoc target for doxygen API documentation
Documentation includes only the externally visible API of the installed
headers.

Based on a patch by Anton Khirnov <anton@khirnov.net>.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2012-11-02 18:28:56 +01:00
Michael Niedermayer
2dbc93455c Merge commit '80521c1997a23e148edf89e11b939ab8646297ca'
* commit '80521c1997a23e148edf89e11b939ab8646297ca':
  build: allow targets to specify extra objects to link with executables
  swscale: avoid pointless use of compound literals
  libm: add fallbacks for various single-precision functions
  network: use getservbyport() only if available
  network: add fallbacks for INADDR_LOOPBACK and INET_ADDRSTRLEN
  Include sys/time.h before sys/resource.h

Conflicts:
	Makefile
	configure
	libavutil/libm.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-24 12:53:26 +02:00
Mans Rullgard
80521c1997 build: allow targets to specify extra objects to link with executables
This allows targets to include special objects when linking
executables without including them in (shared) libraries.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-10-23 12:00:22 +01:00
Michael Niedermayer
bb35864759 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  mlpdsp: adding missing file
  dsputil: split out mlp dsp function
  sh4: add required #include, fix build
  averror: make error values proper negative values
  build: do not use LIB as variable name
  build: whitespace cosmetics
  build: remove single-use variable THIS_LIB

Conflicts:
	libavutil/error.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-11 15:55:41 +02:00
Michael Niedermayer
526cb36e4b Merge commit '4436f25a1682ada3f7226cb6fadf429946933161'
* commit '4436f25a1682ada3f7226cb6fadf429946933161':
  build: remove references to unused EXTRAOBJS variable
  lavfi: convert input/ouput list compound literals to named objects
  fate: add h263 obmc vsynth tests
  avconv: remove bogus warning when using avconv -h without parameter
  averror: explicitly define AVERROR_* values
  flashsv: propagate inflateReset() errors
  indeo4/5: remove constant parameter num_bands from wavelet recomposition
  mxfdec: return error if no segments are available in mxf_get_sorted_table_segments
  Double motion vector range for HPEL interlaced picture in proper place

Conflicts:
	libavcodec/v210dec.h
	libavfilter/af_aformat.c
	libavfilter/af_amix.c
	libavfilter/af_asyncts.c
	libavfilter/af_channelmap.c
	libavfilter/af_join.c
	libavfilter/asrc_anullsrc.c
	libavfilter/buffersrc.c
	libavfilter/f_setpts.c
	libavfilter/f_settb.c
	libavfilter/fifo.c
	libavfilter/src_movie.c
	libavfilter/vf_ass.c
	libavfilter/vf_blackframe.c
	libavfilter/vf_boxblur.c
	libavfilter/vf_delogo.c
	libavfilter/vf_drawbox.c
	libavfilter/vf_drawtext.c
	libavfilter/vf_fade.c
	libavfilter/vf_fieldorder.c
	libavfilter/vf_fps.c
	libavfilter/vf_hflip.c
	libavfilter/vf_overlay.c
	libavfilter/vf_pad.c
	libavfilter/vf_select.c
	libavfilter/vf_transpose.c
	libavfilter/vf_yadif.c
	libavfilter/vsrc_testsrc.c
	libavformat/mxfdec.c
	libavutil/error.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-11 15:46:48 +02:00
Mans Rullgard
4436f25a16 build: remove references to unused EXTRAOBJS variable
This was part of a ghastly hack that is long since gone.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-10-10 23:46:31 +01:00
Mans Rullgard
effe443877 build: do not use LIB as variable name
The Microsoft linker uses the LIB environment variable which
clashes with a make variable of the same name.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-10-10 23:46:31 +01:00
Mans Rullgard
1c7428e655 build: whitespace cosmetics
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-10-10 23:46:31 +01:00
Mans Rullgard
e5c6e9a6f2 build: remove single-use variable THIS_LIB
Replace the single use of THIS_LIB with its value.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-10-10 23:46:31 +01:00
Michael Niedermayer
c6d39fb3c5 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  build: sanitize linking of tools and test programs
  fate: Refactor setting of environment variables for groups of tests

Conflicts:
	tests/fate/audio.mak
	tests/fate/real.mak
	tests/fate/voice.mak

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-10 14:13:51 +02:00
Michael Niedermayer
50b5477616 Merge commit 'b94e4acb4874843e914fd3cb8e089aff0756bb4a'
* commit 'b94e4acb4874843e914fd3cb8e089aff0756bb4a':
  cmdutils_read_file: increment *size after writing the trailing \0
  af_resample: unref out_buf when avresample_convert returns 0
  af_amix: prevent memory leak on error path
  vc1dec: prevent memory leak in error path
  vc1dec: prevent memory leak on av_realloc error
  af_channelmap: free old extended_data on reallocation
  avconv: simplify memory allocation in copy_chapters
  matroskaenc: check cue point validity before reallocation
  swfenc: error out for more than 1 audio or video stream
  build: link test programs only against static libs

Conflicts:
	ffmpeg_opt.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-10 13:18:05 +02:00
Mans Rullgard
4b895cb294 build: sanitize linking of tools and test programs
This makes sure proper linker arguments are used for the tools and
test programs when shared libraries are enabled.  The tools are
linked using the usual -l flag while for test programs the full
name of the static library is used.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-10-10 11:24:09 +01:00
Mans Rullgard
0fb3b24ada build: link test programs only against static libs
The test programs use internal symbols so cannot be linked against the
shared libs.  Linking against both shared and static is pointless and
might do something strange depending on the linker.  This changes the
dependencies so the test programs are linked only against the static
library for the component they belong to.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-10-09 14:16:21 +01:00
Michael Niedermayer
61ced71d79 Merge commit '581281e242609a222233a2e5538b89dfb88fb18e'
* commit '581281e242609a222233a2e5538b89dfb88fb18e':
  matroskadec: check realloc in lzo encoding
  matroska: honor error_recognition on unknown doctypes
  tiffdec: Add support for GRAY16LE.
  tiffenc: Add support for little endian RGB48 and GRAY16
  mpeg4: support frame parameter changes with frame-mt
  mpegvideo: check ff_find_unused_picture() return value for errors
  mpegvideo: release frame buffers before freeing them
  configure: msvc: default to 'lib' as 'ar' tool
  build: support some non-standard ar variants

Conflicts:
	libavcodec/h263dec.c
	libavcodec/mpegvideo.c
	libavcodec/tiff.c
	libavcodec/tiffenc.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-20 03:20:29 +02:00
Mans Rullgard
3dbc777c7f build: support some non-standard ar variants
This adds support for the TI and Microsoft (lib.exe) variants of
the ar utility.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-09-19 14:09:50 +01: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
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