Francois Gouget fgouget@free.fr writes:
strmbase is a static library which is used by amstream, qcap, quartz and others. This means functions defined in strmbase end up being included in amstream.dll.so and other places.
However modifying the strmbase code does not result in a relink of the dlls that depend on it. Note that this is true even if running make from the top-level directory. That makes it very painful to work with it.
Note that the same issue could happen with other static libraries like dxguid, uuid, etc, though those don't contain code and have little reason to change so that that's probably why the problem did not surface until now.
How should we fix this? Having amstream recusively run make in strmbase would break parallel builds (the top-level Makefile enforces ordering by having __builddeps__ depend on dlls/strmbase).
Would somthing like the patch below be acceptable? Should it be generalized to all the dependencies on uuid, dxguid, etc?
In theory yes, but that would have to be auto-generated. In practice only strmbase should matter.