VPATH build fails if template.macros.m4 is newer than a header file.

View: New views
3 Messages — Rating Filter:   Alert me  

VPATH build fails if template.macros.m4 is newer than a header file.

by Daniel Burrows-4 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

  If I untar the latest sigc++ release (2.2.1) and run the following:

$ touch sigc++/macros/template.macros.m4
$ mkdir builddir
$ cd builddir
$ ../configure
$ make

  the build will fail like this:

make[1]: Entering directory `/tmp/libsigc++-2.2.1/builddir'
Making all in sigc++
make[2]: Entering directory `/tmp/libsigc++-2.2.1/builddir/sigc++'
m4   -I ../../sigc++/macros -I macros ../../sigc++/macros/signal.h.m4  > signal.h
m4   -I ../../sigc++/macros -I macros ../../sigc++/macros/slot.h.m4  > slot.h
m4   -I ../../sigc++/macros -I macros ../../sigc++/macros/method_slot.h.m4  > method_slot.h
m4   -I ../../sigc++/macros -I macros ../../sigc++/macros/object_slot.h.m4  > object_slot.h
m4   -I ../../sigc++/macros -I macros ../../sigc++/macros/class_slot.h.m4  > class_slot.h
m4   -I ../../sigc++/macros -I macros ../../sigc++/macros/hide.h.m4  > hide.h
m4   -I ../../sigc++/macros -I macros ../../sigc++/macros/retype.h.m4  > retype.h
m4   -I ../../sigc++/macros -I macros ../../sigc++/macros/limit_reference.h.m4  > limit_reference.h
m4   -I ../../sigc++/macros -I macros ../../sigc++/functors/macros/functor_trait.h.m4  > functors/functor_trait.h
/bin/sh: functors/functor_trait.h: No such file or directory

  Commenting out the rule that tries to rebuild .h and .cc files seems
to prevent the build failure; since the files shipped in the .tar.gz are
presumably correct, I'll do that for now in the Debian package.  I
don't know what a proper fix looks like: presumably if those files are
autogenerated they should be produced in the build directory, not the
source directory, but that probably requires changing more of the build
system.

  Are VPATH builds generally supported by libsigc++, or should I look at
transitioning the Debian packaging away from using VPATH?

  Daniel
_______________________________________________
libsigc-list mailing list
libsigc-list@...
http://mail.gnome.org/mailman/listinfo/libsigc-list

Re: VPATH build fails if template.macros.m4 is newer than a header file.

by Murray Cumming :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message


On Sat, 2008-03-08 at 17:40 -0800, Daniel Burrows wrote:
> If I untar the latest sigc++ release (2.2.1) and run the following:
>
> $ touch sigc++/macros/template.macros.m4

Why would you do this?

If you are changing m4 files then you should probably
a) be using svn so you can send us a patch for whatever it is you are
doing.
b) be using the autogen.sh script, which might enable maintainer mode,
which might enable generation of .h/.cc files. But I'm offline right now
so I can't double-check that.

> $ mkdir builddir
> $ cd builddir
> $ ../configure
> $ make
>
>   the build will fail like this:
>
> make[1]: Entering directory `/tmp/libsigc++-2.2.1/builddir'
> Making all in sigc++
> make[2]: Entering directory `/tmp/libsigc++-2.2.1/builddir/sigc++'
> m4   -I ../../sigc++/macros -I macros ../../sigc++/macros/signal.h.m4  > signal.h
> m4   -I ../../sigc++/macros -I macros ../../sigc++/macros/slot.h.m4  > slot.h
> m4   -I ../../sigc++/macros -I macros ../../sigc++/macros/method_slot.h.m4  > method_slot.h
> m4   -I ../../sigc++/macros -I macros ../../sigc++/macros/object_slot.h.m4  > object_slot.h
> m4   -I ../../sigc++/macros -I macros ../../sigc++/macros/class_slot.h.m4  > class_slot.h
> m4   -I ../../sigc++/macros -I macros ../../sigc++/macros/hide.h.m4  > hide.h
> m4   -I ../../sigc++/macros -I macros ../../sigc++/macros/retype.h.m4  > retype.h
> m4   -I ../../sigc++/macros -I macros ../../sigc++/macros/limit_reference.h.m4  > limit_reference.h
> m4   -I ../../sigc++/macros -I macros ../../sigc++/functors/macros/functor_trait.h.m4  > functors/functor_trait.h
> /bin/sh: functors/functor_trait.h: No such file or directory
>
>   Commenting out the rule that tries to rebuild .h and .cc files seems
> to prevent the build failure; since the files shipped in the .tar.gz are
> presumably correct, I'll do that for now in the Debian package.  I
> don't know what a proper fix looks like: presumably if those files are
> autogenerated they should be produced in the build directory, not the
> source directory, but that probably requires changing more of the build
> system.
>
>   Are VPATH builds generally supported by libsigc++,

Yes. I don't think that distcheck would work if they were not.

>  or should I look at
> transitioning the Debian packaging away from using VPATH?

Are you patching the m4 file for debian? Why? If you can't send it
upstream, you should probably be patching the .h/.cc files instead.

--
Murray Cumming
murrayc@...
www.murrayc.com
www.openismus.com

_______________________________________________
libsigc-list mailing list
libsigc-list@...
http://mail.gnome.org/mailman/listinfo/libsigc-list

Re: VPATH build fails if template.macros.m4 is newer than a header file.

by Daniel Burrows :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

On Sun, Mar 09, 2008 at 07:26:46PM +0100, Murray Cumming <murrayc@...> was heard to say:
>
> On Sat, 2008-03-08 at 17:40 -0800, Daniel Burrows wrote:
> > If I untar the latest sigc++ release (2.2.1) and run the following:
> >
> > $ touch sigc++/macros/template.macros.m4
>
> Why would you do this?

  I don't, but the VCS system I use to maintain the Debian package doesn't
seem to preserve file timestamps.

> >  or should I look at
> > transitioning the Debian packaging away from using VPATH?
>
> Are you patching the m4 file for debian? Why? If you can't send it
> upstream, you should probably be patching the .h/.cc files instead.

  No, which is why commenting out this Make rule is a reasonable
temporary fix for me.

  Daniel
_______________________________________________
libsigc-list mailing list
libsigc-list@...
http://mail.gnome.org/mailman/listinfo/libsigc-list