一、sources文件
TARGETNAME:生成驱动文件的名字
TARGETTYPE:驱动文件的类型,可以是DYNLINK,LIBRARY,EXE,分别表示文件类型是dll,lib,exe。
如果TARGETTYPE是DLL则入口定义成DLLENTRY,
如果TARGETTYPE是EXE,则可以定义EXEENTRY,用于指定EXE的入口函数.
如果TARGETTYPE是LIBRARY,则不需要定义入口函数。
DEFFILE=xxx.def #.def文件的名称
DLLENTRY=DllEntry #DLL入口地址
RELEASETYPE=PLATFORM ##生成文件存放的位置
以下是源文件里用的到宏的定义
CDEFINES=$(CDEFINES) -DNDIS_MINIPORT_DRIVER-DDM9000
CDEFINE是向C语言的编译器传输预定义宏,相当于你在代码里写#define NDIS_MINIPORT_DRIVER
#以下是头文件的路径列表
INCLUDES=$(INCLUDES);../s3c6410_hsmmc_lib
#以下是要动态链接的库文件
TARGETLIBS= /
$(_COMMONOAKROOT)/lib/$(_CPUINDPATH)/ceddk.lib /
$(_COMMONSDKROOT)/lib/$(_CPUINDPATH)/coredll.lib /
$(_TARGETPLATROOT)/lib/$(_CPUINDPATH)/DriverLib.lib
#以下是要静态链接到目标文件中的库文件列表
SOURCELIBS= /
$(_COMMONOAKROOT)/lib/$(_CPUINDPATH)/sdcardlib.lib /
$(_COMMONOAKROOT)/lib/$(_CPUINDPATH)/sdbus2.lib /
$(_TARGETPLATROOT)/lib/$(_CPUINDPATH)/s3c6410_hsmmc0_lib.lib
#驱动源文件
SOURCES= dm9isa.cpp\
driver.cpp\
device.cpp\
common.cpp\
wince.c
LDEFINES=-subsystem:native/DEBUG /DEBUGTYPE:CV /FIXED:NO
这一句是给链接器传命令行参数。
参考文章来源:http://blog.csdn.net/macrozhang001/article/details/5547846
http://www.cnblogs.com/Torres_fans/archive/2009/10/10/1580618.html
二、makefile
只有一句
!INCLUDE $(_MAKEENVROOT)\makefile.def
三、.def文件
分为LIBRARY 和EXPORTS两部分。EXPORTS导出的函数可以在应用程序中调用。LIBRARY 生成库的名称,一般与sources文件中的targetname一致。
LIBRARY LAYOUTMANAGER
EXPORTS
KeybdDriverInitializeEx
KeybdDriverPowerHandler
KeybdDriverGetInfo
KeybdDriverSetMode
KeybdDriverInitStates
KeybdDriverVKeyToUnicode
KeybdDriverMapVirtualKey
LayoutMgrGetKeyboardType
LayoutMgrGetKeyboardLayout
LayoutMgrGetKeyboardLayoutName
LayoutMgrGetKeyboardLayoutList
LayoutMgrLoadKeyboardLayout
LayoutMgrActivateKeyboardLayout
IL_00000409
Matrix
PS2_AT_00000409