ffmpeg multiple build flavors

Reinhard Tartler siretart at tauware.de
Thu Jun 19 10:57:57 UTC 2008


Fabian Greffrath <greffrath at leat.rub.de> writes:

> Reinhard Tartler schrieb:
>>  - multiple build flavors, so that we can have both an altivec and
>>    non-altivec verison of the package.
>
> Where are the MMX enabled libraries supposed to end up? I've seen that
> libc6-i6868 installs its files into /lib/i686/cmov/. Is this the right
> directory?

Very good question. cmov is probably not the right answer, because there
are machines out there that do support MMX but not the cmov instruction
and machines that do not support MMX but cmov.

AFAIUI it is not possible to make this decision for the i386
architecture. We would need to check with the glibc maintainers.

> Just to make sure I got it right:
> By now we build non-optimized static libraries, back them up, make clean
> and then build a set of non-optimized shared libraries.

Our static libraries are optimized ATM.

> We want to extend to a third set of libraries, namely optimized shared
> libraries.

Exactly.

>
> How about this concept:
> We check DEB_HOST_ARCH_CPU. If it's "i386" or "amd64" we set a variable
> called EXTRA_FLAVOUR to "mmx" and if it's "powerpc" we set EXTRA_FLAVOUR
> to "altivec". EXTRA_FLAVOUR is empty else.
> After we back up the static libraries and before we build the
> non-optimized shared libraries we run an additional configure/make cycle
> for all flavours in EXTRA_FLAVOURS (this means zero for all archs that
> have an empty EXTRA_FLAVOURS and exactly one for those that have it set
> to a value). In this build cycle we use exactly the same confflags as in
> the non-optimized build, but whithout nooptflags. We back up the
> resulting libraries in a separate directory (or with a suffix) and go on
> to the non-optimized library build. In the install rule we install the
> optimized libraries as usual.

Yes, I have a local, unpublished branch implementing that. it currently
FTBFS, and I need to fix that up, but then I'll commit it to trunk.

> I hope this is reasonably understandable. However, this way we do not
> need different build directories, but simply insert another build cycle
> for supported archs.

I think we should do VPATH builds. The configure script seem to support
this, and first test confirm that.

> The remaining question - thus my initial question in the beginning of
> the mail - is, where exactly to put the optimized libraries?

This is highly architecture dependant. You already answered for powerpc,
for sparc it is in /usr/lib/v9. For other architectures I don't have an
answer yet.

For this reason I would leave them out and wait for wishlist bugs
requesting them. There we can discuss the issue with the relevant
porting teams.

-- 
Gruesse/greetings,
Reinhard Tartler, KeyID 945348A4



More information about the pkg-multimedia-maintainers mailing list