Re: [DTrace-devel] [PATCH] configure: accept standard installation directory options
Nick Alcock <[email protected]> Wed, 04 Mar 2026 20:19:42 +0000
| Newsgroups | dev.linux.lists.dtrace |
|---|---|
| Message-ID | <[email protected]> |
On 4 Mar 2026, Kris Van Hees via DTrace-devel verbalised: > Even though we do not use them, the GNU Coding Standards expect configure > to accept the following installation directory options as well: > > --infodir=PREFIX/share/info Info documentation directory > --sysconfdir=PREFIX/etc System configuration directory > --localstatedir=PREFIX/var Runtime system data directory > --runstatedir=PREFIX/var/run Per-process data directory > > This patch also redefines some of the make variables in terms of one > another now that a larger set is supported. Oh, excellent! > Signed-off-by: Kris Van Hees <[email protected]> Looks good, but... > --- > GNUmakefile | 13 ++++++++----- > configure | 42 +++++++++++++++++++++++++++++++++++------- > 2 files changed, 43 insertions(+), 12 deletions(-) > > diff --git a/GNUmakefile b/GNUmakefile > index 38ae5423..835bc9b5 100644 > --- a/GNUmakefile > +++ b/GNUmakefile > @@ -90,15 +90,18 @@ SBINDIR = $(prefix)/sbin > INSTSBINDIR = $(DESTDIR)$(SBINDIR) > UDEVDIR = $(prefix)/lib/udev/rules.d > INSTUDEVDIR = $(DESTDIR)$(UDEVDIR) > -SYSTEMDPRESETDIR = $(prefix)/lib/systemd/system-preset > -SYSTEMDUNITDIR = $(prefix)/lib/systemd/system > +SYSTEMDDIR = $(prefix)/lib/systemd > +SYSTEMDPRESETDIR = $(SYSTEMDDIR)/system-preset > +SYSTEMDUNITDIR = $(SYSTEMDDIR)/system > INSTSYSTEMDPRESETDIR = $(DESTDIR)$(SYSTEMDPRESETDIR) > INSTSYSTEMDUNITDIR = $(DESTDIR)$(SYSTEMDUNITDIR) > -DOCDIR = $(prefix)/share/doc/dtrace-$(VERSION) > +DATAROOTDIR = $(prefix)/share > +DATADIR = $(DATAROOTDIR) > +DOCDIR = $(DATADIR)/doc/dtrace-$(VERSION) > INSTDOCDIR = $(DESTDIR)$(DOCDIR) > -MANDIR = $(prefix)/share/man > +MANDIR = $(DATADIR)/man > INSTMANDIR = $(DESTDIR)$(MANDIR) > -PKGCONFIGDIR = $(prefix)/share/pkgconfig > +PKGCONFIGDIR = $(DATADIR)/pkgconfig > INSTPKGCONFIGDIR = $(DESTDIR)$(PKGCONFIGDIR) > TESTDIR = $(LIBDIR)/dtrace/testsuite > INSTTESTDIR = $(DESTDIR)$(TESTDIR) > diff --git a/configure b/configure > index cb2f585a..96a13137 100755 > --- a/configure > +++ b/configure > @@ -53,16 +53,30 @@ help() > Installation paths: > > --prefix=/usr Prefix of all installed paths > +--exec-prefix=PREFIX Prefix of arch-dependent paths > --objdir=build Build directory > --libdir=PREFIX/lib64 Library directory > --bindir=PREFIX/sbin Binary directory > --sbindir=PREFIX/sbin Alias for --bindir > +--libexecdir=PREFIX/libexec Program executables directory > +--sysconfdir=PREFIX/etc System configuration directory > +--sharedstatedir=PREFIX/com Arch-independent data directory > +--localstatedir=PREFIX/var Runtime system data directory > +--runstatedir=PREFIX/var/run Per-process data directory > --includedir=PREFIX/include #include directory > ---mandir=PREFIX/share/man Manpage directory > ---pkg-config-dir=PREFIX/share/pkgconfig Pkg-config directory > ---udevdir=PREFIX/lib/udev/rules.d udev rules directory > ---systemd-unit-dir=PREFIX/lib/systemd/system systemd unit directory Did you mean to entirely disappear this option? It would still have an effect if it was kept. > ---docdir=PREFIX/share/doc/dtrace Documentation directory > +--oldincludedir=PREFIX/include #include directory (non-gcc) > +--udevdir=PREFIX/lib/udev/rules.d Udev rules directory > +--systemd-dir=PREFIX/lib/systemd Systemd config directory > +--datarootdir=PREFIX/share Arch-independent data root > +--datadir=DATAROOTDIR Arch-independent data directory > +--pkg-config-dir=DATADIR/pkgconfig Pkg-config directory > +--infodir=DATARIR/info Info documentation directory > +--localedir=DATADIR/locale locale specific data directory > +--mandir=DATADIR/man Manpage documentation directory > +--docdir=DATADIR/doc/dtrace Documentation root directory > +--htmldir=DOCDIR Html documentation directory > +--pdfdir=DOCDIR PDF documentation directory > +--psdir=DOCDIR PS documentation directory > --testdir=LIBDIR/dtrace/testsuite Testsuite install directory Nice! ... really the number of these is quite overwhelming now. I think we need a little more structure. It might be worth indicating in the help output which options have no effect, though, since some of them do have an effect indirectly, like --datarootdir, but some have no effect at all, like --oldincludedir. I'm honestly shocked --oldincludedir still exists -- I've never seen anything at all that uses it. Maybe GCC pre-2.7.x? Maybe these should be moved to separate --help sections, maybe titled 'Installation paths affecting other paths' and 'Unused paths accepted for compatibility only'? > + --pdfdir=*) write_make_var PDFDIR "$option";; > + --psdir=*) write_make_var PSDIR "$option";; These don't exist in most Autoconf-using programs at all, though they are in the GNU Coding Standards. But, again, this would be fine with me if only they were moved into a separate --help section :) -- NULL && (void)