12.安装

本系列文章均翻译自Automake官方文档:Automake Manual,github同步项目:question

文件格式_文件类型。名字中告诉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-datainstall-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。

扫描二维码关注公众号,回复: 4804707 查看本文章

使用-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。

猜你喜欢

转载自blog.csdn.net/SHRINKSHR/article/details/85838784