AutoTools
本文记录了GNU编译工具autoscan、automake等工具的使用。
1. 准备 configure.ac 文件
使用 autoscan 命令生成参考文件 configure.scan,然后将 configure.scan 改为 configure.ac 如下
AC_PREREQ([2.69]) # autoconf版本
AC_INIT(daemon, 1.0, 1162097842@qq.com) # 需修改,定义软件的名称、版本等信息、作者的E-mail等
AM_INIT_AUTOMAKE # 主动添加
AC_CONFIG_SRCDIR([server.c]) # 用来侦测所指定的源码文件是否存在
AC_CONFIG_HEADERS([config.h]) # 宏用于生成config.h文件,以便autoheader命令使用
AC_PROG_CC # 指定编译器,默认gcc
AC_CHECK_HEADERS([arpa/inet.h netinet/in.h stdlib.h string.h sys/param.h sys/socket.h unistd.h])
AC_TYPE_PID_T
AC_FUNC_FORK
AC_CHECK_FUNCS([memset socket])
AC_CONFIG_FILES([Makefile]) # 用于生成相应的Makefile文件
AC_OUTPUT2. 准备 Makefile.am 文件
AUTOMAKE_OPTIONS=foreign
bin_PROGRAMS=daemon
daemon_SOURCES=server.c3. 执行构建过程
aclocal && autoconf && autoheader && libtoolize --automake --copy --debug --force && automake --add-missing4. 生产 Makefile
configure --prefix=/home/cky # 实际会安装到 /home/cky/bin 目录5. 编译
make安装到 prefix 指定的目录:
make install清理已经编译成功的文件:
make clean卸载已经安装到指定目录的文件:
make uninstall