12.安装
文件格式_文件类型。名字中告诉automake构建的是什么的部分被称做primary
,即后缀。例如,PROGRAMS
掌握了将要被编译和链接的列表。前缀表示将安装到哪个标准目录。
目录名后缀:‘PROGRAMS’, ‘LIBRARIES’, ‘LTLIBRARIES’, ‘LISP’, ‘PYTHON’, ‘JAVA’, ‘SCRIPTS’, ‘DATA’, ‘HEADERS’, ‘MANS’, and ‘TEXINFOS’。
当运行make install
时,所有的被各种primary命名的文件都会被自动安装在合适的位置。
12.1 安装基础¶
在primary中指定的文件的安装方式是复制构建文件到合适的目录下。只使用文件名,不使用目录前缀。
bin_PROGRAMS = hello subdir/goodbye
hello与goodbye都会被安装到$(bindir)
。
可以使用no_base
前缀取消这一规则。
nobase_include_HEADERS = stdio.h sys/types.h
types.h会被安装到$(bindir)/sys
下面。
12.2 安装的两个阶段¶
Automake通常分成install-data
和install-exec
两个规则。前者安装的是与平台无关的文件,后者安装的是文件则相反。
安装的文件规则:
- install-data:带有 ‘data’, ‘info’, ‘man’, ‘include’, ‘oldinclude’, ‘pkgdata’, or ‘pkginclude’ 前缀的文件列表
- install-exec:带有 ‘bin’, ‘sbin’, ‘libexec’, ‘sysconf’, ‘localstate’, ‘lib’, or ‘pkglib’ 前缀的文件列表
任何使用用户自定义文件夹、带有exec
前缀的变量(例如 myexecbin_PROGRAMS),被install-exec安装,其余所有的自定义前缀被install-data安装。
12.3 安装规则的扩展¶
使用-local
后缀:install-exec-local or install-data-local。
使用-hook
后缀:install-exec-hook or install-data-hook。
12.4 安装阶段¶
Automake在所有的安装规则中支持DESTDIR
变量。每个对象和路径都会被加上DESTDIR
前缀。
mkdir /tmp/staging &&
make DESTDIR=/tmp/staging install
此项特性通常被用于构建安装镜像和安装包。
12.5 用户的安装规则¶
支持的规则:uninstall, installdirs, and install-strip。
支持的扩展:uninstall-local and uninstall-hook。