automake
[Top][All Lists]
Advanced

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

Re: Specifying dependencies difficulties


From: Angus Leeming
Subject: Re: Specifying dependencies difficulties
Date: Mon, 16 Jan 2006 09:57:48 +0000
User-agent: KNode/0.10

Harlan Stenn wrote:
>> Unfortunately, going this route will mean my project loses all CVS
>> history information :( If only sourceforge were using subversion. (Yes,
>> I know they plan to do so "real soon now".)
> 
> Ah.  Can you copy the ,v files to the  new dir and then cvs rm the old
> ones?

Nope.

> (I hate cvs - this is one reason why.)
> 
>> Just to be clear here, the *only way* to get automake to honour the
>> dependencies I specified in my first mail is to use subdirs to control
>> the build order?
> 
> There may be some other way - if you are willing to require folks to
> "follow the instructions" instead of having folks decide to arbitrarily
> jump to some subdir and type "make" there in order to get the beast to
> build you can get around some problems that way.
> 
> Here are some possible choices:
> 
> - use AC_CONFIG_COMMANDS() to produce your generated files:
>   AC_CONFIG_COMMANDS([gen-pstuff], [make -C subdir]) so they will be
>   ready for the top-level build

Won't work, as I need to "make" a library to link against kconfig_compiler.

> - Carefully place '.' in SUBDIRS and use a (possibly new) subdir ahead
>   of '.' to produce the generated files

Won't work with BUILT_SOURCES, as BUILT_SOURCES is executed before SUBDIRS
are considered. (Apparently.)

Nonetheless, thanks for your help.

...Late press: I have a solution! Not sure how pretty this is, but it does
work.

Angus


 SUBDIRS = kdelibs .

 # Have to remove these files from BUILT_SOURCES as otherwise they're
 # the first thing that make tries to do.
 BUILT_SOURCES = \
        version.cpp \
-       kvsprefs.cpp \
-       kvsprefs.h \
-       psheader.c \
-       prefs.cpp \
-       prefs.h \
        $(nodist_qdvi_SOURCES) $(UIFILES:.ui=.moc)

 # Add 'em here, so that things get cleaned up.
 DISTCLEANFILES += \
        config.h \
+       kvsprefs.cpp \
+       kvsprefs.h \
+       psheader.c \
+       prefs.cpp \
+       prefs.h \
        stamp-version \
        version.cpp-tmp \
        $(BUILT_SOURCES)

 CONFIG_COMPILER =  kdelibs/kconfig_compiler$(EXEEXT)
 bin_PROGRAMS = qdvi
 noinst_PROGRAMS = squeeze

 qdvi_SOURCES = \
        ... \
        kvsprefs.cpp \
        kvsprefs.h \
        ... \
        prefs.cpp \
        prefs.h \
        ...

 # Make the objects depend explicitly on the generated files.
 # Triggers there generation using the rules below.
+$(qdvi_OBJECTS): kvsprefs.cpp kvsprefs.h prefs.cpp prefs.h psheader.c
+
+kvsprefs.h: kvsprefs.cpp

kvsprefs.cpp: kviewshell.kcfg kvsprefs.kcfgc
        $(CONFIG_COMPILER) $(srcdir)/kviewshell.kcfg $(srcdir)/kvsprefs.kcfgc

+prefs.h: prefs.cpp
+
 prefs.cpp: kdvi.kcfg prefs.kcfgc
        $(CONFIG_COMPILER) $(srcdir)/kdvi.kcfg $(srcdir)/prefs.kcfgc

 squeeze_SOURCES = squeeze.c

 psheader.c: psheader.txt squeeze$(EXEEXT)
        ./squeeze$(EXEEXT) $(srcdir)/psheader.txt $@








reply via email to

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