comparison configure.in @ 1879:cb232e63552c

Default the X11 dynamically loading on if the OS loader loads libraries with their private symbols hidden. If that isn't the case, and someone tries to enable it anyway, spit out a warning and don't let them do it.
author Sam Lantinga <slouken@libsdl.org>
date Fri, 23 Jun 2006 08:39:05 +0000
parents 4627eca2c02b
children 44635227a939
comparison
equal deleted inserted replaced
1878:d7c9d7f42881 1879:cb232e63552c
811 ;; 811 ;;
812 esac 812 esac
813 AC_PATH_X 813 AC_PATH_X
814 AC_PATH_XTRA 814 AC_PATH_XTRA
815 if test x$have_x = xyes; then 815 if test x$have_x = xyes; then
816 # Only allow dynamically loaded X11 if the X11 function pointers
817 # will not end up in the global namespace, which causes problems
818 # with other libraries calling X11 functions.
819 x11_symbols_private=$have_gcc_fvisibility
820
816 AC_ARG_ENABLE(x11-shared, 821 AC_ARG_ENABLE(x11-shared,
817 AC_HELP_STRING([--enable-x11-shared], [dynamically load X11 support [[default=yes]]]), 822 AC_HELP_STRING([--enable-x11-shared], [dynamically load X11 support [[default=maybe]]]),
818 , enable_x11_shared=yes) 823 , enable_x11_shared=maybe)
819 824
820 case "$host" in 825 case "$host" in
821 *-*-darwin*) # Latest Mac OS X actually ships with Xrandr/Xrender libs... 826 *-*-darwin*) # Latest Mac OS X actually ships with Xrandr/Xrender libs...
827 x11_symbols_private=yes
822 x11_lib='/usr/X11R6/lib/libX11.6.dylib' 828 x11_lib='/usr/X11R6/lib/libX11.6.dylib'
823 x11ext_lib='/usr/X11R6/lib/libXext.6.dylib' 829 x11ext_lib='/usr/X11R6/lib/libXext.6.dylib'
824 xrender_lib='/usr/X11R6/lib/libXrender.1.dylib' 830 xrender_lib='/usr/X11R6/lib/libXrender.1.dylib'
825 xrandr_lib='/usr/X11R6/lib/libXrandr.2.dylib' 831 xrandr_lib='/usr/X11R6/lib/libXrandr.2.dylib'
826 ;; 832 ;;
835 *) 841 *)
836 x11_lib_spec=[`echo $X_LIBS | sed 's/.*-L\([^ ]*\).*/\1/'`] 842 x11_lib_spec=[`echo $X_LIBS | sed 's/.*-L\([^ ]*\).*/\1/'`]
837 for path in $x11_lib_path /usr/lib /usr/X11/lib /usr/X11R6/lib; do 843 for path in $x11_lib_path /usr/lib /usr/X11/lib /usr/X11R6/lib; do
838 if test "x$x11_lib" = "x"; then 844 if test "x$x11_lib" = "x"; then
839 x11_lib=[`ls -- $path/libX11.so.[0-9] 2>/dev/null | sort -r | sed 's/.*\/\(.*\)/\1/; q'`] 845 x11_lib=[`ls -- $path/libX11.so.[0-9] 2>/dev/null | sort -r | sed 's/.*\/\(.*\)/\1/; q'`]
840 if test "x$x11_lib" = "x"; then 846 if test "x$x11_lib" = "x"; then
841 x11_lib=[`ls -- $path/libX11.so.[0-9]* 2>/dev/null | sort -r | sed 's/.*\/\(.*\)/\1/; q'`] 847 x11_lib=[`ls -- $path/libX11.so.[0-9]* 2>/dev/null | sort -r | sed 's/.*\/\(.*\)/\1/; q'`]
842 fi 848 fi
843 fi 849 fi
844 if test "x$x11ext_lib" = "x"; then 850 if test "x$x11ext_lib" = "x"; then
845 x11ext_lib=[`ls -- $path/libXext.so.[0-9] 2>/dev/null | sort -r | sed 's/.*\/\(.*\)/\1/; q'`] 851 x11ext_lib=[`ls -- $path/libXext.so.[0-9] 2>/dev/null | sort -r | sed 's/.*\/\(.*\)/\1/; q'`]
846 if test "x$x11ext_lib" = "x"; then 852 if test "x$x11ext_lib" = "x"; then
847 x11ext_lib=[`ls -- $path/libXext.so.[0-9]* 2>/dev/null | sort -r | sed 's/.*\/\(.*\)/\1/; q'`] 853 x11ext_lib=[`ls -- $path/libXext.so.[0-9]* 2>/dev/null | sort -r | sed 's/.*\/\(.*\)/\1/; q'`]
848 fi 854 fi
849 fi 855 fi
850 if test "x$xrender_lib" = "x"; then 856 if test "x$xrender_lib" = "x"; then
851 xrender_lib=[`ls -- $path/libXrender.so.[0-9] 2>/dev/null | sort -r | sed 's/.*\/\(.*\)/\1/; q'`] 857 xrender_lib=[`ls -- $path/libXrender.so.[0-9] 2>/dev/null | sort -r | sed 's/.*\/\(.*\)/\1/; q'`]
852 if test "x$xrender_lib" = "x"; then 858 if test "x$xrender_lib" = "x"; then
853 xrender_lib=[`ls -- $path/libXrender.so.[0-9]* 2>/dev/null | sort -r | sed 's/.*\/\(.*\)/\1/; q'`] 859 xrender_lib=[`ls -- $path/libXrender.so.[0-9]* 2>/dev/null | sort -r | sed 's/.*\/\(.*\)/\1/; q'`]
854 fi 860 fi
855 fi 861 fi
856 if test "x$xrandr_lib" = "x"; then 862 if test "x$xrandr_lib" = "x"; then
857 xrandr_lib=[`ls -- $path/libXrandr.so.[0-9] 2>/dev/null | sort -r | sed 's/.*\/\(.*\)/\1/; q'`] 863 xrandr_lib=[`ls -- $path/libXrandr.so.[0-9] 2>/dev/null | sort -r | sed 's/.*\/\(.*\)/\1/; q'`]
858 if test "x$xrandr_lib" = "x"; then 864 if test "x$xrandr_lib" = "x"; then
859 xrandr_lib=[`ls -- $path/libXrandr.so.[0-9]* 2>/dev/null | sort -r | sed 's/.*\/\(.*\)/\1/; q'`] 865 xrandr_lib=[`ls -- $path/libXrandr.so.[0-9]* 2>/dev/null | sort -r | sed 's/.*\/\(.*\)/\1/; q'`]
860 fi 866 fi
861 fi 867 fi
862 done 868 done
863 ;; 869 ;;
864 esac 870 esac
865 871
871 LDFLAGS="$LDFLAGS $X_LIBS" 877 LDFLAGS="$LDFLAGS $X_LIBS"
872 878
873 AC_DEFINE(SDL_VIDEO_DRIVER_X11) 879 AC_DEFINE(SDL_VIDEO_DRIVER_X11)
874 SOURCES="$SOURCES $srcdir/src/video/x11/*.c" 880 SOURCES="$SOURCES $srcdir/src/video/x11/*.c"
875 EXTRA_CFLAGS="$EXTRA_CFLAGS $X_CFLAGS" 881 EXTRA_CFLAGS="$EXTRA_CFLAGS $X_CFLAGS"
882
883 if test x$enable_x11_shared = xmaybe; then
884 enable_x11_shared=$x11_symbols_private
885 fi
876 if test x$have_loadso != xyes && \ 886 if test x$have_loadso != xyes && \
877 test x$enable_x11_shared = xyes; then 887 test x$enable_x11_shared = xyes; then
878 AC_MSG_WARN([You must have SDL_LoadObject() support for dynamic X11 loading]) 888 AC_MSG_WARN([You must have SDL_LoadObject() support for dynamic X11 loading])
879 enable_x11_shared=no 889 enable_x11_shared=no
880 fi 890 fi
881 891 if test x$x11_symbols_private != xyes && \
882 if test x$have_gcc_fvisibility != xyes && \
883 test x$enable_x11_shared = xyes; then 892 test x$enable_x11_shared = xyes; then
884 AC_MSG_WARN([You must have gcc4 (-fvisibility=hidden) for dynamic X11 loading]) 893 AC_MSG_WARN([You must have gcc4 (-fvisibility=hidden) for dynamic X11 loading])
885 enable_x11_shared=no 894 enable_x11_shared=no
886 fi 895 fi
887 896