[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Finding "config.h" in VPATH builds
From: |
David Bruce |
Subject: |
Finding "config.h" in VPATH builds |
Date: |
Sat, 19 Sep 2009 17:43:54 -0500 |
I have a project with all the source files in a src directory just
below trunk, which is where the top level configure.ac and Makefile.am
live. When I run configure, config.h is created at build/config.h.
If I run configure from within trunk, make works successfully, but if
I do a VPATH build I get errors because config.h is not located. If I
change ' #include "config.h" ' to ' #include ../config.h" ', it works
as either a VPATH build or an in-tree build. I'm not sure this is the
right way to address this, however.
>From the Autoconf manual:
"To provide for VPATH builds, remember to pass the C compiler a -I.
option (or -I..; whichever directory contains config.h). Even if you
use ‘#include "config.h"’, the preprocessor searches only the
directory of the currently read file, i.e., the source directory, not
the build directory.
With the appropriate -I option, you can use ‘#include <config.h>’.
Actually, it's a good habit to use it, because in the rare case when
the source directory contains another config.h, the build directory
should be searched first."
This seems to say that I need to pass a "-I.." option, because
config.h is located at ../config.h relative to the source files.
My question is how should I best do this? I have tried adding "-I.."
to AM_CPPFLAGS in src/Makefile.am, but it does not appear to work.
(I might add that the project built fine using #include "config.h" as
either VPATH or in-tree until a lot of code got added by several
contributors over the summer, and I can't seem to track down the
change that broke the VPATH builds.)
Thanks for any help,
David Bruce