[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: finding the value of a preprocessor symbol
From: |
Ralf Wildenhues |
Subject: |
Re: finding the value of a preprocessor symbol |
Date: |
Sun, 24 Jan 2010 09:45:09 +0100 |
User-agent: |
Mutt/1.5.20 (2009-10-28) |
Hello David,
* David Byron wrote on Fri, Jan 22, 2010 at 12:38:03AM CET:
> Let's say I have a header file named foo.h that contains:
>
> #define FOO an_interesting_value
>
> (I think) I'm looking for a macro like this:
>
> AC_GET_VALUE([foo.h],[FOO])
>
> that populates ac_cv_value_of_FOO with an_interesting_value
>
> Does such a macro exist? Apologies if this is a FAQ. I can think of a way
> to do this by compiling a program that writes the result to a file, but that
> seems complicated and a struggle when cross-compiling.
There is AC_COMPUTE_INT which allows you to compute the integer
(signed long) value of an arbitrary compile-time expression. It is
a bit overkill for your case (in a cross-compile situation, it may
need up to log_2(value) compilations to find the value), but should
work nonetheless.
Autoconf provides AC_EGREP_CPP but that doesn't let you get at the
matched string. I think we should add something like this, or allow
AC_PREPROC_IFELSE to store its output for inspection in the IF-TRUE
branch.
cpp -dM is not portable to non-GCC compilers.
Thanks for the report.
Cheers,
Ralf