[DTrace-devel] [PATCH] configure: accept standard installation directory options
Nick Alcock
nick.alcock at oracle.com
Wed Mar 4 20:19:42 UTC 2026
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 <kris.van.hees at oracle.com>
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)
More information about the DTrace-devel
mailing list