On 04/28/2010 07:37 PM, Eric Blake wrote: > The rule of thumb for generated files: > If they are distributed, they should be generated in $(srcdir); > otherwise, they should be built by the end user in $(builddir). A minor clarification: a generated file must be machine-independent before it is a candidate for distribution. (For an obvious example, .o files are generated, but are definitely machine-dependent, hence they must live in $(builddir) and be built by the end user. As another example, configure and Makefile.in are generated but machine-independent, while config.status and Makefile are generated but machine-dependent, so only the former set belongs in the tarball.) The tools used for generating files are only optional if the tool is only needed for generating files into $(srcdir) (back to our example, cc is an end user prerequisite, but python can be optional for the end user because in the case of ./configure --without-python, the only files generated by python are already in the distribution). Finally, remember that tools that are optional for the end user are still mandatory for the person running 'make dist', hence our bootstrap.conf should be sure to list them to avoid a broken tarball just because the developer providing the package was missing some optional prerequisites. On a related point, in the case of libvirt, files generated by rpcgen blur the boundary. We allow the user to run their native rpcgen, meaning that the end file can be somewhat machine-dependent, but the version we ship in $(srcdir) must be generated by a particular flavor of rpcgen which is known to produce machine-independent files. -- Eric Blake eblake@xxxxxxxxxx +1-801-349-2682 Libvirt virtualization library http://libvirt.org
Attachment:
signature.asc
Description: OpenPGP digital signature
-- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list