⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 makefile

📁 linux下交叉编译spca5xx(中星微摄像头在linux下使用时用到的驱动)用到的Makefile文件
💻
字号:
VERSION    = 00.60.00.1CVSVERSION = "$Experimental work Michel Xhaard && Reza Jelveh 03/02/2004"DEFINES    =#### The following flags enable experimental features.# By default, these are enabled for development versions of the driver, and# disabled for release versions.# Optional: Enable driver debuggingDEFINES   += -DSPCA50X_ENABLE_DEBUG# Optional: Enable direct register read/write for PAC207 development#DEFINES   += -DSPCA5XX_ENABLE_REGISTERPLAY#### The following flags enable features that aren't yet implemented, and# therefore are disabled by default.# Optional: Enable compressionDEFINES   += -DSPCA50X_ENABLE_COMPRESSION#### Rest of Makefile follows here. You probably won't need to touch this.# Setup definesDEFINES   += -DCONFIG_USB_SPCA5XX_MODULE=1 -DMODULE -D__KERNEL__DEFINES   += -DVID_HARDWARE_SPCA5XX=0xFF -DSPCA5XX_VERSION=\"$(VERSION)\"/**********************************************************************           以下这段是针对2.5 2.6内核版本 因此全部注释掉了           前加#jw 表示我注释的内容**********************************************************************/#jw ifneq ($(shell uname -r | cut -d. -f1,2), 2.4)#jw ifneq ($(KERNELRELEASE),)   # We were called by kbuild#jw CFLAGS += $(DEFINES) #jw obj-m += spca5xx.o#jw spca5xx-objs := drivers/usb/spca5xx.o drivers/usb/spcadecoder.o #jw else   # We were called from command line#jw KERNEL_VERSION = `uname -r`#jw KERNELDIR := /lib/modules/$(KERNEL_VERSION)/build#jw PWD  := $(shell pwd)#jw MODULE_INSTALLDIR = /lib/modules/$(KERNEL_VERSION)/kernel/drivers/usb/media/# Targets, don't change!#jw default:#jw	@echo '   Building SPCA5XX driver for 2.5/2.6 kernel.'#jw	@echo '   Remember: you must have read/write access to your kernel source tree.'#jw	$(MAKE) -C $(KERNELDIR) SUBDIRS=$(PWD) CC=$(CC) modules#jw install:#jw	mkdir -p $(MODULE_INSTALLDIR)#jw	rm -f $(MODULE_INSTALLDIR)spca50x.ko#jw	rm -f $(MODULE_INSTALLDIR)et61x.ko#jw	install -c -m 0644 spca5xx.ko $(MODULE_INSTALLDIR)#jw	/sbin/depmod -ae#jw uninstall:#jw	rm -f $(MODULE_INSTALLDIR)/spca5xx.ko#jw	/sbin/depmod -aq#jw endif#jw else   # kernel version test/**********************************************************************           以下这段是针对2.4内核版本 是修改的重点           前加#jw 表示我注释掉的内容 注释完后会紧跟我修改的内容**********************************************************************/############################################################################## For Linux 2.4 users.# Change the following lines according to your system configuration.# It is important to configure your particular source tree ("make dep") before# compiling this module!################################################################################# This makefile will build the spca50x driver module external to the kernel# source tree. It makes it easier to swap kernels.#jw KERNEL_VERSION = `uname -r`       //最先的内容#jw KERNEL_VERSION = 2.4.25-jaywoo    //原来填内核版本KERNEL_VERSION = 3.3.2                //后来正确编译时填交叉编译工具版本 个人觉得这里填啥无所谓#### Location of the header files (most importantly the config files)# for the kernel you want to build the module against.# This should be correct for the currently installed kernel on your machine.#jw KINCLUDE   = /lib/modules/$(KERNEL_VERSION)/build/include  //原来内容#jw KINCLUDE   = /lib/modules/2.4.25-jaywoo/build/include      //后来改内核库文件所在目录KINCLUDE   = /usr/local/arm/3.3.2/arm-linux/sys-include        //正确编译时的交叉工具库目录 //思考下应该填交叉工具目录 因为编译工具使用交叉工具 不是原来带的gcc因此也不能用原来内核的库//原来内核使用的库跟交叉编译工具使用的库可能存在差异 导致编译不通过KERNEL_ACFILE = $(KINCLUDE)/linux/autoconf.hKERNEL_MODVERSIONSFILE = $(KINCLUDE)/linux/modversions.h//以下指明模块安装目录 个人觉得问题不是很大#jw MODULE_INSTALLDIR = /lib/modules/$(KERNEL_VERSION)/kernel/drivers/usb/MODULE_INSTALLDIR = /lib/modules/2.4.25-jaywoo/kernel/drivers/usb/# Detect module versioning supportifneq ($(strip $(shell grep 'define CONFIG_MODVERSIONS 1' $(KERNEL_ACFILE))),)	DEFINES += -DMODVERSIONS -include $(KERNEL_MODVERSIONSFILE)endif# Detect SMP supportifneq ($(strip $(shell grep 'define CONFIG_SMP 1' $(KERNEL_ACFILE))),)	DEFINES += -D__SMP__ -DSMPendif//以下指明交叉编译工具 很关键# Setup the tools#jw CC         = gcc   //原来使用默认的自带的gcc编译器和ld工具CC         = /usr/local/arm/3.3.2/bin/arm-linux-gcc  //修改使用交叉编译工具#jw LD         = ldLD         = /usr/local/arm/3.3.2/bin/arm-linux-ld# Setup compiler warningsWARNINGS   = -Wall -Wpointer-arithWARNINGS  += -Wcast-align -Wwrite-strings -Wstrict-prototypesWARNINGS  += -Wuninitialized -Wreturn-type -Wunused -Wparentheses# Setup compiler flagsCFLAGS     = -O2 -fomit-frame-pointer -fno-strict-aliasing -pipe#jw原来有这句 CFLAGS    += -mpreferred-stack-boundary=2   //参考网友说要注释掉否则编译不通过#jw CFLAGS    += -I$(KINCLUDE) -Idrivers/usb#jw CFLAGS    += -I/lib/modules/2.4.25-jaywoo/build/include -Idrivers/usb CFLAGS    += -I/usr/local/arm/3.3.2/arm-linux/sys-include -Idrivers/usb //使用交叉编译工具的库//应使用交叉工具库目录 而非内核目录# Setup link flagsLDFLAGS    = --strip-debug -r# Setup the list of files to be included in a distributionDIST_FILES = CHANGELOG \             README \             Makefile \             drivers/usb/Config.in \             drivers/usb/spcadecoder.c \             drivers/usb/spcadecoder.h \	     drivers/usb/spcagamma.h \	     drivers/usb/spcaCompat.h \	     drivers/usb/spcausb.h \             drivers/usb/spca500_init.h \             drivers/usb/spca501_init.h \	     drivers/usb/sp5xxfw2.dat \             drivers/usb/sp5xxfw2.h \             drivers/usb/spca505_init.h \             drivers/usb/spca506.h \             drivers/usb/spca508_init.h \	     drivers/usb/spca561.h \	     drivers/usb/sonix.h \             drivers/usb/cs2102.h \             drivers/usb/hv7131b.h \	     drivers/usb/icm105a.h \             drivers/usb/hv7131c.h \	     drivers/usb/hdcs2020.h \             drivers/usb/pb0330.h \	     drivers/usb/tas5130c.h \	     drivers/usb/zc3xx.h\	     drivers/usb/tv8532.h\	     drivers/usb/cxlib.h\	     drivers/usb/sn9cxxx.h\	     drivers/usb/cx11646.h\	     drivers/usb/pac207.h\	     drivers/usb/spca5xx.c \             drivers/usb/spca5xx.h OBJS       = drivers/usb/spcadecoder.o \             drivers/usb/spca5xx.oBINARY     = spca5xx.o#### Targets follow herebinary:	$(OBJS)	@echo Linking $(BINARY)	@$(LD) $(LDFLAGS) -o $(BINARY) $(OBJS)install: binary	@echo Installing.. Your root password may be required.	su -c "make install-root"install-root:	@echo Installing..	@mkdir -p /lib/modules/`uname -r`/kernel/drivers/usb	@rm -f /lib/modules/`uname -r`/kernel/drivers/usb/spca50x.o	@rm -f /lib/modules/`uname -r`/kernel/drivers/usb/et61x.o	@cp spca5xx.o /lib/modules/`uname -r`/kernel/drivers/usb/spca5xx.o	@/sbin/depmoddist:	clean binary	@echo Making distributable archives	@rm -f spca5xx-src-$(VERSION).tar.gz	@tar zcf spca5xx-src-$(VERSION).tar.gz $(DIST_FILES)	@rm -f spca5xx-module-$(VERSION).tar.gz	@cp $(BINARY) spca5xx-$(VERSION).o	@tar zcf spca5xx-module-$(VERSION).tar.gz spca5xx-$(VERSION).o README	@rm spca5xx-$(VERSION).o.c.o:	Makefile $*.c	@echo Compiling $*.c	@$(CC) $(CFLAGS) $(WARNINGS) $(DEFINES) -c $*.c -o $*.o#### Dependencies follow heredrivers/usb/spca5xx.o: drivers/usb/spca5xx.h \		       drivers/usb/spcaCompat.h \		       drivers/usb/spcausb.h \		       drivers/usb/sonix.h \           drivers/usb/spca500_init.h \           drivers/usb/spca501_init.h \		       drivers/usb/sp5xxfw2.h \           drivers/usb/spca505_init.h \		       drivers/usb/spca506.h \           drivers/usb/spca508_init.h \		       drivers/usb/spca561.h \		       drivers/usb/zc3xx.h\		       drivers/usb/tv8532.h\		       drivers/usb/cx11646.h\		       drivers/usb/mr97311.h\		       drivers/usb/sn9cxxx.h\		       drivers/usb/pac207.h\                       drivers/usb/spcadecoder.o: drivers/usb/spcadecoder.h \			   drivers/usb/spcagamma.h \                          //由于将针对2.5 2.6的全部注释掉因此这句也要注释掉 因为已经破坏了分支结构#jw endif  # End kernel version test  ############################################################################## # OTHER TARGETS ##############################################################################clean:	rm -r -f drivers/usb/*.o drivers/usb/.spcadecoder.o.cmd \	drivers/usb/.spca5xx.o.cmd  *.o *.ko *.mod.* .[a-z]* core *.i	############################################################################## 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -