Makefile 惯例

文章出处:http://zonghe.17xie.com/book/10354059/32909.html

 

下面是Makefile中的一些约定俗称的目标名称及其含义:

all

编译整个软件包,但不重建任何文档。一般此目标作为默认的终极目标。此目标一般对所有源程序的编译和连接使用“-g”选项,以使最终的可执行程序中包含调试信息。可使用strip程序去掉这些调试符号

clean

清除当前目录下在make过程中产生的文件。它不能删除软件包的配置文件,也不能删除build时创建的那些文件。

distclean

类似于“clean”,但增加删除当前目录下的配置文件、build过程产生的文件。

info

产生必要的Info文档。

check 或 test

完成所有的自检功能。在执行检查之前,应确保所有程序已经被创建(但可以尚未安装)。为了进行测试,需要实现在程序没有安装的情况下被执行的测试命令。

install

完成程序的编译并将最终的可执行程序、库文件等拷贝到指定的目录。此种安装一般不对可执行程序进行strip操作。

install-strip

和“install”类似,但是会对复制到安装目录下的可执行文件进行strip操作

uninstall

删除所有由“install”安装的文件。

installcheck

执行安装检查。在执行安装检查之前,需要确保所有程序已经被创建并且被安装。

installdirs

创建安装目录机器子目录。它不能更改软件的编译目录,而仅仅是创建程序的安装目录

 

下面是Makefile中一些约定俗成的变量名称及其含义:

这些约定俗成的变量分为三类:

第一类代表可执行程序的名字,例如 CC代表编译器这个可执行程序;

第二类代表程序使用的参数(多个参数使用空格分开),例如 CFLAGS代表编译器执行时使用的参数(一种怪异的做法是直接在CC中包含参数);

第三类代表安装目录,例如prefix等等,含义简单,下面只列出它们的默认值。

AR      函数库打包程序,可创建静态库.a文档。默认是"ar"

AS      汇编程序,默认是"as"

CC      C编译程序。默认是"cc"

CXX    C++编译程序,默认是"g++"

CPP    C/C++预处理器,默认是"$(CC) -E"

FC      Fortran编译器,默认是"f77"

PC      Pascal语言编译器,默认是"pc"

YACC  Yacc文法分析器,默认是"yacc"

 

 

ARFLAGS      函数库打包程序的命令行参数,默认值是"rv"

ASFLAGS      汇编程序的命令行参数

CFLAGS        C编译程序的命令行参数

CXXFLAGS    C++编译程序的命令行参数

CPPFLAGS    C/C++预处理的命令行参数

FFLAGS         Fortran编译器的命令行参数

PFLAGS         Pascal编译器的命令行参数

YFLAGS         Yacc文法分析器的命令行参数

LDFLAGS       链接器的命令行参数

 

 

prefix                  /usr/local

exec_prefix        $(prefix)

bindir                 $(exec_prefix)/bin

sbindir               $(exec_prefix)/sbin

libexecdir           $(exec_prefix)/libexec

datadir              $(prefix)/share

sysconfdir          $(prefix)/etc

sharedstatedir   $(prefix)/com

localstatedir       $(prefix)/var

libdir                   $(prefix)/lib

infodir                 $(prefix)/info

includedir            $(prefix)/include

oldincludedir       $(prefix)/include

mandir                $(prefix)/man

srcdir                  需要编译的源文件所在的目录,无默认值

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值