Hello Brian, * Brian J. Murrell wrote on Thu, Mar 25, 2010 at 06:30:59PM CET: > We are seeing the following in trying to build our package(s) with some > versions of autoconf/automake: > > libcfs/libcfs/autoMakefile.am:88: variable `DIST_SOURCES' is defined but no > program or > libcfs/libcfs/autoMakefile.am:88: library has `DIST' as canonic name > (possible typo)
> Somebody has proposed a patch to simply move uses of DIST_SOURCES > assignments to EXTRA_DIST as such: > -DIST_SOURCES := $(libcfs-all-objs:%.o=%.c) tracefile.h user-prim.c \ > - user-lock.c user-tcpip.c > user-bitops.c\ > - user-mem.c linux/linux-tracefile.h > +EXTRA_DIST := $(libcfs-all-objs:%.o=%.c) Info.plist tracefile.h \ > + user-prim.c user-lock.c user-tcpip.c user-bitops.c \ > + user-mem.c linux/linux-tracefile.h > > But I can't help feeling like this is only a band-aid over the real > problem. > > I wonder if somebody can help me understand what has happened to > DIST_SOURCES and how we should properly migrate towards it's successor. As far as I know, DIST_SOURCES has never been part of the official Automake API, but I'm aware that in past times, API was a pretty muddy topic. (Stuff not documented in automake.texi is not part of the API.) Anyway, DIST_SOURCES is an internal variable which Automake uses to enumerate all the source files it has to distribute (in this case, source files means files for which Automake knows a rule to make some other thing from it). The normal way to enumerate source files as an Automake user it to list it in some target_SOURCES = ... nodist_target_SOURCES = ... lines, where 'target' is the flattened name of the output to which the sources contribute. If you can't use that (maybe because you need to let Automake not use its own rules for transforming the sources), then using EXTRA_DIST is probably the most useful alternative. Hope that helps. The automake warning could be a bit better, I guess. Cheers, Ralf