Eric Blake <[email protected]> writes: > According to Simon Josefsson on 4/27/2009 3:39 AM: >> >> The patch below makes the error messages better. Ok to push? > > No. You aren't fixing the real bug. > >> >> I prefer that maintainer-makefile do not depend on vc-list-files and >> useless-if-before-free modules: not every use of maint.mk requires >> syntax-check to work, and not every use of syntax-check needs >> useless-if-before-free tests. > > I agree with this point. > >> -VC_LIST = $(gnulib_dir)/build-aux/vc-list-files -C $(srcdir) >> +VC_LIST_FILES ?= $(gnulib_dir)/build-aux/vc-list-files >> +VC_LIST = $(VC_LIST_FILES) -C $(srcdir) > > The real bug is that $(gnulib_dir) is expanding to the empty string, but > we aren't checking that fact.
Oops. I didn't notice this. > The intent is that your cfg.mk should point to the location where you > expect to find a fresh gnulib checkout, so that you DON'T have to add > a dependency on vc-list-files or useless-if-before-free. Using > maint.mk from gnulib implies that you have gnulib installed, which is > why I was okay writing it in this way. I don't think that is true -- I have been using maint.mk in several projects without requiring a locally installed gnulib repository for bootstrapping. There are at least two ways to use gnulib with version control: 1) Use gnulib-tool --import to import files, and add them to version control. 2) Use bootstrap to import the gnulib files every time you bootstrap from version controlled sources. So far, maintainer-makefile has supported both variants. > Hmm, maybe maint.mk should provide a default value of $(gnulib_dir) as > gnulib (assuming that you use it as a git submodule, the way bison, > coreutils, and m4 currently do), while still allowing a cfg.mk override > (the way autoconf currently does). Given the above, this seems wrong to me. Instead, why don't maint.mk use the local build-aux/ path? Right now it looks in the gnulib directory (gnulib/) but the right thing seems like the maintainer should --import vc-list-files and useless-if-before-free (possibly maintainer-makefile should depend on them) and then maint.mk should call the files from the locally imported build-aux/ directory. Right? /Simon
