您的位置:首页 > 其它

【分析总结框架记录】如何使用automake来管理你的编译

2015-06-26 11:31 465 查看
原文作者:赵杨

很多入门级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。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: