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 $@