Where to put helper-scripts with GNU autoconf/automake?

后端 未结 4 1760
我寻月下人不归
我寻月下人不归 2021-01-14 23:11

I\'m working on a project that will be distributed with GNU autoconf/automake, and I have a set of bash scripts which call awk scripts. I would like the bash scripts to end

4条回答
  •  情歌与酒
    2021-01-14 23:45

    You can just list the scripts that you want to be installed in Makefile.am:

    bin_SCRIPTS = foo bar
    

    This will cause foo and bar to be installed during make install. To get the path to their final location, you can use @bindir@ in foo.in and let configure build foo for you. For example, in configure.ac:

    AC_CONFIG_FILES([foo bar])
    

    and then in foo.in:

    #!/bin/sh
    
    prefix=@prefix@
    exec_prefix=@exec_prefix@
    bindir=@bindir@
    echo bindir = $bindir
    

    Keep in mind that the person running configure may specify any of --prefix, --exec_prefix, or --bindir, and the installation may be redirected with a DESTDIR. Using the technique described here, DESTDIR will not be taken into account and the script will be installed in a location other than the path that it will echo. This is by design, and is the correct behavior, as usually a DESTDIR installation is used to create a tarball that will eventually be unpacked into the filesystem in such a way that the bindir in the script becomes valid.

提交回复
热议问题