跟我一起学写makefile

Makefile在Unix上写程式的人大概都碰过Makefile,尤其是用C来开发程式的人。用make来开发和编译程式的确很方便,可是要写出一个Makefile就不简单了。偏偏介绍Makefile的文件不多,GNU Make那份印出来要几百页的文件,光看完Overview就快阵亡了,难怪许多人闻Unix色变。本文将介绍如何利用GNU Autoconf及Automake这两套软体来协助我们『自动』产生Makefile档,并且让开发出来的软体可以像Apache, MySQL和常见的GNU软体一样,只要会``./configure'', ``make install''就可以把程式安装到系统中。如果您有心开发Open Source的软体,或只是想在Unix系统下写写程式。希望这份介绍文件能帮助您轻松地进入Unix Programming的殿堂。 1.简介Makefile基本上就是『目标』(target), 『关连』(dependencies)和『动作』三者所组成的一连串规则。而make就会根据Makefile的规则来决定如何编译(compile)和连结(link)程式。实际上,make可做的不只是编译和连结程式,例如FreeBSD的port collection中, Makefile还可以做到自动下载原始程式套件,解压缩(extract) ,修补(patch),设定,然後编译,安装至系统中。 Makefile基本构造虽然简单,但是妥善运用这些规则就也可以变出许多不同的花招。却也因此,许多刚开始学习写Makefile时会感到没有规范可循,每个人写出来的Makefile长得都不太一样,不知道从何下手,而且常常会受限於自己的开发环境,只要环境变数不同或路径改一下,可能Makefile就得跟着修改。虽然有GNU Makefile Conventions (GNU Makefile惯例)订出一些使用GNU程式设计时撰写Makefile的一些标准和规范,但是内容很长而且很复杂,并且经常做些调整,为了减轻程式设计师维护Makefile的负担,因此有了Automake。程式设计师只需写一些预先定义好的巨集(macro),交给Automake处理後会产生一个可供Autoconf使用的Makefile.in档。再配合利用Autoconf产生的自动设定档configure即可产生一份符合GNU Makefile惯例的Makeifle了。
rar 文件大小:100.6KB