mirror of
https://github.com/signalwire/freeswitch.git
synced 2026-11-13 21:17:06 +00:00
API visibility support (GCC/SUNCC) (FSCORE-264)
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@12061 d0543943-73ff-0310-b7d9-9358b9ac24b2
This commit is contained in:
1 parent
104c99ea85
commit
ffe2ad4bbd
6 files changed
+175
-15
No files matched your search
@@ -7,11 +7,16 @@ AC_CONFIG_AUX_DIR(build)
|
||||
AM_INIT_AUTOMAKE(libteletone,0.1)
|
||||
AC_CONFIG_SRCDIR([src])
|
||||
|
||||
# disable checks
|
||||
m4_defun([_LT_AC_LANG_CXX_CONFIG], [:])
|
||||
m4_defun([_LT_AC_LANG_F77_CONFIG], [:])
|
||||
|
||||
# Checks for programs.
|
||||
AC_PROG_CC
|
||||
AC_PROG_MAKE_SET
|
||||
AC_PROG_LIBTOOL
|
||||
AC_PROG_INSTALL
|
||||
|
||||
# Optimize
|
||||
AC_ARG_ENABLE(optimization,
|
||||
[AC_HELP_STRING([--enable-optimization],[Set if you want us to add max optimising compiler flags])],[enable_optimizer="$enableval"],[enable_optimizer="no"])
|
||||
@@ -64,6 +69,77 @@ case "$host" in
|
||||
new_AM_LDFLAGS=""
|
||||
;;
|
||||
esac
|
||||
|
||||
#
|
||||
# gcc visibility cflag checks
|
||||
#
|
||||
AC_ARG_ENABLE([visibility],
|
||||
[AS_HELP_STRING([--disable-visibility], [Disable or enable API visibility support (default: use if available)])],
|
||||
[enable_visibility="${enableval}"],
|
||||
[enable_visibility="detect"]
|
||||
)
|
||||
HAVE_VISIBILITY="no"
|
||||
|
||||
if test "x${enable_visibility}" != "xno" ; then
|
||||
|
||||
case "${ax_cv_c_compiler_vendor}" in
|
||||
gnu)
|
||||
save_CFLAGS="${CFLAGS}"
|
||||
CFLAGS="${CFLAGS} -fvisibility=hidden"
|
||||
AC_MSG_CHECKING([whether the compiler supports -fvisibility=hidden])
|
||||
AC_COMPILE_IFELSE(
|
||||
[AC_LANG_PROGRAM(
|
||||
[int foo __attribute__ ((visibility("default")));],
|
||||
[;]
|
||||
)],
|
||||
|
||||
[AC_MSG_RESULT([yes])
|
||||
new_AM_CFLAGS="${new_AM_CFLAGS} -fvisibility=hidden"
|
||||
AC_DEFINE([HAVE_VISIBILITY], [1], [GCC visibility support available])
|
||||
HAVE_VISIBILITY="yes"],
|
||||
|
||||
[AC_MSG_RESULT([no])]
|
||||
)
|
||||
CFLAGS="${save_CFLAGS}"
|
||||
;;
|
||||
|
||||
sun)
|
||||
save_CFLAGS="${CFLAGS}"
|
||||
CFLAGS="${CFLAGS} -xldscope=hidden"
|
||||
AC_MSG_CHECKING([whether the compiler supports -xldscope=hidden])
|
||||
AC_COMPILE_IFELSE(
|
||||
[AC_LANG_PROGRAM(
|
||||
[int foo __attribute__ ((visibility("default")));],
|
||||
[;]
|
||||
)],
|
||||
|
||||
[AC_MSG_RESULT([yes])
|
||||
new_AM_CFLAGS="${new_AM_CFLAGS} -xldscope=hidden"
|
||||
AC_DEFINE([HAVE_VISIBILITY], [1], [SUNCC visibility support available])
|
||||
HAVE_VISIBILITY="yes"],
|
||||
|
||||
[AC_MSG_RESULT([no])]
|
||||
)
|
||||
CFLAGS="${save_CFLAGS}"
|
||||
;;
|
||||
|
||||
*)
|
||||
if test "x${enable_visibility}" = "xyes" ; then
|
||||
AC_MSG_ERROR([Non-GNU / SUN compilers are currently unsupported])
|
||||
else
|
||||
AC_MSG_WARN([Non-GNU / SUN compilers are currently unsupported])
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
|
||||
#
|
||||
# visibility explicitly requested but not supported by this compiler => error
|
||||
#
|
||||
if test "x${enable_visibility}" = "xyes" -a "x${HAVE_VISIBILITY}" = "xno" ; then
|
||||
AC_MSG_ERROR([API visibility not supported by this compiler])
|
||||
fi
|
||||
fi
|
||||
|
||||
AC_SUBST(new_AM_CFLAGS)
|
||||
AC_SUBST(new_AM_LDFLAGS)
|
||||
|
||||
|
||||
Reference in new issue
Block a user