Build issue
Claus, Ric
claus at slac.stanford.edu
Sun May 13 18:06:10 UTC 2012
On May 11, 2012, at 10:57 PM, Ralf Corsepius wrote:
> On 05/12/2012 02:41 AM, Claus, Ric wrote:
>> In developing my BSPs, I am periodically re-confused by my changes not "taking". This seems to bite me with .h files and not .c files, although I wouldn't claim that it is limited to .h files. It is not resolved by any number of ./bootstrap -c; ./bootstrap or ./bootstrap -p cycles in the source tree, nor any ../src/configure commands in the build tree. The only thing I've found to remedy the situation is to blow away the build tree and recreate it, then do the 'configure' and 'make all' steps again. Copying the affected source files by hand to the build tree also works, but seems somewhat unorthodox.
>
> I do not understand which issues you are having.
After an initial build of RTEMS, .h files that are added or updated in the RTEMS source tree are not copied to the build tree. They are correctly referred to in the appropriate Makefile.in. It behaves as if the build tree makefiles are missing a dependency of the build tree .h files on the source tree .h files.
>
>
>> For what it's worth, I'm working with a freshly pulled master copy of the git repository, the BSPs are PowerPC based and my configure step looks like:
>>
>> ../src/configure --target=powerpc-rtems4.11 --enable-posix --enable-networking --enable-rdbg --enable-cxx --enable-maintainer-mode --enable-rtemsbsp="virtex4 virtex5" --prefix=$TARGET_DIR
> Add --enable-maintainer-mode to this line.
If you look carefully, you'll see that it is (was) already there.
>
> Unless you are changing the structure of the source tree, this will
> automatically update all "bootstrap"-generated sources, if necessary
>
>> On another topic, is there any way to limit what bootstrap operates on?
> Firstly, running bootstrap from the toplevel is only necessary once,
> after fresh checkout.
>
> Afterwards. if you have maintainer-mode enabled, there should not be any
> need for running bootstrap
Except when I am modifying some Makefile.in, etc. in the source tree, right?
>
>> Since it takes quite a while to complete and most of the BSPs are of no interest to me, I would like to avoid bootstrapping them.
>
> You can selectively run bootstrap from sub-trees of the source tree.
>
> I.e. if you added a new files to c/src/lib/libbsp/<target>/<bsp>/ and
> have edited c/src/lib/libbsp/<target>/<bsp>/Makefile.am,
> you can
> cd ${RTEMS_HOME}/c/src/lib/libbsp/<target>/<bsp>/
> ${RTEMS_HOME}/bootstrap
Ah, great! I didn't know that. That helps.
>
> When building this <bsp> from this sourcetree with maintainer-mode
> enabled, rerunning make will automatically do this for you in most cases.
>
> One final advise: Do not switch git-branches in git checkouts.
> As git does not preserve timestamps, while make and the autotools are
> relying on timesstamps, this will break time-stamps on generated files
> and eventually result in havoc - You a toplevel bootstrap with each "git
> branch checkout".
>
> To avoid this, my advise is to use multiple checkouts instead.
Okay, thanks, but I haven't been trying to do that.
Ric
>
> Ralf
More information about the users
mailing list