automake
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: How to specify 2 stage build in Makefile.am


From: Alexandre Duret-Lutz
Subject: Re: How to specify 2 stage build in Makefile.am
Date: Sat, 19 Oct 2002 14:37:52 +0200
User-agent: Gnus/5.090008 (Oort Gnus v0.08) Emacs/20.7 (i386-debian-linux-gnu)

>>> "Duncan" == Duncan Gibson <address@hidden> writes:

[...]

 Duncan> bin_PROGRAMS = CubeView

 Duncan> CubeView_SOURCES = \
 Duncan> CubeMain.cxx \
 Duncan> CubeView.cxx CubeView.h \
 Duncan> CubeViewUI.fl

 Duncan> SUFFIXES = .cxx .h .fl

 Duncan> .fl.cxx .fl.h:
 Duncan>        fluid -c $<

Automake won't understand this (looks like a bug to me).  That's
why you later had to add

   nodist_CubeView_SOURCES = CubeViewUI.cxx CubeViewUI.h

If you rewrite your implicit rules as

.fl.cxx:
        fluid -c $<
.fl.h:
        fluid -c $<

Automake should be able to figure that CubeViewUI.fl can be
transformed into CubeViewUI.cxx which in turn needs to be
compiled, without the help of a nodist_CubeView_SOURCES
variable.  (You don't even need to define SUFFIXES if you do
that.)

[...]

 Duncan> Now 'make' still fails when it tries to build
 Duncan> CubeMain.o because it wants to #include CubeViewUI.h
 Duncan> which has not yet been built. However, if I say 'make
 Duncan> CubeViewUI.cxx' then 'fluid -c CubeViewUI.fl' is called
 Duncan> as expected.

The simplest answer is

  BUILT_SOURCES = CubeViewUI.h

this will cause CubeViewUI.h to be built before anything else.
-- 
Alexandre Duret-Lutz





reply via email to

[Prev in Thread] Current Thread [Next in Thread]