You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
usb.h<br />
datafab.h dpcm.h initializers.h jumpshot.h scsiglue.h sddr55.h transport.h<br />
咋一看,着实吓了一跳,用`wc -l *`这个命令统计一下,12076 行,晕死...<br />
但是,也许,生活中总是充满了跌宕起伏.<br />
认真看了一下Makefile 和Kconfig 之后,心情明显好了许多.<br />
Makefile 不是 Make Love<br />
出来混,迟早要还的.<br />
从前在复旦,混了四年,没有学到任何东西,每天就是逃课,上网,玩游戏,睡觉.毕业的时候,身边的<br />
人读研的读研,出国的出国,找工作的吧,去麦肯锡的去麦肯锡,去IBM 的去IBM.而自己却一无所<br />
长,没有任何技能,直到这时候才发现那四年欠了很多债,早知今日,何必当初.幸运的是,我还有一<br />
5<br />
张复旦的文凭,依靠着这张文凭,混进了Intel.然而,工作以后,更是发现当初在校期间没有好好读<br />
书其实真是在欠债,当初没学,工作以后还是要学,的确是迟早要还的,逃是逃不掉的.<br />
毕业的时候,人家跟我说Makefile 我完全不知,但是一说Make Love 我就来劲了.现在想来依然<br />
觉得丢人.<br />
基本上,Linux 内核中每一个目录下边都有一个Makefile,Makefile 和Kconfig 就像一个城市<br />
的<br />
地图,地图带领我们去认识一个城市,而Makefile 和Kconfig 则可以让我们了解这个目录下面<br />
的<br />
结构.drivers/usb/storage/目录下边的Makefile 内容如下:<br />
#<br />
# Makefile for the USB Mass Storage device drivers.<br />
#<br />
# 15 Aug 2000, Christoph Hellwig <br />
# Rewritten to use lists instead <strong>of</strong> if-statements.<br />
#<br />
EXTRA_CFLAGS := -Idrivers/scsi<br />
obj-$(CONFIG_USB_STORAGE) += usb-storage.o<br />
usb-storage-obj-$(CONFIG_USB_STORAGE_DEBUG) += debug.o<br />
usb-storage-obj-$(CONFIG_USB_STORAGE_HP8200e) += shuttle_usbat.o<br />
usb-storage-obj-$(CONFIG_USB_STORAGE_SDDR09) += sddr09.o<br />
usb-storage-obj-$(CONFIG_USB_STORAGE_SDDR55) += sddr55.o<br />
usb-storage-obj-$(CONFIG_USB_STORAGE_FREECOM) += freecom.o<br />
usb-storage-obj-$(CONFIG_USB_STORAGE_DPCM) += dpcm.o<br />
usb-storage-obj-$(CONFIG_USB_STORAGE_ISD200) += isd200.o<br />
usb-storage-obj-$(CONFIG_USB_STORAGE_DATAFAB) += datafab.o<br />
usb-storage-obj-$(CONFIG_USB_STORAGE_JUMPSHOT) += jumpshot.o<br />
usb-storage-objs := scsiglue.o protocol.o transport.o usb.o \<br />
initializers.o $(usb-storage-obj-y)<br />
关于Kconfig 文件,在故事的最后会介绍,此刻暂且不表,Kconfig 文件比较长,就不贴出来了.但<br />
是通过看Kconfig 文件,我们可以知道,除了CONFIG_USB_STORAGE 这个编译选项是我们<br />
真