forked from enlightenment/efl
Ecore: fix shm_open() check (can be in libc or librt)
This works in linux and windows, and should fix shm_detection on BSD (including Mac) BSD, Mac and solaris users : please check that it compiles and shm_open is detected SVN revision: 69616
This commit is contained in:
parent
61f2677e05
commit
15fb4326e2
|
@ -116,6 +116,7 @@ m4/ecore_check_module.m4 \
|
|||
m4/ecore_check_options.m4 \
|
||||
m4/efl_doxygen.m4 \
|
||||
m4/efl_path_max.m4 \
|
||||
m4/efl_shm_open.m4 \
|
||||
m4/efl_tests.m4 \
|
||||
m4/efl_threads.m4
|
||||
|
||||
|
|
|
@ -1434,59 +1434,8 @@ if ! test "x${have_atfile_source}" = "xno" ; then
|
|||
])
|
||||
fi
|
||||
|
||||
SHM_OPEN_LIBS=""
|
||||
|
||||
AC_MSG_CHECKING([whether shm_open is in libc])
|
||||
AC_LINK_IFELSE(
|
||||
[AC_LANG_PROGRAM(
|
||||
[[
|
||||
#include <sys/mman.h>
|
||||
#include <sys/stat.h>
|
||||
#include <fcntl.h>
|
||||
]],
|
||||
[[
|
||||
int fd;
|
||||
fd = shm_open("/", O_RDWR | O_CREAT, S_IRUSR | S_IWUSR);
|
||||
shm_unlink("/");
|
||||
]])],
|
||||
[
|
||||
have_shm_open="yes"
|
||||
AC_DEFINE(HAVE_SHM_OPEN, 1, [Have shm_open() call])
|
||||
],
|
||||
[have_shm_open="no"])
|
||||
LIBS="${LIBS_save}"
|
||||
AC_MSG_RESULT([${have_shm_open}])
|
||||
|
||||
if ! test "x${have_shm_open}" = "xyes" ; then
|
||||
AC_MSG_CHECKING([whether shm_open is in librt])
|
||||
LIBS_save="${LIBS}"
|
||||
LIBS="${LIBS} -lrt"
|
||||
AC_LINK_IFELSE(
|
||||
[AC_LANG_PROGRAM(
|
||||
[[
|
||||
#include <sys/mman.h>
|
||||
#include <sys/stat.h>
|
||||
#include <fcntl.h>
|
||||
]],
|
||||
[[
|
||||
int fd;
|
||||
fd = shm_open("/", O_RDWR | O_CREAT, S_IRUSR | S_IWUSR);
|
||||
shm_unlink("/");
|
||||
]])],
|
||||
[
|
||||
have_shm_open="yes"
|
||||
AC_DEFINE(HAVE_SHM_OPEN, 1, [Have shm_open() call])
|
||||
SHM_OPEN_LIBS="-lrt"
|
||||
],
|
||||
[have_shm_open="no"])
|
||||
LIBS="${LIBS_save}"
|
||||
AC_MSG_RESULT([${have_shm_open}])
|
||||
fi
|
||||
|
||||
AC_SUBST([SHM_OPEN_LIBS])
|
||||
|
||||
AC_MSG_CHECKING([whether shm_open is available])
|
||||
AC_MSG_RESULT([${have_shm_open}])
|
||||
# shm_open
|
||||
EFL_CHECK_SHM_OPEN([have_shm_open="yes"], [have_shm_open="no"])
|
||||
|
||||
### Checks for optionnal feature
|
||||
AC_CHECK_FUNC([mallinfo],
|
||||
|
|
|
@ -0,0 +1,69 @@
|
|||
dnl Copyright (C) 2010 Vincent Torri <vtorri at univ-evry dot fr>
|
||||
dnl That code is public domain and can be freely used or copied.
|
||||
|
||||
dnl Macro that check if shm_open function is available or not.
|
||||
|
||||
dnl Usage: EFL_CHECK_SHM_OPEN([, ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]])
|
||||
dnl Call AC_SUBST(EFL_SHM_OPEN_LIBS)
|
||||
dnl Define HAVE_SHM_OPEN to 1if shm_open is available
|
||||
|
||||
AC_DEFUN([EFL_CHECK_SHM_OPEN],
|
||||
[
|
||||
_efl_have_shm_open="no"
|
||||
|
||||
dnl Check is shm_open is in libc
|
||||
|
||||
AC_MSG_CHECKING([for shm_open in libc])
|
||||
AC_LINK_IFELSE(
|
||||
[AC_LANG_PROGRAM(
|
||||
[[
|
||||
#include <sys/mman.h>
|
||||
#include <sys/stat.h> /* For mode constants */
|
||||
#include <fcntl.h> /* For O_* constants */
|
||||
]],
|
||||
[[
|
||||
int fd;
|
||||
|
||||
fd = shm_open("/dev/null", O_RDONLY, S_IRWXU | S_IRWXG | S_IRWXO);
|
||||
]])],
|
||||
[_efl_have_shm_open="yes"],
|
||||
[_efl_have_shm_open="no"])
|
||||
|
||||
AC_MSG_RESULT([${_efl_have_shm_open}])
|
||||
|
||||
if test "x$_efl_have_shm_open" = "xno" ; then
|
||||
AC_MSG_CHECKING([for shm_open in librt])
|
||||
|
||||
LIBS_save="${LIBS}"
|
||||
LIBS="${LIBS} -lrt"
|
||||
AC_LINK_IFELSE(
|
||||
[AC_LANG_PROGRAM(
|
||||
[[
|
||||
#include <sys/mman.h>
|
||||
#include <sys/stat.h> /* For mode constants */
|
||||
#include <fcntl.h> /* For O_* constants */
|
||||
]],
|
||||
[[
|
||||
int fd;
|
||||
|
||||
fd = shm_open("/dev/null", O_RDONLY, S_IRWXU | S_IRWXG | S_IRWXO);
|
||||
]])],
|
||||
[
|
||||
EFL_SHM_OPEN_LIBS="-lrt"
|
||||
_efl_have_shm_open="yes"],
|
||||
[_efl_have_shm_open="no"])
|
||||
|
||||
LIBS="${LIBS_save}"
|
||||
|
||||
AC_MSG_RESULT([${_efl_have_shm_open}])
|
||||
fi
|
||||
|
||||
AC_SUBST([EFL_SHM_OPEN_LIBS])
|
||||
|
||||
if test "x$_efl_have_shm_open" = "xyes" ; then
|
||||
AC_DEFINE([HAVE_SHM_OPEN], [1], [Define to 1 if you have the `shm_open' function.])
|
||||
fi
|
||||
|
||||
AS_IF([test "x$_efl_have_shm_open" = "xyes"], [$1], [$2])
|
||||
|
||||
])
|
|
@ -151,7 +151,7 @@ $(top_builddir)/src/lib/ecore/libecore.la \
|
|||
@EVAS_LIBS@ \
|
||||
@EINA_LIBS@ \
|
||||
@EVIL_LIBS@ \
|
||||
@SHM_OPEN_LIBS@ \
|
||||
@EFL_SHM_OPEN_LIBS@ \
|
||||
@WAYLAND_EGL_LIBS@
|
||||
|
||||
libecore_evas_la_LDFLAGS = -no-undefined @lt_enable_auto_import@ -version-info @version_info@ @release_info@
|
||||
|
|
Loading…
Reference in New Issue