You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@httpd.apache.org by Manoj Kasichainula <ma...@io.com> on 2000/01/22 01:44:49 UTC
Re: cvs commit: apache-2.0/src/modules/standard mod_include.c mod_log_config.c mod_negotiation.c
(Text rearranged, and extra context provided, since I took so long to
respond to this)
On Tue, Dec 21, 1999 at 05:54:10PM -0500, Ryan Bloom wrote:
> Option 1)
>
> In apr.h.in:
>
> @THREADS@
>
> In configure.in: (In psuedo-code)
>
> if {check for threading support}
> THREADS="#define APR_HAS_THREADS
> else
> THREADS="#undef APR_HAS_THREADS
> fi
>
> AC_SUBST(THREADS)
>
> I initially opted for the first method, because it stuck with the #if rule
> that Apache had adopted. I happened to have made this change a few days
> before leaving work for a few days for personal reasons. While I was
> gone, I had three different people contact me to find out what those
> @THREADS@ things were there for. One of these people was trying to get
> autoconf working on his system again, the other two were trying to port
> APR to a platform without autoconf.
This probably would've been much clearer to people if the macro had
been DEFINE_IF_THREADS_ENABLED, with a comment mentioning what each
of these were. Then, I would think people wouldn't be confused.
Or:
Option 3)
(what PHP does for some vars it wants to expose)
configure.in:
PHP_VERSION=$VERSION
echo "/* automatically generated by configure */" > php_version.h.new
echo "/* edit configure.in.in to change version number */" >> php_version.h.new
echo "#define PHP_VERSION \"$PHP_VERSION\"" >> php_version.h.new
etc.
> Option 2)
>
> In apr.h:
>
> #define APR_HAS_THREADS @THREADS@
>
> In configure.in
>
> if {check for threading support}
> THREADS="1"
> else
> THREADS="0"
> fi
>
> AC_SUBST(THREADS)
>
> Option 2 is much clearer in this respect. It is obvious what we are
> trying to figure out. Plus, #if is much more powerful that #ifdef. There
> are times that we don't want to check if something is defined, but we want
> to check what the value of a definition is. Case in point, What version
> of AIX are we on?
Some autoconf macros' content are inspected. See the results of
AC_FUNC_SELECT_ARGTYPES, for example.
> If we are going to come right out and limit
> ourselves to either #if or #ifdef, them we had better choose wisely,
> because this issue will bite us when we want the added functionality of
> #if, but we can't use it because Apache 2.0 only uses #ifdef.
The autoheader convention is to #undef feature macros. And AFAIK, the
overwhelming possibility is that all ANSI compilers will support #if
if the feature macros are undefed.
So, I think that we should #undef feature macros, and we will have the
ability to convert #ifs to #ifdefs or back whenever we want.