diff --git a/configure b/configure index 9cb9b60b8d..63f94026d5 100755 --- a/configure +++ b/configure @@ -303,19 +303,23 @@ fi # LGB: temporary files TMPC="mplayer-conf-${RANDOM}-$$-${RANDOM}.c" +TMPCPP="mplayer-conf-${RANDOM}-$$-${RANDOM}.cpp" TMPO="mplayer-conf-${RANDOM}-$$-${RANDOM}.o" TMPS="mplayer-conf-${RANDOM}-$$-${RANDOM}.S" if [ ! -z "$TMPDIR" ]; then TMPC="${TMPDIR}/${TMPC}" + TMPCPP="${TMPDIR}/${TMPCPP}" TMPO="${TMPDIR}/${TMPO}" TMPS="${TMPDIR}/${TMPS}" elif [ ! -z "$TEMPDIR" ]; then TMPC="${TEMPDIR}/${TMPC}" + TMPCPP="${TEMPDIR}/${TMPCPP}" TMPO="${TEMPDIR}/${TMPO}" TMPS="${TEMPDIR}/${TMPS}" else TMPC="/tmp/${TMPC}" + TMPCPP="/tmp/${TMPCPP}" TMPO="/tmp/${TMPO}" TMPS="/tmp/${TMPS}" fi @@ -404,6 +408,61 @@ if [ "$_as" = auto ]; then fi fi +# check if compiler supports C++ and C++-libs are installed correctly +cat > $TMPCPP << EOF +/* very useful C++ test program by atmos */ +#include + +class myclass { + private: + int ret; + public: + int myreturn(void); +}; + +int myclass::myreturn(void) { + ret = 0; + return ret; +} + +int main(void) { + myclass myobject; + return myobject.myreturn(); +} +EOF +echo $_echo_n "Checking if your C++ compiler '$_cc' works ... $_echo_c" +if $_cc $TMPCPP -o $TMPO > /dev/null 2>&1 ; then + echo "yes" + echo $_echo_n "Checking for proper C++ runtime enviroment ... $_echo_c" + if $TMPO ; then + echo "yes" + else + echo "no" + cat << EOF +Your C++ runtime enviroment is broken, make sure you correctly install the +C++ libraries (libstdc++) and that the library path containing them is in +your (/etc/)ld.so.conf! +If you don't need DirectShow support, you can also use: +./configure --disable-dshow +to disable building of the C++ based DirectShow code. +EOF + rm -f $TMPCPP $TMPO + exit + fi +else + echo "no" + cat << EOF +Your C++ compiler does not support C++, make sure you have enabled it on +compiler compilation or for binary packages, make sure the appropriate +packages are installed! +If you don't need DirectShow support, you can also use: +./configure --disable-dshow +to disable building of the C++ based DirectShow code. +EOF + rm -f $TMPCPP $TMPO + exit +fi +rm -f $TMPCPP $TMPO if [ "$host_arch" = i386 ]; then if [ -r /proc/cpuinfo ]; then @@ -697,16 +756,15 @@ arm) _mcpu="" ;; -# Untested: -#ppc) -# _arch="#define ARCH_PPC 1" -# _target_arch="TARGET_ARCH_PPC=yes" -# _words_endian="#define WORDS_BIGENDIAN 1" -# iproc=ppc -# proc= -# _march="" -# _mcpu="" -# ;; +ppc) + _arch="#define ARCH_PPC 1" + _target_arch="TARGET_ARCH_PPC=yes" + _words_endian="#define WORDS_BIGENDIAN 1" + iproc=ppc + proc= + _march="" + _mcpu="" + ;; # Untested: #alpha)