automake的过程

1.建立目录结构,如目录为work,子文件夹src

2.在src首先写好自己的c文件和h文件,并明确调用关系,然后在src中建立Makefile.am文件,重点!Makefile.am的格式:

Makefile.am 文件定义所要产生的目标: AUTOMAKE_OPTIONS:设置 automake 的选项。Automake 主要是帮助开发 GNU 软件的人员来维护软件,所以在执行 automake 时,会检查目录下是否存在标准 GNU 软件中应具备的文件,例如 NEWS、AUTHOR、ChangeLog 等文件。设置 foreign 时,automake 会改用一般软件的标准来检查。 bin_PROGRAMS:定义要产生的执行文件名。如果要产生多个执行文件,每个文件名用空白符隔开。 hello_SOURCES:定义 hello 这个执行程序所需要的原始文件。如果 hello这个程序是由多个原始文件所产生,必須把它所用到的所有原始文件都列出来,以空白符隔开。假设 hello 还需要 hello.c、main.c、hello.h 三个文件的话,则定义 hello_SOURCES= hello.c main.c hello.h 如果定义多个执行文件,则对每个执行程序都要定义相对的filename_SOURCES。编辑好 Makefile.am 文件,就可以用 automake --add-missing来产生 Makefile.in。加上 --add-missing 选项来告诉 automake顺便假如包装一个软件所必须的文件。Automake产生生出來的 Makefile.in 文件是完全符合 GNU Makefile 的惯例,只要执行 configure这个shell script 便可以产生合适的 Makefile 文件了。 

比如我的是:

AUTOMAKE_OPTIONS=foreign bin_PROGRAMS=core_server seg_client seg_server core_server_SOURCES=core_server.c utils.c debug.c seg_client_SOURCES=seg_client.c queue.c utils.c file_op.c debug.c hash_table.c seg_server_SOURCES=seg_server.c utils.c converter.c debug.c LDADD=-L. -lICTCLAS30 -lpthread 

3.为了在顶层生成makefile,因此在work目录,建立Makefile.am,内容为,就是告诉他子目录:

SUBDIRS=src 

4.在work目录touch出一些AUTHORS、ChangeLog等文件,不是必须;

5.在work执行autoscan,生成configure.scan文件,mv configure.scan  configure.in;编辑该configure.in文件,在AC_INIT添加AM_INIT_AUTOMAKE(seg_util,1.0).ok,准备工作结束。

6.执行aclocal,autoconf,autoheader,生成config.in.h

7.执行automake -a

8.执行./configure

9.可以修改configure,比如修改编辑器等,然后make make install,如果执行make dist还会生成一个打包的文件$PACKAGE-$VERSION,这就是为什么要在configure.in中添加AM_INIT_AUTOMAKE(seg_util,1.0)的原因

 

10.done!

 

你可能感兴趣的:(c,工作,server,shell,File,makefile)