You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
104 lines
2.5 KiB
104 lines
2.5 KiB
14 years ago
|
#!/bin/sh
|
||
|
|
||
|
OPENGL=yes
|
||
|
XCONFIG=$1/qmake.conf
|
||
|
THREAD=$2
|
||
|
VERBOSE=$3
|
||
|
shift 3
|
||
|
IN_LIBDIRS=""
|
||
|
IN_INCDIRS=""
|
||
|
PARAMS=$@
|
||
|
for PARAM in $PARAMS; do
|
||
|
PREFIX=`echo $PARAM | sed 's/^\(..\).*/\1/'`
|
||
|
case $PREFIX in
|
||
|
-L)
|
||
|
CLIBDIR=`echo $PARAM | sed -e 's/^-L//'`
|
||
|
IN_LIBDIRS="$IN_LIBDIRS $CLIBDIR"
|
||
|
;;
|
||
|
-I)
|
||
|
CINCDIR=`echo $PARAM | sed -e 's/^-I//'`
|
||
|
IN_INCDIRS="$IN_INCDIRS $CINCDIR"
|
||
|
;;
|
||
|
*) ;;
|
||
|
esac
|
||
|
done
|
||
|
|
||
|
# debuggery
|
||
|
[ "$VERBOSE" = "yes" ] && echo "OpenGL auto-detection... ($*)"
|
||
|
|
||
|
# check for lib
|
||
|
LIBS=`sed -n -e '/^QMAKE_LIBS_OPENGL[ ]*=/ { s/[^=]*=[ ]*//; s/-l/ /g; p; }' $XCONFIG`
|
||
|
GLDIRS=`sed -n -e '/^QMAKE_LIBDIR_OPENGL[ ]*=/ { s/[^=]*=[ ]*//; p; }' $XCONFIG`
|
||
|
XDIRS=`sed -n -e '/^QMAKE_LIBDIR_X11[ ]*=/ { s/[^=]*=[ ]*//; p; }' $XCONFIG`
|
||
|
LIBDIRS="$IN_LIBDIRS $GLDIRS $XDIRS /usr/shlib /usr/lib /lib"
|
||
|
for L in $LIBS; do
|
||
|
FOUND_LIB=
|
||
|
F=
|
||
|
for LIBDIR in $LIBDIRS; do
|
||
|
FOUND_LIB=`ls $LIBDIR/lib$L.* 2>/dev/null`
|
||
|
if [ ! -z "$FOUND_LIB" ]; then
|
||
|
F=yes
|
||
|
[ "$VERBOSE" = "yes" ] && echo " Found $L lib in $LIBDIR"
|
||
|
break
|
||
|
fi
|
||
|
done
|
||
|
if [ ! -z "$FOUND_LIB" -a ! "x$THREAD" = "xyes" -a ! -z "$F" ]; then
|
||
|
LDD_P=`which ldd 2>/dev/null`
|
||
|
if [ ! -z "$LDD_P" ]; then
|
||
|
for a in $FOUND_LIB; do
|
||
|
if $LDD_P $a 2>/dev/null | grep -i thread >/dev/null 2>&1; then
|
||
|
FOUND_LIB=$a
|
||
|
F_REASON="threads"
|
||
|
F=
|
||
|
break
|
||
|
fi
|
||
|
done
|
||
|
fi
|
||
|
fi
|
||
|
if [ -z "$F" ]; then
|
||
|
OPENGL=no
|
||
|
if [ "x$F_REASON" = "xthreads" ]; then
|
||
|
echo
|
||
|
echo "WARNING: $FOUND_LIB is threaded!"
|
||
|
echo "The Qt OpenGL module requires Qt to be configured with -thread."
|
||
|
echo
|
||
|
else
|
||
|
[ "$VERBOSE" = "yes" ] && echo " Could not find $L lib anywhere in $LIBDIRS"
|
||
|
fi
|
||
|
break
|
||
|
fi
|
||
|
done
|
||
|
|
||
|
# check for headers
|
||
|
if [ "$OPENGL" = "yes" ]; then
|
||
|
INCS="GL/gl.h GL/glu.h"
|
||
|
GLDIRS=`sed -n -e '/^QMAKE_INCDIR_OPENGL[ ]*=/ { s/[^=]*=[ ]*//; p; }' $XCONFIG`
|
||
|
XDIRS=`sed -n -e '/^QMAKE_INCDIR_X11[ ]*=/ { s/[^=]*=[ ]*//; p; }' $XCONFIG`
|
||
|
INCDIRS="$IN_INCDIRS $GLDIRS $XDIRS /usr/include /include"
|
||
|
|
||
|
for I in $INCS; do
|
||
|
F=
|
||
|
for INCDIR in $INCDIRS; do
|
||
|
if [ -f $INCDIR/$I ]; then
|
||
|
F=yes
|
||
|
[ "$VERBOSE" = "yes" ] && echo " Found $I in $INCDIR"
|
||
|
break
|
||
|
fi
|
||
|
done
|
||
|
if [ -z "$F" ]; then
|
||
|
OPENGL=no
|
||
|
[ "$VERBOSE" = "yes" ] && echo " Could not find $I anywhere in $INCDIRS"
|
||
|
break
|
||
|
fi
|
||
|
done
|
||
|
fi
|
||
|
|
||
|
# done
|
||
|
if [ "$OPENGL" != "yes" ]; then
|
||
|
[ "$VERBOSE" = "yes" ] && echo "OpenGL disabled."
|
||
|
exit 0
|
||
|
else
|
||
|
[ "$VERBOSE" = "yes" ] && echo "OpenGL enabled."
|
||
|
exit 1
|
||
|
fi
|