如何使用automake来管理你的编译

原文作者:赵杨

很多入门级Linux编程书籍并没有透露:其实你不用手动编写Makefile文件,GNU老早就提供了一套好用的工具链,可以很方便的生成Makefile文件。 �0�2 你一定知道Linux下很多软件包,特别是GNU的,安装一般只需要执行命令:./configure; make install; 即可方便的完成源码的编译和安装。听说这叫做符合GNU规范的软件源码包 �0�2 这篇短文就是想让我们自己的软件源码包也能达到这个目标。

先混个眼熟,这些工具(命令)依次是:
autoscan
aclocal
autoconf
autoheader
automake

实际使用时,这几个命令的执行顺序也是以上这个顺序。 2 只是调用这几个命令过程中需要我们根据实际情况改一下两个文件:configure.in和Makefile.am

第一步,调用autoscan ,会生成个configure.scan文件,将其改名为configure.in,并改文件内容如下:

 -*- Autoconf -*-
# Process this file with autoconf to produce a configure script.
AC_PREREQ(2.59)
AC_INIT(gameserver, 1.0, qjzy2008@163.com ) 
AM_INIT_AUTOMAKE(gameserver, 1.0) 
AC_CONFIG_SRCDIR([main.cpp])
AC_CONFIG_HEADER([config.h])

# Checks for programs.
AC_PROG_CXX

# Checks for libraries.

# Checks for header files.

# Checks for typedefs, structures, and compiler characteristics.
AC_TYPE_SIZE_T

# Checks for library functions.
AC_CONFIG_FILES([Makefile])
AC_OUTPUT

第二步,新建Makefile.am文件(命令vim Makefile.am),文件内容如下:

AUTOMAKE_OPTIONS = foreign
noinst_PROGRAMS = gateserver
gateserver_SOURCES = main.cpp ../common/gateway/gateway.h\
../common/gateway/gateway.cpp \
../common/gateway/session.h \
../common/gateway/session.cpp \
LIBS = -lzmq -lboost_system -lboost_thread -lglog

Makefile.am文件中noinst_PROGRAMS = gateserver 代表生成程序名称,程序名称_SOURCES配置所需要的源码文件,LIBS配置依赖的库。

第三步,依次调用命令:aclocal; autoconf; autoheader; automake –add-missing;

完成后自动生成了:configure和Makefile。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值