GNU工具生成Makefile
Linux下,大型工程一般情况下不可能手动书写makefile而是采用make menuconfig或者make xconfig来配置不同的执行脚本文件,如make menuconfig对应着是kconfig,最后会被选择进入到.configure,然后配合顶层makefile使用。
自动生成makefile的过程为:
1、 执行autoscane,生成configure.scan。configure.scan即是configure.in的模板。
2、 然后手动修改configure.scan为configure.in。
有的平台可能直接为configure.ac
3、 修改configure.in里面的内容。
4、 执行autoheader生成文件configure.h.in(现在一般改为configure.ac)。configure.in里有宏AC_CONFIG_HEADER()时用。
5、 运行libtoolize生成一些libtool的文件,这些文件和平台适应性有关系。
6、 运行autoconf执行过程中会生成configure文件。
7、 手动写makefile.am
8、 执行automake -a将makefile.am生成makefile.in同时生成选项可以补齐文件config.guess,config.sub,install.sh,missing,depcomp。
9、 然后执行./configure,后面会有缺省的参数,比如文件生成config.status,config.h,makefile。
对于符合GNU的源码,通常目录下包含哪些组成?
1、 必须有一个README,主要是介绍源码包的详细信息
2、 一个INSTALLIN文件,介绍安装包的使用方法和安装方式
3、 一个configure文件,主要配合Makefile.in生成Makefile文件
4、 一个CONPYING包含版本信息
5、 一个CHANGELOG包含软件的变化过程
Linux下,大型工程一般情况下不可能手动书写makefile而是采用make menuconfig或者make xconfig来配置不同的执行脚本文件,如make menuconfig对应着是kconfig,最后会被选择进入到.configure,然后配合顶层makefile使用。
自动生成makefile的过程为:
1、 执行autoscane,生成configure.scan。configure.scan即是configure.in的模板。
2、 然后手动修改configure.scan为configure.in。
有的平台可能直接为configure.ac
3、 修改configure.in里面的内容。
4、 执行autoheader生成文件configure.h.in(现在一般改为configure.ac)。configure.in里有宏AC_CONFIG_HEADER()时用。
5、 运行libtoolize生成一些libtool的文件,这些文件和平台适应性有关系。
6、 运行autoconf执行过程中会生成configure文件。
7、 手动写makefile.am
8、 执行automake -a将makefile.am生成makefile.in同时生成选项可以补齐文件config.guess,config.sub,install.sh,missing,depcomp。
9、 然后执行./configure,后面会有缺省的参数,比如文件生成config.status,config.h,makefile。
对于符合GNU的源码,通常目录下包含哪些组成?
1、 必须有一个README,主要是介绍源码包的详细信息
2、 一个INSTALLIN文件,介绍安装包的使用方法和安装方式
3、 一个configure文件,主要配合Makefile.in生成Makefile文件
4、 一个CONPYING包含版本信息
5、 一个CHANGELOG包含软件的变化过程