- Reestructuración de ficheros y directorios general
- merge v0.01 --> Añadido fileselector - Añadidas fuentes de Gem y Pure Data - pix2jpg incluído en Gem. Archivos de construcción de Gem modificados. - Añadido fichero ompiling.txt con instrucciones de compilación
This commit is contained in:
parent
c9adfd020b
commit
e85d191b46
3100 changed files with 775434 additions and 3073 deletions
134
Gem/m4/ax_check_gl.m4
Normal file
134
Gem/m4/ax_check_gl.m4
Normal file
|
@ -0,0 +1,134 @@
|
|||
# ===========================================================================
|
||||
# http://www.gnu.org/software/autoconf-archive/ax_check_gl.html
|
||||
# ===========================================================================
|
||||
#
|
||||
# SYNOPSIS
|
||||
#
|
||||
# AX_CHECK_GL
|
||||
#
|
||||
# DESCRIPTION
|
||||
#
|
||||
# Check for an OpenGL implementation. If GL is found, the required
|
||||
# compiler and linker flags are included in the output variables
|
||||
# "GL_CFLAGS" and "GL_LIBS", respectively. If no usable GL implementation
|
||||
# is found, "no_gl" is set to "yes".
|
||||
#
|
||||
# If the header "GL/gl.h" is found, "HAVE_GL_GL_H" is defined. If the
|
||||
# header "OpenGL/gl.h" is found, HAVE_OPENGL_GL_H is defined. These
|
||||
# preprocessor definitions may not be mutually exclusive.
|
||||
#
|
||||
# LICENSE
|
||||
#
|
||||
# Copyright (c) 2009 Braden McDaniel <braden@endoframe.com>
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License as published by the
|
||||
# Free Software Foundation; either version 2 of the License, or (at your
|
||||
# option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful, but
|
||||
# WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
|
||||
# Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License along
|
||||
# with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
# As a special exception, the respective Autoconf Macro's copyright owner
|
||||
# gives unlimited permission to copy, distribute and modify the configure
|
||||
# scripts that are the output of Autoconf when processing the Macro. You
|
||||
# need not follow the terms of the GNU General Public License when using
|
||||
# or distributing such scripts, even though portions of the text of the
|
||||
# Macro appear in them. The GNU General Public License (GPL) does govern
|
||||
# all other use of the material that constitutes the Autoconf Macro.
|
||||
#
|
||||
# This special exception to the GPL applies to versions of the Autoconf
|
||||
# Macro released by the Autoconf Archive. When you make and distribute a
|
||||
# modified version of the Autoconf Macro, you may extend this special
|
||||
# exception to the GPL to apply to your modified version as well.
|
||||
|
||||
#serial 9
|
||||
|
||||
AC_DEFUN([AX_CHECK_GL],
|
||||
[AC_REQUIRE([AC_CANONICAL_HOST])
|
||||
AC_REQUIRE([AC_PATH_X])dnl
|
||||
AC_REQUIRE([AX_PTHREAD])dnl
|
||||
|
||||
AC_LANG_PUSH([C])
|
||||
AX_COMPILER_VENDOR
|
||||
AS_IF([test X$ax_cv_c_compiler_vendor != Xmicrosoft],
|
||||
[GL_CFLAGS="${PTHREAD_CFLAGS}"; GL_LIBS="${PTHREAD_LIBS} -lm"])
|
||||
|
||||
#
|
||||
# Use x_includes and x_libraries if they have been set (presumably by
|
||||
# AC_PATH_X).
|
||||
#
|
||||
AS_IF([test "X$no_x" != "Xyes"],
|
||||
[AS_IF([test -n "$x_includes"],
|
||||
[GL_CFLAGS="-I${x_includes} ${GL_CFLAGS}"])]
|
||||
AS_IF([test -n "$x_libraries"],
|
||||
[GL_LIBS="-L${x_libraries} -lX11 ${GL_LIBS}"]))
|
||||
|
||||
ax_save_CPPFLAGS="${CPPFLAGS}"
|
||||
CPPFLAGS="${GL_CFLAGS} ${CPPFLAGS}"
|
||||
AC_CHECK_HEADERS([GL/gl.h OpenGL/gl.h])
|
||||
CPPFLAGS="${ax_save_CPPFLAGS}"
|
||||
|
||||
AC_CHECK_HEADERS([windows.h])
|
||||
|
||||
m4_define([AX_CHECK_GL_PROGRAM],
|
||||
[AC_LANG_PROGRAM([[
|
||||
# if defined(HAVE_WINDOWS_H) && defined(_WIN32)
|
||||
# include <windows.h>
|
||||
# endif
|
||||
# ifdef HAVE_GL_GL_H
|
||||
# include <GL/gl.h>
|
||||
# elif defined(HAVE_OPENGL_GL_H)
|
||||
# include <OpenGL/gl.h>
|
||||
# else
|
||||
# error no gl.h
|
||||
# endif]],
|
||||
[[glBegin(0)]])])
|
||||
|
||||
AC_CACHE_CHECK([for OpenGL library], [ax_cv_check_gl_libgl],
|
||||
[ax_cv_check_gl_libgl="no"
|
||||
case $host_cpu in
|
||||
x86_64) ax_check_gl_libdir=lib64 ;;
|
||||
*) ax_check_gl_libdir=lib ;;
|
||||
esac
|
||||
ax_save_CPPFLAGS="${CPPFLAGS}"
|
||||
CPPFLAGS="${GL_CFLAGS} ${CPPFLAGS}"
|
||||
ax_save_LIBS="${LIBS}"
|
||||
LIBS=""
|
||||
ax_check_libs="-lopengl32 -lGL"
|
||||
for ax_lib in ${ax_check_libs}; do
|
||||
AS_IF([test X$ax_compiler_ms = Xyes],
|
||||
[ax_try_lib=`echo $ax_lib | sed -e 's/^-l//' -e 's/$/.lib/'`],
|
||||
[ax_try_lib="${ax_lib}"])
|
||||
LIBS="${ax_try_lib} ${GL_LIBS} ${ax_save_LIBS}"
|
||||
AC_LINK_IFELSE([AX_CHECK_GL_PROGRAM],
|
||||
[ax_cv_check_gl_libgl="${ax_try_lib}"; break],
|
||||
[ax_check_gl_nvidia_flags="-L/usr/${ax_check_gl_libdir}/nvidia" LIBS="${ax_try_lib} ${ax_check_gl_nvidia_flags} ${GL_LIBS} ${ax_save_LIBS}"
|
||||
AC_LINK_IFELSE([AX_CHECK_GL_PROGRAM],
|
||||
[ax_cv_check_gl_libgl="${ax_try_lib} ${ax_check_gl_nvidia_flags}"; break],
|
||||
[ax_check_gl_dylib_flag='-dylib_file /System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGL.dylib:/System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGL.dylib' LIBS="${ax_try_lib} ${ax_check_gl_dylib_flag} ${GL_LIBS} ${ax_save_LIBS}"
|
||||
AC_LINK_IFELSE([AX_CHECK_GL_PROGRAM],
|
||||
[ax_cv_check_gl_libgl="${ax_try_lib} ${ax_check_gl_dylib_flag}"; break])])])
|
||||
done
|
||||
|
||||
AS_IF([test "X$ax_cv_check_gl_libgl" = Xno -a "X$no_x" = Xyes],
|
||||
[LIBS='-framework OpenGL'
|
||||
AC_LINK_IFELSE([AX_CHECK_GL_PROGRAM],
|
||||
[ax_cv_check_gl_libgl="$LIBS"])])
|
||||
|
||||
LIBS=${ax_save_LIBS}
|
||||
CPPFLAGS=${ax_save_CPPFLAGS}])
|
||||
|
||||
AS_IF([test "X$ax_cv_check_gl_libgl" = Xno],
|
||||
[no_gl=yes; GL_CFLAGS=""; GL_LIBS=""],
|
||||
[GL_LIBS="${ax_cv_check_gl_libgl} ${GL_LIBS}"])
|
||||
AC_LANG_POP([C])
|
||||
|
||||
AC_SUBST([GL_CFLAGS])
|
||||
AC_SUBST([GL_LIBS])
|
||||
])dnl
|
152
Gem/m4/ax_check_glu.m4
Normal file
152
Gem/m4/ax_check_glu.m4
Normal file
|
@ -0,0 +1,152 @@
|
|||
# ===========================================================================
|
||||
# http://www.gnu.org/software/autoconf-archive/ax_check_glu.html
|
||||
# ===========================================================================
|
||||
#
|
||||
# SYNOPSIS
|
||||
#
|
||||
# AX_CHECK_GLU
|
||||
#
|
||||
# DESCRIPTION
|
||||
#
|
||||
# Check for GLU. If GLU is found, the required preprocessor and linker
|
||||
# flags are included in the output variables "GLU_CFLAGS" and "GLU_LIBS",
|
||||
# respectively. If no GLU implementation is found, "no_glu" is set to
|
||||
# "yes".
|
||||
#
|
||||
# If the header "GL/glu.h" is found, "HAVE_GL_GLU_H" is defined. If the
|
||||
# header "OpenGL/glu.h" is found, HAVE_OPENGL_GLU_H is defined. These
|
||||
# preprocessor definitions may not be mutually exclusive.
|
||||
#
|
||||
# Some implementations (in particular, some versions of Mac OS X) are
|
||||
# known to treat the GLU tesselator callback function type as "GLvoid
|
||||
# (*)(...)" rather than the standard "GLvoid (*)()". If the former
|
||||
# condition is detected, this macro defines "HAVE_VARARGS_GLU_TESSCB".
|
||||
#
|
||||
# LICENSE
|
||||
#
|
||||
# Copyright (c) 2009 Braden McDaniel <braden@endoframe.com>
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License as published by the
|
||||
# Free Software Foundation; either version 2 of the License, or (at your
|
||||
# option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful, but
|
||||
# WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
|
||||
# Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License along
|
||||
# with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
# As a special exception, the respective Autoconf Macro's copyright owner
|
||||
# gives unlimited permission to copy, distribute and modify the configure
|
||||
# scripts that are the output of Autoconf when processing the Macro. You
|
||||
# need not follow the terms of the GNU General Public License when using
|
||||
# or distributing such scripts, even though portions of the text of the
|
||||
# Macro appear in them. The GNU General Public License (GPL) does govern
|
||||
# all other use of the material that constitutes the Autoconf Macro.
|
||||
#
|
||||
# This special exception to the GPL applies to versions of the Autoconf
|
||||
# Macro released by the Autoconf Archive. When you make and distribute a
|
||||
# modified version of the Autoconf Macro, you may extend this special
|
||||
# exception to the GPL to apply to your modified version as well.
|
||||
|
||||
#serial 8
|
||||
|
||||
AC_DEFUN([AX_CHECK_GLU],
|
||||
[AC_REQUIRE([AX_CHECK_GL])dnl
|
||||
AC_REQUIRE([AC_PROG_CXX])dnl
|
||||
GLU_CFLAGS="${GL_CFLAGS}"
|
||||
|
||||
ax_save_CPPFLAGS="${CPPFLAGS}"
|
||||
CPPFLAGS="${GL_CFLAGS} ${CPPFLAGS}"
|
||||
AC_CHECK_HEADERS([GL/glu.h OpenGL/glu.h])
|
||||
CPPFLAGS="${ax_save_CPPFLAGS}"
|
||||
|
||||
m4_define([AX_CHECK_GLU_PROGRAM],
|
||||
[AC_LANG_PROGRAM([[
|
||||
# if defined(HAVE_WINDOWS_H) && defined(_WIN32)
|
||||
# include <windows.h>
|
||||
# endif
|
||||
# ifdef HAVE_GL_GLU_H
|
||||
# include <GL/glu.h>
|
||||
# elif defined(HAVE_OPENGL_GLU_H)
|
||||
# include <OpenGL/glu.h>
|
||||
# else
|
||||
# error no glu.h
|
||||
# endif]],
|
||||
[[gluBeginCurve(0)]])])
|
||||
|
||||
AC_CACHE_CHECK([for OpenGL Utility library], [ax_cv_check_glu_libglu],
|
||||
[ax_cv_check_glu_libglu="no"
|
||||
ax_save_CPPFLAGS="${CPPFLAGS}"
|
||||
CPPFLAGS="${GL_CFLAGS} ${CPPFLAGS}"
|
||||
ax_save_LIBS="${LIBS}"
|
||||
|
||||
#
|
||||
# First, check for the possibility that everything we need is already in
|
||||
# GL_LIBS.
|
||||
#
|
||||
LIBS="${GL_LIBS} ${ax_save_LIBS}"
|
||||
#
|
||||
# libGLU typically links with libstdc++ on POSIX platforms.
|
||||
# However, setting the language to C++ means that test program
|
||||
# source is named "conftest.cc"; and Microsoft cl doesn't know what
|
||||
# to do with such a file.
|
||||
#
|
||||
AC_LANG_PUSH([C++])
|
||||
AS_IF([test X$ax_compiler_ms = Xyes],
|
||||
[AC_LANG_PUSH([C])])
|
||||
AC_LINK_IFELSE(
|
||||
[AX_CHECK_GLU_PROGRAM],
|
||||
[ax_cv_check_glu_libglu=yes],
|
||||
[LIBS=""
|
||||
ax_check_libs="-lglu32 -lGLU"
|
||||
for ax_lib in ${ax_check_libs}; do
|
||||
AS_IF([test X$ax_compiler_ms = Xyes],
|
||||
[ax_try_lib=`echo $ax_lib | sed -e 's/^-l//' -e 's/$/.lib/'`],
|
||||
[ax_try_lib="${ax_lib}"])
|
||||
LIBS="${ax_try_lib} ${GL_LIBS} ${ax_save_LIBS}"
|
||||
AC_LINK_IFELSE([AX_CHECK_GLU_PROGRAM],
|
||||
[ax_cv_check_glu_libglu="${ax_try_lib}"; break])
|
||||
done
|
||||
])
|
||||
AS_IF([test X$ax_compiler_ms = Xyes],
|
||||
[AC_LANG_POP([C])])
|
||||
AC_LANG_POP([C++])
|
||||
|
||||
LIBS=${ax_save_LIBS}
|
||||
CPPFLAGS=${ax_save_CPPFLAGS}])
|
||||
AS_IF([test "X$ax_cv_check_glu_libglu" = Xno],
|
||||
[no_glu=yes; GLU_CFLAGS=""; GLU_LIBS=""],
|
||||
[AS_IF([test "X$ax_cv_check_glu_libglu" = Xyes],
|
||||
[GLU_LIBS="$GL_LIBS"],
|
||||
[GLU_LIBS="${ax_cv_check_glu_libglu} ${GL_LIBS}"])])
|
||||
AC_SUBST([GLU_CFLAGS])
|
||||
AC_SUBST([GLU_LIBS])
|
||||
|
||||
#
|
||||
# Some versions of Mac OS X include a broken interpretation of the GLU
|
||||
# tesselation callback function signature.
|
||||
#
|
||||
AS_IF([test "X$ax_cv_check_glu_libglu" != Xno],
|
||||
[AC_CACHE_CHECK([for varargs GLU tesselator callback function type],
|
||||
[ax_cv_varargs_glu_tesscb],
|
||||
[ax_cv_varargs_glu_tesscb=no
|
||||
ax_save_CFLAGS="$CFLAGS"
|
||||
CFLAGS="$GL_CFLAGS $CFLAGS"
|
||||
AC_COMPILE_IFELSE(
|
||||
[AC_LANG_PROGRAM([[
|
||||
# ifdef HAVE_GL_GLU_H
|
||||
# include <GL/glu.h>
|
||||
# else
|
||||
# include <OpenGL/glu.h>
|
||||
# endif]],
|
||||
[[GLvoid (*func)(...); gluTessCallback(0, 0, func)]])],
|
||||
[ax_cv_varargs_glu_tesscb=yes])
|
||||
CFLAGS="$ax_save_CFLAGS"])
|
||||
AS_IF([test X$ax_cv_varargs_glu_tesscb = Xyes],
|
||||
[AC_DEFINE([HAVE_VARARGS_GLU_TESSCB], [1],
|
||||
[Use nonstandard varargs form for the GLU tesselator callback])])])
|
||||
])
|
115
Gem/m4/ax_check_glut.m4
Normal file
115
Gem/m4/ax_check_glut.m4
Normal file
|
@ -0,0 +1,115 @@
|
|||
# ===========================================================================
|
||||
# http://www.gnu.org/software/autoconf-archive/ax_check_glut.html
|
||||
# ===========================================================================
|
||||
#
|
||||
# SYNOPSIS
|
||||
#
|
||||
# AX_CHECK_GLUT
|
||||
#
|
||||
# DESCRIPTION
|
||||
#
|
||||
# Check for GLUT. If GLUT is found, the required compiler and linker flags
|
||||
# are included in the output variables "GLUT_CFLAGS" and "GLUT_LIBS",
|
||||
# respectively. If GLUT is not found, "no_glut" is set to "yes".
|
||||
#
|
||||
# If the header "GL/glut.h" is found, "HAVE_GL_GLUT_H" is defined. If the
|
||||
# header "GLUT/glut.h" is found, HAVE_GLUT_GLUT_H is defined. These
|
||||
# preprocessor definitions may not be mutually exclusive.
|
||||
#
|
||||
# LICENSE
|
||||
#
|
||||
# Copyright (c) 2009 Braden McDaniel <braden@endoframe.com>
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License as published by the
|
||||
# Free Software Foundation; either version 2 of the License, or (at your
|
||||
# option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful, but
|
||||
# WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
|
||||
# Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License along
|
||||
# with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
# As a special exception, the respective Autoconf Macro's copyright owner
|
||||
# gives unlimited permission to copy, distribute and modify the configure
|
||||
# scripts that are the output of Autoconf when processing the Macro. You
|
||||
# need not follow the terms of the GNU General Public License when using
|
||||
# or distributing such scripts, even though portions of the text of the
|
||||
# Macro appear in them. The GNU General Public License (GPL) does govern
|
||||
# all other use of the material that constitutes the Autoconf Macro.
|
||||
#
|
||||
# This special exception to the GPL applies to versions of the Autoconf
|
||||
# Macro released by the Autoconf Archive. When you make and distribute a
|
||||
# modified version of the Autoconf Macro, you may extend this special
|
||||
# exception to the GPL to apply to your modified version as well.
|
||||
|
||||
#serial 8
|
||||
|
||||
AC_DEFUN([AX_CHECK_GLUT],
|
||||
[AC_REQUIRE([AX_CHECK_GLU])dnl
|
||||
AC_REQUIRE([AC_PATH_XTRA])dnl
|
||||
|
||||
ax_save_CPPFLAGS="${CPPFLAGS}"
|
||||
CPPFLAGS="${GLU_CFLAGS} ${CPPFLAGS}"
|
||||
AC_CHECK_HEADERS([GL/glut.h GLUT/glut.h])
|
||||
CPPFLAGS="${ax_save_CPPFLAGS}"
|
||||
|
||||
GLUT_CFLAGS=${GLU_CFLAGS}
|
||||
GLUT_LIBS=${GLU_LIBS}
|
||||
|
||||
m4_define([AX_CHECK_GLUT_PROGRAM],
|
||||
[AC_LANG_PROGRAM([[
|
||||
# if HAVE_WINDOWS_H && defined(_WIN32)
|
||||
# include <windows.h>
|
||||
# endif
|
||||
# ifdef HAVE_GL_GLUT_H
|
||||
# include <GL/glut.h>
|
||||
# elif defined(HAVE_GLUT_GLUT_H)
|
||||
# include <GLUT/glut.h>
|
||||
# else
|
||||
# error no glut.h
|
||||
# endif]],
|
||||
[[glutMainLoop()]])])
|
||||
|
||||
#
|
||||
# If X is present, assume GLUT depends on it.
|
||||
#
|
||||
AS_IF([test X$no_x != Xyes],
|
||||
[GLUT_LIBS="${X_PRE_LIBS} -lXmu -lXi ${X_EXTRA_LIBS} ${GLUT_LIBS}"])
|
||||
|
||||
AC_CACHE_CHECK([for GLUT library], [ax_cv_check_glut_libglut],
|
||||
[ax_cv_check_glut_libglut="no"
|
||||
AC_LANG_PUSH(C)
|
||||
ax_save_CPPFLAGS="${CPPFLAGS}"
|
||||
CPPFLAGS="${GLUT_CFLAGS} ${CPPFLAGS}"
|
||||
ax_save_LIBS="${LIBS}"
|
||||
LIBS=""
|
||||
ax_check_libs="-lglut32 -lglut"
|
||||
for ax_lib in ${ax_check_libs}; do
|
||||
AS_IF([test X$ax_compiler_ms = Xyes],
|
||||
[ax_try_lib=`echo $ax_lib | sed -e 's/^-l//' -e 's/$/.lib/'`],
|
||||
[ax_try_lib="${ax_lib}"])
|
||||
LIBS="${ax_try_lib} ${GLUT_LIBS} ${ax_save_LIBS}"
|
||||
AC_LINK_IFELSE([AX_CHECK_GLUT_PROGRAM],
|
||||
[ax_cv_check_glut_libglut="${ax_try_lib}"; break])
|
||||
done
|
||||
|
||||
AS_IF([test "X$ax_cv_check_glut_libglut" = Xno -a "X$no_x" = Xyes],
|
||||
[LIBS='-framework GLUT'
|
||||
AC_LINK_IFELSE([AX_CHECK_GLUT_PROGRAM],
|
||||
[ax_cv_check_glut_libglut="$LIBS"])])
|
||||
|
||||
CPPFLAGS="${ax_save_CPPFLAGS}"
|
||||
LIBS="${ax_save_LIBS}"
|
||||
AC_LANG_POP(C)])
|
||||
|
||||
AS_IF([test "X$ax_cv_check_glut_libglut" = Xno],
|
||||
[no_glut="yes"; GLUT_CFLAGS=""; GLUT_LIBS=""],
|
||||
[GLUT_LIBS="${ax_cv_check_glut_libglut} ${GLUT_LIBS}"])
|
||||
|
||||
AC_SUBST([GLUT_CFLAGS])
|
||||
AC_SUBST([GLUT_LIBS])
|
||||
])dnl
|
84
Gem/m4/ax_compiler_vendor.m4
Normal file
84
Gem/m4/ax_compiler_vendor.m4
Normal file
|
@ -0,0 +1,84 @@
|
|||
# ===========================================================================
|
||||
# http://www.gnu.org/software/autoconf-archive/ax_compiler_vendor.html
|
||||
# ===========================================================================
|
||||
#
|
||||
# SYNOPSIS
|
||||
#
|
||||
# AX_COMPILER_VENDOR
|
||||
#
|
||||
# DESCRIPTION
|
||||
#
|
||||
# Determine the vendor of the C/C++ compiler, e.g., gnu, intel, ibm, sun,
|
||||
# hp, borland, comeau, dec, cray, kai, lcc, metrowerks, sgi, microsoft,
|
||||
# watcom, etc. The vendor is returned in the cache variable
|
||||
# $ax_cv_c_compiler_vendor for C and $ax_cv_cxx_compiler_vendor for C++.
|
||||
#
|
||||
# LICENSE
|
||||
#
|
||||
# Copyright (c) 2008 Steven G. Johnson <stevenj@alum.mit.edu>
|
||||
# Copyright (c) 2008 Matteo Frigo
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License as published by the
|
||||
# Free Software Foundation, either version 3 of the License, or (at your
|
||||
# option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful, but
|
||||
# WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
|
||||
# Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License along
|
||||
# with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
# As a special exception, the respective Autoconf Macro's copyright owner
|
||||
# gives unlimited permission to copy, distribute and modify the configure
|
||||
# scripts that are the output of Autoconf when processing the Macro. You
|
||||
# need not follow the terms of the GNU General Public License when using
|
||||
# or distributing such scripts, even though portions of the text of the
|
||||
# Macro appear in them. The GNU General Public License (GPL) does govern
|
||||
# all other use of the material that constitutes the Autoconf Macro.
|
||||
#
|
||||
# This special exception to the GPL applies to versions of the Autoconf
|
||||
# Macro released by the Autoconf Archive. When you make and distribute a
|
||||
# modified version of the Autoconf Macro, you may extend this special
|
||||
# exception to the GPL to apply to your modified version as well.
|
||||
|
||||
#serial 11
|
||||
|
||||
AC_DEFUN([AX_COMPILER_VENDOR],
|
||||
[AC_CACHE_CHECK([for _AC_LANG compiler vendor], ax_cv_[]_AC_LANG_ABBREV[]_compiler_vendor,
|
||||
[# note: don't check for gcc first since some other compilers define __GNUC__
|
||||
vendors="intel: __ICC,__ECC,__INTEL_COMPILER
|
||||
ibm: __xlc__,__xlC__,__IBMC__,__IBMCPP__
|
||||
pathscale: __PATHCC__,__PATHSCALE__
|
||||
clang: __clang__
|
||||
gnu: __GNUC__
|
||||
sun: __SUNPRO_C,__SUNPRO_CC
|
||||
hp: __HP_cc,__HP_aCC
|
||||
dec: __DECC,__DECCXX,__DECC_VER,__DECCXX_VER
|
||||
borland: __BORLANDC__,__TURBOC__
|
||||
comeau: __COMO__
|
||||
cray: _CRAYC
|
||||
kai: __KCC
|
||||
lcc: __LCC__
|
||||
sgi: __sgi,sgi
|
||||
microsoft: _MSC_VER
|
||||
metrowerks: __MWERKS__
|
||||
watcom: __WATCOMC__
|
||||
portland: __PGI
|
||||
unknown: UNKNOWN"
|
||||
for ventest in $vendors; do
|
||||
case $ventest in
|
||||
*:) vendor=$ventest; continue ;;
|
||||
*) vencpp="defined("`echo $ventest | sed 's/,/) || defined(/g'`")" ;;
|
||||
esac
|
||||
AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[
|
||||
#if !($vencpp)
|
||||
thisisanerror;
|
||||
#endif
|
||||
])], [break])
|
||||
done
|
||||
ax_cv_[]_AC_LANG_ABBREV[]_compiler_vendor=`echo $vendor | cut -d: -f1`
|
||||
])
|
||||
])
|
288
Gem/m4/ax_pthread.m4
Normal file
288
Gem/m4/ax_pthread.m4
Normal file
|
@ -0,0 +1,288 @@
|
|||
# ===========================================================================
|
||||
# http://www.gnu.org/software/autoconf-archive/ax_pthread.html
|
||||
# ===========================================================================
|
||||
#
|
||||
# SYNOPSIS
|
||||
#
|
||||
# AX_PTHREAD([ACTION-IF-FOUND[, ACTION-IF-NOT-FOUND]])
|
||||
#
|
||||
# DESCRIPTION
|
||||
#
|
||||
# This macro figures out how to build C programs using POSIX threads. It
|
||||
# sets the PTHREAD_LIBS output variable to the threads library and linker
|
||||
# flags, and the PTHREAD_CFLAGS output variable to any special C compiler
|
||||
# flags that are needed. (The user can also force certain compiler
|
||||
# flags/libs to be tested by setting these environment variables.)
|
||||
#
|
||||
# Also sets PTHREAD_CC to any special C compiler that is needed for
|
||||
# multi-threaded programs (defaults to the value of CC otherwise). (This
|
||||
# is necessary on AIX to use the special cc_r compiler alias.)
|
||||
#
|
||||
# NOTE: You are assumed to not only compile your program with these flags,
|
||||
# but also link it with them as well. e.g. you should link with
|
||||
# $PTHREAD_CC $CFLAGS $PTHREAD_CFLAGS $LDFLAGS ... $PTHREAD_LIBS $LIBS
|
||||
#
|
||||
# If you are only building threads programs, you may wish to use these
|
||||
# variables in your default LIBS, CFLAGS, and CC:
|
||||
#
|
||||
# LIBS="$PTHREAD_LIBS $LIBS"
|
||||
# CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
|
||||
# CC="$PTHREAD_CC"
|
||||
#
|
||||
# In addition, if the PTHREAD_CREATE_JOINABLE thread-attribute constant
|
||||
# has a nonstandard name, defines PTHREAD_CREATE_JOINABLE to that name
|
||||
# (e.g. PTHREAD_CREATE_UNDETACHED on AIX).
|
||||
#
|
||||
# ACTION-IF-FOUND is a list of shell commands to run if a threads library
|
||||
# is found, and ACTION-IF-NOT-FOUND is a list of commands to run it if it
|
||||
# is not found. If ACTION-IF-FOUND is not specified, the default action
|
||||
# will define HAVE_PTHREADS.
|
||||
#
|
||||
# Please let the authors know if this macro fails on any platform, or if
|
||||
# you have any other suggestions or comments. This macro was based on work
|
||||
# by SGJ on autoconf scripts for FFTW (http://www.fftw.org/) (with help
|
||||
# from M. Frigo), as well as ac_pthread and hb_pthread macros posted by
|
||||
# Alejandro Forero Cuervo to the autoconf macro repository. We are also
|
||||
# grateful for the helpful feedback of numerous users.
|
||||
#
|
||||
# LICENSE
|
||||
#
|
||||
# Copyright (c) 2008 Steven G. Johnson <stevenj@alum.mit.edu>
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License as published by the
|
||||
# Free Software Foundation, either version 3 of the License, or (at your
|
||||
# option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful, but
|
||||
# WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
|
||||
# Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License along
|
||||
# with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
# As a special exception, the respective Autoconf Macro's copyright owner
|
||||
# gives unlimited permission to copy, distribute and modify the configure
|
||||
# scripts that are the output of Autoconf when processing the Macro. You
|
||||
# need not follow the terms of the GNU General Public License when using
|
||||
# or distributing such scripts, even though portions of the text of the
|
||||
# Macro appear in them. The GNU General Public License (GPL) does govern
|
||||
# all other use of the material that constitutes the Autoconf Macro.
|
||||
#
|
||||
# This special exception to the GPL applies to versions of the Autoconf
|
||||
# Macro released by the Autoconf Archive. When you make and distribute a
|
||||
# modified version of the Autoconf Macro, you may extend this special
|
||||
# exception to the GPL to apply to your modified version as well.
|
||||
|
||||
#serial 7
|
||||
|
||||
AU_ALIAS([ACX_PTHREAD], [AX_PTHREAD])
|
||||
AC_DEFUN([AX_PTHREAD], [
|
||||
AC_REQUIRE([AC_CANONICAL_HOST])
|
||||
AC_LANG_SAVE
|
||||
AC_LANG_C
|
||||
ax_pthread_ok=no
|
||||
|
||||
# We used to check for pthread.h first, but this fails if pthread.h
|
||||
# requires special compiler flags (e.g. on True64 or Sequent).
|
||||
# It gets checked for in the link test anyway.
|
||||
|
||||
# First of all, check if the user has set any of the PTHREAD_LIBS,
|
||||
# etcetera environment variables, and if threads linking works using
|
||||
# them:
|
||||
if test x"$PTHREAD_LIBS$PTHREAD_CFLAGS" != x; then
|
||||
save_CFLAGS="$CFLAGS"
|
||||
CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
|
||||
save_LIBS="$LIBS"
|
||||
LIBS="$PTHREAD_LIBS $LIBS"
|
||||
AC_MSG_CHECKING([for pthread_join in LIBS=$PTHREAD_LIBS with
|
||||
CFLAGS=$PTHREAD_CFLAGS])
|
||||
AC_TRY_LINK_FUNC(pthread_join, ax_pthread_ok=yes)
|
||||
AC_MSG_RESULT($ax_pthread_ok)
|
||||
if test x"$ax_pthread_ok" = xno; then
|
||||
PTHREAD_LIBS=""
|
||||
PTHREAD_CFLAGS=""
|
||||
fi
|
||||
LIBS="$save_LIBS"
|
||||
CFLAGS="$save_CFLAGS"
|
||||
fi
|
||||
|
||||
# We must check for the threads library under a number of different
|
||||
# names; the ordering is very important because some systems
|
||||
# (e.g. DEC) have both -lpthread and -lpthreads, where one of the
|
||||
# libraries is broken (non-POSIX).
|
||||
|
||||
# Create a list of thread flags to try. Items starting with a "-" are
|
||||
# C compiler flags, and other items are library names, except for "none"
|
||||
# which indicates that we try without any flags at all, and "pthread-config"
|
||||
# which is a program returning the flags for the Pth emulation library.
|
||||
|
||||
ax_pthread_flags="pthreads none -Kthread -kthread lthread -pthread -pthreads
|
||||
-mthreads pthread --thread-safe -mt pthread-config"
|
||||
|
||||
# The ordering *is* (sometimes) important. Some notes on the
|
||||
# individual items follow:
|
||||
|
||||
# pthreads: AIX (must check this before -lpthread)
|
||||
# none: in case threads are in libc; should be tried before -Kthread and
|
||||
# other compiler flags to prevent continual compiler warnings
|
||||
# -Kthread: Sequent (threads in libc, but -Kthread needed for pthread.h)
|
||||
# -kthread: FreeBSD kernel threads (preferred to -pthread since SMP-able)
|
||||
# lthread: LinuxThreads port on FreeBSD (also preferred to -pthread)
|
||||
# -pthread: Linux/gcc (kernel threads), BSD/gcc (userland threads)
|
||||
# -pthreads: Solaris/gcc
|
||||
# -mthreads: Mingw32/gcc, Lynx/gcc
|
||||
# -mt: Sun Workshop C (may only link SunOS threads [-lthread], but it
|
||||
# doesn't hurt to check since this sometimes defines pthreads too;
|
||||
# also defines -D_REENTRANT)
|
||||
# ... -mt is also the pthreads flag for HP/aCC
|
||||
# pthread: Linux, etcetera
|
||||
# --thread-safe: KAI C++
|
||||
# pthread-config: use pthread-config program (for GNU Pth library)
|
||||
|
||||
case "${host_cpu}-${host_os}" in
|
||||
*solaris*)
|
||||
|
||||
# On Solaris (at least, for some versions), libc contains stubbed
|
||||
# (non-functional) versions of the pthreads routines, so link-based
|
||||
# tests will erroneously succeed. (We need to link with -pthreads/-mt/
|
||||
# -lpthread.) (The stubs are missing pthread_cleanup_push, or rather
|
||||
# a function called by this macro, so we could check for that, but
|
||||
# who knows whether they'll stub that too in a future libc.) So,
|
||||
# we'll just look for -pthreads and -lpthread first:
|
||||
|
||||
ax_pthread_flags="-pthreads pthread -mt -pthread $ax_pthread_flags"
|
||||
;;
|
||||
|
||||
*-darwin*)
|
||||
acx_pthread_flags="-pthread $acx_pthread_flags"
|
||||
;;
|
||||
esac
|
||||
|
||||
if test x"$ax_pthread_ok" = xno; then
|
||||
for flag in $ax_pthread_flags; do
|
||||
|
||||
case $flag in
|
||||
none)
|
||||
AC_MSG_CHECKING([whether pthreads work without any flags])
|
||||
;;
|
||||
|
||||
-*)
|
||||
AC_MSG_CHECKING([whether pthreads work with $flag])
|
||||
PTHREAD_CFLAGS="$flag"
|
||||
;;
|
||||
|
||||
pthread-config)
|
||||
AC_CHECK_PROG(ax_pthread_config, pthread-config, yes, no)
|
||||
if test x"$ax_pthread_config" = xno; then continue; fi
|
||||
PTHREAD_CFLAGS="`pthread-config --cflags`"
|
||||
PTHREAD_LIBS="`pthread-config --ldflags` `pthread-config
|
||||
--libs`"
|
||||
;;
|
||||
|
||||
*)
|
||||
AC_MSG_CHECKING([for the pthreads library -l$flag])
|
||||
PTHREAD_LIBS="-l$flag"
|
||||
;;
|
||||
esac
|
||||
|
||||
save_LIBS="$LIBS"
|
||||
save_CFLAGS="$CFLAGS"
|
||||
LIBS="$PTHREAD_LIBS $LIBS"
|
||||
CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
|
||||
|
||||
# Check for various functions. We must include pthread.h,
|
||||
# since some functions may be macros. (On the Sequent, we
|
||||
# need a special flag -Kthread to make this header compile.)
|
||||
# We check for pthread_join because it is in -lpthread on IRIX
|
||||
# while pthread_create is in libc. We check for pthread_attr_init
|
||||
# due to DEC craziness with -lpthreads. We check for
|
||||
# pthread_cleanup_push because it is one of the few pthread
|
||||
# functions on Solaris that doesn't have a non-functional libc stub.
|
||||
# We try pthread_create on general principles.
|
||||
AC_TRY_LINK([#include <pthread.h>
|
||||
static void routine(void* a) {a=0;}
|
||||
static void* start_routine(void* a) {return a;}],
|
||||
[pthread_t th; pthread_attr_t attr;
|
||||
pthread_join(th, 0);
|
||||
pthread_attr_init(&attr);
|
||||
pthread_cleanup_push(routine, 0);
|
||||
pthread_create(&th,0,start_routine,0);
|
||||
pthread_cleanup_pop(0); ],
|
||||
[ax_pthread_ok=yes])
|
||||
|
||||
LIBS="$save_LIBS"
|
||||
CFLAGS="$save_CFLAGS"
|
||||
|
||||
AC_MSG_RESULT($ax_pthread_ok)
|
||||
if test "x$ax_pthread_ok" = xyes; then
|
||||
break;
|
||||
fi
|
||||
|
||||
PTHREAD_LIBS=""
|
||||
PTHREAD_CFLAGS=""
|
||||
done
|
||||
fi
|
||||
|
||||
# Various other checks:
|
||||
if test "x$ax_pthread_ok" = xyes; then
|
||||
save_LIBS="$LIBS"
|
||||
LIBS="$PTHREAD_LIBS $LIBS"
|
||||
save_CFLAGS="$CFLAGS"
|
||||
CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
|
||||
|
||||
# Detect AIX lossage: JOINABLE attribute is called UNDETACHED.
|
||||
AC_MSG_CHECKING([for joinable pthread attribute])
|
||||
attr_name=unknown
|
||||
for attr in PTHREAD_CREATE_JOINABLE PTHREAD_CREATE_UNDETACHED; do
|
||||
AC_TRY_LINK([#include <pthread.h>], [int attr=$attr; return attr;],
|
||||
[attr_name=$attr; break])
|
||||
done
|
||||
AC_MSG_RESULT($attr_name)
|
||||
if test "$attr_name" != PTHREAD_CREATE_JOINABLE; then
|
||||
AC_DEFINE_UNQUOTED(PTHREAD_CREATE_JOINABLE, $attr_name,
|
||||
[Define to necessary symbol if this constant
|
||||
uses a non-standard name on your system.])
|
||||
fi
|
||||
|
||||
AC_MSG_CHECKING([if more special flags are required for pthreads])
|
||||
flag=no
|
||||
case "${host_cpu}-${host_os}" in
|
||||
*-aix* | *-freebsd* | *-darwin*) flag="-D_THREAD_SAFE";;
|
||||
*solaris* | *-osf* | *-hpux*) flag="-D_REENTRANT";;
|
||||
esac
|
||||
AC_MSG_RESULT(${flag})
|
||||
if test "x$flag" != xno; then
|
||||
PTHREAD_CFLAGS="$flag $PTHREAD_CFLAGS"
|
||||
fi
|
||||
|
||||
LIBS="$save_LIBS"
|
||||
CFLAGS="$save_CFLAGS"
|
||||
|
||||
# More AIX lossage: must compile with xlc_r or cc_r
|
||||
if test x"$GCC" != xyes; then
|
||||
AC_CHECK_PROGS(PTHREAD_CC, xlc_r cc_r, ${CC})
|
||||
else
|
||||
PTHREAD_CC=$CC
|
||||
fi
|
||||
else
|
||||
PTHREAD_CC="$CC"
|
||||
fi
|
||||
|
||||
AC_SUBST(PTHREAD_LIBS)
|
||||
AC_SUBST(PTHREAD_CFLAGS)
|
||||
AC_SUBST(PTHREAD_CC)
|
||||
|
||||
# Finally, execute ACTION-IF-FOUND/ACTION-IF-NOT-FOUND:
|
||||
if test x"$ax_pthread_ok" = xyes; then
|
||||
ifelse([$1],,AC_DEFINE(HAVE_PTHREADS,1,[Define if you have POSIX threads
|
||||
libraries and header files.]),[$1])
|
||||
:
|
||||
else
|
||||
ax_pthread_ok=no
|
||||
$2
|
||||
fi
|
||||
AC_LANG_RESTORE
|
||||
])dnl AX_PTHREAD
|
||||
|
506
Gem/m4/gem.m4
Normal file
506
Gem/m4/gem.m4
Normal file
|
@ -0,0 +1,506 @@
|
|||
dnl Copyright (C) 2005 IOhannes m zmölnig
|
||||
dnl This file is free software; IOhannes m zmölnig
|
||||
dnl gives unlimited permission to copy and/or distribute it,
|
||||
dnl with or without modifications, as long as this notice is preserved.
|
||||
# GEM_ARG_WITH(WITHARG, [TEXT], [FORCE])
|
||||
# enables the "--with-WITHARG" flag; if FORCE is non-empty and no value is
|
||||
# set by the user, the default value "yes" is assigned to with_WITHARG
|
||||
# --------------------------------------------------------------
|
||||
AC_DEFUN([GEM_ARG_WITH],
|
||||
[
|
||||
if test "x$with_ALL" = "xyes" && test "x${with_$1}" = "x"; then with_$1="yes"; fi
|
||||
if test "x$with_ALL" = "xno" && test "x${with_$1}" = "x"; then with_$1="no"; fi
|
||||
|
||||
AC_ARG_WITH([$1],
|
||||
AC_HELP_STRING([--without-$1], [disable $1-lib ($2)]),,[
|
||||
if test "x$3" != "x"; then with_$1="yes"; fi
|
||||
])
|
||||
])# GEM_ARG_WITH
|
||||
# inverse of GEM_ARG_WITH
|
||||
AC_DEFUN([GEM_ARG_WITHOUT],
|
||||
[AC_ARG_WITH([$1],
|
||||
AC_HELP_STRING([--with-$1], [enable $1-lib ($2)]),,[
|
||||
if test "x$3" = "xforce"; then with_$1="no"; fi
|
||||
])
|
||||
])# GEM_ARG_WITHOUT
|
||||
|
||||
# same as GEM_ARG_WITH but with "enable"
|
||||
AC_DEFUN([GEM_ARG_ENABLE],
|
||||
[AC_ARG_ENABLE([$1],
|
||||
AC_HELP_STRING([--disable-$1], [disable $1 ($2)]),,[
|
||||
if test "x$3" != "x"; then enable_$1="yes"; fi
|
||||
])
|
||||
])# GEM_ARG_ENABLE
|
||||
|
||||
# inverse of GEM_ARG_ENABLE
|
||||
AC_DEFUN([GEM_ARG_DISABLE],
|
||||
[AC_ARG_ENABLE([$1],
|
||||
AC_HELP_STRING([--enable-$1], [enable $1 ($2)]),,[
|
||||
if test "x$3" != "x"; then enable_$1="no"; fi
|
||||
])
|
||||
])# GEM_ARG_DISABLE
|
||||
|
||||
|
||||
AC_DEFUN([GEM_TARGET], [
|
||||
define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./+-],
|
||||
[ABCDEFGHIJKLMNOPQRSTUVWXYZ____])])
|
||||
AC_CONFIG_FILES([src/$1/Makefile])
|
||||
|
||||
AC_ARG_ENABLE([$1],
|
||||
AC_HELP_STRING([--disable-$1], [disable $1-objects]),
|
||||
[
|
||||
if test "x$enableval" != "xno"; then
|
||||
AC_MSG_RESULT([building Gem with $1-objects])
|
||||
target_[]NAME="yes"
|
||||
else
|
||||
AC_MSG_RESULT([building Gem without $1-objects])
|
||||
target_[]NAME="no"
|
||||
fi
|
||||
],
|
||||
[
|
||||
AC_MSG_RESULT([building Gem with $1-objects])
|
||||
target_[]NAME="yes"
|
||||
])
|
||||
AM_CONDITIONAL(TARGET_[]NAME, [test "x$target_[]NAME" != "xno"])
|
||||
undefine([NAME])
|
||||
])# GEM_TARGET
|
||||
|
||||
AC_DEFUN([GEM_TARGET_DISABLED], [
|
||||
define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./+-],
|
||||
[ABCDEFGHIJKLMNOPQRSTUVWXYZ____])])
|
||||
|
||||
AC_CONFIG_FILES([src/$1/Makefile])
|
||||
AC_ARG_ENABLE([$1],
|
||||
AC_HELP_STRING([--enable-$1], [enable $1-objects]),
|
||||
[
|
||||
if test "x$enableval" != "xyes"; then
|
||||
AC_MSG_RESULT([building Gem without $1-objects])
|
||||
target_[]NAME="no"
|
||||
else
|
||||
AC_MSG_RESULT([building Gem with $1-objects])
|
||||
target_[]NAME="yes"
|
||||
fi
|
||||
],
|
||||
[
|
||||
AC_MSG_RESULT([building Gem without $1-objects])
|
||||
target_[]NAME="no"
|
||||
])
|
||||
AM_CONDITIONAL(TARGET_[]NAME, [test "x$target_[]NAME" != "xno"])
|
||||
undefine([NAME])
|
||||
])# GEM_TARGET_DISABLED
|
||||
|
||||
|
||||
|
||||
# GEM_CHECK_LIB(NAME, LIBRARY, FUNCTION, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND], [ADDITIONAL_LIBS], [HELP-TEXT], [DEFAULT-WITH_VALUE])
|
||||
#
|
||||
## this automatically adds the option "--without-NAME" to disable the checking for the library
|
||||
## additionally it gives the options "--with-NAME-includes" and "--with-NAME-libs",
|
||||
## to manually add searchpaths for the include-files and libraries
|
||||
## the only check performed on these paths is whether they are real paths
|
||||
AC_DEFUN([GEM_CHECK_LIB],
|
||||
[
|
||||
define([Name],[translit([$1],[./-+], [____])])
|
||||
define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./+-],
|
||||
[ABCDEFGHIJKLMNOPQRSTUVWXYZ____])])
|
||||
AC_SUBST(GEM_LIB_[]NAME[]_CFLAGS)
|
||||
AC_SUBST(GEM_LIB_[]NAME[]_LIBS)
|
||||
|
||||
AC_ARG_WITH([Name],
|
||||
AC_HELP_STRING([--without-[]Name], [disable Name ($7)]))
|
||||
AC_ARG_WITH([]Name-includes,
|
||||
AC_HELP_STRING([--with-[]Name-includes=/path/to/[]Name/include/], [include path for Name]))
|
||||
AC_ARG_WITH([]Name-libs,
|
||||
AC_HELP_STRING([--with-[]Name-libs=/path/to/[]Name/lib/], [library path for Name]))
|
||||
|
||||
if test "x$with_[]Name" = "x"; then with_[]Name="$8"; fi
|
||||
|
||||
if test "x$with_ALL" = "xyes" && test "x$with_[]Name" = "x"; then with_[]Name="yes"; fi
|
||||
if test "x$with_ALL" = "xno" && test "x$with_[]Name" = "x"; then with_[]Name="no"; fi
|
||||
|
||||
tmp_gem_check_lib_cppflags="$CPPFLAGS"
|
||||
tmp_gem_check_lib_cflags="$CFLAGS"
|
||||
tmp_gem_check_lib_cxxflags="$CXXFLAGS"
|
||||
tmp_gem_check_lib_ldflags="$LDFLAGS"
|
||||
tmp_gem_check_lib_libs="$LIBS"
|
||||
|
||||
if test x$with_[]Name = "xno"; then
|
||||
have_[]Name="no (forced)"
|
||||
else
|
||||
if test -d "$with_[]Name[]_includes"; then
|
||||
CFLAGS="-I$with_[]Name[]_includes $CFLAGS"
|
||||
CPPFLAGS="-I$with_[]Name[]_includes $CPPFLAGS"
|
||||
CXXFLAGS="-I$with_[]Name[]_includes $CXXFLAGS"
|
||||
fi
|
||||
if test -d "$with_[]Name[]_libs"; then
|
||||
LIBS="-L$with_[]Name[]_libs $LIBS"
|
||||
fi
|
||||
AS_LITERAL_IF([$2],
|
||||
[AS_VAR_PUSHDEF([ac_Lib], [ac_cv_lib_$2_$3])],
|
||||
[AS_VAR_PUSHDEF([ac_Lib], [ac_cv_lib_$2''_$3])])dnl
|
||||
|
||||
## unset ac_Lib is possible
|
||||
(unset ac_Lib) >/dev/null 2>&1 && unset ac_Lib
|
||||
|
||||
## 1st we check, whether pkg-config knows something about this package
|
||||
dnl PKG_CHECK_MODULES(AS_TR_CPP(PKG_$1), $1,AS_VAR_SET(acLib)yes, AC_CHECK_LIB([$2],[$3],,,[$6]))
|
||||
PKG_CHECK_MODULES(AS_TR_CPP(PKG_$1), $1,AS_VAR_SET(ac_Lib)yes,:)
|
||||
|
||||
if test "x$ac_Lib" != "xyes"; then
|
||||
## pkg-config has failed
|
||||
## check whether there is a ${1}-config lying around
|
||||
AC_MSG_CHECKING([for $1-config])
|
||||
gem_check_lib_pkgconfig_[]NAME=""
|
||||
if test "x$1" != "x"; then
|
||||
gem_check_lib_pkgconfig_[]NAME="$1"-config
|
||||
if which -- "$gem_check_lib_pkgconfig_[]NAME" >/dev/null 2>&1; then
|
||||
gem_check_lib_pkgconfig_[]NAME=`which "$1"-config`
|
||||
AC_MSG_RESULT([yes])
|
||||
else
|
||||
gem_check_lib_pkgconfig_[]NAME=""
|
||||
AC_MSG_RESULT([no])
|
||||
fi
|
||||
fi
|
||||
|
||||
if test "x$gem_check_lib_pkgconfig_[]NAME" != "x"; then
|
||||
## fabulous, we have ${1}-config
|
||||
## lets see what it reveals
|
||||
|
||||
## if PKG_<name>_CFLAGS is undefined, we try to get it from ${1}-config
|
||||
if test "x$PKG_[]NAME[]_CFLAGS" = "x"; then
|
||||
if $gem_check_lib_pkgconfig_[]NAME --cflags >/dev/null 2>&1; then
|
||||
PKG_[]NAME[]_CFLAGS=$(${gem_check_lib_pkgconfig_[]NAME} --cflags)
|
||||
PKG_CFLAGS="$PKG_[]NAME[]_CFLAGS $PKG_CFLAGS"
|
||||
fi
|
||||
fi
|
||||
|
||||
## if PKG_<name>_LIBS is undefined, we try to get it from ${1}-config
|
||||
## we first try to get it via "--plugin-libs" (this is almost certainly what we want)
|
||||
## if that fails we try to get it via "--libs"
|
||||
if test "x$PKG_[]NAME[]_LIBS" = "x"; then
|
||||
if $gem_check_lib_pkgconfig_[]NAME --plugin-libs >/dev/null 2>&1; then
|
||||
PKG_[]NAME[]_LIBS=$(${gem_check_lib_pkgconfig_[]NAME} --plugin-libs)
|
||||
else
|
||||
if $gem_check_lib_pkgconfig_[]NAME --libs >/dev/null 2>&1; then
|
||||
PKG_[]NAME[]_LIBS=$(${gem_check_lib_pkgconfig_[]NAME} --libs)
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
## if we still don't know about the libs, we finally fall back to AC_CHECK_LIB
|
||||
if test "x${PKG_[]NAME[]_LIBS}" = "x"; then
|
||||
AC_CHECK_LIB([$2],[$3],,,[$6])
|
||||
PKG_[]NAME[]_LIBS="-l$2"
|
||||
else
|
||||
PKG_LIBS="${PKG_[]NAME[]_LIBS} ${PKG_LIBS}"
|
||||
fi
|
||||
fi
|
||||
|
||||
AS_IF([test "x$ac_Lib" != "xno"],
|
||||
[
|
||||
AC_DEFINE_UNQUOTED(AS_TR_CPP(HAVE_LIB$1),[1], [$7])
|
||||
AC_DEFINE_UNQUOTED(AS_TR_CPP(HAVE_LIB$2),[1], [$7])
|
||||
AC_DEFINE_UNQUOTED(AS_TR_CPP(HAVE_$3),[1], [Define to 1 if you have the `$3' function.])
|
||||
GEM_LIB_[]NAME[]_CFLAGS=${PKG_[]NAME[]_CFLAGS}
|
||||
GEM_LIB_[]NAME[]_LIBS=${PKG_[]NAME[]_LIBS}
|
||||
dnl PKG_LIBS="$6 ${PKG_LIBS}"
|
||||
have_[]Name="yes"
|
||||
dnl turn of further checking for this package
|
||||
with_[]Name="no"
|
||||
[$4]
|
||||
],[
|
||||
have_[]Name="no"
|
||||
[$5]
|
||||
])
|
||||
AS_VAR_POPDEF([ac_Lib])dnl
|
||||
|
||||
fi[]dnl
|
||||
|
||||
AM_CONDITIONAL(HAVE_LIB_[]NAME, [test "x${have_[]Name}" = "xyes"])
|
||||
# restore original flags
|
||||
CPPFLAGS="$tmp_gem_check_lib_cppflags"
|
||||
CFLAGS="$tmp_gem_check_lib_cflags"
|
||||
CXXFLAGS="$tmp_gem_check_lib_cxxflags"
|
||||
LDFLAGS="$tmp_gem_check_lib_ldflags"
|
||||
LIBS="$tmp_gem_check_lib_libs"
|
||||
|
||||
|
||||
undefine([Name])
|
||||
undefine([NAME])
|
||||
])# GEM_CHECK_LIB
|
||||
|
||||
# GEM_CHECK_CXXFLAGS(ADDITIONAL-CXXFLAGS, ACTION-IF-FOUND, ACTION-IF-NOT-FOUND)
|
||||
#
|
||||
# checks whether the $(CXX) compiler accepts the ADDITIONAL-CXXFLAGS
|
||||
# if so, they are added to the CXXFLAGS
|
||||
AC_DEFUN([GEM_CHECK_CXXFLAGS],
|
||||
[
|
||||
AC_MSG_CHECKING([whether compiler accepts "$1"])
|
||||
cat > conftest.c++ << EOF
|
||||
int main(){
|
||||
return 0;
|
||||
}
|
||||
EOF
|
||||
if $CXX $CPPFLAGS $CXXFLAGS -o conftest.o conftest.c++ [$1] > /dev/null 2>&1
|
||||
then
|
||||
AC_MSG_RESULT([yes])
|
||||
CXXFLAGS="${CXXFLAGS} [$1]"
|
||||
[$2]
|
||||
else
|
||||
AC_MSG_RESULT([no])
|
||||
[$3]
|
||||
fi
|
||||
])# GEM_CHECK_CXXFLAGS
|
||||
|
||||
# GEM_CHECK_FRAMEWORK(FRAMEWORK, ACTION-IF-FOUND, ACTION-IF-NOT-FOUND)
|
||||
#
|
||||
#
|
||||
AC_DEFUN([GEM_CHECK_FRAMEWORK],
|
||||
[
|
||||
define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./+-],
|
||||
[ABCDEFGHIJKLMNOPQRSTUVWXYZ____])])
|
||||
AC_SUBST(GEM_FRAMEWORK_[]NAME[])
|
||||
|
||||
AC_MSG_CHECKING([for "$1"-framework])
|
||||
|
||||
gem_check_ldflags_org="${LDFLAGS}"
|
||||
LDFLAGS="-framework [$1] ${LDFLAGS}"
|
||||
|
||||
AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])], [gem_check_ldflags_success="yes"],[gem_check_ldflags_success="no"])
|
||||
|
||||
if test "x$gem_check_ldflags_success" = "xyes"; then
|
||||
AC_MSG_RESULT([yes])
|
||||
AC_DEFINE_UNQUOTED(AS_TR_CPP(HAVE_$1), [1], [framework $1])
|
||||
AC_DEFINE_UNQUOTED(AS_TR_CPP(HAVE_GEM_FRAMEWORK_$1), [1], [framework $1])
|
||||
GEM_FRAMEWORK_[]NAME[]="-framework [$1]"
|
||||
[$2]
|
||||
else
|
||||
AC_MSG_RESULT([no])
|
||||
LDFLAGS="$gem_check_ldflags_org"
|
||||
[$3]
|
||||
fi
|
||||
AM_CONDITIONAL(HAVE_FRAMEWORK_[]NAME, [test "x$gem_check_ldflags_success" = "xyes"])
|
||||
undefine([NAME])
|
||||
])# GEM_CHECK_FRAMEWORK
|
||||
|
||||
# GEM_CHECK_LDFLAGS(ADDITIONAL-LDFLAGS, ACTION-IF-FOUND, ACTION-IF-NOT-FOUND)
|
||||
#
|
||||
# checks whether the $(LD) linker accepts the ADDITIONAL-LDFLAGS
|
||||
# if so, they are added to the LDFLAGS
|
||||
AC_DEFUN([GEM_CHECK_LDFLAGS],
|
||||
[
|
||||
AC_MSG_CHECKING([whether linker accepts "$1"])
|
||||
gem_check_ldflags_org="${LDFLAGS}"
|
||||
LDFLAGS="$1 ${LDFLAGS}"
|
||||
|
||||
AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])], [gem_check_ldflags_success="yes"],[gem_check_ldflags_success="no"])
|
||||
|
||||
if test "x$gem_check_ldflags_success" = "xyes"; then
|
||||
AC_MSG_RESULT([yes])
|
||||
[$2]
|
||||
else
|
||||
AC_MSG_RESULT([no])
|
||||
LDFLAGS="$gem_check_ldflags_org"
|
||||
[$3]
|
||||
fi
|
||||
])# GEM_CHECK_LDFLAGS
|
||||
|
||||
|
||||
AC_DEFUN([GEM_CHECK_FAT],
|
||||
[
|
||||
AC_ARG_ENABLE(fat-binary,
|
||||
[ --enable-fat-binary=ARCHS
|
||||
build an Apple Multi Architecture Binary (MAB);
|
||||
ARCHS is a comma-delimited list of architectures for
|
||||
which to build; if ARCHS is omitted, then the package
|
||||
will be built for all architectures supported by the
|
||||
platform (e.g. "ppc,i386" for MacOS/X and Darwin);
|
||||
if this option is disabled or omitted entirely, then
|
||||
the package will be built only for the target
|
||||
platform; when building multiple architectures,
|
||||
dependency-tracking must be disabled],
|
||||
[fat_binary=$enableval], [fat_binary=no])
|
||||
if test "$fat_binary" != no; then
|
||||
AC_MSG_CHECKING([target architectures])
|
||||
|
||||
# Respect TARGET_ARCHS setting from environment if available.
|
||||
if test -z "$TARGET_ARCHS"; then
|
||||
# Respect ARCH given to --enable-fat-binary if present.
|
||||
if test "$fat_binary" != yes; then
|
||||
TARGET_ARCHS=`echo "$fat_binary" | tr ',' ' '`
|
||||
else
|
||||
# Choose a default set of architectures based upon platform.
|
||||
TARGET_ARCHS="ppc i386"
|
||||
fi
|
||||
fi
|
||||
AC_MSG_RESULT([$TARGET_ARCHS])
|
||||
|
||||
define([Name],[translit([$1],[./-], [___])])
|
||||
# /usr/lib/arch_tool -archify_list $TARGET_ARCHS
|
||||
[]Name=""
|
||||
tmp_arch_count=0
|
||||
for archs in $TARGET_ARCHS
|
||||
do
|
||||
[]Name="$[]Name -arch $archs"
|
||||
tmp_arch_count=$((tmp_arch_count+1))
|
||||
done
|
||||
|
||||
if test "$tmp_arch_count" -gt 1; then
|
||||
if test "x$enable_dependency_tracking" != xno; then
|
||||
AC_MSG_ERROR([when building for multiple architectures, you MUST turn off dependency-tracking])
|
||||
fi
|
||||
fi
|
||||
|
||||
if test "x$[]Name" != "x"; then
|
||||
tmp_arch_cflags="$CFLAGS"
|
||||
tmp_arch_cxxflags="$CXXFLAGS"
|
||||
GEM_CHECK_CXXFLAGS($[]Name,,[]Name="")
|
||||
[]Name[]_CXXFLAGS+=$[]Name
|
||||
CFLAGS="$tmp_arch_cflags"
|
||||
CXXFLAGS="$tmp_arch_cxxflags"
|
||||
fi
|
||||
|
||||
if test "x$[]Name" != "x"; then
|
||||
tmp_arch_ldflags="$LDFLAGS"
|
||||
GEM_CHECK_LDFLAGS($[]Name,,[]Name="")
|
||||
[]Name[]_LDFLAGS+=$[]Name
|
||||
LDFLAGS="$tmp_arch_ldflags"
|
||||
fi
|
||||
|
||||
undefine([Name])
|
||||
fi
|
||||
])# GEM_CHECK_FAT
|
||||
|
||||
# GEM_CHECK_RTE()
|
||||
#
|
||||
# checks for RTE (currently: Pd)
|
||||
# if so, they are added to the LDFLAGS, CFLAGS and whatelse
|
||||
AC_DEFUN([GEM_CHECK_RTE],
|
||||
[
|
||||
ARCH=$(uname -m)
|
||||
KERN=$(uname -s)
|
||||
IEM_OPERATING_SYSTEM
|
||||
|
||||
AC_SUBST(GEM_RTE_CFLAGS)
|
||||
AC_SUBST(GEM_RTE_LIBS)
|
||||
AC_SUBST(GEM_RTE)
|
||||
|
||||
if test "x${libdir}" = "x\${exec_prefix}/lib"; then
|
||||
libdir='${exec_prefix}/lib/pd/extra'
|
||||
fi
|
||||
|
||||
tmp_rte_cppflags="$CPPFLAGS"
|
||||
tmp_rte_cflags="$CFLAGS"
|
||||
tmp_rte_cxxflags="$CXXFLAGS"
|
||||
tmp_rte_ldflags="$LDFLAGS"
|
||||
tmp_rte_libs="$LIBS"
|
||||
|
||||
GEM_RTE_CFLAGS="-DPD"
|
||||
GEM_RTE_LIBS=""
|
||||
GEM_RTE="Pure Data"
|
||||
|
||||
AC_ARG_WITH([pd],
|
||||
AS_HELP_STRING([--with-pd=<path/to/pd>],[where to find pd-binary (./bin/pd.exe) and pd-sources]))
|
||||
|
||||
## some default paths
|
||||
if test "x${with_pd}" = "x"; then
|
||||
case $host_os in
|
||||
*darwin*)
|
||||
if test -d "/Applications/Pd-extended.app/Contents/Resources"; then with_pd="/Applications/Pd-extended.app/Contents/Resources"; fi
|
||||
if test -d "/Applications/Pd.app/Contents/Resources"; then with_pd="/Applications/Pd.app/Contents/Resources"; fi
|
||||
;;
|
||||
*mingw* | *cygwin*)
|
||||
if test -d "${PROGRAMFILES}/Pd-extended"; then with_pd="${PROGRAMFILES}/Pd-extended"; fi
|
||||
if test -d "${PROGRAMFILES}/pd"; then with_pd="${PROGRAMFILES}/pd"; fi
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
|
||||
if test -d "$with_pd" ; then
|
||||
if test -d "${with_pd}/src" ; then
|
||||
AC_LIB_APPENDTOVAR([GEM_RTE_CFLAGS],"-I${with_pd}/src")
|
||||
elif test -d "${with_pd}/include/pd" ; then
|
||||
AC_LIB_APPENDTOVAR([GEM_RTE_CFLAGS],"-I${with_pd}/include/pd")
|
||||
elif test -d "${with_pd}/include" ; then
|
||||
AC_LIB_APPENDTOVAR([GEM_RTE_CFLAGS],"-I${with_pd}/include")
|
||||
else
|
||||
AC_LIB_APPENDTOVAR([GEM_RTE_CFLAGS],"-I${with_pd}")
|
||||
fi
|
||||
if test -d "${with_pd}/bin" ; then
|
||||
GEM_RTE_LIBS="${GEM_RTE_LIBS}${GEM_RTE_LIBS:+ }-L${with_pd}/bin"
|
||||
else
|
||||
GEM_RTE_LIBS="${GEM_RTE_LIBS}${GEM_RTE_LIBS:+ }-L${with_pd}"
|
||||
fi
|
||||
|
||||
CPPFLAGS="$CPPFLAGS ${GEM_RTE_CFLAGS}"
|
||||
CFLAGS="$CFLAGS ${GEM_RTE_CFLAGS}"
|
||||
CXXFLAGS="$CXXFLAGS ${GEM_RTE_CFLAGS}"
|
||||
LIBS="$LIBS ${GEM_RTE_LIBS}"
|
||||
fi
|
||||
|
||||
AC_CHECK_LIB([:pd.dll], [nullfn], [have_pddll="yes"], [have_pddll="no"])
|
||||
if test "x$have_pddll" = "xyes"; then
|
||||
GEM_RTE_LIBS="${GEM_RTE_LIBS}${GEM_RTE_LIBS:+ }-Xlinker -l:pd.dll"
|
||||
else
|
||||
AC_CHECK_LIB([pd], [nullfn], [GEM_RTE_LIBS="${GEM_RTE_LIBS}${GEM_RTE_LIBS:+ }-lpd"])
|
||||
fi
|
||||
|
||||
AC_CHECK_HEADERS([m_pd.h], [have_pd="yes"], [have_pd="no"])
|
||||
|
||||
dnl LATER check why this doesn't use the --with-pd includes
|
||||
dnl for now it will basically disable anything that needs s_stuff.h if it cannot be found in /usr[/local]/include
|
||||
AC_CHECK_HEADERS([s_stuff.h], [], [],
|
||||
[#ifdef HAVE_M_PD_H
|
||||
# define PD
|
||||
# include "m_pd.h"
|
||||
#endif
|
||||
])
|
||||
|
||||
### this should only be set if Pd has been found
|
||||
# the extension
|
||||
AC_ARG_WITH([extension],
|
||||
AS_HELP_STRING([--with-extension=<ext>],[enforce a certain file-extension (e.g. pd_linux)]))
|
||||
if test "x$with_extension" != "x"; then
|
||||
EXT=$with_extension
|
||||
else
|
||||
case x$host_os in
|
||||
x*darwin*)
|
||||
EXT=pd_darwin
|
||||
;;
|
||||
x*mingw* | x*cygwin*)
|
||||
EXT=dll
|
||||
;;
|
||||
x)
|
||||
dnl just assuming that it is still linux (e.g. x86_64)
|
||||
EXT="pd_linux"
|
||||
;;
|
||||
*)
|
||||
EXT=pd_`echo $host_os | sed -e '/.*/s/-.*//' -e 's/\[.].*//'`
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
GEM_RTE_EXTENSION=$EXT
|
||||
AC_SUBST(GEM_RTE_EXTENSION)
|
||||
|
||||
CPPFLAGS="$tmp_rte_cppflags"
|
||||
CFLAGS="$tmp_rte_cflags"
|
||||
CXXFLAGS="$tmp_rte_cxxflags"
|
||||
LDFLAGS="$tmp_rte_ldflags"
|
||||
LIBS="$tmp_rte_libs"
|
||||
]) # GEM_CHECK_RTE
|
||||
|
||||
|
||||
AC_DEFUN([GEM_CHECK_THREADS],
|
||||
[
|
||||
GEM_ARG_ENABLE([threads], [default: use threads])
|
||||
|
||||
AC_SUBST(GEM_PTHREAD_CFLAGS)
|
||||
AC_SUBST(GEM_PTHREAD_LIBS)
|
||||
|
||||
if test "x$enable_threads" != "xno"; then
|
||||
AX_PTHREAD
|
||||
GEM_THREADS_CFLAGS=""
|
||||
AC_LIB_APPENDTOVAR([GEM_THREADS_CFLAGS], "${PTHREAD_CFLAGS}")
|
||||
GEM_THREADS_LIBS="${GEM_THREADS_LIBS}${GEM_THREADS_LIBS:+ }${PTHREAD_LIBS}"
|
||||
fi
|
||||
])
|
22
Gem/m4/iem_ftgl.m4
Normal file
22
Gem/m4/iem_ftgl.m4
Normal file
|
@ -0,0 +1,22 @@
|
|||
dnl FTGL support
|
||||
dnl
|
||||
dnl Copyright (C) 2011 IOhannes m zmölnig
|
||||
|
||||
|
||||
AC_DEFUN([IEM_CHECK_FTGL],
|
||||
[
|
||||
dnl PKG_CHECK_MODULES(PKG_FT2,freetype2)
|
||||
|
||||
|
||||
GEM_CHECK_LIB([ftgl], [ftgl], [main],,,[-lfreetype],[font support])
|
||||
|
||||
tmp_gem_check_ftgl_cflags="$CFLAGS"
|
||||
tmp_gem_check_ftgl_cxxflags="$CXXFLAGS"
|
||||
|
||||
CFLAGS="$CFLAGS $GEM_LIB_FTGL_CFLAGS"
|
||||
CXXFLAGS="$CXXFLAGS $GEM_LIB_FTGL_CFLAGS"
|
||||
AC_CHECK_HEADERS([FTGL/ftgl.h])
|
||||
|
||||
CFLAGS="$tmp_gem_check_lib_cflags"
|
||||
CXXFLAGS="$tmp_gem_check_lib_cxxflags"
|
||||
]) dnl IEM_CHECK_FTGL
|
132
Gem/m4/iem_opengl.m4
Normal file
132
Gem/m4/iem_opengl.m4
Normal file
|
@ -0,0 +1,132 @@
|
|||
# SYNOPSIS
|
||||
#
|
||||
# IEM_OPENGL
|
||||
#
|
||||
# DESCRIPTION
|
||||
#
|
||||
# some checks for OpenGL-related stuff
|
||||
# basically just a wrapper around Braden McDaniel's ax_check_gl* family (as
|
||||
# found in Gnu's autoconf-archive) with additionally setting am-conditionals HAVE_GL*
|
||||
#
|
||||
# LICENSE
|
||||
#
|
||||
# Copyright (c) 2011 IOhannes m zmölnig <zmoelnig@iem.at>
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License as published by the
|
||||
# Free Software Foundation; either version 2 of the License, or (at your
|
||||
# option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful, but
|
||||
# WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
|
||||
# Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License along
|
||||
# with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
# As a special exception, the respective Autoconf Macro's copyright owner
|
||||
# gives unlimited permission to copy, distribute and modify the configure
|
||||
# scripts that are the output of Autoconf when processing the Macro. You
|
||||
# need not follow the terms of the GNU General Public License when using
|
||||
# or distributing such scripts, even though portions of the text of the
|
||||
# Macro appear in them. The GNU General Public License (GPL) does govern
|
||||
# all other use of the material that constitutes the Autoconf Macro.
|
||||
#
|
||||
# This special exception to the GPL applies to versions of the Autoconf
|
||||
# Macro released by the Autoconf Archive. When you make and distribute a
|
||||
# modified version of the Autoconf Macro, you may extend this special
|
||||
# exception to the GPL to apply to your modified version as well.
|
||||
|
||||
|
||||
AC_DEFUN([IEM_CHECK_GL],
|
||||
[AC_REQUIRE([AX_CHECK_GL])
|
||||
AM_CONDITIONAL(HAVE_GL, [test "x$no_gl" != "xyes"])
|
||||
])
|
||||
|
||||
AC_DEFUN([IEM_CHECK_GLU],
|
||||
[AC_REQUIRE([AX_CHECK_GLU])
|
||||
AM_CONDITIONAL(HAVE_GLU, [test "x$no_glu" != "xyes"])
|
||||
])
|
||||
|
||||
|
||||
AC_DEFUN([IEM_CHECK_GLUT],
|
||||
[AC_REQUIRE([AX_CHECK_GLUT])
|
||||
AM_CONDITIONAL(HAVE_GLUT, [test "x$no_glut" != "xyes"])
|
||||
])
|
||||
|
||||
|
||||
AC_DEFUN([IEM_CHECK_GLX],
|
||||
[
|
||||
AC_CHECK_HEADERS([GL/glx.h],,no_glx=yes)
|
||||
AM_CONDITIONAL(HAVE_GLX, [test "x$no_glx" != "xyes"])
|
||||
AC_SUBST([GLX_CFLAGS])
|
||||
AC_SUBST([GLX_LIBS])
|
||||
])
|
||||
|
||||
|
||||
|
||||
AC_DEFUN([IEM_CHECK_AGL],
|
||||
[
|
||||
GEM_CHECK_FRAMEWORK(AGL)
|
||||
if test "x$gem_check_ldflags_success" != "xyes"; then
|
||||
no_agl="yes"
|
||||
fi
|
||||
AGL_CFLAGS=""
|
||||
AGL_LIBS="${GEM_FRAMEWORK_AGL}"
|
||||
AC_SUBST([AGL_CFLAGS])
|
||||
AC_SUBST([AGL_LIBS])
|
||||
AM_CONDITIONAL(HAVE_AGL, [test "x$no_agl" != "xyes"])
|
||||
])
|
||||
|
||||
|
||||
|
||||
AC_DEFUN([IEM_CHECK_GLEW],
|
||||
[
|
||||
GEM_CHECK_LIB(glew, GLEW, glewInit,,no_glew=yes,,[OpenGL Extension Wrangler library], [no])
|
||||
AM_CONDITIONAL(HAVE_GLEW, [test "x$no_glew" != "xyes"])
|
||||
])
|
||||
|
||||
|
||||
|
||||
dnl # original code in Gem/configure.ac
|
||||
dnl have_gl="no"
|
||||
dnl have_glu="no"
|
||||
dnl
|
||||
dnl GEM_CHECK_FRAMEWORK(OpenGL,
|
||||
dnl [have_opengl_framework="yes" have_gl="yes"],
|
||||
dnl [have_opengl_framework="no" have_gl="no"])
|
||||
dnl
|
||||
dnl # don't need libGL if we have the OpenGL framework
|
||||
dnl if test "x$have_opengl_framework" != "xyes"; then
|
||||
dnl AC_CHECK_LIB(GL,glInitNames)
|
||||
dnl if test "x$ac_cv_lib_GL_glInitNames" = "xyes"; then
|
||||
dnl have_gl="yes"
|
||||
dnl fi
|
||||
dnl
|
||||
dnl AC_CHECK_LIB(GLU,gluLookAt)
|
||||
dnl if test "x$ac_cv_lib_GLU_gluLookAt" = "xyes"; then
|
||||
dnl have_glu="yes"
|
||||
dnl fi
|
||||
dnl fi
|
||||
dnl GEM_CHECK_FRAMEWORK(AGL)
|
||||
dnl if test "x$gem_check_ldflags_success" = "xyes"; then
|
||||
dnl have_glu="yes"
|
||||
dnl fi
|
||||
|
||||
|
||||
dnl have_gl_headers="no"
|
||||
dnl AC_CHECK_HEADER(GL/gl.h,have_gl_headers="yes")
|
||||
dnl AC_CHECK_HEADER(OpenGL/gl.h,have_gl_headers="yes")
|
||||
dnl if test "x$have_gl_headers" != "xyes"; then
|
||||
dnl have_gl="no"
|
||||
dnl fi
|
||||
dnl
|
||||
dnl have_glu_headers="no"
|
||||
dnl AC_CHECK_HEADER(GL/glu.h,have_glu_headers="yes")
|
||||
dnl AC_CHECK_HEADER(OpenGL/glu.h,have_glu_headers="yes")
|
||||
dnl if test "x$have_glu_headers" != "xyes"; then
|
||||
dnl have_glu="no"
|
||||
dnl fi
|
||||
dnl
|
||||
dnl AC_CHECK_HEADERS(GL/glx.h)
|
55
Gem/m4/iem_operatingsystem.m4
Normal file
55
Gem/m4/iem_operatingsystem.m4
Normal file
|
@ -0,0 +1,55 @@
|
|||
dnl try to figure out the target operating system and set some AM-macros accordingly
|
||||
dnl
|
||||
dnl Copyright (C) 2011 IOhannes m zmölnig
|
||||
|
||||
|
||||
AC_DEFUN([IEM_OPERATING_SYSTEM],
|
||||
[
|
||||
AC_CANONICAL_HOST
|
||||
|
||||
LINUX=no
|
||||
ANDROID=no
|
||||
MACOSX=no
|
||||
IPHONEOS=no
|
||||
BSD=no
|
||||
WINDOWS=no
|
||||
MINGW=no
|
||||
CYGWIN=no
|
||||
HURD=no
|
||||
IRIX=no
|
||||
|
||||
case $host_os in
|
||||
*linux*)
|
||||
LINUX=yes
|
||||
;;
|
||||
*darwin*)
|
||||
MACOSX=yes
|
||||
;;
|
||||
GNU/kFreeBSD)
|
||||
BSD=yes
|
||||
;;
|
||||
*mingw*)
|
||||
WINDOWS=yes
|
||||
MINGW=yes
|
||||
;;
|
||||
*cygwin*)
|
||||
WINDOWS=yes
|
||||
CYGWIN=yes
|
||||
;;
|
||||
GNU)
|
||||
HURD=yes
|
||||
;;
|
||||
esac
|
||||
|
||||
|
||||
AM_CONDITIONAL(LINUX, test x$LINUX = xyes)
|
||||
AM_CONDITIONAL(ANDROID, test x$ANDROID = xyes)
|
||||
AM_CONDITIONAL(MACOSX, test x$MACOSX = xyes)
|
||||
AM_CONDITIONAL(IPHONEOS, test x$IPHONEOS = xyes)
|
||||
AM_CONDITIONAL(BSD, test x$BSD = xyes)
|
||||
AM_CONDITIONAL(WINDOWS, test x$WINDOWS = xyes)
|
||||
AM_CONDITIONAL(CYGWIN, test x$CYGWIN = xyes)
|
||||
AM_CONDITIONAL(MINGW, test x$MINGW = xyes)
|
||||
AM_CONDITIONAL(HURD, test x$HURD = xyes)
|
||||
AM_CONDITIONAL(IRIX, test x$IRIX = xyes)
|
||||
]) dnl IEM_OPERATING_SYSTEM
|
25
Gem/m4/iem_relativerpath.m4
Normal file
25
Gem/m4/iem_relativerpath.m4
Normal file
|
@ -0,0 +1,25 @@
|
|||
dnl Copyright (C) 2011 IOhannes m zmölnig
|
||||
dnl This file is free software; IOhannes m zmölnig
|
||||
dnl gives unlimited permission to copy and/or distribute it,
|
||||
dnl with or without modifications, as long as this notice is preserved.
|
||||
|
||||
## useage: add the @RELATIVERPATH_FLAGS@ to the LDFLAGS of your external
|
||||
|
||||
## TODO: add other platforms
|
||||
## on OSX we have to add "-install_name @loader_path/$NAME" when linking the _library_
|
||||
## on W32 this should no be needed at all (but is it?)
|
||||
|
||||
AC_DEFUN([IEM_RELATIVERPATH],
|
||||
[
|
||||
originrpath_org_CFLAGS=$CFLAGS
|
||||
IEM_CHECK_CFLAGS([-Wl,-enable-new-dtags -Wl,-rpath,"\$ORIGIN"],
|
||||
[have_originrpath="yes"], [have_originrpath="no"])
|
||||
CFLAGS=$originrpath_org_CFLAGS
|
||||
RELATIVERPATH_FLAGS=""
|
||||
if test "x$have_originrpath" = "xyes"; then
|
||||
RELATIVERPATH_FLAGS="-Wl,-enable-new-dtags -Wl,-rpath,\"\\\$\$ORIGIN\""
|
||||
fi
|
||||
|
||||
|
||||
AC_SUBST([RELATIVERPATH_FLAGS])
|
||||
])# IEM_RELATIVERPATH
|
819
Gem/m4/lib-prefix.m4
Normal file
819
Gem/m4/lib-prefix.m4
Normal file
|
@ -0,0 +1,819 @@
|
|||
# lib-prefix.m4 serial 4 (gettext-0.14.2)
|
||||
dnl Copyright (C) 2001-2005 Free Software Foundation, Inc.
|
||||
dnl This file is free software; the Free Software Foundation
|
||||
dnl gives unlimited permission to copy and/or distribute it,
|
||||
dnl with or without modifications, as long as this notice is preserved.
|
||||
|
||||
dnl From Bruno Haible.
|
||||
|
||||
dnl AC_LIB_ARG_WITH is synonymous to AC_ARG_WITH in autoconf-2.13, and
|
||||
dnl similar to AC_ARG_WITH in autoconf 2.52...2.57 except that is doesn't
|
||||
dnl require excessive bracketing.
|
||||
ifdef([AC_HELP_STRING],
|
||||
[AC_DEFUN([AC_LIB_ARG_WITH], [AC_ARG_WITH([$1],[[$2]],[$3],[$4])])],
|
||||
[AC_DEFUN([AC_][LIB_ARG_WITH], [AC_ARG_WITH([$1],[$2],[$3],[$4])])])
|
||||
|
||||
dnl AC_LIB_PREFIX adds to the CPPFLAGS and LDFLAGS the flags that are needed
|
||||
dnl to access previously installed libraries. The basic assumption is that
|
||||
dnl a user will want packages to use other packages he previously installed
|
||||
dnl with the same --prefix option.
|
||||
dnl This macro is not needed if only AC_LIB_LINKFLAGS is used to locate
|
||||
dnl libraries, but is otherwise very convenient.
|
||||
AC_DEFUN([AC_LIB_PREFIX],
|
||||
[
|
||||
AC_BEFORE([$0], [AC_LIB_LINKFLAGS])
|
||||
AC_REQUIRE([AC_PROG_CC])
|
||||
AC_REQUIRE([AC_CANONICAL_HOST])
|
||||
AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
|
||||
dnl By default, look in $includedir and $libdir.
|
||||
use_additional=yes
|
||||
AC_LIB_WITH_FINAL_PREFIX([
|
||||
eval additional_includedir=\"$includedir\"
|
||||
eval additional_libdir=\"$libdir\"
|
||||
])
|
||||
AC_LIB_ARG_WITH([lib-prefix],
|
||||
[ --with-lib-prefix[=DIR] search for libraries in DIR/include and DIR/lib
|
||||
--without-lib-prefix don't search for libraries in includedir and libdir],
|
||||
[
|
||||
if test "X$withval" = "Xno"; then
|
||||
use_additional=no
|
||||
else
|
||||
if test "X$withval" = "X"; then
|
||||
AC_LIB_WITH_FINAL_PREFIX([
|
||||
eval additional_includedir=\"$includedir\"
|
||||
eval additional_libdir=\"$libdir\"
|
||||
])
|
||||
else
|
||||
additional_includedir="$withval/include"
|
||||
additional_libdir="$withval/lib"
|
||||
fi
|
||||
fi
|
||||
])
|
||||
if test $use_additional = yes; then
|
||||
dnl Potentially add $additional_includedir to $CPPFLAGS.
|
||||
dnl But don't add it
|
||||
dnl 1. if it's the standard /usr/include,
|
||||
dnl 2. if it's already present in $CPPFLAGS,
|
||||
dnl 3. if it's /usr/local/include and we are using GCC on Linux,
|
||||
dnl 4. if it doesn't exist as a directory.
|
||||
if test "X$additional_includedir" != "X/usr/include"; then
|
||||
haveit=
|
||||
for x in $CPPFLAGS; do
|
||||
AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
|
||||
if test "X$x" = "X-I$additional_includedir"; then
|
||||
haveit=yes
|
||||
break
|
||||
fi
|
||||
done
|
||||
if test -z "$haveit"; then
|
||||
if test "X$additional_includedir" = "X/usr/local/include"; then
|
||||
if test -n "$GCC"; then
|
||||
case $host_os in
|
||||
linux* | gnu* | k*bsd*-gnu) haveit=yes;;
|
||||
esac
|
||||
fi
|
||||
fi
|
||||
if test -z "$haveit"; then
|
||||
if test -d "$additional_includedir"; then
|
||||
dnl Really add $additional_includedir to $CPPFLAGS.
|
||||
CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }-I$additional_includedir"
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
dnl Potentially add $additional_libdir to $LDFLAGS.
|
||||
dnl But don't add it
|
||||
dnl 1. if it's the standard /usr/lib,
|
||||
dnl 2. if it's already present in $LDFLAGS,
|
||||
dnl 3. if it's /usr/local/lib and we are using GCC on Linux,
|
||||
dnl 4. if it doesn't exist as a directory.
|
||||
if test "X$additional_libdir" != "X/usr/lib"; then
|
||||
haveit=
|
||||
for x in $LDFLAGS; do
|
||||
AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
|
||||
if test "X$x" = "X-L$additional_libdir"; then
|
||||
haveit=yes
|
||||
break
|
||||
fi
|
||||
done
|
||||
if test -z "$haveit"; then
|
||||
if test "X$additional_libdir" = "X/usr/local/lib"; then
|
||||
if test -n "$GCC"; then
|
||||
case $host_os in
|
||||
linux*) haveit=yes;;
|
||||
esac
|
||||
fi
|
||||
fi
|
||||
if test -z "$haveit"; then
|
||||
if test -d "$additional_libdir"; then
|
||||
dnl Really add $additional_libdir to $LDFLAGS.
|
||||
LDFLAGS="${LDFLAGS}${LDFLAGS:+ }-L$additional_libdir"
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
])
|
||||
|
||||
dnl AC_LIB_PREPARE_PREFIX creates variables acl_final_prefix,
|
||||
dnl acl_final_exec_prefix, containing the values to which $prefix and
|
||||
dnl $exec_prefix will expand at the end of the configure script.
|
||||
AC_DEFUN([AC_LIB_PREPARE_PREFIX],
|
||||
[
|
||||
dnl Unfortunately, prefix and exec_prefix get only finally determined
|
||||
dnl at the end of configure.
|
||||
if test "X$prefix" = "XNONE"; then
|
||||
acl_final_prefix="$ac_default_prefix"
|
||||
else
|
||||
acl_final_prefix="$prefix"
|
||||
fi
|
||||
if test "X$exec_prefix" = "XNONE"; then
|
||||
acl_final_exec_prefix='${prefix}'
|
||||
else
|
||||
acl_final_exec_prefix="$exec_prefix"
|
||||
fi
|
||||
acl_save_prefix="$prefix"
|
||||
prefix="$acl_final_prefix"
|
||||
eval acl_final_exec_prefix=\"$acl_final_exec_prefix\"
|
||||
prefix="$acl_save_prefix"
|
||||
])
|
||||
|
||||
dnl AC_LIB_WITH_FINAL_PREFIX([statement]) evaluates statement, with the
|
||||
dnl variables prefix and exec_prefix bound to the values they will have
|
||||
dnl at the end of the configure script.
|
||||
AC_DEFUN([AC_LIB_WITH_FINAL_PREFIX],
|
||||
[
|
||||
acl_save_prefix="$prefix"
|
||||
prefix="$acl_final_prefix"
|
||||
acl_save_exec_prefix="$exec_prefix"
|
||||
exec_prefix="$acl_final_exec_prefix"
|
||||
$1
|
||||
exec_prefix="$acl_save_exec_prefix"
|
||||
prefix="$acl_save_prefix"
|
||||
])
|
||||
|
||||
# lib-link.m4 serial 6 (gettext-0.14.3)
|
||||
dnl Copyright (C) 2001-2005 Free Software Foundation, Inc.
|
||||
dnl This file is free software; the Free Software Foundation
|
||||
dnl gives unlimited permission to copy and/or distribute it,
|
||||
dnl with or without modifications, as long as this notice is preserved.
|
||||
|
||||
dnl From Bruno Haible.
|
||||
|
||||
AC_PREREQ(2.50)
|
||||
|
||||
dnl AC_LIB_LINKFLAGS(name [, dependencies]) searches for libname and
|
||||
dnl the libraries corresponding to explicit and implicit dependencies.
|
||||
dnl Sets and AC_SUBSTs the LIB${NAME} and LTLIB${NAME} variables and
|
||||
dnl augments the CPPFLAGS variable.
|
||||
AC_DEFUN([AC_LIB_LINKFLAGS],
|
||||
[
|
||||
AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
|
||||
AC_REQUIRE([AC_LIB_RPATH])
|
||||
define([Name],[translit([$1],[./-], [___])])
|
||||
define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-],
|
||||
[ABCDEFGHIJKLMNOPQRSTUVWXYZ___])])
|
||||
AC_CACHE_CHECK([how to link with lib[]$1], [ac_cv_lib[]Name[]_libs], [
|
||||
AC_LIB_LINKFLAGS_BODY([$1], [$2])
|
||||
ac_cv_lib[]Name[]_libs="$LIB[]NAME"
|
||||
ac_cv_lib[]Name[]_ltlibs="$LTLIB[]NAME"
|
||||
ac_cv_lib[]Name[]_cppflags="$INC[]NAME"
|
||||
])
|
||||
LIB[]NAME="$ac_cv_lib[]Name[]_libs"
|
||||
LTLIB[]NAME="$ac_cv_lib[]Name[]_ltlibs"
|
||||
INC[]NAME="$ac_cv_lib[]Name[]_cppflags"
|
||||
AC_LIB_APPENDTOVAR([CPPFLAGS], [$INC]NAME)
|
||||
AC_SUBST([LIB]NAME)
|
||||
AC_SUBST([LTLIB]NAME)
|
||||
dnl Also set HAVE_LIB[]NAME so that AC_LIB_HAVE_LINKFLAGS can reuse the
|
||||
dnl results of this search when this library appears as a dependency.
|
||||
HAVE_LIB[]NAME=yes
|
||||
undefine([Name])
|
||||
undefine([NAME])
|
||||
])
|
||||
|
||||
dnl AC_LIB_HAVE_LINKFLAGS(name, dependencies, includes, testcode)
|
||||
dnl searches for libname and the libraries corresponding to explicit and
|
||||
dnl implicit dependencies, together with the specified include files and
|
||||
dnl the ability to compile and link the specified testcode. If found, it
|
||||
dnl sets and AC_SUBSTs HAVE_LIB${NAME}=yes and the LIB${NAME} and
|
||||
dnl LTLIB${NAME} variables and augments the CPPFLAGS variable, and
|
||||
dnl #defines HAVE_LIB${NAME} to 1. Otherwise, it sets and AC_SUBSTs
|
||||
dnl HAVE_LIB${NAME}=no and LIB${NAME} and LTLIB${NAME} to empty.
|
||||
AC_DEFUN([AC_LIB_HAVE_LINKFLAGS],
|
||||
[
|
||||
AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
|
||||
AC_REQUIRE([AC_LIB_RPATH])
|
||||
define([Name],[translit([$1],[./-], [___])])
|
||||
define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-],
|
||||
[ABCDEFGHIJKLMNOPQRSTUVWXYZ___])])
|
||||
|
||||
dnl Search for lib[]Name and define LIB[]NAME, LTLIB[]NAME and INC[]NAME
|
||||
dnl accordingly.
|
||||
AC_LIB_LINKFLAGS_BODY([$1], [$2])
|
||||
|
||||
dnl Add $INC[]NAME to CPPFLAGS before performing the following checks,
|
||||
dnl because if the user has installed lib[]Name and not disabled its use
|
||||
dnl via --without-lib[]Name-prefix, he wants to use it.
|
||||
ac_save_CPPFLAGS="$CPPFLAGS"
|
||||
AC_LIB_APPENDTOVAR([CPPFLAGS], [$INC]NAME)
|
||||
|
||||
AC_CACHE_CHECK([for lib[]$1], [ac_cv_lib[]Name], [
|
||||
ac_save_LIBS="$LIBS"
|
||||
LIBS="$LIBS $LIB[]NAME"
|
||||
AC_TRY_LINK([$3], [$4], [ac_cv_lib[]Name=yes], [ac_cv_lib[]Name=no])
|
||||
LIBS="$ac_save_LIBS"
|
||||
])
|
||||
if test "$ac_cv_lib[]Name" = yes; then
|
||||
HAVE_LIB[]NAME=yes
|
||||
AC_DEFINE([HAVE_LIB]NAME, 1, [Define if you have the $1 library.])
|
||||
AC_MSG_CHECKING([how to link with lib[]$1])
|
||||
AC_MSG_RESULT([$LIB[]NAME])
|
||||
else
|
||||
HAVE_LIB[]NAME=no
|
||||
dnl If $LIB[]NAME didn't lead to a usable library, we don't need
|
||||
dnl $INC[]NAME either.
|
||||
CPPFLAGS="$ac_save_CPPFLAGS"
|
||||
LIB[]NAME=
|
||||
LTLIB[]NAME=
|
||||
fi
|
||||
AC_SUBST([HAVE_LIB]NAME)
|
||||
AC_SUBST([LIB]NAME)
|
||||
AC_SUBST([LTLIB]NAME)
|
||||
undefine([Name])
|
||||
undefine([NAME])
|
||||
])
|
||||
|
||||
dnl Determine the platform dependent parameters needed to use rpath:
|
||||
dnl libext, shlibext, hardcode_libdir_flag_spec, hardcode_libdir_separator,
|
||||
dnl hardcode_direct, hardcode_minus_L.
|
||||
AC_DEFUN([AC_LIB_RPATH],
|
||||
[
|
||||
dnl Tell automake >= 1.10 to complain if config.rpath is missing.
|
||||
m4_ifdef([AC_REQUIRE_AUX_FILE], [AC_REQUIRE_AUX_FILE([config.rpath])])
|
||||
AC_REQUIRE([AC_PROG_CC]) dnl we use $CC, $GCC, $LDFLAGS
|
||||
AC_REQUIRE([AC_LIB_PROG_LD]) dnl we use $LD, $with_gnu_ld
|
||||
AC_REQUIRE([AC_CANONICAL_HOST]) dnl we use $host
|
||||
AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT]) dnl we use $ac_aux_dir
|
||||
AC_CACHE_CHECK([for shared library run path origin], acl_cv_rpath, [
|
||||
CC="$CC" GCC="$GCC" LDFLAGS="$LDFLAGS" LD="$LD" with_gnu_ld="$with_gnu_ld" \
|
||||
${CONFIG_SHELL-/bin/sh} "$ac_aux_dir/config.rpath" "$host" > conftest.sh
|
||||
. ./conftest.sh
|
||||
rm -f ./conftest.sh
|
||||
acl_cv_rpath=done
|
||||
])
|
||||
wl="$acl_cv_wl"
|
||||
libext="$acl_cv_libext"
|
||||
shlibext="$acl_cv_shlibext"
|
||||
hardcode_libdir_flag_spec="$acl_cv_hardcode_libdir_flag_spec"
|
||||
hardcode_libdir_separator="$acl_cv_hardcode_libdir_separator"
|
||||
hardcode_direct="$acl_cv_hardcode_direct"
|
||||
hardcode_minus_L="$acl_cv_hardcode_minus_L"
|
||||
dnl Determine whether the user wants rpath handling at all.
|
||||
AC_ARG_ENABLE(rpath,
|
||||
[ --disable-rpath do not hardcode runtime library paths],
|
||||
:, enable_rpath=yes)
|
||||
])
|
||||
|
||||
dnl AC_LIB_LINKFLAGS_BODY(name [, dependencies]) searches for libname and
|
||||
dnl the libraries corresponding to explicit and implicit dependencies.
|
||||
dnl Sets the LIB${NAME}, LTLIB${NAME} and INC${NAME} variables.
|
||||
AC_DEFUN([AC_LIB_LINKFLAGS_BODY],
|
||||
[
|
||||
define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-],
|
||||
[ABCDEFGHIJKLMNOPQRSTUVWXYZ___])])
|
||||
dnl By default, look in $includedir and $libdir.
|
||||
use_additional=yes
|
||||
AC_LIB_WITH_FINAL_PREFIX([
|
||||
eval additional_includedir=\"$includedir\"
|
||||
eval additional_libdir=\"$libdir\"
|
||||
])
|
||||
AC_LIB_ARG_WITH([lib$1-prefix],
|
||||
[ --with-lib$1-prefix[=DIR] search for lib$1 in DIR/include and DIR/lib
|
||||
--without-lib$1-prefix don't search for lib$1 in includedir and libdir],
|
||||
[
|
||||
if test "X$withval" = "Xno"; then
|
||||
use_additional=no
|
||||
else
|
||||
if test "X$withval" = "X"; then
|
||||
AC_LIB_WITH_FINAL_PREFIX([
|
||||
eval additional_includedir=\"$includedir\"
|
||||
eval additional_libdir=\"$libdir\"
|
||||
])
|
||||
else
|
||||
additional_includedir="$withval/include"
|
||||
additional_libdir="$withval/lib"
|
||||
fi
|
||||
fi
|
||||
])
|
||||
dnl Search the library and its dependencies in $additional_libdir and
|
||||
dnl $LDFLAGS. Using breadth-first-seach.
|
||||
LIB[]NAME=
|
||||
LTLIB[]NAME=
|
||||
INC[]NAME=
|
||||
rpathdirs=
|
||||
ltrpathdirs=
|
||||
names_already_handled=
|
||||
names_next_round='$1 $2'
|
||||
while test -n "$names_next_round"; do
|
||||
names_this_round="$names_next_round"
|
||||
names_next_round=
|
||||
for name in $names_this_round; do
|
||||
already_handled=
|
||||
for n in $names_already_handled; do
|
||||
if test "$n" = "$name"; then
|
||||
already_handled=yes
|
||||
break
|
||||
fi
|
||||
done
|
||||
if test -z "$already_handled"; then
|
||||
names_already_handled="$names_already_handled $name"
|
||||
dnl See if it was already located by an earlier AC_LIB_LINKFLAGS
|
||||
dnl or AC_LIB_HAVE_LINKFLAGS call.
|
||||
uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./-|ABCDEFGHIJKLMNOPQRSTUVWXYZ___|'`
|
||||
eval value=\"\$HAVE_LIB$uppername\"
|
||||
if test -n "$value"; then
|
||||
if test "$value" = yes; then
|
||||
eval value=\"\$LIB$uppername\"
|
||||
test -z "$value" || LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$value"
|
||||
eval value=\"\$LTLIB$uppername\"
|
||||
test -z "$value" || LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }$value"
|
||||
else
|
||||
dnl An earlier call to AC_LIB_HAVE_LINKFLAGS has determined
|
||||
dnl that this library doesn't exist. So just drop it.
|
||||
:
|
||||
fi
|
||||
else
|
||||
dnl Search the library lib$name in $additional_libdir and $LDFLAGS
|
||||
dnl and the already constructed $LIBNAME/$LTLIBNAME.
|
||||
found_dir=
|
||||
found_la=
|
||||
found_so=
|
||||
found_a=
|
||||
if test $use_additional = yes; then
|
||||
if test -n "$shlibext" && test -f "$additional_libdir/lib$name.$shlibext"; then
|
||||
found_dir="$additional_libdir"
|
||||
found_so="$additional_libdir/lib$name.$shlibext"
|
||||
if test -f "$additional_libdir/lib$name.la"; then
|
||||
found_la="$additional_libdir/lib$name.la"
|
||||
fi
|
||||
else
|
||||
if test -f "$additional_libdir/lib$name.$libext"; then
|
||||
found_dir="$additional_libdir"
|
||||
found_a="$additional_libdir/lib$name.$libext"
|
||||
if test -f "$additional_libdir/lib$name.la"; then
|
||||
found_la="$additional_libdir/lib$name.la"
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
if test "X$found_dir" = "X"; then
|
||||
for x in $LDFLAGS $LTLIB[]NAME; do
|
||||
AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
|
||||
case "$x" in
|
||||
-L*)
|
||||
dir=`echo "X$x" | sed -e 's/^X-L//'`
|
||||
if test -n "$shlibext" && test -f "$dir/lib$name.$shlibext"; then
|
||||
found_dir="$dir"
|
||||
found_so="$dir/lib$name.$shlibext"
|
||||
if test -f "$dir/lib$name.la"; then
|
||||
found_la="$dir/lib$name.la"
|
||||
fi
|
||||
else
|
||||
if test -f "$dir/lib$name.$libext"; then
|
||||
found_dir="$dir"
|
||||
found_a="$dir/lib$name.$libext"
|
||||
if test -f "$dir/lib$name.la"; then
|
||||
found_la="$dir/lib$name.la"
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
if test "X$found_dir" != "X"; then
|
||||
break
|
||||
fi
|
||||
done
|
||||
fi
|
||||
if test "X$found_dir" != "X"; then
|
||||
dnl Found the library.
|
||||
LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$found_dir -l$name"
|
||||
if test "X$found_so" != "X"; then
|
||||
dnl Linking with a shared library. We attempt to hardcode its
|
||||
dnl directory into the executable's runpath, unless it's the
|
||||
dnl standard /usr/lib.
|
||||
if test "$enable_rpath" = no || test "X$found_dir" = "X/usr/lib"; then
|
||||
dnl No hardcoding is needed.
|
||||
LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
|
||||
else
|
||||
dnl Use an explicit option to hardcode DIR into the resulting
|
||||
dnl binary.
|
||||
dnl Potentially add DIR to ltrpathdirs.
|
||||
dnl The ltrpathdirs will be appended to $LTLIBNAME at the end.
|
||||
haveit=
|
||||
for x in $ltrpathdirs; do
|
||||
if test "X$x" = "X$found_dir"; then
|
||||
haveit=yes
|
||||
break
|
||||
fi
|
||||
done
|
||||
if test -z "$haveit"; then
|
||||
ltrpathdirs="$ltrpathdirs $found_dir"
|
||||
fi
|
||||
dnl The hardcoding into $LIBNAME is system dependent.
|
||||
if test "$hardcode_direct" = yes; then
|
||||
dnl Using DIR/libNAME.so during linking hardcodes DIR into the
|
||||
dnl resulting binary.
|
||||
LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
|
||||
else
|
||||
if test -n "$hardcode_libdir_flag_spec" && test "$hardcode_minus_L" = no; then
|
||||
dnl Use an explicit option to hardcode DIR into the resulting
|
||||
dnl binary.
|
||||
LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
|
||||
dnl Potentially add DIR to rpathdirs.
|
||||
dnl The rpathdirs will be appended to $LIBNAME at the end.
|
||||
haveit=
|
||||
for x in $rpathdirs; do
|
||||
if test "X$x" = "X$found_dir"; then
|
||||
haveit=yes
|
||||
break
|
||||
fi
|
||||
done
|
||||
if test -z "$haveit"; then
|
||||
rpathdirs="$rpathdirs $found_dir"
|
||||
fi
|
||||
else
|
||||
dnl Rely on "-L$found_dir".
|
||||
dnl But don't add it if it's already contained in the LDFLAGS
|
||||
dnl or the already constructed $LIBNAME
|
||||
haveit=
|
||||
for x in $LDFLAGS $LIB[]NAME; do
|
||||
AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
|
||||
if test "X$x" = "X-L$found_dir"; then
|
||||
haveit=yes
|
||||
break
|
||||
fi
|
||||
done
|
||||
if test -z "$haveit"; then
|
||||
LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir"
|
||||
fi
|
||||
if test "$hardcode_minus_L" != no; then
|
||||
dnl FIXME: Not sure whether we should use
|
||||
dnl "-L$found_dir -l$name" or "-L$found_dir $found_so"
|
||||
dnl here.
|
||||
LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
|
||||
else
|
||||
dnl We cannot use $hardcode_runpath_var and LD_RUN_PATH
|
||||
dnl here, because this doesn't fit in flags passed to the
|
||||
dnl compiler. So give up. No hardcoding. This affects only
|
||||
dnl very old systems.
|
||||
dnl FIXME: Not sure whether we should use
|
||||
dnl "-L$found_dir -l$name" or "-L$found_dir $found_so"
|
||||
dnl here.
|
||||
LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-l$name"
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
else
|
||||
if test "X$found_a" != "X"; then
|
||||
dnl Linking with a static library.
|
||||
LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_a"
|
||||
else
|
||||
dnl We shouldn't come here, but anyway it's good to have a
|
||||
dnl fallback.
|
||||
LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir -l$name"
|
||||
fi
|
||||
fi
|
||||
dnl Assume the include files are nearby.
|
||||
additional_includedir=
|
||||
case "$found_dir" in
|
||||
*/lib | */lib/)
|
||||
basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e 's,/lib/*$,,'`
|
||||
additional_includedir="$basedir/include"
|
||||
;;
|
||||
esac
|
||||
if test "X$additional_includedir" != "X"; then
|
||||
dnl Potentially add $additional_includedir to $INCNAME.
|
||||
dnl But don't add it
|
||||
dnl 1. if it's the standard /usr/include,
|
||||
dnl 2. if it's /usr/local/include and we are using GCC on Linux,
|
||||
dnl 3. if it's already present in $CPPFLAGS or the already
|
||||
dnl constructed $INCNAME,
|
||||
dnl 4. if it doesn't exist as a directory.
|
||||
if test "X$additional_includedir" != "X/usr/include"; then
|
||||
haveit=
|
||||
if test "X$additional_includedir" = "X/usr/local/include"; then
|
||||
if test -n "$GCC"; then
|
||||
case $host_os in
|
||||
linux* | gnu* | k*bsd*-gnu) haveit=yes;;
|
||||
esac
|
||||
fi
|
||||
fi
|
||||
if test -z "$haveit"; then
|
||||
for x in $CPPFLAGS $INC[]NAME; do
|
||||
AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
|
||||
if test "X$x" = "X-I$additional_includedir"; then
|
||||
haveit=yes
|
||||
break
|
||||
fi
|
||||
done
|
||||
if test -z "$haveit"; then
|
||||
if test -d "$additional_includedir"; then
|
||||
dnl Really add $additional_includedir to $INCNAME.
|
||||
INC[]NAME="${INC[]NAME}${INC[]NAME:+ }-I$additional_includedir"
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
dnl Look for dependencies.
|
||||
if test -n "$found_la"; then
|
||||
dnl Read the .la file. It defines the variables
|
||||
dnl dlname, library_names, old_library, dependency_libs, current,
|
||||
dnl age, revision, installed, dlopen, dlpreopen, libdir.
|
||||
save_libdir="$libdir"
|
||||
case "$found_la" in
|
||||
*/* | *\\*) . "$found_la" ;;
|
||||
*) . "./$found_la" ;;
|
||||
esac
|
||||
libdir="$save_libdir"
|
||||
dnl We use only dependency_libs.
|
||||
for dep in $dependency_libs; do
|
||||
case "$dep" in
|
||||
-L*)
|
||||
additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'`
|
||||
dnl Potentially add $additional_libdir to $LIBNAME and $LTLIBNAME.
|
||||
dnl But don't add it
|
||||
dnl 1. if it's the standard /usr/lib,
|
||||
dnl 2. if it's /usr/local/lib and we are using GCC on Linux,
|
||||
dnl 3. if it's already present in $LDFLAGS or the already
|
||||
dnl constructed $LIBNAME,
|
||||
dnl 4. if it doesn't exist as a directory.
|
||||
if test "X$additional_libdir" != "X/usr/lib"; then
|
||||
haveit=
|
||||
if test "X$additional_libdir" = "X/usr/local/lib"; then
|
||||
if test -n "$GCC"; then
|
||||
case $host_os in
|
||||
linux* | gnu* | k*bsd*-gnu) haveit=yes;;
|
||||
esac
|
||||
fi
|
||||
fi
|
||||
if test -z "$haveit"; then
|
||||
haveit=
|
||||
for x in $LDFLAGS $LIB[]NAME; do
|
||||
AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
|
||||
if test "X$x" = "X-L$additional_libdir"; then
|
||||
haveit=yes
|
||||
break
|
||||
fi
|
||||
done
|
||||
if test -z "$haveit"; then
|
||||
if test -d "$additional_libdir"; then
|
||||
dnl Really add $additional_libdir to $LIBNAME.
|
||||
LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$additional_libdir"
|
||||
fi
|
||||
fi
|
||||
haveit=
|
||||
for x in $LDFLAGS $LTLIB[]NAME; do
|
||||
AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
|
||||
if test "X$x" = "X-L$additional_libdir"; then
|
||||
haveit=yes
|
||||
break
|
||||
fi
|
||||
done
|
||||
if test -z "$haveit"; then
|
||||
if test -d "$additional_libdir"; then
|
||||
dnl Really add $additional_libdir to $LTLIBNAME.
|
||||
LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$additional_libdir"
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
;;
|
||||
-R*)
|
||||
dir=`echo "X$dep" | sed -e 's/^X-R//'`
|
||||
if test "$enable_rpath" != no; then
|
||||
dnl Potentially add DIR to rpathdirs.
|
||||
dnl The rpathdirs will be appended to $LIBNAME at the end.
|
||||
haveit=
|
||||
for x in $rpathdirs; do
|
||||
if test "X$x" = "X$dir"; then
|
||||
haveit=yes
|
||||
break
|
||||
fi
|
||||
done
|
||||
if test -z "$haveit"; then
|
||||
rpathdirs="$rpathdirs $dir"
|
||||
fi
|
||||
dnl Potentially add DIR to ltrpathdirs.
|
||||
dnl The ltrpathdirs will be appended to $LTLIBNAME at the end.
|
||||
haveit=
|
||||
for x in $ltrpathdirs; do
|
||||
if test "X$x" = "X$dir"; then
|
||||
haveit=yes
|
||||
break
|
||||
fi
|
||||
done
|
||||
if test -z "$haveit"; then
|
||||
ltrpathdirs="$ltrpathdirs $dir"
|
||||
fi
|
||||
fi
|
||||
;;
|
||||
-l*)
|
||||
dnl Handle this in the next round.
|
||||
names_next_round="$names_next_round "`echo "X$dep" | sed -e 's/^X-l//'`
|
||||
;;
|
||||
*.la)
|
||||
dnl Handle this in the next round. Throw away the .la's
|
||||
dnl directory; it is already contained in a preceding -L
|
||||
dnl option.
|
||||
names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'`
|
||||
;;
|
||||
*)
|
||||
dnl Most likely an immediate library name.
|
||||
LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$dep"
|
||||
LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }$dep"
|
||||
;;
|
||||
esac
|
||||
done
|
||||
fi
|
||||
else
|
||||
dnl Didn't find the library; assume it is in the system directories
|
||||
dnl known to the linker and runtime loader. (All the system
|
||||
dnl directories known to the linker should also be known to the
|
||||
dnl runtime loader, otherwise the system is severely misconfigured.)
|
||||
LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-l$name"
|
||||
LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-l$name"
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
done
|
||||
done
|
||||
if test "X$rpathdirs" != "X"; then
|
||||
if test -n "$hardcode_libdir_separator"; then
|
||||
dnl Weird platform: only the last -rpath option counts, the user must
|
||||
dnl pass all path elements in one option. We can arrange that for a
|
||||
dnl single library, but not when more than one $LIBNAMEs are used.
|
||||
alldirs=
|
||||
for found_dir in $rpathdirs; do
|
||||
alldirs="${alldirs}${alldirs:+$hardcode_libdir_separator}$found_dir"
|
||||
done
|
||||
dnl Note: hardcode_libdir_flag_spec uses $libdir and $wl.
|
||||
acl_save_libdir="$libdir"
|
||||
libdir="$alldirs"
|
||||
eval flag=\"$hardcode_libdir_flag_spec\"
|
||||
libdir="$acl_save_libdir"
|
||||
LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag"
|
||||
else
|
||||
dnl The -rpath options are cumulative.
|
||||
for found_dir in $rpathdirs; do
|
||||
acl_save_libdir="$libdir"
|
||||
libdir="$found_dir"
|
||||
eval flag=\"$hardcode_libdir_flag_spec\"
|
||||
libdir="$acl_save_libdir"
|
||||
LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag"
|
||||
done
|
||||
fi
|
||||
fi
|
||||
if test "X$ltrpathdirs" != "X"; then
|
||||
dnl When using libtool, the option that works for both libraries and
|
||||
dnl executables is -R. The -R options are cumulative.
|
||||
for found_dir in $ltrpathdirs; do
|
||||
LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-R$found_dir"
|
||||
done
|
||||
fi
|
||||
])
|
||||
|
||||
dnl AC_LIB_APPENDTOVAR(VAR, CONTENTS) appends the elements of CONTENTS to VAR,
|
||||
dnl unless already present in VAR.
|
||||
dnl Works only for CPPFLAGS, not for LIB* variables because that sometimes
|
||||
dnl contains two or three consecutive elements that belong together.
|
||||
AC_DEFUN([AC_LIB_APPENDTOVAR],
|
||||
[
|
||||
for element in [$2]; do
|
||||
haveit=
|
||||
for x in $[$1]; do
|
||||
AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
|
||||
if test "X$x" = "X$element"; then
|
||||
haveit=yes
|
||||
break
|
||||
fi
|
||||
done
|
||||
if test -z "$haveit"; then
|
||||
[$1]="${[$1]}${[$1]:+ }$element"
|
||||
fi
|
||||
done
|
||||
])
|
||||
|
||||
# lib-ld.m4 serial 3 (gettext-0.13)
|
||||
dnl Copyright (C) 1996-2003 Free Software Foundation, Inc.
|
||||
dnl This file is free software; the Free Software Foundation
|
||||
dnl gives unlimited permission to copy and/or distribute it,
|
||||
dnl with or without modifications, as long as this notice is preserved.
|
||||
|
||||
dnl Subroutines of libtool.m4,
|
||||
dnl with replacements s/AC_/AC_LIB/ and s/lt_cv/acl_cv/ to avoid collision
|
||||
dnl with libtool.m4.
|
||||
|
||||
dnl From libtool-1.4. Sets the variable with_gnu_ld to yes or no.
|
||||
AC_DEFUN([AC_LIB_PROG_LD_GNU],
|
||||
[AC_CACHE_CHECK([if the linker ($LD) is GNU ld], acl_cv_prog_gnu_ld,
|
||||
[# I'd rather use --version here, but apparently some GNU ld's only accept -v.
|
||||
case `$LD -v 2>&1 </dev/null` in
|
||||
*GNU* | *'with BFD'*)
|
||||
acl_cv_prog_gnu_ld=yes ;;
|
||||
*)
|
||||
acl_cv_prog_gnu_ld=no ;;
|
||||
esac])
|
||||
with_gnu_ld=$acl_cv_prog_gnu_ld
|
||||
])
|
||||
|
||||
dnl From libtool-1.4. Sets the variable LD.
|
||||
AC_DEFUN([AC_LIB_PROG_LD],
|
||||
[AC_ARG_WITH(gnu-ld,
|
||||
[ --with-gnu-ld assume the C compiler uses GNU ld [default=no]],
|
||||
test "$withval" = no || with_gnu_ld=yes, with_gnu_ld=no)
|
||||
AC_REQUIRE([AC_PROG_CC])dnl
|
||||
AC_REQUIRE([AC_CANONICAL_HOST])dnl
|
||||
# Prepare PATH_SEPARATOR.
|
||||
# The user is always right.
|
||||
if test "${PATH_SEPARATOR+set}" != set; then
|
||||
echo "#! /bin/sh" >conf$$.sh
|
||||
echo "exit 0" >>conf$$.sh
|
||||
chmod +x conf$$.sh
|
||||
if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
|
||||
PATH_SEPARATOR=';'
|
||||
else
|
||||
PATH_SEPARATOR=:
|
||||
fi
|
||||
rm -f conf$$.sh
|
||||
fi
|
||||
ac_prog=ld
|
||||
if test "$GCC" = yes; then
|
||||
# Check if gcc -print-prog-name=ld gives a path.
|
||||
AC_MSG_CHECKING([for ld used by GCC])
|
||||
case $host in
|
||||
*-*-mingw*)
|
||||
# gcc leaves a trailing carriage return which upsets mingw
|
||||
ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
|
||||
*)
|
||||
ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
|
||||
esac
|
||||
case $ac_prog in
|
||||
# Accept absolute paths.
|
||||
[[\\/]* | [A-Za-z]:[\\/]*)]
|
||||
[re_direlt='/[^/][^/]*/\.\./']
|
||||
# Canonicalize the path of ld
|
||||
ac_prog=`echo $ac_prog| sed 's%\\\\%/%g'`
|
||||
while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do
|
||||
ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"`
|
||||
done
|
||||
test -z "$LD" && LD="$ac_prog"
|
||||
;;
|
||||
"")
|
||||
# If it fails, then pretend we aren't using GCC.
|
||||
ac_prog=ld
|
||||
;;
|
||||
*)
|
||||
# If it is relative, then search for the first ld in PATH.
|
||||
with_gnu_ld=unknown
|
||||
;;
|
||||
esac
|
||||
elif test "$with_gnu_ld" = yes; then
|
||||
AC_MSG_CHECKING([for GNU ld])
|
||||
else
|
||||
AC_MSG_CHECKING([for non-GNU ld])
|
||||
fi
|
||||
AC_CACHE_VAL(acl_cv_path_LD,
|
||||
[if test -z "$LD"; then
|
||||
IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}"
|
||||
for ac_dir in $PATH; do
|
||||
test -z "$ac_dir" && ac_dir=.
|
||||
if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
|
||||
acl_cv_path_LD="$ac_dir/$ac_prog"
|
||||
# Check to see if the program is GNU ld. I'd rather use --version,
|
||||
# but apparently some GNU ld's only accept -v.
|
||||
# Break only if it was the GNU/non-GNU ld that we prefer.
|
||||
case `"$acl_cv_path_LD" -v 2>&1 < /dev/null` in
|
||||
*GNU* | *'with BFD'*)
|
||||
test "$with_gnu_ld" != no && break ;;
|
||||
*)
|
||||
test "$with_gnu_ld" != yes && break ;;
|
||||
esac
|
||||
fi
|
||||
done
|
||||
IFS="$ac_save_ifs"
|
||||
else
|
||||
acl_cv_path_LD="$LD" # Let the user override the test with a path.
|
||||
fi])
|
||||
LD="$acl_cv_path_LD"
|
||||
if test -n "$LD"; then
|
||||
AC_MSG_RESULT($LD)
|
||||
else
|
||||
AC_MSG_RESULT(no)
|
||||
fi
|
||||
test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH])
|
||||
AC_LIB_PROG_LD_GNU
|
||||
])
|
||||
|
127
Gem/m4/pkg.m4
Normal file
127
Gem/m4/pkg.m4
Normal file
|
@ -0,0 +1,127 @@
|
|||
# pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*-
|
||||
#
|
||||
# Copyright © 2004 Scott James Remnant <scott@netsplit.com>.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 2 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful, but
|
||||
# WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
# General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
#
|
||||
# As a special exception to the GNU General Public License, if you
|
||||
# distribute this file as part of a program that contains a
|
||||
# configuration script generated by Autoconf, you may include it under
|
||||
# the same distribution terms that you use for the rest of that program.
|
||||
|
||||
# PKG_PROG_PKG_CONFIG([MIN-VERSION])
|
||||
# ----------------------------------
|
||||
AC_DEFUN([PKG_PROG_PKG_CONFIG],
|
||||
[m4_pattern_forbid([^_?PKG_[A-Z_]+$])
|
||||
m4_pattern_allow([^PKG_CONFIG(_PATH)?$])
|
||||
m4_pattern_allow(PKG_CFLAGS)
|
||||
m4_pattern_allow(PKG_LIBS)
|
||||
AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility])dnl
|
||||
if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then
|
||||
AC_PATH_TOOL([PKG_CONFIG], [pkg-config])
|
||||
fi
|
||||
if test -n "$PKG_CONFIG"; then
|
||||
_pkg_min_version=m4_ifval([$1], [$1], [0.9.0])
|
||||
AC_MSG_CHECKING([pkg-config is at least version $_pkg_min_version])
|
||||
if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then
|
||||
AC_MSG_RESULT([yes])
|
||||
else
|
||||
AC_MSG_RESULT([no])
|
||||
PKG_CONFIG=""
|
||||
fi
|
||||
|
||||
fi[]dnl
|
||||
])# PKG_PROG_PKG_CONFIG
|
||||
|
||||
# _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES])
|
||||
# ---------------------------------------------
|
||||
m4_define([_PKG_CONFIG],
|
||||
[if test "x$ac_cv_env_[]$1[]_set" = "xset"; then
|
||||
pkg_cv_[]$1=$ac_cv_env_[]$1[]_value
|
||||
elif test -n "$PKG_CONFIG"; then
|
||||
if AC_RUN_LOG([$PKG_CONFIG --exists "$3" >/dev/null 2>&1]); then
|
||||
pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null`
|
||||
else
|
||||
pkg_failed=yes
|
||||
fi
|
||||
else
|
||||
pkg_failed=untried
|
||||
fi[]dnl
|
||||
])# _PKG_CONFIG
|
||||
|
||||
# PKG_CHECK_MODULES(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND],
|
||||
# [ACTION-IF-NOT-FOUND])
|
||||
#
|
||||
#
|
||||
# Note that if there is a possibility the first call to
|
||||
# PKG_CHECK_MODULES might not happen, you should be sure to include an
|
||||
# explicit call to PKG_PROG_PKG_CONFIG in your configure.in
|
||||
#
|
||||
#
|
||||
# --------------------------------------------------------------
|
||||
AC_DEFUN([PKG_CHECK_MODULES],
|
||||
[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl
|
||||
m4_pattern_allow([$1]_CFLAGS)
|
||||
m4_pattern_allow([$1]_LIBS)
|
||||
m4_pattern_allow([$1])
|
||||
m4_pattern_allow([$1]_PKG_ERRORS)
|
||||
AC_ARG_VAR([$1][_CFLAGS], [C compiler flags for $1, overriding pkg-config])dnl
|
||||
AC_ARG_VAR([$1][_LIBS], [linker flags for $1, overriding pkg-config])dnl
|
||||
|
||||
pkg_failed=no
|
||||
AC_CACHE_CHECK([for $1][_CFLAGS], [pkg_cv_][$1][_CFLAGS],
|
||||
[_PKG_CONFIG([$1][_CFLAGS], [cflags], [$2])])
|
||||
AC_CACHE_CHECK([for $1][_LIBS], [pkg_cv_][$1][_LIBS],
|
||||
[_PKG_CONFIG([$1][_LIBS], [libs], [$2])])
|
||||
|
||||
if test $pkg_failed = yes; then
|
||||
$1[]_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "$2"`
|
||||
# Put the nasty error message in config.log where it belongs
|
||||
echo "$$1[]_PKG_ERRORS" 1>&AS_MESSAGE_LOG_FD
|
||||
|
||||
ifelse([$4], , [AC_MSG_ERROR(dnl
|
||||
[Package requirements ($2) were not met.
|
||||
Consider adjusting the PKG_CONFIG_PATH environment variable if you
|
||||
installed software in a non-standard prefix.
|
||||
|
||||
Alternatively you may set the $1_CFLAGS and $1_LIBS environment variables
|
||||
to avoid the need to call pkg-config. See the pkg-config man page for
|
||||
more details.])],
|
||||
[$4])
|
||||
elif test $pkg_failed = untried; then
|
||||
ifelse([$4], , [AC_MSG_FAILURE(dnl
|
||||
[The pkg-config script could not be found or is too old. Make sure it
|
||||
is in your PATH or set the PKG_CONFIG environment variable to the full
|
||||
path to pkg-config.
|
||||
|
||||
Alternatively you may set the $1_CFLAGS and $1_LIBS environment variables
|
||||
to avoid the need to call pkg-config. See the pkg-config man page for
|
||||
more details.
|
||||
|
||||
To get pkg-config, see <http://www.freedesktop.org/software/pkgconfig>.])],
|
||||
[$4])
|
||||
else
|
||||
$1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS
|
||||
$1[]_LIBS=$pkg_cv_[]$1[]_LIBS
|
||||
ifelse([$3], , :, [$3])
|
||||
fi[]
|
||||
if test "x${$1[]_CFLAGS}" != "x"; then
|
||||
AC_LIB_APPENDTOVAR([PKG_CFLAGS], "${$1_CFLAGS}")
|
||||
fi
|
||||
if test "x${$1[]_LIBS}" != "x"; then
|
||||
PKG_LIBS="${$1[]_LIBS} ${PKG_LIBS}"
|
||||
fi
|
||||
])# PKG_CHECK_MODULES
|
||||
|
Loading…
Add table
Add a link
Reference in a new issue