I have a program written in C and it uses Autoconf. It uses AC_PROG_CC_C99
in configure.ac
which when used with gcc translates to the -std=gnu99
compiler option. The program is written somewhat strictly according to the C99 specification and does not use any GNU extensions.
How should we set up Autoconf in order to make the compiler enforce that?
i usually use an m4-macro that checks whether a given compiler accepts a certain CFLAG.
put the following into your aclocal.m4 (i usually use m4/ax_check_cflags.m4 instead):
# AX_CHECK_CFLAGS(ADDITIONAL-CFLAGS, ACTION-IF-FOUND, ACTION-IF-NOT-FOUND)
#
# checks whether the $(CC) compiler accepts the ADDITIONAL-CFLAGS
# if so, they are added to the CXXFLAGS
AC_DEFUN([AX_CHECK_CFLAGS],
[
AC_MSG_CHECKING([whether compiler accepts "$1"])
cat > conftest.c++ << EOF
int main(){
return 0;
}
EOF
if $CC $CPPFLAGS $CFLAGS -o conftest.o conftest.c++ [$1] > /dev/null 2>&1
then
AC_MSG_RESULT([yes])
CFLAGS="${CFLAGS} [$1]"
[$2]
else
AC_MSG_RESULT([no])
[$3]
fi
])dnl AX_CHECK_CFLAGS
and call it from configure.ac with something like
AX_CHECK_CFLAGS([-std=c99 -pedantic])
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With