使用Autotools宏、变量配置flat目录的Makefile[二]

使用Autotools宏、变量配置flat目录的Makefile[二]



软件目录结构

Flat


所有的文件都存放在同一个目录下


Shallow


主程序源文件放在顶层目录中
各个模块文件放在各个子目录中


Deep


所有源文件都存放在各个子目录中


Makefile.am语法

  1. 主要有宏、变量组成
  • 各个变量定义生成需要被编译、链接的目标、依赖源文件、要安装的目录等
  • 工具automake根据这些目标和源文件添加规则,生成makefile.in
  1. 少量的makefile语法、注释等
  • 在makefile.am定义的makefile代码将被添加到makefile.in的合适位置
  • 注释使用##表示,不会被输出到Makefile.in

Automake的宏、变量

文件编译类型说明
_PROGRAMS表示生成目标是可执行文件
_LIBRARIES生成目标为库文件
_LTLIBRARIES使用LIBTOOL生成库文件
_HEADERS头文件
_DATA数据文件、配置文件等
数据文件、配置文件等
bindir$(prefix)/bin
libdir$(prefix)/lib
datadir$(prefix)/share
sysconfdir$(prefix)/etc
includedir$(prefix)/include
$(top_srcdir)工程顶层目录
$(top_builddir)目标文件顶层目录
noinst不安装
编译配置说明
_SOURCES目标依赖的源文件
_LIBADD生成库时需要链接的其它库
_LDADD链接需要链接的库
_LDFLAGS链接选项:-I /-L/-shared/-fPIC
_LIBTOOLFLAGSLibtool编译选项
其它变量说明
INCLUDES链接所需头文件
SUBDIRS递归处理子目录
EXTRA_DIST打包文件或目录

Makfile.am示例

在这里插入图片描述

Configure.ac文件语法

说明备注
AC_INI一般以此开头AC_INIT
AC_PROG_CC检测C编译器,C项目需要设置此宏检查编译器
AC_CONFIG_SRC_DIR项目源文件检测函数库
AC_CONFIG_HEADERS配置头文件检查头文件
AC_CHECK_LIB检测lib库中是否有指定函数检查函数定义类型
AC_PROG_LIBTOOL使用libtool生成动态共享库
AC_PROG_RANLIB静态库
AC_OUTPUT设置configure输出的Makefile文件
AC_CONFIG_FILES([Makefile])用于生成相应的Makefile
AM_INIT_AUTOMAKE运行Automake必需的宏
dnl或#注释标志

在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值