comparison configure.in @ 3391:188fc5ecc58c

Simplify and improve dynamic library detection, taken from SDL_image
author Sam Lantinga <slouken@libsdl.org>
date Tue, 13 Oct 2009 06:40:08 +0000
parents 802e5d85b90c
children efc22582afc5
comparison
equal deleted inserted replaced
3390:802e5d85b90c 3391:188fc5ecc58c
109 SDL_CFLAGS="$BASE_CFLAGS" 109 SDL_CFLAGS="$BASE_CFLAGS"
110 SDL_LIBS="-lSDL $BASE_LDFLAGS" 110 SDL_LIBS="-lSDL $BASE_LDFLAGS"
111 CPPFLAGS="$CPPFLAGS $EXTRA_CFLAGS" 111 CPPFLAGS="$CPPFLAGS $EXTRA_CFLAGS"
112 CFLAGS="$CFLAGS $EXTRA_CFLAGS" 112 CFLAGS="$CFLAGS $EXTRA_CFLAGS"
113 LDFLAGS="$LDFLAGS $EXTRA_LDFLAGS" 113 LDFLAGS="$LDFLAGS $EXTRA_LDFLAGS"
114
115 dnl set this to use on systems that use lib64 instead of lib
116 base_libdir=`echo \${libdir} | sed 's/.*\/\(.*\)/\1/; q'`
117
118 dnl Function to find a library in the compiler search path
119 find_lib()
120 {
121 gcc_bin_path=[`$CC -print-search-dirs 2>/dev/null | fgrep programs: | sed 's/[^=]*=\(.*\)/\1/' | sed 's/:/ /g'`]
122 gcc_lib_path=[`$CC -print-search-dirs 2>/dev/null | fgrep libraries: | sed 's/[^=]*=\(.*\)/\1/' | sed 's/:/ /g'`]
123 env_lib_path=[`echo $LIBS $LDFLAGS $* | sed 's/-L[ ]*//g'`]
124 if test "$cross_compiling" = yes; then
125 host_lib_path=""
126 else
127 host_lib_path="/usr/$base_libdir /usr/local/$base_libdir"
128 fi
129 for path in $gcc_bin_path $gcc_lib_path $env_lib_path $host_lib_path; do
130 lib=[`ls -- $path/$1 2>/dev/null | sort | sed 's/.*\/\(.*\)/\1/; q'`]
131 if test x$lib != x; then
132 echo $lib
133 return
134 fi
135 done
136 }
114 137
115 dnl Check for compiler characteristics 138 dnl Check for compiler characteristics
116 AC_C_CONST 139 AC_C_CONST
117 AC_C_INLINE 140 AC_C_INLINE
118 AC_C_VOLATILE 141 AC_C_VOLATILE
539 EXTRA_CFLAGS="$EXTRA_CFLAGS $altivec_CFLAGS" 562 EXTRA_CFLAGS="$EXTRA_CFLAGS $altivec_CFLAGS"
540 fi 563 fi
541 fi 564 fi
542 fi 565 fi
543 566
544 dnl set this to use on systems that use lib64 instead of lib
545 base_libdir=`echo \${libdir} | sed 's/.*\/\(.*\)/\1/; q'`
546
547 dnl See if the OSS audio interface is supported 567 dnl See if the OSS audio interface is supported
548 CheckOSS() 568 CheckOSS()
549 { 569 {
550 AC_ARG_ENABLE(oss, 570 AC_ARG_ENABLE(oss,
551 AC_HELP_STRING([--enable-oss], [support the OSS audio API [[default=yes]]]), 571 AC_HELP_STRING([--enable-oss], [support the OSS audio API [[default=yes]]]),
602 LIBS="$alsa_save_LIBS" 622 LIBS="$alsa_save_LIBS"
603 if test x$have_alsa = xyes; then 623 if test x$have_alsa = xyes; then
604 AC_ARG_ENABLE(alsa-shared, 624 AC_ARG_ENABLE(alsa-shared,
605 AC_HELP_STRING([--enable-alsa-shared], [dynamically load ALSA audio support [[default=yes]]]), 625 AC_HELP_STRING([--enable-alsa-shared], [dynamically load ALSA audio support [[default=yes]]]),
606 , enable_alsa_shared=yes) 626 , enable_alsa_shared=yes)
607 if test "x`echo $ALSA_LIBS | grep -- -L`" = "x"; then 627 alsa_lib=[`find_lib "libasound.so.*" "$ALSA_LIBS" | sed 's/.*\/\(.*\)/\1/; q'`]
608 if test "x`ls /$base_libdir/libasound.so.* 2> /dev/null`" != "x"; then 628 echo "-- dynamic libasound -> $alsa_lib"
609 ALSA_LIBS="-L/$base_libdir $ALSA_LIBS"
610 elif test "x`ls /usr/$base_libdir/libasound.so.* 2> /dev/null`" != "x"; then
611 ALSA_LIBS="-L/usr/$base_libdir $ALSA_LIBS"
612 elif test "x`ls /usr/local/$base_libdir/libasound.so.* 2> /dev/null`" != "x"; then
613 ALSA_LIBS="-L/usr/local/$base_libdir $ALSA_LIBS"
614 fi
615 fi
616 alsa_lib_spec=`echo $ALSA_LIBS | sed 's/.*-L\([[^ ]]*\).*/\1\/libasound.so.*/'`
617 if test x$alsa_lib_spec = x; then
618 alsa_lib_spec="/usr/$base_libdir/libasound.so.*"
619 fi
620 alsa_lib=`ls -- $alsa_lib_spec | sed 's/.*\/\(.*\)/\1/; q'`
621 echo "-- $alsa_lib_spec -> $alsa_lib"
622 629
623 AC_DEFINE(SDL_AUDIO_DRIVER_ALSA) 630 AC_DEFINE(SDL_AUDIO_DRIVER_ALSA)
624 SOURCES="$SOURCES $srcdir/src/audio/alsa/*.c" 631 SOURCES="$SOURCES $srcdir/src/audio/alsa/*.c"
625 EXTRA_CFLAGS="$EXTRA_CFLAGS $ALSA_CFLAGS" 632 EXTRA_CFLAGS="$EXTRA_CFLAGS $ALSA_CFLAGS"
626 if test x$have_loadso != xyes && \ 633 if test x$have_loadso != xyes && \
710 AM_PATH_ESD(0.2.8, have_esd=yes, have_esd=no) 717 AM_PATH_ESD(0.2.8, have_esd=yes, have_esd=no)
711 if test x$have_esd = xyes; then 718 if test x$have_esd = xyes; then
712 AC_ARG_ENABLE(esd-shared, 719 AC_ARG_ENABLE(esd-shared,
713 AC_HELP_STRING([--enable-esd-shared], [dynamically load ESD audio support [[default=yes]]]), 720 AC_HELP_STRING([--enable-esd-shared], [dynamically load ESD audio support [[default=yes]]]),
714 , enable_esd_shared=yes) 721 , enable_esd_shared=yes)
715 esd_lib_spec=`echo $ESD_LIBS | sed 's/.*-L\([[^ ]]*\).*/\1\/libesd.so.*/'` 722 esd_lib=[`find_lib "libesd.so.*" "$ESD_LIBS" | sed 's/.*\/\(.*\)/\1/; q'`]
716 if test x$esd_lib_spec = x; then 723 echo "-- dynamic libesd -> $esd_lib"
717 esd_lib_spec="/usr/$base_libdir/libesd.so.*"
718 fi
719 esd_lib=`ls -- $esd_lib_spec | sed 's/.*\/\(.*\)/\1/; q'`
720 echo "-- $esd_lib_spec -> $esd_lib"
721 724
722 AC_DEFINE(SDL_AUDIO_DRIVER_ESD) 725 AC_DEFINE(SDL_AUDIO_DRIVER_ESD)
723 SOURCES="$SOURCES $srcdir/src/audio/esd/*.c" 726 SOURCES="$SOURCES $srcdir/src/audio/esd/*.c"
724 EXTRA_CFLAGS="$EXTRA_CFLAGS $ESD_CFLAGS" 727 EXTRA_CFLAGS="$EXTRA_CFLAGS $ESD_CFLAGS"
725 if test x$have_loadso != xyes && \ 728 if test x$have_loadso != xyes && \
753 if test x$PKG_CONFIG != xno; then 756 if test x$PKG_CONFIG != xno; then
754 if $PKG_CONFIG --atleast-pkgconfig-version 0.7 && $PKG_CONFIG --atleast-version $PULSEAUDIO_REQUIRED_VERSION libpulse-simple; then 757 if $PKG_CONFIG --atleast-pkgconfig-version 0.7 && $PKG_CONFIG --atleast-version $PULSEAUDIO_REQUIRED_VERSION libpulse-simple; then
755 PULSEAUDIO_CFLAGS=`$PKG_CONFIG --cflags libpulse-simple` 758 PULSEAUDIO_CFLAGS=`$PKG_CONFIG --cflags libpulse-simple`
756 PULSEAUDIO_LIBS=`$PKG_CONFIG --libs libpulse-simple` 759 PULSEAUDIO_LIBS=`$PKG_CONFIG --libs libpulse-simple`
757 audio_pulseaudio=yes 760 audio_pulseaudio=yes
758 fi 761 fi
759 fi 762 fi
760 AC_MSG_RESULT($audio_pulseaudio) 763 AC_MSG_RESULT($audio_pulseaudio)
761 764
762 if test x$audio_pulseaudio = xyes; then 765 if test x$audio_pulseaudio = xyes; then
763 AC_ARG_ENABLE(pulseaudio-shared, 766 AC_ARG_ENABLE(pulseaudio-shared,
764 AC_HELP_STRING([--enable-pulseaudio-shared], [dynamically load PulseAudio support [[default=yes]]]), 767 AC_HELP_STRING([--enable-pulseaudio-shared], [dynamically load PulseAudio support [[default=yes]]]),
765 , enable_pulseaudio_shared=yes) 768 , enable_pulseaudio_shared=yes)
766 if test "x`echo $PULSEAUDIO_LIBS | grep -- -L`" = "x"; then 769 pulseaudio_lib=[`find_lib "libpulse-simple.so.*" "$PULSEAUDIO_LIBS" | sed 's/.*\/\(.*\)/\1/; q'`]
767 if test "x`ls /$base_libdir/libpulse-simple.so.* 2> /dev/null`" != "x"; then 770 echo "-- dynamic libpulse-simple -> $pulseaudio_lib"
768 PULSEAUDIO_LIBS="-L/$base_libdir $PULSEAUDIO_LIBS"
769 elif test "x`ls /usr/$base_libdir/libpulse-simple.so.* 2> /dev/null`" != "x"; then
770 PULSEAUDIO_LIBS="-L/usr/$base_libdir $PULSEAUDIO_LIBS"
771 elif test "x`ls /usr/local/$base_libdir/libpulse-simple.so.* 2> /dev/null`" != "x"; then
772 PULSEAUDIO_LIBS="-L/usr/local/$base_libdir $PULSEAUDIO_LIBS"
773 fi
774 fi
775 pulseaudio_lib_spec=`echo $PULSEAUDIO_LIBS | sed 's/.*-L\([[^ ]]*\).*/\1\/libpulse-simple.so.*/'`
776 if test x$pulse_lib_spec = x; then
777 pulse_lib_spec="/usr/$base_libdir/libpulse-simple.so.*"
778 fi
779 pulseaudio_lib=`ls -- $pulseaudio_lib_spec | sed 's/.*\/\(.*\)/\1/; q'`
780 echo "-- $pulseaudio_lib_spec -> $pulseaudio_lib"
781 771
782 AC_DEFINE(SDL_AUDIO_DRIVER_PULSEAUDIO) 772 AC_DEFINE(SDL_AUDIO_DRIVER_PULSEAUDIO)
783 SOURCES="$SOURCES $srcdir/src/audio/pulseaudio/*.c" 773 SOURCES="$SOURCES $srcdir/src/audio/pulseaudio/*.c"
784 EXTRA_CFLAGS="$EXTRA_CFLAGS $PULSEAUDIO_CFLAGS" 774 EXTRA_CFLAGS="$EXTRA_CFLAGS $PULSEAUDIO_CFLAGS"
785 if test x$have_loadso != xyes && \ 775 if test x$have_loadso != xyes && \
807 if test x$ARTSCONFIG = x -o x$ARTSCONFIG = x'"$ARTSCONFIG"'; then 797 if test x$ARTSCONFIG = x -o x$ARTSCONFIG = x'"$ARTSCONFIG"'; then
808 : # arts isn't installed 798 : # arts isn't installed
809 else 799 else
810 ARTS_CFLAGS=`$ARTSCONFIG --cflags` 800 ARTS_CFLAGS=`$ARTSCONFIG --cflags`
811 ARTS_LIBS=`$ARTSCONFIG --libs` 801 ARTS_LIBS=`$ARTSCONFIG --libs`
812 ARTS_PREFIX=`$ARTSCONFIG --arts-prefix`
813 AC_MSG_CHECKING(for aRts development environment) 802 AC_MSG_CHECKING(for aRts development environment)
814 audio_arts=no 803 audio_arts=no
815 save_CFLAGS="$CFLAGS" 804 save_CFLAGS="$CFLAGS"
816 CFLAGS="$CFLAGS $ARTS_CFLAGS" 805 CFLAGS="$CFLAGS $ARTS_CFLAGS"
817 AC_TRY_COMPILE([ 806 AC_TRY_COMPILE([
825 AC_MSG_RESULT($audio_arts) 814 AC_MSG_RESULT($audio_arts)
826 if test x$audio_arts = xyes; then 815 if test x$audio_arts = xyes; then
827 AC_ARG_ENABLE(arts-shared, 816 AC_ARG_ENABLE(arts-shared,
828 AC_HELP_STRING([--enable-arts-shared], [dynamically load aRts audio support [[default=yes]]]), 817 AC_HELP_STRING([--enable-arts-shared], [dynamically load aRts audio support [[default=yes]]]),
829 , enable_arts_shared=yes) 818 , enable_arts_shared=yes)
830 arts_lib_spec="$ARTS_PREFIX/$base_libdir/libartsc.so.*" 819 arts_lib=[`find_lib "libartsc.so.*" "$ARTS_LIBS" | sed 's/.*\/\(.*\)/\1/; q'`]
831 arts_lib=`ls -- $arts_lib_spec | sed 's/.*\/\(.*\)/\1/; q'` 820 echo "-- dynamic libartsc -> $arts_lib"
832 echo "-- $arts_lib_spec -> $arts_lib"
833 821
834 AC_DEFINE(SDL_AUDIO_DRIVER_ARTS) 822 AC_DEFINE(SDL_AUDIO_DRIVER_ARTS)
835 SOURCES="$SOURCES $srcdir/src/audio/arts/*.c" 823 SOURCES="$SOURCES $srcdir/src/audio/arts/*.c"
836 EXTRA_CFLAGS="$EXTRA_CFLAGS $ARTS_CFLAGS" 824 EXTRA_CFLAGS="$EXTRA_CFLAGS $ARTS_CFLAGS"
837 if test x$have_loadso != xyes && \ 825 if test x$have_loadso != xyes && \
884 872
885 if test x$have_nas = xyes; then 873 if test x$have_nas = xyes; then
886 AC_ARG_ENABLE(nas-shared, 874 AC_ARG_ENABLE(nas-shared,
887 AC_HELP_STRING([--enable-nas-shared], [dynamically load NAS audio support [[default=yes]]]), 875 AC_HELP_STRING([--enable-nas-shared], [dynamically load NAS audio support [[default=yes]]]),
888 , enable_nas_shared=yes) 876 , enable_nas_shared=yes)
889 if test "x`echo $NAS_LIBS | grep -- -L`" = "x"; then 877 nas_lib=[`find_lib "libaudio.so.*" "$NAS_LIBS" | sed 's/.*\/\(.*\)/\1/; q'`]
890 if test "x`ls /lib/libaudio.so.* 2> /dev/null`" != "x"; then 878 echo "-- dynamic libaudio -> $nas_lib"
891 NAS_LIBS="-L/lib $NAS_LIBS"
892 elif test "x`ls /usr/lib/libaudio.so.* 2> /dev/null`" != "x"; then
893 NAS_LIBS="-L/usr/lib $NAS_LIBS"
894 elif test "x`ls /usr/local/lib/libaudio.so.* 2> /dev/null`" != "x"; then
895 NAS_LIBS="-L/usr/local/lib $NAS_LIBS"
896 fi
897 fi
898 nas_lib_spec=`echo $NAS_LIBS | sed 's/.*-L\([[^ ]]*\).*/\1\/libaudio.so.*/'`
899 if test x$nas_lib_spec = x; then
900 nas_lib_spec="/usr/$base_libdir/libaudio.so.*"
901 fi
902 nas_lib=`ls -- $nas_lib_spec | sed 's/.*\/\(.*\)/\1/; q'`
903 echo "-- $nas_lib_spec -> $nas_lib"
904 879
905 if test x$have_loadso != xyes && \ 880 if test x$have_loadso != xyes && \
906 test x$enable_nas_shared = xyes; then 881 test x$enable_nas_shared = xyes; then
907 AC_MSG_WARN([You must have SDL_LoadObject() support for dynamic NAS loading]) 882 AC_MSG_WARN([You must have SDL_LoadObject() support for dynamic NAS loading])
908 fi 883 fi
1017 *-*-irix*) # IRIX 6.5 requires that we use /usr/lib32 992 *-*-irix*) # IRIX 6.5 requires that we use /usr/lib32
1018 x11_lib='libX11.so' 993 x11_lib='libX11.so'
1019 x11ext_lib='libXext.so' 994 x11ext_lib='libXext.so'
1020 ;; 995 ;;
1021 *) 996 *)
1022 x11_lib_spec=[`echo $X_LIBS | sed 's/.*-L\([^ ]*\).*/\1/'`] 997 x11_lib=[`find_lib "libX11.so.*" "$X_LIBS -L/usr/X11/$base_libdir -L/usr/X11R6/$base_libdir" | sed 's/.*\/\(.*\)/\1/; q'`]
1023 for path in $x11_lib_path /usr/$base_libdir /usr/X11/$base_libdir /usr/X11R6/$base_libdir; do 998 x11ext_lib=[`find_lib "libXext.so.*" "$X_LIBS -L/usr/X11/$base_libdir -L/usr/X11R6/$base_libdir" | sed 's/.*\/\(.*\)/\1/; q'`]
1024 if test "x$x11_lib" = "x"; then 999 xrender_lib=[`find_lib "libXrender.so.*" "$X_LIBS -L/usr/X11/$base_libdir -L/usr/X11R6/$base_libdir" | sed 's/.*\/\(.*\)/\1/; q'`]
1025 x11_lib=[`ls -- $path/libX11.so.[0-9] 2>/dev/null | sort -r | sed 's/.*\/\(.*\)/\1/; q'`] 1000 xrandr_lib=[`find_lib "libXrandr.so.*" "$X_LIBS -L/usr/X11/$base_libdir -L/usr/X11R6/$base_libdir" | sed 's/.*\/\(.*\)/\1/; q'`]
1026 if test "x$x11_lib" = "x"; then 1001 xinput_lib=[`find_lib "libXi.so.*" "$X_LIBS -L/usr/X11/$base_libdir -L/usr/X11R6/$base_libdir" | sed 's/.*\/\(.*\)/\1/; q'`]
1027 x11_lib=[`ls -- $path/libX11.so.[0-9]* 2>/dev/null | sort -r | sed 's/.*\/\(.*\)/\1/; q'`] 1002 xss_lib=[`find_lib "libXss.so.*" "$X_LIBS -L/usr/X11/$base_libdir -L/usr/X11R6/$base_libdir" | sed 's/.*\/\(.*\)/\1/; q'`]
1028 fi
1029 fi
1030 if test "x$x11ext_lib" = "x"; then
1031 x11ext_lib=[`ls -- $path/libXext.so.[0-9] 2>/dev/null | sort -r | sed 's/.*\/\(.*\)/\1/; q'`]
1032 if test "x$x11ext_lib" = "x"; then
1033 x11ext_lib=[`ls -- $path/libXext.so.[0-9]* 2>/dev/null | sort -r | sed 's/.*\/\(.*\)/\1/; q'`]
1034 fi
1035 fi
1036 if test "x$xrender_lib" = "x"; then
1037 xrender_lib=[`ls -- $path/libXrender.so.[0-9] 2>/dev/null | sort -r | sed 's/.*\/\(.*\)/\1/; q'`]
1038 if test "x$xrender_lib" = "x"; then
1039 xrender_lib=[`ls -- $path/libXrender.so.[0-9]* 2>/dev/null | sort -r | sed 's/.*\/\(.*\)/\1/; q'`]
1040 fi
1041 fi
1042 if test "x$xrandr_lib" = "x"; then
1043 xrandr_lib=[`ls -- $path/libXrandr.so.[0-9] 2>/dev/null | sort -r | sed 's/.*\/\(.*\)/\1/; q'`]
1044 if test "x$xrandr_lib" = "x"; then
1045 xrandr_lib=[`ls -- $path/libXrandr.so.[0-9]* 2>/dev/null | sort -r | sed 's/.*\/\(.*\)/\1/; q'`]
1046 fi
1047 fi
1048 if test "x$xinput_lib" = "x"; then
1049 xinput_lib=[`ls -- $path/libXi.so.[0-9] 2>/dev/null | sort -r | sed 's/.*\/\(.*\)/\1/; q'`]
1050 if test "x$xinput_lib" = "x"; then
1051 xinput_lib=[`ls -- $path/libXi.so.[0-9]* 2>/dev/null | sort -r | sed 's/.*\/\(.*\)/\1/; q'`]
1052 fi
1053 fi
1054 if test "x$xss_lib" = "x"; then
1055 xss_lib=[`ls -- $path/libXss.so.[0-9] 2>/dev/null | sort -r | sed 's/.*\/\(.*\)/\1/; q'`]
1056 if test "x$xss_lib" = "x"; then
1057 xss_lib=[`ls -- $path/libXss.so.[0-9]* 2>/dev/null | sort -r | sed 's/.*\/\(.*\)/\1/; q'`]
1058 fi
1059 fi
1060 done
1061 ;; 1003 ;;
1062 esac 1004 esac
1063 1005
1064 if test x$ac_cv_func_shmat != xyes; then 1006 if test x$ac_cv_func_shmat != xyes; then
1065 X_CFLAGS="$X_CFLAGS -DNO_SHARED_MEMORY" 1007 X_CFLAGS="$X_CFLAGS -DNO_SHARED_MEMORY"