> Since the purpose of the new feature is to support per-project helper > files (right?), a single system directory doesn't seem right. Let's > not mess around with system directories if we can help it.
Not exactly. Truly per-project helper files is *not* a problem — they can be stored in the project, and so, do not require any support from autotools. The problem if the same helper files are shared, i. e. used in more than one project. Also, I often pack my own scripts/programs/whatever-else (which can be used, at least potentially, by others) to RPM packages, so I would like to have system directory for them. At the same time, user-writable directory is also wanted, if helper files are not yet packed, or for test/debug purposes. > In general, the closer the new behavior is to the existing, the > easier I think it will be to understand (and implement and document). That's right. So I am not going to invent something new. Instead, I am thinking about copying existing aclocal behavior: it already have all the required pieces, documented, and in use for a long time: 1. Default directory for automake-provided files: /usr/share/aclocal- VERSION. 2. It can be overridden by the ACLOCAL_AUTOMAKE_DIR env var. 3. It can be overridden by the --automake-acdir command line option. 4. Default directory for third-party system-wide files: /usr/share/aclocal. 5. It can be overridden by the --system-acdir command line option. 6. Extra directories can be specified with "dirlist" file in the directory for third-party system-wide files. 7. Extra directories can be specified by the -I command line option. 8. Extra directories can be specified by the ACLOCAL_PATH env var. 9. There is a mechanism to version aclocal files by using "#serial" comment. (The only thing I do not like is "dirlist" file. As described in the Automake manual, this file is intended to be edited by system administrator. In such a case, the proper location for the file would be /etc directory, not /usr/share/aclocal.) So, my draft proposal looks like: 1. A directory for automake-provided files: /usr/share/automake-VERSION — already in place. 2. It can be overridden by the AUTOMAKE_LIBDIR env var — already in place. 3. It can be overridden by the --libdir option — already in place. 4. A directory for third-party system-wide files — to do. Directory will be, obviously, /usr/share/automake (non-versioned). 5. An option to override it — to do. --system-libdir? 6. Extra directories with "dirlist" — to do. 7. An option for extra directories -- to do. -I? 8. An env var for extra directories -- to to. AUTOMAKE_PATH? 9. "#serial" comment — to do. Env var/option names could be more uniform, but backward compatibility limits it. > I think we should have Jim and/or other more experienced Automakers > weigh in before you start coding. But here are my comments. How to get it?