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

📄 makefile

📁 can4linux-3.5.3.gz can4 linux
💻
字号:
### can4linux -- LINUX device driver Makefile## Copyright (c) 2004-2008 port GmbH Halle/Saale## Used release tag for this software versionVERSION=3REL=5.3RELEASE=CAN4LINUX-$(VERSION)_$(REL)DVERSION=$(VERSION).$(REL)#include $(PWD)/version.inc#include version.incKVERSION= $(shell uname -r)CONFIG := $(shell uname -n)# be prepared for RTLinuxLINUXTARGET=LINUXOS#LINUXTARGET=RTLinuxCTAGS =	ctags --c-types=dtvfCTAGS =	elvtags -tsevlECHO  = /bin/echoDATE  =$(shell date)TITLE = LINUX driver module example ## The driver major device number# development starts with major=63#  (LOCAL/EXPERIMENTAL USE)# The new linux/Documentation/devices.txt defines major=91CAN_MAJOR=	91CAN_MODULE = can.ko# definitions for the hardware target########################################################################## Only AT-CAN-MINI can be compiled for 82c200 or PeliCAN mode.# All other Targets are assuming to have an SJA1000# CPC_PCI  implies PeliCAN#### Supported TARGET= IME_SLIMLINE | ATCANMINI_PELICAN | CPC_PCI | CPC_CARD ## | IXXAT_PCI03 | PCM3680 | PC104_200 | SBS_PC7 | TRM816 | GENERIC_I82527## | CC_CANPCI | AD_BLACKFIN | KVASER_PCICAN | VCMA9 | CPC104 | CPC_PCM_104## | ATMEL_SAM9 | SSV_MCP2515 | MMC_SJA1000#### compile DigiTec FC-CAN as ATCANMINI_PELICAN## compile ARCOM(Eurotech) AIM104-CAN as ATCANMINI_PELICAN#### When crosscompiling, ensure that CC is set properly#### Compiling options:##   V=1   - set verbose output of Linux kernel makefiles### up to now look for the CONFIG Settings and convert to TARGET= ----# later we can improve it by checking directly##   ifeq ($(CONFIG_CAN_MCF5282),m)#   can_objs += mcf5282funcs.o#   EXTRA_CFLAGS += -DMCF5282 -DMAX_CHANNELS=1 -DUSE_FASYNC#   TARGET=ColdFire_FlexCAN#   endif############################################################################ifdef CONFIG_CAN_ATCANMINITARGET = ATCANMINI_PELICANendififdef CONFIG_CAN_CPC_PCITARGET = CPC_PCIendififdef CONFIG_CAN_KVASER_PCITARGET = KVASER_PCICANendififdef CONFIG_CAN_MCF5282TARGET = ColdFire_FlexCANendififdef CONFIG_CAN_CANPCITARGET = CC_CANPCIendififdef CONFIG_CAN_BLACKFINTARGET = AD_BLACKFINendififdef CONFIG_CAN_AT91SAM9263TARGET = ATMEL_SAM9endififdef CONFIG_CAN_MCP2515TARGET = SSV_MCP2515endififdef CONFIG_CAN_VCMA9TARGET = VCMA9endififdef THIS_IS_HERE_FOR_REFERENCE#TARGET=IXXAT_PCI03#TARGET=IME_SLIMLINE#TARGET=PCM3680#TARGET=PC104_200#TARGET=CPC_CARD#TARGET=ATCANMINI_PELICAN#TARGET=CPC_PCI#TARGET=TRM816#TARGET=GENERIC_I82527#TARGET=SBS_PC7#TARGET=CC_CANPCI#TARGET=AD_BLACKFIN#TARGET=KVASER_PCICAN#TARGET=VCMA9#TARGET=CPC104#TARGET=CPC_PCM_104#TARGET= CPC_PCIendifTARGET = CPC_PCI##########################################################################TARGET_MATCHED = false# location of the compiled objects and the final driver moduleOBJDIR = obj# Debugging Code within the driver# to use the Debugging option# and the Debugging control via /proc/sys/Can/DbgMask# the Makefile in subdir Can must called with the DEBUG set to# DEBUG=1# else# NODEBUG# doesn't compile any debug code into the driverDEBUG=NODEBUGDEBUG=DEBUG=1# all definitions for compiling the sources# CAN_PORT_IO		- use port I/O instead of memory I/O# CAN_INDEXED_PORT_IO   - CAN registers adressed by a pair of registers#			  one is selcting the register the other one does i/O#			  used eg. on Elan CPUs# CAN4LINUX_PCI# IODEBUG               - all register write accesses are logged# CONFIG_TIME_MEASURE=1 - enable Time measurement at parallel port## MAX_CHANNELS          - max number of minor inodes supported## CAN_MAX_OPEN		- the driver can be opened more than once#                         the number specifies the number of possible#			  different process, the number of RX queues#			  the driver has to handle#ifeq "$(TARGET)" "CPC_PCI"# EMS W黱sche CPC-PCI PeliCAN  PCI (only with SJA1000) ------------------------# http://www.ems-wuensche.comDEFS =  -D$(TARGET) -D$(DEBUG) -DDEFAULT_DEBUG -DCAN_MAJOR=$(CAN_MAJOR)\	-DCAN4LINUX_PCI \	-DCAN_MAX_CHANNELS=4 -DCAN_MAX_OPEN=4 -DCAN_SYSCLK=8 	#-DIODEBUGTARGET_MATCHED = trueendififeq "$(TARGET)" "KVASER_PCICAN"# PCIcan PeliCAN  PCI (up to four  SJA1000) -----------------------------------DEFS =  -D$(TARGET) -D$(DEBUG) -DDEFAULT_DEBUG -DCAN_MAJOR=$(CAN_MAJOR)\	-DCAN4LINUX_PCI \	-DCAN_PORT_IO   \	-DCAN_MAX_OPEN=4 \	-DCAN_SYSCLK=8	#-DIODEBUGTARGET_MATCHED = trueendififeq "$(TARGET)" "MMC_SJA1000"# Weidm黮ler MMC # using adress/data multiplexed SJA1000  PeliCAN ISADEFS =  -D$(TARGET) -D$(DEBUG) -DDEFAULT_DEBUG -DCAN_MAJOR=$(CAN_MAJOR) \	-DCAN_INDEXED_MEM_IO \	-DCAN_SYSCLK=5 \	-DMAX_CHANNELS=3 -DCAN_MAX_OPEN=2\		-Wno-undef	#-DCONFIG_TIME_MEASURE=1TARGET_MATCHED = trueendififeq "$(TARGET)" "CC_CANPCI"# Contemporary Controls# CC PCI PeliCAN  PCI (only with SJA1000) ------------------------------------DEFS =  -D$(TARGET) -D$(DEBUG) -DDEFAULT_DEBUG -DCAN_MAJOR=$(CAN_MAJOR)\	-DCAN4LINUX_PCI \	-DCAN_PORT_IO   \	-DCAN_SYSCLK=8	#-DIODEBUGTARGET_MATCHED = trueendif# port GmbH AT-CAN-MINI# Arcom AIM104-CANifeq "$(TARGET)" "ATCANMINI_PELICAN"# AT-CAN-MINI PeliCAN ISA (only with SJA1000) --------------------------------DEFS =  -D$(TARGET) -D$(DEBUG) -DDEFAULT_DEBUG -DCAN_MAJOR=$(CAN_MAJOR) \	-DCAN_PORT_IO \	-DCAN_SYSCLK=8	#-DCONFIG_M586	#-DCONFIG_TIME_MEASURE=1TARGET_MATCHED = trueendififeq "$(TARGET)" "CPC_CARD"# CPC-Card PeliCAN  PC-Card  (only with SJA1000) -----------------------------DEFS =  -D$(TARGET) -D$(DEBUG) -DDEFAULT_DEBUG -DCAN_MAJOR=$(CAN_MAJOR)\	-DCAN4LINUX_PCCARD \	-DCAN_SYSCLK=8	#-DIODEBUGTARGET_MATCHED = trueendififeq "$(TARGET)" "IXXAT_PCI03"# IXXAT PC-I 03 board ISA (only with SJA1000) ---------------------------------DEFS =  -D$(TARGET) -D$(DEBUG) -DDEFAULT_DEBUG -DCAN_MAJOR=$(CAN_MAJOR) \	-DCAN_SYSCLK=8TARGET_MATCHED = trueendififeq "$(TARGET)" "PCM3680"# Advantech PCM3680 PC104 board 2xCAN (only with SJA1000) --------------------# http://www.advantech.gr/epc/products/pcm3680.htmDEFS =  -D$(TARGET) -D$(DEBUG) -DDEFAULT_DEBUG -DCAN_MAJOR=$(CAN_MAJOR) \	-DCAN_SYSCLK=8TARGET_MATCHED = trueendififeq "$(TARGET)" "CPC104"# EMS W黱sche CPC-104 PC104 board 1xCAN (only with SJA1000) -------------------# should work for the ISA series CPC-XT as well (not tested yet)# http://www.ems-wuensche.comDEFS =  -D$(TARGET) -D$(DEBUG) -DDEFAULT_DEBUG -DCAN_MAJOR=$(CAN_MAJOR) \	-DCAN_SYSCLK=8 \	-DPC104_OPTION_ROMTARGET_MATCHED = trueendififeq "$(TARGET)" "TRM816"# TRM816 Onboard CAN-Controller (only with SJA1000) --------------------------DEFS =  -D$(TARGET) -D$(DEBUG) -DDEFAULT_DEBUG -DCAN_MAJOR=$(CAN_MAJOR) \	-DCAN_INDEXED_PORT_IO \	-DCAN_SYSCLK=10	-DMAX_CHANNELS=2TARGET_MATCHED = trueendififeq "$(TARGET)" "PC104_200"# ESD PC104-200 PC104 board (with SJA1000) ----------------------------DEFS =  -D$(TARGET) -D$(DEBUG) -DDEFAULT_DEBUG -DCAN_MAJOR=$(CAN_MAJOR) \	-DCAN_PORT_IO -DPC104 \	-DCAN_SYSCLK=8TARGET_MATCHED = trueendififeq "$(TARGET)" "IME_SLIMLINE"# I+ME  PcSlimline ISA (only with SJA1000) -----------------------------------DEFS =  -D$(TARGET) -D$(DEBUG) -DDEFAULT_DEBUG -DCAN_MAJOR=$(CAN_MAJOR) \	-DCAN_SYSCLK=8TARGET_MATCHED = trueendififeq "$(TARGET)" "GENERIC_I82527"# Generic i82527 cardDEFS =  -D$(TARGET) -D$(DEBUG) -DCAN_MAJOR=$(CAN_MAJOR) \	-DCAN_SYSCLK=8 -DCAN_PORT_IOTARGET_MATCHED = trueendififeq "$(TARGET)" "SBS_PC7"# SBS PC7compact DINrail mounted Industry PC (with i82527)DEFS =  -D$(TARGET) -D$(DEBUG) -DCAN_MAJOR=$(CAN_MAJOR) \	-DCAN_SYSCLK=8 -DCAN_PORT_IOTARGET_MATCHED = trueendif# Analog Devices BF537 STAMP boardifeq "$(TARGET)" "AD_BLACKFIN"# integrated CAN of the Analog Devices BlackFin DSPDEFS =  -D$(TARGET) -D$(DEBUG) -DCAN_MAJOR=$(CAN_MAJOR) \	-DCAN_SYSCLK=125 \	-DMAX_CHANNELS=1 \	#-DCONFIG_TIME_MEASURE=1TARGET_MATCHED = trueendif# ATMEL AT91SAM9263-EX Board (Y4 50 Mhz)# ifeq "$(TARGET)" "ATMEL_SAM9"# integrated CAN of the ATMEL AT91SAM9263DEFS =  -D$(TARGET) -D$(DEBUG) -DCAN_MAJOR=$(CAN_MAJOR) \	-DCAN_SYSCLK=100 \	-DMAX_CHANNELS=1 \	-DCAN_MAX_OPEN=2 \	#-DCONFIG_TIME_MEASURE=1TARGET_MATCHED = trueendif# SSV ATMEL AT91SAM9263 Board  using MCP2515 via SPI# ifeq "$(TARGET)" "SSV_MCP2515"DEFS =  -D$(TARGET) -D$(DEBUG) -DCAN_MAJOR=$(CAN_MAJOR) \	-DCAN_SYSCLK=16 \	-DMAX_CHANNELS=1 \	#-DCONFIG_TIME_MEASURE=1#KDIR=/home/oertel/pakete/linux-2.6.24.7#CC=/usr/local/angstrom/arm/bin/arm-angstrom-linux-gnueabi-gcc -v#CFLAGS=#DEFS=TARGET_MATCHED = trueendififeq "$(TARGET)" "VCMA9"# external SJA1000DEFS =  -D$(TARGET) -D$(DEBUG) -DCAN_MAJOR=$(CAN_MAJOR) \	-DCAN_SYSCLK=12 \	-DMAX_CHANNELS=1 \	-DMAX_BUFSIZE=512TARGET_MATCHED = trueendififeq "$(TARGET)" "CPC_PCM_104"# This is a special Target Supporting two different PC104 boards# CPC-104 by EMS W黱sche at addresses in the range 0xD0000 to 0xD7FFF# PCM3680 by Advantech in the range from 0yd8000 to 0xDFFFF# -----------------------------------------------------------------------------DEFS =  -D$(TARGET) -D$(DEBUG) -DDEFAULT_DEBUG -DCAN_MAJOR=$(CAN_MAJOR) \	-DCAN_SYSCLK=8 \	-DPC104_OPTION_ROMTARGET_MATCHED = trueendif# general compiler switchesDEFS += -Wno-undefifneq ($(KERNELRELEASE),)EXTRA_CFLAGS  = $(DEFS) -DVERSION=\"$(DVERSION)_$(TARGET)\"obj-m		:= can.o# add other object modules herecan-objs	:= core.o	\	    open.o		\	    read.o		\	    write.o		\	    ioctl.o		\	    select.o	\	    debug.o		\	    error.o		\	    util.o		\	    sysctl.o	\	    async.o		\	    close.o		\	    # include Chip/board specific object files and definitions	    ##########################################################	    ifeq "$(TARGET)" "CPC_PCI"		can-objs += sja1000funcs.o		can-objs += ems_pci.o	    endif	    ifeq "$(TARGET)" "CPC_CARD"		can-objs += sja1000funcs.o	    endif	    ifeq "$(TARGET)" "CC_CANPCI"		can-objs += sja1000funcs.o	    endif	    ifeq "$(TARGET)" "ATCANMINI_PELICAN"		can-objs += sja1000funcs.o	    endif	    ifeq "$(TARGET)" "IXXAT_PCI03"		can-objs += sja1000funcs.o	    endif	    ifeq "$(TARGET)" "PCM3680"		can-objs += sja1000funcs.o		can-objs += pcm3680.o	    endif	    ifeq "$(TARGET)" "TRM816"		can-objs += sja1000funcs.o	    endif	    ifeq "$(TARGET)" "PC104_200"		can-objs += sja1000funcs.o	    endif	    ifeq "$(TARGET)" "IME_SLIMLINE"		can-objs += sja1000funcs.o	    endif	    ifeq "$(TARGET)" "SBS_PC7"		can-objs += i82527funcs.o	    endif	    ifeq "$(TARGET)" "ColdFire_FlexCAN"		can-objs += mcf5282funcs.o	    endif	    ifeq "$(TARGET)" "AD_BLACKFIN"		can-objs += bf537funcs.o	    endif	    ifeq "$(TARGET)" "ATMEL_SAM9"		can-objs += at9263funcs.o	    endif	    ifeq "$(TARGET)" "KVASER_PCICAN"		can-objs += sja1000funcs.o		can-objs += kvaser_pci.o	    endif	    ifeq "$(TARGET)" "VCMA9"		can-objs += sja1000funcs.o		can-objs += mpl_vcma9.o	    endif	    ifeq "$(TARGET)" "CPC104"		can-objs += sja1000funcs.o		can-objs += cpc_104.o	    endif	    ifeq "$(TARGET)" "CPC_PCM_104"		can-objs += sja1000funcs.o		can-objs += cpc_pcm_104.o	    endif	    ifeq "$(TARGET)" "SSV_MCP2515"		can-objs += mcp2515funcs.o	    endif	    ifeq "$(TARGET)" "MMC_SJA1000"		can-objs += sja1000funcs.o		can-objs += mmc.o	    endifelseKDIR 	:= /lib/modules/$(shell uname -r)/build/PWD	:= $(shell pwd).PHONY: allifndef TARGETall:	@echo "Please specify TARGET= at command line" 	@echo "  \"make help\" will help" elseall:	@echo "compile with KDIR=$(KDIR)"	@echo "CC = $(CC)"	$(MAKE)	-C $(KDIR) M=$(PWD) TARGET=$(TARGET) modulesendifendif# load host specific driverload:	$(ECHO) ">>> " Loading Driver Module to Kernel	/sbin/insmod $(CAN_MODULE)	@echo "Loading etc/$(CONFIG).conf CAN configuration"	./utils/cansetup ./etc/$(CONFIG).conf	#echo 7 >/proc/sys/Can/dbgMask# unload the driver moduleunload:	$(ECHO) ">>> " Removing Driver Module from Kernel	-/sbin/rmmod $(CAN_MODULE:.o=)clean:	-rm -f tags	-rm -f *.o *.ko	-rm -f .*.cmd *.mod.c	-rm -rf .tmp_versionsinodes:	-mknod /dev/can0 c $(CAN_MAJOR) 0	-mknod /dev/can1 c $(CAN_MAJOR) 1	-mknod /dev/can2 c $(CAN_MAJOR) 2	-mknod /dev/can3 c $(CAN_MAJOR) 3	-mknod /dev/can4 c $(CAN_MAJOR) 4	-mknod /dev/can5 c $(CAN_MAJOR) 5	-mknod /dev/can6 c $(CAN_MAJOR) 6	-mknod /dev/can7 c $(CAN_MAJOR) 7	chmod 666 /dev/can[0-7]ctags:	$(CTAGS)  *.[ch] #### HTML Manual section. #################################man:    port_footer.html	doxygen.PHONY:port_footer.htmlport_footer.html:	sed 's/DATE/$(DATE)/; s/TITLE/CAN driver can4linux/' < ft.html > port_footer.htmlhelp:	@grep "^## " Makefile# Henrik Maier's special load targethm:	make TARGET=SBS_PC7	-/sbin/rmmod $(CAN_MODULE:.o=)	/sbin/insmod $(CAN_MODULE)	./utils/cansetup ./etc/pc7.conf	echo 7 >/proc/sys/Can/dbgMask

⌨️ 快捷键说明

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