[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Proper location to install shell function libraries?
From: |
Nick Bowler |
Subject: |
Re: Proper location to install shell function libraries? |
Date: |
Wed, 1 Mar 2017 11:13:18 -0500 |
Hello,
On 3/1/17, Andreas Kusalananda Kähäri <address@hidden> wrote:
[...]
> The scripts make use of a common set of shell functions, defined in
> their own file. This is currently sourced like this:
>
> prefix="@prefix@"
> exec_prefix="@exec_prefix@"
> . "@libexecdir@/toolbox.shlib"
>
> Then, in the configure.ac file, I have a line like
>
> AC_CONFIG_FILES([src/script], [chmod +x src/script])
>
> for each script, so that it's generated from the corresponding script.in
> file upon running configure.
>
> My query is this: Would libexecdir be the best place to put a file that
> is architecture dependent, but *not* meant to be executed separatedly
> (it's a library). Or should it actually be stored under libdir (which
> I've never seen done with a shell library of functions)?
Seems fine. If you are installing more than one file (or think you
might do so in the future) I suggest putting them in a subdirectory
thereof -- if you use Automake then this will define the pkglibexecdir
variable by default to install files into a subdirectory with the
same name as your package.
The definition of these install variables comes from the GNU Coding
Standards[1]. You mention the installed scripts are machine-dependent
so they should be installed in either libdir or libexecdir. GCS says:
"libexecdir: The directory for installing executable programs to be
run by other programs rather than by users ..."
"libdir: The directory for object files and libraries of object
code ..."
Which doesn't really help us decide where to install non-executable
machine-dependent shell fragments. Based on this information alone,
libexecdir seems like a reasonable choice. However, looking at what
packages installed on my computer do, libdir seems to be much more
commonly used. So I'd say do whatever you prefer.
[1] https://www.gnu.org/prep/standards/
Cheers,
Nick