mirror of
https://github.com/moparisthebest/pacman
synced 2025-02-28 17:31:52 -05:00
Add some more autoconf macros to filter our CFLAGS usage
Hopefully these new autoconf macros, with a little magic, will allow us to compile with any compiler and still choose the options we have available to us. Tested locally with gcc 4.2.2 and gcc 3.4.6; the latter doesn't support two of the items we previously had hardcoded in our CFLAGS. Signed-off-by: Dan McGee <dan@archlinux.org>
This commit is contained in:
parent
8feccaed78
commit
c26fe63ee5
41
acinclude.m4
41
acinclude.m4
@ -6623,3 +6623,44 @@ AC_DEFUN([GCC_STACK_PROTECT_CC],[
|
|||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
])
|
])
|
||||||
|
|
||||||
|
dnl GCC_VISIBILITY_CC
|
||||||
|
dnl checks -fvisibility=internal with the C compiler, if it exists then
|
||||||
|
dnl defines ENABLE_VISIBILITY_CC in both configure script and Makefiles
|
||||||
|
AC_DEFUN([GCC_VISIBILITY_CC],[
|
||||||
|
AC_LANG_ASSERT(C)
|
||||||
|
if test "X$CC" != "X"; then
|
||||||
|
AC_CACHE_CHECK([whether ${CC} accepts -fvisibility=internal],
|
||||||
|
visibility_cv_cc,
|
||||||
|
[visibility_old_cflags="$CFLAGS"
|
||||||
|
CFLAGS="$CFLAGS -fvisibility=internal"
|
||||||
|
AC_TRY_COMPILE(,, visibility_cv_cc=yes, visibility_cv_cc=no)
|
||||||
|
CFLAGS="$visibility_old_cflags"
|
||||||
|
])
|
||||||
|
if test $visibility_cv_cc = yes; then
|
||||||
|
AC_DEFINE([ENABLE_VISIBILITY_CC], 1, [Define if symbol visibility C support is enabled.])
|
||||||
|
fi
|
||||||
|
AM_CONDITIONAL([ENABLE_VISIBILITY_CC], test "x$visibility_cv_cc" = "xyes")
|
||||||
|
fi
|
||||||
|
])
|
||||||
|
|
||||||
|
dnl GCC_GNU89_INLINE_CC
|
||||||
|
dnl checks -fgnu89-inline with the C compiler, if it exists then defines
|
||||||
|
dnl ENABLE_GNU89_INLINE_CC in both configure script and Makefiles
|
||||||
|
AC_DEFUN([GCC_GNU89_INLINE_CC],[
|
||||||
|
AC_LANG_ASSERT(C)
|
||||||
|
if test "X$CC" != "X"; then
|
||||||
|
AC_CACHE_CHECK([for -fgnu89-inline],
|
||||||
|
gnu89_inline_cv_cc,
|
||||||
|
[ gnu89_inline_old_cflags="$CFLAGS"
|
||||||
|
CFLAGS="$CFLAGS -fgnu89-inline"
|
||||||
|
AC_TRY_COMPILE(,, gnu89_inline_cv_cc=yes, gnu89_inline_cv_cc=no)
|
||||||
|
CFLAGS="$gnu89_inline_old_cflags"
|
||||||
|
])
|
||||||
|
if test $gnu89_inline_cv_cc = yes; then
|
||||||
|
AC_DEFINE([ENABLE_GNU89_INLINE_CC], 1, [Define if gnu89 inlining semantics should be used.])
|
||||||
|
fi
|
||||||
|
AM_CONDITIONAL([ENABLE_GNU89_INLINE_CC], test "x$gnu89_inline_cv_cc" = "xyes")
|
||||||
|
fi
|
||||||
|
])
|
||||||
|
|
||||||
|
@ -162,6 +162,11 @@ AC_CHECK_FUNCS([realpath regcomp strcasecmp strdup strerror strnlen \
|
|||||||
# Enable large file support if available
|
# Enable large file support if available
|
||||||
AC_SYS_LARGEFILE
|
AC_SYS_LARGEFILE
|
||||||
|
|
||||||
|
# Check if we can use symbol visibility support in GCC
|
||||||
|
GCC_VISIBILITY_CC
|
||||||
|
# Check if we have -fgnu89-inline flag
|
||||||
|
GCC_GNU89_INLINE_CC
|
||||||
|
|
||||||
# Host-dependant flags
|
# Host-dependant flags
|
||||||
case "${host}" in
|
case "${host}" in
|
||||||
*-*-cygwin*)
|
*-*-cygwin*)
|
||||||
|
@ -7,7 +7,14 @@ include_HEADERS = alpm_list.h alpm.h
|
|||||||
|
|
||||||
DEFS = -DLOCALEDIR=\"@localedir@\" @DEFS@
|
DEFS = -DLOCALEDIR=\"@localedir@\" @DEFS@
|
||||||
|
|
||||||
AM_CFLAGS = -fvisibility=internal -pedantic -D_GNU_SOURCE -fgnu89-inline
|
AM_CFLAGS = -pedantic -D_GNU_SOURCE
|
||||||
|
|
||||||
|
if ENABLE_VISIBILITY_CC
|
||||||
|
AM_CFLAGS += -fvisibility=internal
|
||||||
|
endif
|
||||||
|
if ENABLE_GNU89_INLINE_CC
|
||||||
|
AM_CFLAGS += -fgnu89-inline
|
||||||
|
endif
|
||||||
|
|
||||||
libalpm_la_SOURCES = \
|
libalpm_la_SOURCES = \
|
||||||
add.h add.c \
|
add.h add.c \
|
||||||
|
Loading…
x
Reference in New Issue
Block a user