On Sun, Oct 14, 2001 at 08:14:11PM +0200, Guido Draheim wrote: > [EMAIL PROTECTED] wrote: > > {..} > > Is this stylistically acceptable? > > *fg* oh well, speaking about style is (of course) a matter of taste > and then a matter of whose taste it shall please. For a macro that > you want to reuse in your own projects, yes looks good. > > Speaking as a maintainer of the (gnu) ac-archive, I would add just > some optional hints: > * calling the macro TEST_C99 is not quite correct as you only test > one specific feature - so it would be good to call the macro as > just that, e.g. TEST_C99_FOR_BLOCK or whatever you like to call it. > Just see how many STL&C++template checks we currently have at the > ac-archive.. compilers might implement C99 features just partially.
Fixed. > * tune your (internal and) exported variables, possibly just make them > longer so they do not accidently trap those of other macros, atleast > ensure to give a hint where a variable might have come from that another > macro might start to go and use - $C99 is probably not the best one. Fixed. > * you call a compile-test, even twice, and it looks as if this is a > case that can be turned into a macro using an AC_CACHE_CHECK value. > That's especially good during creation of configure-scrips as the > test can be run with a good cache-file that holds some answers > premade, and there is a good benefit in overly large projects that > might be able to share a answer-file - and speed up their configure > time dramatically. > * Personally, I'd prefer the cache_val to contain the needed answer > of the test - well, I'd see the needed clfag -std=gnu99 as the answer. > * in a highgrade extension, consider to add an ACTION-IF, ACTION-IF-NOT, > ACTION-WITH-CFLAG triple along with an ifelse() that puts in default > actions like adding the needed cflag to CFLAGS. But that might be > overdone for what you need - it would just serve you in learning > decent tricks one can do to make an autoconf-macro even more reusable ;-) i can't figure this out right now. :-) > * anyway, I'd really like to have this macro in the ac-archive for > others to reuse (and let it be tested for you ;-)) ... just read the > small hints about the small extras that are needed to have it registered: > http://ac-archive.sourceforge.net/#formatting Attached. Enjoy. -- Victory to the Divine Mother!! ... after all, why compete? http://sahajayoga.org http://why-compete.org
dnl @synopsis AC_PROG_C99_DECL dnl dnl Try to find a compiler option to convince the compiler to accept dnl mixed statements and declarations. This macros also verifies dnl that declarations can be made inside a for loop. For example: dnl dnl int x=0; x+=1; int y=0; dnl for (int z=0; z < 2; z++); dnl dnl @version $Id$ dnl @author Joshua N Pritikin <[EMAIL PROTECTED]> define([AC_PROG_C99_DECL_TEST], [AC_TRY_COMPILE([],[ int x=0; x+=1; int y=0; for (int z=0; z < 2; z++); ],[ac_cv_prog_c99_decl=yes],[ac_cv_prog_c99_decl=no]) ]) AC_DEFUN([AC_PROG_C99_DECL], [ AC_MSG_CHECKING([whether $CC accepts C99 declarations]) AC_PROG_C99_DECL_TEST if test $ac_cv_prog_c99_decl = no -a $GCC = yes; then save_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -std=gnu99" AC_PROG_C99_DECL_TEST if test $ac_cv_prog_c99_decl = no; then CFLAGS="$save_CFLAGS" else ac_cv_prog_c99_decl_fix=', with -std=gnu99' fi fi if test $ac_cv_prog_c99_decl = yes; then echo "yes$ac_cv_prog_c99_decl_fix" else AC_MSG_RESULT(no) AC_MSG_ERROR([ *** This package requires a C compiler with C99 support. Please *** consider trying a recent release of GCC.]) fi ])