Makefile - 如何将 bash 脚本安装到用户的 bin 目录中?

Makefile - 如何将 bash 脚本安装到用户的 bin 目录中?

我需要制作一个 Makefile 将 bash 脚本安装到用户bin目录中,但我不确定执行此操作的最佳方法是什么。我应该使用接受用户输入的变量来指定其 bin 目录的位置,还是有一个环境变量(至少在大多数发行版中)?

答案1

一般来说,用户可能没有 bin 目录。像这样的 Makefile 允许您说make DESTDIR=/usr/local/bin install安装到 /usr/local/bin,默认安装到 ~/bin

# DESTDIR is where the program should be installed
DESTDIR = $$HOME/bin
prog: a.c b.c
      ${CC} -o $@ $<
install: prog
      mkdir -p ${DESTDIR}
      cp $< ${DESTDIR}

这使得程序由几个 C 文件组成。install如果 bin 目录不存在,则目标会创建该目录(如果存在,则 -p 会阻止它出错),然后复制该文件。请注意$$shell 变量。

GNU make 仅允许order only prerequisite在目录不存在时创建该目录,但与编译时间相比,运行 mkdir 的时间可能很短。

相关内容