`

Mac OS/Linux下automake的流程

 
阅读更多

参考: http://hi.baidu.com/yetao19860606/item/033148eb42fd9a3387d9de78

 

经常需要写一些小工具,这些工具有时候简单的就用python,性能高一点的就需要c,而我又喜欢用命令行和vi写程序,所以写makefile自然就成了麻烦中的麻烦了,不过好在可以使用automake,不过网上并没有很详细的说automake如何使用(都是东说一块西说一块的),查了一下然后整理了一下,发上来,就当自己做笔记,也方便了后面的人,高手自然自动飘过即可。

首先我们假设在这个目录下已经有一些代码了,例如main.c,我们使用automake来创建makefile,步骤如下。

1)首先在目录下运行autoscan。
2)修改configure.scan为configure.in。
3)编辑configure.in

# -*- Autoconf -*-
# Process this file with autoconf to produce a configure script.
AC_PREREQ(2.61)
# 这下面都是需要填写的内容,如包的名称,版本号和bug报告的邮箱
AC_INIT(FULL-PACKAGE-NAME, VERSION, BUG-REPORT-ADDRESS)
AC_CONFIG_SRCDIR([main.c])
AC_CONFIG_HEADER([config.h])
# Checks for programs.
AC_PROG_CC
# Checks for libraries.
# Checks for header files.
# Checks for typedefs, structures, and compiler characteristics.
# Checks for library functions.
AC_OUTPUT

我们可以看到上面的默认配置,我们修改一下配置,修改后就成了下面这个样子。

# -*- Autoconf -*-
# Process this file with autoconf to produce a configure script.

 

AC_PREREQ(2.61)
# 添加我们的配置,如包的名称为helloworld,版本0.1,邮箱等
AC_INIT(helloworld, 0.1, soundbbg@gmail.com)
AC_CONFIG_SRCDIR([main.c])
AC_CONFIG_HEADER([config.h])
# 添加一些基本配置
AM_INIT_AUTOMAKE(main, 1.0)
# Checks for programs.
AC_PROG_CC

# Checks for libraries.

# Checks for header files.

# Checks for typedefs, structures, and compiler characteristics.

# Checks for library functions.
# 在这里添加输出makefile
AC_OUTPUT([makefile])

4)修改完成后退出,运行aclocal。
5)运行完成后运行autoheader

6)完成之后,我们创建一个makefile.am,并修改如下。

AUTOMAKE_OPTIONS=foreign
bin_PROGRAMS=main

main_SOURCES=main.c

 

7)修改完成后运行automake –a

8) 运行 autoconf

9)运行完成后运行./configure

OK我们的makefile就生成好了,这个时候只要我们make一下就可以编译程序了。编译完成后可以运行./xxxx 来运行自己的程序。

 

 

 

 

(大致生成流程图如下:)

 

图 2生成Makefile流程图 

 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics