Aegisub/subprojects/csri/acinclude.m4
2021-01-10 03:14:12 -05:00

67 lines
1.6 KiB
Text

dnl AC_CPP_PRAGMA_ONCE
dnl - check for #pragma once
AC_DEFUN([AC_CPP_PRAGMA_ONCE], [{
AC_MSG_CHECKING([[whether $CPP supports #pragma once]])
AC_PREPROC_IFELSE(
[AC_LANG_PROGRAM([[#pragma once]])],
[
AC_MSG_RESULT([yes])
AC_DEFINE([HAVE_PRAGMA_ONCE], [1], [Preprocessor support for #pragma once])
],
[AC_MSG_RESULT([no])])
}])
dnl AC_C_FLAG([-flag])
dnl - check for CFLAG support in CC
AC_DEFUN([AC_C_FLAG], [{
AC_LANG_PUSH(C)
ac_c_flag_save="$CFLAGS"
CFLAGS="$CFLAGS $1"
AC_MSG_CHECKING([[whether $CC supports $1]])
AC_COMPILE_IFELSE(
[AC_LANG_PROGRAM([[]])],
[
AC_MSG_RESULT([yes])
m4_if([$3], [], [], [
CFLAGS="$ac_c_flag_save"
$3
])
], [
CFLAGS="$ac_c_flag_save"
AC_MSG_RESULT([no])
$2
])
AC_LANG_POP(C)
}])
dnl AC_C_FLAG([-flag])
dnl - check for CFLAG support in CC
AC_DEFUN([AC_GCC_VISIBILITY], [{
AC_MSG_CHECKING([[whether $CC supports GCC visibility]])
# always use Werror since visibility is sensitive
# doesn't work on anything other than gcc either way, so Werror is fine...
vis_type="$1"
save_cflags="$CFLAGS"
CFLAGS="$CFLAGS -fvisibility=$vis_type -Werror"
AC_LINK_IFELSE(
[AC_LANG_SOURCE([[
int a() __attribute__((visibility("default")));
int b() __attribute__((visibility("hidden")));
int c() __attribute__((visibility("internal")));
int a() { return 1; }
int b() { return 2; }
int c() { return 3; }
int main() { return a()+b()+c(); }
]])],
[
AC_MSG_RESULT([yes])
AC_DEFINE([HAVE_GCC_VISIBILITY], [1], [Compiler support for GCC visibility attributes])
save_cflags="$save_cflags -fvisibility=$vis_type"
],
[AC_MSG_RESULT([no])]
)
CFLAGS="$save_cflags"
}])