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/ecore_check_options.m4 \
|
||||||
m4/efl_doxygen.m4 \
|
m4/efl_doxygen.m4 \
|
||||||
m4/efl_path_max.m4 \
|
m4/efl_path_max.m4 \
|
||||||
|
m4/efl_shm_open.m4 \
|
||||||
m4/efl_tests.m4 \
|
m4/efl_tests.m4 \
|
||||||
m4/efl_threads.m4
|
m4/efl_threads.m4
|
||||||
|
|
||||||
|
|
|
@ -1434,59 +1434,8 @@ if ! test "x${have_atfile_source}" = "xno" ; then
|
||||||
])
|
])
|
||||||
fi
|
fi
|
||||||
|
|
||||||
SHM_OPEN_LIBS=""
|
# shm_open
|
||||||
|
EFL_CHECK_SHM_OPEN([have_shm_open="yes"], [have_shm_open="no"])
|
||||||
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}])
|
|
||||||
|
|
||||||
### Checks for optionnal feature
|
### Checks for optionnal feature
|
||||||
AC_CHECK_FUNC([mallinfo],
|
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@ \
|
@EVAS_LIBS@ \
|
||||||
@EINA_LIBS@ \
|
@EINA_LIBS@ \
|
||||||
@EVIL_LIBS@ \
|
@EVIL_LIBS@ \
|
||||||
@SHM_OPEN_LIBS@ \
|
@EFL_SHM_OPEN_LIBS@ \
|
||||||
@WAYLAND_EGL_LIBS@
|
@WAYLAND_EGL_LIBS@
|
||||||
|
|
||||||
libecore_evas_la_LDFLAGS = -no-undefined @lt_enable_auto_import@ -version-info @version_info@ @release_info@
|
libecore_evas_la_LDFLAGS = -no-undefined @lt_enable_auto_import@ -version-info @version_info@ @release_info@
|
||||||
|
|
Loading…
Reference in New Issue