`
hyshucom
  • 浏览: 808616 次
文章分类
社区版块
存档分类
最新评论

使用automake来写makefile

 
阅读更多
将设现在的文件目录project是这样的:
main.c src inc
src中放入所有的.c文件:add.c 、hello.c。
inc中放入所有的.h文件:add.h 、hello.h。

使用automake来写makefile的流程如下:


1、写makefile.am
有三个地方需要写makefile.am:
1)、当前文件(project)下;
    AUTOMAKE_OPTIONS = foreign
    SUBDIRS = src inc                      //子目录
     ROOTDIR = $(shell /bin/pwd)      //获得当前目录
     INCLUDES = -I$(ROOTDIR)/inc     //头文件的地址

     export INCLUDES                        //其他文件也可用这个环境变量
     bin_PROGRAMS = cyh_run          //要产生的可执行文件名
     cyh_run_SOURCES = main.c        //用来执行的源文件
     cyh_run_LDADD = $(ROOTDIR)/src/libaddhello.a     //增加链接库
2)、src目录
	noinst_LIBRARIES = libaddhello.a          
      libaddhello_a_SOURCES = add.c hello.c
3)、inc目录下
	EXTRA_DIST = add.h hello.h          //额外要打包的文件



2、输入命令:autoscan
执行上述命令后,会生产一个configure.scan文件,
输入命令:mv configure.scanconfigure.in将其转换为configure.in
在将configure.in内容修改为:
#                                               -*- Autoconf -*-
# Process this file with autoconf to produce a configure script.


AC_PREREQ(2.63)
AC_INIT(cyh_run, 1.0, 991698424@qq.com)    ----修改
AM_INIT_AUTOMAKE()           -----新增
AC_CONFIG_SRCDIR([main.c])
#AC_CONFIG_HEADERS([config.h])       ----修改


# Checks for programs.
AC_PROG_CC


# Checks for libraries.
AC_PROG_RANLIB                 -----新增


# Checks for header files.


# Checks for typedefs, structures, and compiler characteristics.


# Checks for library functions.


AC_CONFIG_FILES([Makefile
                 inc/Makefile
                 src/Makefile])
AC_OUTPUT


3、输入命令:aclocal
4、输入命令:autoconf
5、输入命令:automake --add-missing
6、输入命令:./configure
7、输入命令:make

8、执行./cyh_run,得到以下结果:

Hello, I'am cyh
1 + 5 = 6





--------------------------------------------------2012年9月29日1:03:10



分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics