• Andreas Rheinhardt's avatar
    ffbuild/common: Fix CPPFLAGS applied for compiling C++ files · a7817337
    Andreas Rheinhardt authored
    Currently, $(CPPFLAGS) and $(CFLAGS) are prepended to CXXFLAGS
    (the flags for compiling C++) like this:
    CXXFLAGS := $(CPPFLAGS) $(CFLAGS) $(CXXFLAGS)
    Using ":=" creates a simply expanded variable, i.e. the values
    of the variable at the time of assignment are used and later
    modifications to them are ignored (using a recursively expanding
    variable (i.e. "=" instead of ":=") is not really possible here,
    as there would be an infinite loop when evaluating CXXFLAGS).
    
    Yet we perform later additions to CPPFLAGS: HAVE_AV_CONFIG_H and
    BUILDING_libfoo are defined. These do not reach C++ compilations.
    
    To fix this a trick is employed to prepend to a recursively
    expanded variable while keeping it recursively expanded.
    
    There are two practical consequences of this: C++ files now no longer
    include the version.h header, but only the version_major.h header
    of their library, saving some recompilations. Furthermore, they
    now get some optimized math functions (namely the ones from
    lavu/intmath.h instead of the ones from lavu/common.h).
    (av_parity() is the only one for which it makes a difference.)
    Signed-off-by: 's avatarAndreas Rheinhardt <andreas.rheinhardt@outlook.com>
    a7817337
Name
Last commit
Last update
..
.gitignore Loading commit data...
arch.mak Loading commit data...
bin2c.c Loading commit data...
common.mak Loading commit data...
library.mak Loading commit data...
libversion.sh Loading commit data...
pkgconfig_generate.sh Loading commit data...
version.sh Loading commit data...