All of lore.kernel.org
 help / color / mirror / Atom feed
From: Nick Alcock <nick.alcock@oracle.com>
To: Kris Van Hees <kris.van.hees@oracle.com>
Cc: dtrace-devel@oss.oracle.com, dtrace@lists.linux.dev
Subject: Re: [DTrace-devel] [PATCH] configure: accept standard installation directory options
Date: Wed, 04 Mar 2026 20:19:42 +0000	[thread overview]
Message-ID: <87eclz73fl.fsf@esperi.org.uk> (raw)
In-Reply-To: <DS0PR10MB7522D6733324ACDB8A52D983C27CA@DS0PR10MB7522.namprd10.prod.outlook.com> (Kris Van Hees via DTrace-devel's message of "Wed, 04 Mar 2026 13:50:40 -0500")

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@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)

  reply	other threads:[~2026-03-04 20:20 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-03-04 18:50 [PATCH] configure: accept standard installation directory options Kris Van Hees
2026-03-04 20:19 ` Nick Alcock [this message]
2026-03-04 20:51   ` [DTrace-devel] " Kris Van Hees
2026-03-04 20:57     ` Nick Alcock

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87eclz73fl.fsf@esperi.org.uk \
    --to=nick.alcock@oracle.com \
    --cc=dtrace-devel@oss.oracle.com \
    --cc=dtrace@lists.linux.dev \
    --cc=kris.van.hees@oracle.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.