Build issue

Ralf Corsepius ralf.corsepius at rtems.org
Sat May 12 05:57:26 UTC 2012


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.


> 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.

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

>  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

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.

Ralf



More information about the users mailing list