[DTrace-devel] [PATCH] configure: accept standard installation directory options

Kris Van Hees kris.van.hees at oracle.com
Wed Mar 4 20:51:20 UTC 2026


On Wed, Mar 04, 2026 at 08:19:42PM +0000, Nick Alcock wrote:
> 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.

Is it actually used in any way?  From what I have been able to see, the unit
directory is always SYSTEMDDIR/system, just like the presets always seem to
go in SYMTEMDDIR/system-preset (for which we never had a specific option
anyway), so it would seem that --systemd-dir is sufficient.

> > ---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'?

The help already shows the way the different settings affect one another, so I
don't see what extra thing we can do here.  Moving them to a separete section
seems odd because that means they get separated from one another.

Also, while we could spell out unused paths that are accepted for
compatibility, none of the packages I looked at for reference seem to do that.
According to the coding standard it is also perfectly fine to ignore them
(i.e. silently accept them).

But if you feel strongly about this, we can definitely move them to their own
section.

> > +        --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 :)

In summary:

 - I think that using --systemd-dir and deprecating --systemd-unit-dir is a
   valid change, especially since we hve the inconsistency of having had that
   specific option for the unit file directory but not for the presets.

 - I don't think it makes sense to separate out the options for paths that have
   effects on other paths, since grouping them all together as they are in this
   patch actually documents how they relate to one another.

 - I will move the unsused options to their own sub-section in the help to show
   they exist for compatibility only.  If we ever end up using them, we can
   move them.

DOes that sound ok?



More information about the DTrace-devel mailing list