[mythtv] [patch] automagic settings.pro (version 3)
Daniel Thor Kristjansson
danielk at mrl.nyu.edu
Thu Feb 24 21:09:52 UTC 2005
On Thu, 24 Feb 2005, Simon Kenyon wrote:
]Intel(R) Pentium(R) M processor 2.00GHz
]CFLAGS=-O2 -mcpu=pentium4 -O3 -pipe -fomit-frame-pointer
]AMD Athlon(tm) processor
]CFLAGS="-O3 -march=athlon-tbird -pipe -fomit-frame-pointer"
]VIA C3 Ezra
]CFLAGS="-Os -march=c3 -pipe -fomit-frame-pointer"
I've added these to the attached config patch.
I've also fixed a couple problems with the
automatic sound support detection.
I just made all the "AMD Athlon(tm)" processors use
"-march=pentiumpro -mmmx" I've read reports that the
Athlon tbird/xp/mp specific -march settings result
in worse code than "-march=pentiumpro". I'm assuming
all Athlons have mmx support, is this incorrect?
BTW if you specify --cpu or --tune to configure the
automagic -march setting will be ignored.
-- Daniel
-------------- next part --------------
Index: configure
===================================================================
RCS file: /var/lib/mythcvs/mythtv/configure,v
retrieving revision 1.31
diff -u -r1.31 configure
--- configure 8 Jan 2005 16:48:12 -0000 1.31
+++ configure 24 Feb 2005 20:55:43 -0000
@@ -42,7 +42,10 @@
#echo " --powerpc-perf-enable enable performance report on PPC (requires enabling PMC)"
#echo " --disable-mmx disable mmx usage"
#echo " --disable-altivec disable AltiVec usage"
-#echo " --disable-audio-oss disable OSS audio support [default=no]"
+echo " --disable-audio-oss disable OSS audio support [default=no]"
+echo " --disable-audio-alsa disable ALSA audio support [default=no]"
+echo " --disable-audio-arts disable aRts audio support [default=no]"
+echo " --disable-audio-jack disable JACK audio support [default=no]"
#echo " --disable-audio-beos disable BeOS audio support [default=no]"
#echo " --disable-v4l disable video4linux grabbing [default=no]"
#echo " --disable-dv1394 disable DV1394 grabbing [default=no]"
@@ -92,6 +95,7 @@
make="make"
strip="strip"
cpu=`uname -m`
+processor=`uname -p`
tune="generic"
powerpc_perf="no"
mmx="default"
@@ -138,6 +142,9 @@
gprof="no"
v4l="yes"
audio_oss="yes"
+audio_alsa="yes"
+audio_arts="yes"
+audio_jack="yes"
audio_beos="no"
dv1394="no"
dc1394="no"
@@ -210,7 +217,6 @@
esac
SHFLAGS=-nostart
# disable linux things
-audio_oss="no"
v4l="no"
dv1394="no"
# enable beos things
@@ -226,7 +232,6 @@
fi ;;
SunOS)
v4l="no"
-audio_oss="no"
dv1394="no"
make="gmake"
LDFLAGS=""
@@ -236,7 +241,6 @@
;;
FreeBSD)
v4l="no"
-audio_oss="yes"
dv1394="no"
make="gmake"
CFLAGS="-pthread"
@@ -244,7 +248,6 @@
;;
BSD/OS)
v4l="no"
-audio_oss="yes"
dv1394="no"
extralibs="-lpoll -lgnugetopt -lm"
make="gmake"
@@ -252,7 +255,6 @@
Darwin)
cc="cc"
v4l="no"
-audio_oss="no"
dv1394="no"
ffserver="no"
SHFLAGS="-dynamiclib"
@@ -269,7 +271,6 @@
;;
CYGWIN*)
v4l="no"
-audio_oss="yes"
dv1394="no"
extralibs=""
cygwin="yes"
@@ -285,7 +286,6 @@
IRIX*)
ranlib="echo ignoring ranlib"
v4l="no"
-audio_oss="no"
make="gmake"
;;
OS/2)
@@ -304,7 +304,6 @@
EXESUF=".exe"
extralibs=""
v4l="no"
-audio_oss="no"
dv1394="no"
network="no"
ffserver="no"
@@ -385,6 +384,12 @@
;;
--disable-audio-oss) audio_oss="no"
;;
+ --disable-audio-alsa) audio_alsa="no"
+ ;;
+ --disable-audio-arts) audio_arts="no"
+ ;;
+ --disable-audio-jack) audio_jack="no"
+ ;;
--disable-audio-beos) audio_beos="no"
;;
--disable-dv1394) dv1394="no"
@@ -616,6 +621,22 @@
esac
fi
+if test $tune == "generic" -a $cpu == "x86"; then
+ if expr "$processor" : "Intel(R) Pentium(R) 4" > /dev/null ; then
+ CFLAGS="$CFLAGS -march=pentium4"
+ elif expr "$processor" : "Intel(R) Pentium(R) M" > /dev/null ; then
+ CFLAGS="$CFLAGS -march=pentium4"
+ elif expr "$processor" : "AMD Athlon(tm)" > /dev/null ; then
+ CFLAGS="$CFLAGS -march=pentiumpro -mmmx"
+ elif expr "$processor" : "VIA C3 Ezra" > /dev/null ; then
+ CFLAGS="$CFLAGS -march=c3 -Os"
+ elif test `uname -m` = "i686"; then
+ CFLAGS="$CFLAGS -march=pentiumpro"
+ fi
+elif test $tune == "generic" -a $cpu == "x86_64"; then
+ CFLAGS="$CFLAGS -march=k8"
+fi
+
# AltiVec flags: The FSF version of GCC differs from the Apple version
if test $cpu = "powerpc"; then
if test $altivec = "yes"; then
@@ -1017,6 +1038,84 @@
fi
fi
+##########################################
+# OSS probe
+
+if test "$audio_oss" = "yes" ; then
+
+cat > $TMPC << EOF
+#include <sys/ioctl.h>
+#include <sys/soundcard.h>
+int main(void) { return (int) EV_SEQ_LOCAL; }
+EOF
+
+audio_oss=no
+if $cc -o $TMPE $TMPC > /dev/null 2>&1; then
+audio_oss=yes
+fi
+
+fi
+
+##########################################
+# ALSA probe
+
+if test "$audio_alsa" = "yes" ; then
+
+cat > $TMPC << EOF
+#include <alsa/asoundlib.h>
+int main(void) { return (int) SND_LIB_MAJOR; }
+EOF
+
+audio_alsa=no
+audio_alsa_libs="-lasound"
+if $cc -o $TMPE $TMPC $audio_alsa_libs > /dev/null 2>&1; then
+audio_alsa=yes
+fi
+
+fi
+
+##########################################
+# aRts probe
+
+if test "$audio_arts" = "yes" ; then
+
+cat > $TMPC << EOF
+#include <artsc/artsc.h>
+int main(void) { return (int) ARTS_P_BUFFER_SIZE; }
+EOF
+
+audio_arts=no
+if (artsc-config --version) > /dev/null 2>&1; then
+audio_arts_libs=`artsc-config --libs`
+audio_arts_tmp=`artsc-config --cflags`
+audio_arts_cflags=`echo $audio_arts_tmp | sed "s/include\/artsc/include/g"`
+if $cc -o $TMPE $TMPC $audio_arts_cflags $audio_arts_libs > /dev/null 2>&1; then
+audio_arts=yes
+fi
+fi
+
+fi
+
+##########################################
+# JACK probe
+
+if test "$audio_jack" = "yes" ; then
+
+cat > $TMPC << EOF
+#include <jack/jack.h>
+int main(void) { return (int) JACK_MAX_FRAMES; }
+EOF
+
+audio_jack=no
+audio_jack_libs="-ljack"
+if $cc -o $TMPE $TMPC $audio_jack_libs > /dev/null 2>&1; then
+audio_jack=yes
+fi
+
+fi
+
+
+
case "`$cc -v 2>&1 | grep version`" in
*gcc*)
CFLAGS="-Wall -Wno-switch $CFLAGS"
@@ -1109,7 +1208,10 @@
#else
#echo "License: GPL"
#fi
-
+echo "OSS support $audio_oss"
+echo "ALSA support $audio_alsa"
+echo "aRts support $audio_arts"
+echo "JACK support $audio_jack"
echo "Creating config.mak and config.h"
@@ -1346,6 +1448,25 @@
echo "CONFIG_AUDIO_OSS=yes" >> config.mak
fi
+if test "$audio_alsa" = "yes" ; then
+ echo "#define CONFIG_AUDIO_ALSA 1" >> $TMPH
+ echo "CONFIG_AUDIO_ALSA=yes" >> config.mak
+ echo "CONFIG_AUDIO_ALSA_LIBS=$audio_alsa_libs" >> config.mak
+fi
+
+if test "$audio_arts" = "yes" ; then
+ echo "#define CONFIG_AUDIO_ARTS 1" >> $TMPH
+ echo "CONFIG_AUDIO_ARTS=yes" >> config.mak
+ echo "CONFIG_AUDIO_ARTS_LIBS=$audio_arts_libs" >> config.mak
+ echo "CONFIG_AUDIO_ARTS_CFLAGS=$audio_arts_cflags" >> config.mak
+fi
+
+if test "$audio_jack" = "yes" ; then
+ echo "#define CONFIG_AUDIO_JACK 1" >> $TMPH
+ echo "CONFIG_AUDIO_JACK=yes" >> config.mak
+ echo "CONFIG_AUDIO_JACK_LIBS=$audio_jack_libs" >> config.mak
+fi
+
if test "$audio_beos" = "yes" ; then
echo "#define CONFIG_AUDIO_BEOS 1" >> $TMPH
echo "CONFIG_AUDIO_BEOS=yes" >> config.mak
@@ -1534,6 +1655,7 @@
echo
fi
+
fi
diff $TMPH config.h >/dev/null 2>&1
Index: settings.pro
===================================================================
RCS file: /var/lib/mythcvs/mythtv/settings.pro,v
retrieving revision 1.107
diff -u -r1.107 settings.pro
--- settings.pro 22 Feb 2005 15:09:57 -0000 1.107
+++ settings.pro 24 Feb 2005 20:55:43 -0000
@@ -1,6 +1,59 @@
+### Compile release, profile or debug version (pick one) ###
+
+#CONFIG += profile
#CONFIG += debug
CONFIG += release
+
+### Input Hardware ###
+
+# IVTV (PVR-x50) support
+CONFIG += using_ivtv
+# DVB support, you may need edit the path to your linux-dvb headers below
+#CONFIG += using_dvb
+# Firewire support
+#CONFIG += using_firewire
+
+
+### Remote control I/O ###
+
+# Native lirc support (infrared remotes)
+#CONFIG += using_lirc
+# Joystick menu support (Linux only)
+CONFIG += using_joystick_menu
+
+
+### Video Output ###
+
+# X11 support (Network friendly video terminal software)
+CONFIG += using_x11
+# Default Xv support (X11 color conversion acceleration)
+CONFIG += using_xv
+# XvMC support, other than epia (Linux/BSD specific MPEG-2 acceleration)
+#CONFIG += using_xvmc_normal
+# XvMC_VLD support, modify as necessary. Incompatible with normal XvMC support.
+# Used for hardware accelerated decoding on VIA EPIA-M (and other) boards.
+#CONFIG += using_xvmc_vld
+# DirectFB support (Linux non-X11 video output)
+#CONFIG += using_directfb
+# DirectX support (MS Windows video output)
+#CONFIG += using_directx
+# OpenGL support for vertical retrace sync
+#CONFIG += using_opengl_vsync
+# Allow use of X11 XrandR to change display resolutions
+#CONFIG += using_xrandr
+
+
+###
+### The configuration options above are implemented below,
+### hopefully you will not need to edit these.
+###
+
+profile {
+ CONFIG *= release
+ CONFIG -= debug
+}
+
isEmpty( PREFIX ) {
PREFIX = /usr/local
}
@@ -25,21 +78,21 @@
}
release {
- contains(TARGET_ARCH_X86, yes) {
- DEFINES += MMX
- QMAKE_CXXFLAGS_RELEASE = -O3 -march=pentiumpro -fomit-frame-pointer
- }
- contains(TARGET_ARCH_X86_64, yes) {
- DEFINES += MMX
- QMAKE_CXXFLAGS_RELEASE = -O3 -march=k8 -fomit-frame-pointer
- }
+ QMAKE_CXXFLAGS_RELEASE = $$OPTFLAGS -fomit-frame-pointer
+ contains( TARGET_MMX, yes ):DEFINES += MMX
+
contains( TARGET_ARCH_POWERPC, yes ) {
# Do not use -O3, it causes some Qt moc methods to go missing
- QMAKE_CXXFLAGS_RELEASE = -O2
+ QMAKE_CXXFLAGS_RELEASE = $$OPTFLAGS -O2
}
QMAKE_CFLAGS_RELEASE = $${QMAKE_CXXFLAGS_RELEASE}
}
+profile {
+ QMAKE_CXXFLAGS_RELEASE *= -g
+ LIBAVCODEC_CFLAGS *= -g
+}
+
LOCAL_LIBDIR_X11 =
!isEmpty( QMAKE_LIBDIR_X11 ) {
LOCAL_LIBDIR_X11 = -L$$QMAKE_LIBDIR_X11
@@ -55,79 +108,74 @@
CONFIG += freebsd backend
}
-# X11 support
-CONFIG += using_x11
+contains( CONFIG_AUDIO_OSS, yes ):CONFIG += using_oss
+contains( CONFIG_AUDIO_ALSA, yes ) {
+ CONFIG += using_alsa
+ EXTRA_LIBS += $$CONFIG_AUDIO_ALSA_LIBS
+}
+contains( CONFIG_AUDIO_ARTS, yes ) {
+ CONFIG += using_arts
+ QMAKE_CXXFLAGS += $$CONFIG_AUDIO_ARTS_CFLAGS
+ EXTRA_LIBS += $$CONFIG_AUDIO_ARTS_LIBS
+}
+contains( CONFIG_AUDIO_JACK, yes ) {
+ CONFIG += using_jack
+ EXTRA_LIBS += $$CONFIG_AUDIO_JACK_LIBS
+}
-# Default Xv support
-CONFIG += using_xv
-EXTRA_LIBS += $$LOCAL_LIBDIR_X11 -lXinerama -lXv -lX11 -lXext -lXxf86vm
+using_ivtv {
+ DEFINES += USING_IVTV
+ # Use the installed ivtv header instead of the local copy (needs >= v0.2)
+ #DEFINES += USING_IVTV_HEADER
+}
-# IVTV (PVR-x50) support
-CONFIG += using_ivtv
-DEFINES += USING_IVTV
-# Use the installed ivtv header instead of the local copy (needs >= v0.2)
-#DEFINES += USING_IVTV_HEADER
-
-# Default audio output, OSS.
-# Do NOT disable unless compiling on a non-linux platform.
-CONFIG += using_oss
-
-# Native ALSA support
-#CONFIG += using_alsa
-#ALSA_LIBS = -lasound
-
-# Native ARTS support
-#CONFIG += using_arts
-#ARTS_LIBS = -L/opt/kde3/lib -ldl -lartsc -lpthread
-#EXTRA_LIBS += -L/opt/kde3/lib -ldl -lartsc -lpthread
-#INCLUDEPATH += /opt/kde3/include
-# For Mandrake, use the following:
-#ARTS_LIBS = -ldl -lartsc -lpthread
-#EXTRA_LIBS += -ldl -lartsc -lpthread
-#INCLUDEPATH += /usr/include/artsc
-
-# Native JACK support
-#CONFIG += using_jack
-#JACK_LIBS += -ljack
+using_dvb {
+ DEFINES += USING_DVB
+ # Note: INCLUDEPATH should point to the directory with
+ # 'linux/dvb/frontend.h', not the directory with frontend.h
+ # Note: This _must not_ be your linux kernel source includes. Copy the dvb
+ # includes into a separate directory for now.
+ INCLUDEPATH += /cvs/myth/dvb-kernel/linux/include
+ #define the following if you want On Air Guide information
+ #DEFINES += USING_DVB_EIT
+}
-# DVB support
-#CONFIG += using_dvb
-#DEFINES += USING_DVB
-# Note: INCLUDEPATH should point to the directory with
-# 'linux/dvb/frontend.h', not the directory with frontend.h
-# Note: This _must not_ be your linux kernel source includes. Copy the dvb
-# includes into a separate directory for now.
-#INCLUDEPATH += /usr/src/linuxtv-dvb-1.0.1/include
-#define the following if you want On Air Guide information
-#DEFINES += USING_DVB_EIT
+using_firewire {
+ DEFINES += USING_FIREWIRE
+ EXTRA_LIBS += -lraw1394 -liec61883
+}
-# Firewire support
-#CONFIG += using_firewire
-#DEFINES += USING_FIREWIRE
-#EXTRA_LIBS += -lraw1394 -liec61883
+using_lirc {
+ LIRC_LIBS = -llirc_client
+}
-# Joystick menu support
-CONFIG += using_joystick_menu
+using_xv {
+ EXTRA_LIBS += $$LOCAL_LIBDIR_X11 -lXinerama -lXv -lX11 -lXext -lXxf86vm
+}
-# Native lirc support
-#CONFIG += using_lirc
-#LIRC_LIBS = -llirc_client
+using_xvmc_vld:using_xvmc_normal {
+ message(You have enabled both normal XvMC and EPIA XvMC.)
+ message(Unfortunately you must pick one.)
+ error(Unsupported configuration)
+ }
+}
-# XvMC support, modify as necessary.
-#CONFIG += using_xvmc
-#DEFINES += USING_XVMC
-#EXTRA_LIBS += -lXvMCNVIDIA -lXvMC
+using_xvmc_vld {
+ CONFIG += using_xvmc
+ DEFINES += USING_XVMC USING_XVMC_VLD
+ EXTRA_LIBS += -lviaXvMC -lXvMC
+}
-# XvMC_VLD support, modify as necessary. Incompatible with normal XvMC support.
-# Used for hardware accelerated decoding on VIA EPIA-M (and other) boards.
-#CONFIG += using_xvmc using_xvmc_vld
-#DEFINES += USING_XVMC USING_XVMC_VLD
-#EXTRA_LIBS += -lviaXvMC -lXvMC
+using_xvmc_normal {
+ CONFIG += using_xvmc
+ DEFINES += USING_XVMC
+ EXTRA_LIBS += -lXvMCNVIDIA -lXvMC
+}
-# DirectFB support
-#CONFIG += using_directfb
-#EXTRA_LIBS += `directfb-config --libs`
-#QMAKE_CXXFLAGS += `directfb-config --cflags`
+using_directfb {
+ EXTRA_LIBS += `directfb-config --libs`
+ QMAKE_CXXFLAGS += `directfb-config --cflags`
+}
# Windows support
win32 {
@@ -146,18 +194,18 @@
}
}
-# DirectX support
-#CONFIG += using_directx
-#DEFINES += USING_DIRECTX
+using_directx {
+ DEFINES += USING_DIRECTX
+}
-# OpenGL support for vertical retrace sync
-#DEFINES += USING_OPENGL_VSYNC
-#EXTRA_LIBS += -lGL -lGLU
-#CONFIG += using_opengl
+using_opengl_vsync {
+ DEFINES += USING_OPENGL_VSYNC
+ EXTRA_LIBS += -lGL -lGLU
+}
-# Allow use of XrandR to change display resolutions
-#CONFIG += using_xrandr
-#DEFINES += USING_XRANDR
+using_xrandr {
+ DEFINES += USING_XRANDR
+}
################################################################
# Please keep these CONFIG blocks as the last part of this file!
@@ -172,7 +220,6 @@
EXTRA_LIBS -= $${LOCAL_LIBDIR_X11} -lXinerama -lXv -lX11 -lXext -lXxf86vm
CONFIG -= using_ivtv
DEFINES -= USING_IVTV
- CONFIG -= using_oss
CONFIG -= using_joystick_menu
}
win32 {
@@ -181,7 +228,6 @@
EXTRA_LIBS -= $${LOCAL_LIBDIR_X11} -lXinerama -lXv -lX11 -lXext -lXxf86vm
CONFIG -= using_ivtv
DEFINES -= USING_IVTV
- CONFIG -= using_oss
CONFIG -= using_joystick_menu
}
freebsd {
Index: libs/libmythtv/libmythtv.pro
===================================================================
RCS file: /var/lib/mythcvs/mythtv/libs/libmythtv/libmythtv.pro,v
retrieving revision 1.86
diff -u -r1.86 libmythtv.pro
--- libs/libmythtv/libmythtv.pro 2 Feb 2005 07:11:10 -0000 1.86
+++ libs/libmythtv/libmythtv.pro 24 Feb 2005 20:55:43 -0000
@@ -146,7 +146,7 @@
HEADERS += videoout_dx.h
}
-using_opengl {
+using_opengl_vsync {
CONFIG += opengl
}
More information about the mythtv-dev
mailing list