Ticket #171 (closed enhancement: fixed)
Opened 6 years ago
Last modified 5 years ago
fix ffmpeg configure to give haiku it's own case
| Reported by: | scottmc | Owned by: | scottmc |
|---|---|---|---|
| Priority: | normal | Milestone: | |
| Component: | media-video/ffmpeg | Version: | |
| Severity: | normal | Keywords: | |
| Cc: |
Description
http://svn.ffmpeg.org/ffmpeg/trunk/configure?revision=17855&view=markup
Current version looks like this:
# OS specific
case $target_os in
beos|haiku|zeta)
prefix_default="$HOME/config"
# helps building libavcodec
add_cflags -DPIC -fomit-frame-pointer
# 3 gcc releases known for BeOS, each with ugly bugs
gcc_version="`$cc -v 2>&1 | grep version | cut -d ' ' -f3-`"
case "$gcc_version" in
2.9-beos-991026*|2.9-beos-000224*) echo "R5/GG gcc"
disable mmx
;;
*20010315*) echo "BeBits gcc"
add_cflags -fno-expensive-optimizations
;;
esac
SHFLAGS=-nostart
# enable BeOS things
enable audio_beos
# no need for libm, but the inet stuff
# Check for BONE
# XXX: actually should check for NOT net_server
if echo $BEINCLUDES | grep -q 'headers/be/bone'; then
network_extralibs="-lbind -lsocket"
else
enable beos_netserver
network_extralibs="-lnet"
fi ;;
Perhaps we should break it out to be cleaner:
{{{
beos|zeta)
.
.
.
haiku)
network_extralibs="-lnetwork"
# plus any other haiku specific things...
;;
}}}
Maybe even put some of these options into it?
--prefix=/boot/common --enable-shared --enable-gpl --disable-debug --disable-mmx --disable-demuxer=audio_beos
--disable-muxer=audio_beos
Change History
comment:1 Changed 6 years ago by scottmc
comment:2 Changed 6 years ago by andreasf
The separate Haiku section sounds good, the default prefix too.
Some of the other suggested options don't sound so promising though. GPL and debug should be at the user's choice; MMX probably is due to a bug in Haiku or GCC that should be fixed there instead or limited to certain conditions as on BeOS. Did you try gcc4?
What about the (de)muxers - not needed or not yet working?
If you could find out the minimum amount of changes, you could have that fixed right away on trunk and keep playing with some of the other options in your working copy.
comment:3 Changed 6 years ago by scottmc
Here's what i have so far:
# OS specific
case $target_os in
beos|zeta)
prefix_default="$HOME/config"
# helps building libavcodec
add_cflags -DPIC -fomit-frame-pointer
# 3 gcc releases known for BeOS, each with ugly bugs
gcc_version="`$cc -v 2>&1 | grep version | cut -d ' ' -f3-`"
case "$gcc_version" in
2.9-beos-991026*|2.9-beos-000224*) echo "R5/GG gcc"
disable mmx
;;
*20010315*) echo "BeBits gcc"
add_cflags -fno-expensive-optimizations
;;
esac
SHFLAGS=-nostart
# enable BeOS things
enable audio_beos
# no need for libm, but the inet stuff
# Check for BONE
# XXX: actually should check for NOT net_server
if echo $BEINCLUDES | grep -q 'headers/be/bone'; then
network_extralibs="-lbind -lsocket"
else
enable beos_netserver
network_extralibs="-lnet"
fi ;;
haiku)
prefix_default="/boot/common"
SHFLAGS='-nostart -shared'
disable audio_beos
enable beosthreads
network_extralibs="-lnetwork"
;;
comment:4 Changed 6 years ago by scottmc
and built with:
configure --enable-gpl --disable-debug --disable-mmx make make install
comment:5 Changed 6 years ago by scottmc
well I needed to add --enable-shared for it to build the shared libs, so maybe the SHFLAGS line isn't working like i thought it would.
comment:6 Changed 6 years ago by andreasf
I thought -shared was a new alternative to -nostart, so that only one of them would be needed. GCC 4 needs a tweak of its specs file to make -shared work.
The SHFLAGS are probably only used when shared libraries are actually built? Does it enable them by default on other systems?
comment:7 Changed 6 years ago by scottmc
Updated patch sent to mmu_man who has ffmpeg commit rights, so hopefully sooner or later he'll commit it to ffmpeg's svn.
comment:8 Changed 5 years ago by scottmc
- Resolution set to fixed
- Status changed from new to closed
applied upstream by mmu_man:
http://git.ffmpeg.org/?p=ffmpeg;a=commit;f=configure;h=5205be4b4390d4b62851208dc6bc420c5de7e94e

Could even add in prefix_default="/boot/common"