The motivation for this filter currently is to measure compression
latency in UltraGrid, eg.:
uv --verbose=+timestamps --capture-filter color -t testcard:pattern=gray \
-d dummy -p color [-c libavcodec]
When a variable is defined in the environment, it also gets modified
and exported for all commands and sub-makes in the Makefile
(https://web.mit.edu/gnu/doc/html/make_6.html#SEC66).
This means that when building with custom C(XX)FLAGS (such as with
Archlinux makepkg), the flag "-DHAVE_CONFIG_H" which absence is used to
detect out-of-tree building (in platform_pipe.cpp) got also wrongly
passed to qmake. This caused linking to fail due to undefined symbols,
which are only present in UltraGrid in-tree-builds.
The wildcards in the GUI dependencies did't cover all subdirectories, so
recompilation was not always triggered on file modification.
This change leaves the decision whether to recompile to the GUI
makefile, which should be more robust
There is perhaps no need to use spin lock - pthread mutexes have low
overhead if no contention takes place, anyway.
+ replaced platform_spin with pthread_mutex in resource manager
+ document why resource manager is needed
From make manual:
"Recursive make commands should always use the variable MAKE, not the
explicit command name ‘make’"
This also causes the submake to inherit the parallelization settings
from the parent make
It is a bit needless to compile the dlerror() commat in a huge number of
sources including that file. Moreover, the compat functions are not
direcly linked to modules' infrastructure in UG, which was piggy-backed
to.
In response to Coverity CID 383367 - it is perhaps false positive but
there has been another small bug - the step should be length of to, not
from (which may be longer).
+ written a test for it
Do not pass -MD to compiler (-Xcompiler) with nvcc since generated
dependencies are wrong - depending on temporary sources in
/tmp rather then on the real sources.
-MD needs to be passed directly to nvcc (without -Xcompiler) but CUDA
9.1 doesn't support -MD thus using separate commands for code and deps
generation.
The defined command is actually not generating dependencies (gcc -M
does) but only postprocessing them for use in Makefile (generating empty
rules for otherwise unresolved deps).
- fixed when the build dir is not even in the tree (git)
- the path to QT worked only if $(srcdir) is relative (configure was
invoked with relative path)
When taken from qmake, QT_CFLAGS introduce disruptive -isysroot. Also
defines things like -pipe, -O2, -mmacosx-version-min, -Wxxxx and -fPIC,
which we obviously don't want to take globally from Qt.