Folks,

I have two templates, `foo.cin' and `foo.hin', which are used to
create the files `foo.c' and `foo.h', respectively.  File `foo.h'
get's included in another header file, `bar.h', which in turn is
included by almost every other file of library `foobar' (including
`foo.c').

Currently, I have this in my Makefile.am:

  libfoobar_la_SOURCES = \
     bar.h \
     ... \
     foo.c \
     foo.h \
     ...

  foo.h: foo.hin
         do-something < foo.hin > foo.h
  foo.c: foo.cin
         do-something < foo.cin > foo.c

Unfortunately, this doesn't work.  While calling `make', I get

    GEN foo.c
    CC  foo.lo
  In file included from foo.c:
  bar.h: fatal error: foo.h: No such file or directory
  compilation terminated.
  make[2]: *** [foo.lo] Error 1

What's the recommended solution to such a problem, except adding
dependencies for all .c files which directly or indirectly include
`foo.h' (which is both inconvenient and error prone)?


    Werner

Reply via email to