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.
305 lines
13 KiB
305 lines
13 KiB
From e87336e8d583044d62b1a9400db4c29f1474fa50 Mon Sep 17 00:00:00 2001
|
|
From: nE0sIghT <ykonotopov@gmail.com>
|
|
Date: Wed, 5 Aug 2015 12:37:36 +0300
|
|
Subject: [PATCH 1/2] Backported new libraries search code
|
|
|
|
---
|
|
acinclude.m4 | 75 ++++++++++++++++++++++++++++++++++++++++++++---
|
|
configure.in | 96 +++++++++++++++++++++++-------------------------------------
|
|
2 files changed, 107 insertions(+), 64 deletions(-)
|
|
|
|
diff --git a/acinclude.m4 b/acinclude.m4
|
|
index a44747c..1e307c9 100644
|
|
--- a/acinclude.m4
|
|
+++ b/acinclude.m4
|
|
@@ -43,16 +43,17 @@ for ac_dir in $1 /usr/include;
|
|
])
|
|
|
|
dnl ---------------------------------------------------------------------------
|
|
-dnl call WX_PATH_FIND_LIBRARIES(search path, lib name), sets ac_find_libraries
|
|
-dnl to the full name of the file that was found or leaves it empty if not found
|
|
+dnl call WX_PATH_FIND_LIBRARIES(lib name, [optional extra search paths])
|
|
+dnl sets ac_find_libraries to the full name of the file that was found
|
|
+dnl or leaves it empty if not found
|
|
dnl ---------------------------------------------------------------------------
|
|
AC_DEFUN([WX_PATH_FIND_LIBRARIES],
|
|
[
|
|
ac_find_libraries=
|
|
- for ac_dir in $1;
|
|
+ for ac_dir in $2 $SEARCH_LIB
|
|
do
|
|
for ac_extension in a so sl dylib dll.a; do
|
|
- if test -f "$ac_dir/lib$2.$ac_extension"; then
|
|
+ if test -f "$ac_dir/lib$1.$ac_extension"; then
|
|
ac_find_libraries=$ac_dir
|
|
break 2
|
|
fi
|
|
@@ -115,6 +116,72 @@ AC_DEFUN([WX_LINK_PATH_EXIST],
|
|
fi
|
|
])
|
|
|
|
+dnl ---------------------------------------------------------------------------
|
|
+dnl Usage: WX_FIND_LIB(lib-name, [lib-function to test], [extra search paths])
|
|
+dnl
|
|
+dnl Tests in a variety of ways for the presence of lib-name
|
|
+dnl
|
|
+dnl On success, returns any novel path found in ac_find_libraries; else "std"
|
|
+dnl and any cflags in ac_find_cflags
|
|
+dnl On failure, ac_find_libraries will be empty
|
|
+dnl ---------------------------------------------------------------------------
|
|
+AC_DEFUN([WX_FIND_LIB],
|
|
+[
|
|
+ ac_find_libraries=
|
|
+
|
|
+ dnl Try with pkg-config first. It requires its lib-name parameter lowercase
|
|
+ fl_pkgname=`echo "$1" | tr [[:upper:]] [[:lower:]]`
|
|
+ dnl suppress PKG_PROG_PKG_CONFIG output; we don't want to keep seeing it
|
|
+ PKG_PROG_PKG_CONFIG() AS_MESSAGE_FD> /dev/null
|
|
+ PKG_CHECK_MODULES([$1], [$fl_pkgname],
|
|
+ [
|
|
+ dnl Start by assuming there are no novel lib paths
|
|
+ ac_find_libraries="std"
|
|
+
|
|
+ dnl A simple copy of the internal vars $1_CFLAGS $1_LIBS doesn't work
|
|
+ dnl inside the macro
|
|
+ dnl
|
|
+ dnl TODO: When we stop being autoconf 2.61 compatible, the next 2 lines
|
|
+ dnl should become:
|
|
+ dnl AS_VAR_COPY([ac_find_cflags], [$1_CFLAGS])
|
|
+ dnl AS_VAR_COPY([fl_libs], [$1_LIBS])
|
|
+ eval ac_find_cflags=\$$1_CFLAGS
|
|
+ eval fl_libs=\$$1_LIBS
|
|
+
|
|
+ dnl fl_libs may now contain -Lfoopath -lfoo (only non-standard paths are
|
|
+ dnl added) We only want the path bit, not the lib names
|
|
+ for fl_path in $fl_libs
|
|
+ do
|
|
+ if test `echo "$fl_path" | cut -c 1-2` = "-L"; then
|
|
+ dnl there shouldn't be >1 novel path
|
|
+ dnl return it without the -L, ready for WX_LINK_PATH_EXIST
|
|
+ ac_find_libraries=`echo "$fl_path" | cut -c 3-`
|
|
+ fi
|
|
+ done
|
|
+ ],
|
|
+ [
|
|
+ if test "x$ac_find_libraries" = "x"; then
|
|
+ dnl Next with AC_CHECK_LIB, if a test function was provided
|
|
+ if test "x$2" != "x"; then
|
|
+ AC_CHECK_LIB([$1], [$2], [ac_find_libraries="std"])
|
|
+ fi
|
|
+ fi
|
|
+
|
|
+ if test "x$ac_find_libraries" = "x"; then
|
|
+ dnl Finally try the search path
|
|
+ dnl Output a message again, as AC_CHECK_LIB will just have said "no"
|
|
+ AC_MSG_CHECKING([elsewhere])
|
|
+ dnl $3 will occasionally hold extra path(s) to search
|
|
+ WX_PATH_FIND_LIBRARIES([$1], [$3])
|
|
+ if test "x$ac_find_libraries" != "x"; then
|
|
+ AC_MSG_RESULT([yes])
|
|
+ else
|
|
+ AC_MSG_RESULT([no])
|
|
+ fi
|
|
+ fi
|
|
+ ])
|
|
+])
|
|
+
|
|
dnl ===========================================================================
|
|
dnl C++ features test
|
|
dnl ===========================================================================
|
|
diff --git a/configure.in b/configure.in
|
|
index 021845d..9c78ba3 100644
|
|
--- a/configure.in
|
|
+++ b/configure.in
|
|
@@ -2767,7 +2767,7 @@ if test "$build" != "$host" -a "$GCC" = yes; then
|
|
x_includes=$ac_find_includes
|
|
fi
|
|
if test -z "$x_libraries" -o "$x_libraries" = NONE; then
|
|
- WX_PATH_FIND_LIBRARIES($SEARCH_LIB, Xt)
|
|
+ WX_PATH_FIND_LIBRARIES(Xt)
|
|
x_libraries=$ac_find_libraries
|
|
fi
|
|
fi
|
|
@@ -3554,7 +3554,7 @@ libraries returned by 'pkg-config gtk+-2.0 --libs' or 'gtk-config
|
|
dnl test for external libxpm if we're configured to use it
|
|
if test "$wxUSE_GPE" = "yes"; then
|
|
AC_MSG_CHECKING(for gpewidget library)
|
|
- WX_PATH_FIND_LIBRARIES($SEARCH_LIB,gpewidget)
|
|
+ WX_PATH_FIND_LIBRARIES(gpewidget)
|
|
if test "$ac_find_libraries" != "" ; then
|
|
WX_LINK_PATH_EXIST($ac_find_libraries,$GUI_TK_LIBRARY)
|
|
dnl -lgpewidget must be before all GTK libs and
|
|
@@ -3567,7 +3567,7 @@ libraries returned by 'pkg-config gtk+-2.0 --libs' or 'gtk-config
|
|
fi
|
|
|
|
dnl AC_MSG_CHECKING(for gpe library)
|
|
- dnl WX_PATH_FIND_LIBRARIES($SEARCH_LIB,gpe)
|
|
+ dnl WX_PATH_FIND_LIBRARIES(gpe)
|
|
dnl if test "$ac_find_libraries" != "" ; then
|
|
dnl WX_LINK_PATH_EXIST($ac_find_libraries,$GUI_TK_LIBRARY)
|
|
dnl GUI_TK_LIBRARY="$GUI_TK_LIBRARY -lgpe"
|
|
@@ -3817,7 +3817,7 @@ libraries returned by 'pkg-config gtk+-2.0 --libs' or 'gtk-config
|
|
|
|
|
|
AC_MSG_CHECKING(for Motif/Lesstif library)
|
|
- WX_PATH_FIND_LIBRARIES($SEARCH_LIB, Xm)
|
|
+ WX_PATH_FIND_LIBRARIES(Xm)
|
|
|
|
if test "x$ac_find_libraries" != "x" ; then
|
|
AC_MSG_RESULT(found in $ac_find_libraries)
|
|
@@ -3956,7 +3956,7 @@ libraries returned by 'pkg-config gtk+-2.0 --libs' or 'gtk-config
|
|
dnl test for external libxpm if we're configured to use it
|
|
if test "$wxUSE_LIBXPM" = "sys"; then
|
|
AC_MSG_CHECKING(for Xpm library)
|
|
- WX_PATH_FIND_LIBRARIES($SEARCH_LIB,Xpm)
|
|
+ WX_PATH_FIND_LIBRARIES(Xpm)
|
|
if test "$ac_find_libraries" != "" ; then
|
|
WX_LINK_PATH_EXIST($ac_find_libraries,$GUI_TK_LIBRARY)
|
|
GUI_TK_LIBRARY="$GUI_TK_LIBRARY$ac_path_to_link"
|
|
@@ -4192,41 +4192,23 @@ dnl ---------------------------------------------------------------------------
|
|
dnl wxDisplay Sanity checks
|
|
dnl ---------------------------------------------------------------------------
|
|
|
|
+USE_XINERAMA=0
|
|
if test "$wxUSE_DISPLAY" = "yes"; then
|
|
dnl ---------------------------------------------------------------------------
|
|
dnl Xinerama (for unix ) - Brian Victor
|
|
dnl ---------------------------------------------------------------------------
|
|
if test "$wxUSE_UNIX" = "yes" -a "$wxUSE_MAC" != 1 -a "$wxUSE_COCOA" != 1; then
|
|
- AC_MSG_CHECKING([for Xinerama])
|
|
- WX_PATH_FIND_LIBRARIES([$SEARCH_LIB],Xinerama)
|
|
+ WX_FIND_LIB(Xinerama, XineramaQueryScreens)
|
|
if test "$ac_find_libraries" != "" ; then
|
|
- WX_LINK_PATH_EXIST([$ac_find_libraries],[$LDFLAGS])
|
|
- if test "$ac_path_to_link" != " -L/usr/lib" ; then
|
|
- LDFLAGS="$LDFLAGS $ac_path_to_link"
|
|
+ if test "$ac_find_libraries" != "std" ; then
|
|
+ WX_LINK_PATH_EXIST([$ac_find_libraries],[$LDFLAGS])
|
|
+ if test "$ac_path_to_link" != " -L/usr/lib" ; then
|
|
+ LDFLAGS="$LDFLAGS $ac_path_to_link"
|
|
+ fi
|
|
fi
|
|
+ USE_XINERAMA=1
|
|
GUI_TK_LIBRARY="$GUI_TK_LIBRARY -lXinerama"
|
|
- AC_MSG_RESULT([yes])
|
|
-
|
|
- AC_MSG_CHECKING([for Xxf86vm extension])
|
|
- WX_PATH_FIND_LIBRARIES([$SEARCH_LIB],Xxf86vm)
|
|
- if test "$ac_find_libraries" != "" ; then
|
|
- AC_MSG_RESULT([yes])
|
|
- AC_CHECK_HEADERS([X11/extensions/xf86vmode.h],
|
|
- [
|
|
- GUI_TK_LIBRARY="$GUI_TK_LIBRARY -lXxf86vm"
|
|
- ],
|
|
- [],
|
|
- [
|
|
- #if HAVE_X11_XLIB_H
|
|
- #include <X11/Xlib.h>
|
|
- #endif
|
|
- ])
|
|
- else
|
|
- AC_MSG_RESULT([no])
|
|
- fi
|
|
-
|
|
else
|
|
- AC_MSG_RESULT([no])
|
|
AC_MSG_WARN([Xinerama not found; disabling wxDisplay])
|
|
wxUSE_DISPLAY="no"
|
|
fi
|
|
@@ -4243,17 +4225,16 @@ dnl X11 session management
|
|
dnl ---------------------------------------------------------------------------
|
|
if test "$wxUSE_DETECT_SM" = "yes"; then
|
|
if test "$wxUSE_UNIX" = "yes" -a "$wxUSE_MAC" != 1 -a "$wxUSE_COCOA" != 1; then
|
|
- AC_MSG_CHECKING([for -lSM - X11 session management])
|
|
- WX_PATH_FIND_LIBRARIES([$SEARCH_LIB],SM)
|
|
+ WX_FIND_LIB(SM, SmcOpenConnection)
|
|
if test "$ac_find_libraries" != "" ; then
|
|
- WX_LINK_PATH_EXIST([$ac_find_libraries],[$LDFLAGS])
|
|
- if test "$ac_path_to_link" != " -L/usr/lib" ; then
|
|
+ if test "$ac_find_libraries" != "std" ; then
|
|
+ WX_LINK_PATH_EXIST([$ac_find_libraries],[$LDFLAGS])
|
|
+ if test "$ac_path_to_link" != " -L/usr/lib" ; then
|
|
LDFLAGS="$LDFLAGS $ac_path_to_link"
|
|
+ fi
|
|
fi
|
|
GUI_TK_LIBRARY="$GUI_TK_LIBRARY -lSM"
|
|
- AC_MSG_RESULT([yes])
|
|
else
|
|
- AC_MSG_RESULT([no])
|
|
AC_MSG_WARN([libSM not found; disabling session management detection])
|
|
wxUSE_DETECT_SM="no"
|
|
fi
|
|
@@ -4295,51 +4276,46 @@ if test "$wxUSE_OPENGL" = "yes"; then
|
|
AC_CHECK_HEADER(GL/glu.h, [
|
|
found_gl=0
|
|
|
|
- AC_MSG_CHECKING([for -lGL])
|
|
- WX_PATH_FIND_LIBRARIES([$SEARCH_LIB /opt/graphics/OpenGL/lib],GL)
|
|
+ WX_FIND_LIB(GL, glBegin, [/opt/graphics/OpenGL/lib])
|
|
if test "$ac_find_libraries" != "" ; then
|
|
- AC_MSG_RESULT([found in $ac_find_libraries])
|
|
-
|
|
- WX_LINK_PATH_EXIST([$ac_find_libraries],[$LDFLAGS])
|
|
- if test "$ac_path_to_link" != " -L/usr/lib" ; then
|
|
+ if test "$ac_find_libraries" != "std" ; then
|
|
+ WX_LINK_PATH_EXIST([$ac_find_libraries],[$LDFLAGS])
|
|
+ if test "$ac_path_to_link" != " -L/usr/lib" ; then
|
|
LDFLAGS_GL="$ac_path_to_link"
|
|
+ fi
|
|
fi
|
|
|
|
dnl don't suppose that libGL and libGLU are always in the
|
|
dnl same directory -- this is not true for some common
|
|
dnl distributions
|
|
- AC_MSG_CHECKING([for -lGLU])
|
|
- WX_PATH_FIND_LIBRARIES([$SEARCH_LIB],GLU)
|
|
+ WX_FIND_LIB(GLU, gluBeginCurve, [/opt/graphics/OpenGL/lib])
|
|
if test "$ac_find_libraries" != "" ; then
|
|
+ if test "$ac_find_libraries" != "std" ; then
|
|
WX_LINK_PATH_EXIST([$ac_find_libraries],[$LDFLAGS])
|
|
if test "$ac_path_to_link" != " -L/usr/lib" -a \
|
|
- "$ac_path_to_link" != "$LDFLAGS_GL"; then
|
|
- LDFLAGS_GL="$LDFLAGS_GL$ac_path_to_link"
|
|
+ "$ac_path_to_link" != "$LDFLAGS_GL" ; then
|
|
+ LDFLAGS_GL="$LDFLAGS_GL$ac_path_to_link"
|
|
fi
|
|
+ fi
|
|
|
|
found_gl=1
|
|
OPENGL_LIBS="-lGL -lGLU"
|
|
- AC_MSG_RESULT([yes])
|
|
- else
|
|
- AC_MSG_RESULT([no])
|
|
fi
|
|
- else
|
|
- AC_MSG_RESULT([no])
|
|
fi
|
|
|
|
if test "$found_gl" != 1; then
|
|
- AC_MSG_CHECKING([for -lMesaGL])
|
|
- WX_PATH_FIND_LIBRARIES([$SEARCH_LIB],MesaGL)
|
|
+ WX_FIND_LIB(MesaGL, glEnable, [/opt/graphics/OpenGL/lib])
|
|
if test "$ac_find_libraries" != "" ; then
|
|
+ if test "$ac_find_libraries" != "std" ; then
|
|
WX_LINK_PATH_EXIST([$ac_find_libraries],[$LDFLAGS])
|
|
- LDFLAGS_GL="$LDFLAGS$ac_path_to_link"
|
|
- OPENGL_LIBS="-lMesaGL -lMesaGLU"
|
|
- AC_MSG_RESULT([yes])
|
|
- else
|
|
- AC_MSG_RESULT([no])
|
|
+ if test "$ac_path_to_link" != " -L/usr/lib" ; then
|
|
+ LDFLAGS_GL="$LDFLAGS_GL$ac_path_to_link"
|
|
+ fi
|
|
+ fi
|
|
+ OPENGL_LIBS="-lMesaGL -lMesaGLU"
|
|
fi
|
|
fi
|
|
- ])
|
|
+ ],, [ ])
|
|
],
|
|
[],
|
|
[ ])
|
|
--
|
|
2.4.6
|
|
|