是makefile不是makelove

原来一听makelove很来劲,但听到makefile就不知道是啥了。

最近除了公司的活,还在做开源项目skyeye,设备的模拟还在研究,

等将整个架构熟悉后会总结一下的。

 

来makefile吧,现在原来很多开源项目都用make管理,原来自己不知道这套东西,

只知道那套。。。 想想很土啊很土。

在skyeye leader的帮助下稍微弄懂了makefile里的东西,原来makefile不是makelove.

 

makefile是啥,这里就不解释了,wiki一下,有问题就wiki是个好习惯,这个方法也是

刚从一些大牛那学到的。

 

现在来说一个makefile是怎么make出来的,需要3个工具配合搞出来。

1. autoscan;

2. autoconf;

3. automake;

 

例如你有一个项目src, 例如她的名字叫linzhiling.

step1:

在linzhiling的顶层,运行autoscan

这样他就会生成一个configure.scan的文件,这个文件里包含了一些版本信息和编译器检查什么的,

还有就是你这个项目的代码目录结构,自己看一看根据需要修改。

然后将configure.scan重命名为configure.in(你问我为什么要给人家改名,因为autoconf只要configure.in)

 

step2:

运行autoconf;

这里autoconf会根据上面生成的configure.in来生成configure

"configure"熟悉了吧,用过Linux的都感到面熟了,在README或什么INSTALL里经常看到的

第一个词;

 

step3:

手写一个Makefile.am,在里面写一些你要编译的源码的名字,具体如何写可以找个项目看看;

然后automake;

它会根据Makefile.am来生产Makefile.in的东东.

 

[final]step 4:

就是大家在拿到源码来编译程序是常用的那几步了,

./configure

make

 

综上,回头看一下./configure和make到底都干了啥呢

./configure会去读Makefile.in来生成Makefile

make就不用我说了吧,去make Makefile的;

 

还是喜欢用图,简单表示一下,

autoscan -->configure.scan - >configure.in

autoconf --> configure

automake --> Makefile.in

./configure --> Makefile

make --> "your programme"

 

就写这么多了,老把Makefile打错,真烦;

 

P.S:最近读了很多源码,自己现在越来越懒,不太喜欢记录,改画图了,

以后搞搞visio啥的,看看能不能把一些架构层的东西画出来分享。 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值