On Sat, Feb 20, 2010 at 8:52 UTC, Ralf Wildenhues wrote: > Isn't this still a user error though? The problem with your info files > depending on compiled programs is that you then cannot easily distribute > them? Put another way, if something in the source tree depends on > something in the build tree, then that is a packaging bug, because it > prevents building off a readonly medium, and causes things to be > regenerated that shouldn't need to.
NTP uses Autogen's autoopts and derives .texi files from the option definitions file (.def) and from the compiled binary (to get the usage text) and ran into some issues with the odd dependency. NTP does not currently generate .info files so we haven't run into the bug with the read-only source directory and Automake's .texi.info rule. NTP 4.2.6 and later[1] solve the dependency problem by avoiding it: there is no dependency of the .texi on the compiled binary listed, rather, we rely on the fact that the real source of the usage text embedded in the compiled binary is the options definitions file, such as ntpd-opts.def, and any files it includes. The .texi product is listed in our .am files under both EXTRA_DIST and noinst_DATA, which seems to have the desired effect of deferring .texi generation until after the compiled binary is ready. If you build from a read-only source directory, no problem, because your .def file will be older than your .texi, arranged by the bootstrap script run by someone building from a SCM checkout, or by the tarball builder. No attempt to make the .texi will occur. You might also notice autogen is invoked in NTP builds with the build dir prepended to $PATH. This is needed by aginfo.tpl, the template that is used to generate the .texi/.menu output, because it invokes the compiled binary from $PATH if it is not in the current directory, and we invoke it in the source directory (so that we can distribute the .texi and most users and even developers then don't need the latest Autogen to build NTP). Cheers, Dave Hart A.K.A. [email protected] [1] http://ntp.bkbits.net:8080/ntp-stable/ntpdc/Makefile.am?PAGE=anno&REV=4b3ae9b3ljwKXdhRVvoPxS6G_K2K5Q or http://tinyurl.com/yhsd2rt
