X-Git-Url: http://rtime.felk.cvut.cz/gitweb/lincan.git/blobdiff_plain/786c7d54e8d820e89997e507c29ea716c0d55fd9..5bef5c531e98c252f89eeeeb9645bb0251896fda:/lincan/src/Makefile diff --git a/lincan/src/Makefile b/lincan/src/Makefile index b83aa6d..1b1f8ef 100644 --- a/lincan/src/Makefile +++ b/lincan/src/Makefile @@ -1,27 +1,54 @@ # Makefile for the Linux CAN-bus driver. # Written by Arnaud Westenberg email:arnaud@wanadoo.nl # This software is released under the GPL-License. -# Version 0.7 6 Aug 2001 +# Version lincan-0.2 9 Aug 2003 # -# This version is adapted from uLan Communication driver +# This Makefile version is adapted from uLan Communication driver # (C) Copyright 1999 by Pavel Pisa pisa@cmp.felk.cvut.cz # #***************************************************************** +# Begin of OCERA framework header +ifdef SUBDIRS +SUBDIRS = +endif +ifneq ($(wildcard ../Standalone.mk),) +# Standalone make outside of OCERA framework + +all : default + +else +# Build in structure of OCERA framework + +ifneq ($(wildcard ../../../../../ocera.mk),) +ifndef TOPDIR +include ../../../../../ocera.mk +else +LINUX_DIR = ../../../../../kernel/linux/ +endif +else +all: + @echo -e "\nTo build LinCAN driver for OCERA framework, ocera.mk file have" + @echo -e "to be generated first. Go to ocera/ directory and do 'make', please." + @echo -e "If standalone build is required, mark lincan/ by 'touch ../Standalone.mk'.\n" +endif +ifdef LINUX_DIR +KERNEL_LOCATION = $(LINUX_DIR) +endif +endif +# End of OCERA framework header + # Where to look for kernel # if not defined, sources of current running kernel are found #KERNEL_LOCATION=/usr/src/linux #KERNEL_LOCATION=/usr/src/linux-2.2.19 #KERNEL_LOCATION=/usr/src/linux-2.2.22 -#KERNEL_LOCATION=/usr/src/linux-2.5.47 +#KERNEL_LOCATION=/usr/src/linux-2.6.0-test4 +#KERNEL_LOCATION=/home/cvs/ocera/ocera-build/kernel/linux -# Comment-out next two lines, if you do not build driver -# in the OCERA source tree -TOP=../../../../.. -KERNEL_LOCATION=$(TOP)/kernel/linux # Enable debugging messages -DEBUG = y +#DEBUG = y # You can comment out the hardware you don't need. This will result in a smaller # driver. By default, all hardware is supported in the driver. See the README @@ -31,7 +58,11 @@ DEBUG = y SUPPORTED_CARDS = pip pccan smartcan nsi cc_can104 \ pc_i03 pcm3680 aim104 m437 pcccan ssv \ - bfadcan pikronisa template + bfadcan pikronisa virtual template + +#SUPPORTED_CARDS = pcm3680 bfadcan pikronisa template + +#SUPPORTED_CARDS = virtual ########## Don't change anything under this line ################ @@ -53,6 +84,9 @@ MODULE_CHAR_LOC=/lib/modules/$(CURRENT)/misc endif endif +TOPDIR = $(KERNEL_LOCATION) +CONFIG_SHELL = TOPDIR=$(TOPDIR) + KERNEL_VERSION := $(shell awk -F\" '/REL/ {print $$2}' \ $(KERNEL_LOCATION)/include/linux/version.h | awk -F\- '{print $$1}') @@ -91,8 +125,9 @@ O_TARGET = can.o endif # Regular object files O_OBJS += $(SUPPORTED_CARDS:%=%.o) -O_OBJS += main.o modparms.o setup.o sja1000.o i82527.o close.o ioctl.o \ - open.o write.o read.o sja1000p.o irq.o select.o +O_OBJS += can_queue.o devcommon.o main.o modparms.o setup.o \ + sja1000p.o sja1000.o i82527.o irq.o boardlist.o \ + open.o proc.o close.o write.o read.o ioctl.o select.o # Objects with exported symbols (-DEXPORT_SYMTAB) OX_OBJS = # Module objects @@ -106,17 +141,21 @@ LX_OBJS = # Additional CFLAGS EXTRA_CFLAGS += -# Linux 2.4.2 build system needs next -can-objs := $(O_OBJS) -obj-y := $(O_OBJS) -obj-m := can.o +# Linux 2.4.2 and newer build system needs next +can-objs = $(O_OBJS) +obj-y = $(O_OBJS) +obj-m = can.o -########## Source/target independent buil of module ############# +ifndef KERNEL_MODULE_V26 +FINAL_MODULE_OBJS=$(obj-m) +else +FINAL_MODULE_OBJS=$(obj-m:%.o=%.ko) +endif -all : default +########## Source/target independent build of module ############# default : make_this_module - cp can.o ../can.o + cp $(FINAL_MODULE_OBJS) ../$(FINAL_MODULE_OBJS) dep: make_this_module_dep @@ -133,18 +172,22 @@ make_this_module: .supported_cards.h echo Module target $(obj-m) echo Module objects $(can-objs) DIR=`pwd`; (cd $(KERNEL_LOCATION); make SUBDIRS=$$DIR modules) - for f in $(obj-m:%.o=%) ; do if [ -f $$f.ko ] ; then cp -u $$f.ko $$f.o ; fi ; done make_this_module_dep: DIR=`pwd`; (cd $(KERNEL_LOCATION); make SUBDIRS=$$DIR dep) install_this_module: make_this_module - su -c "mkdir -v -p $(MODULE_CHAR_LOC); cp -v $(obj-m) $(MODULE_CHAR_LOC)" + su -c "mkdir -v -p $(MODULE_CHAR_LOC) && cp -v $(FINAL_MODULE_OBJS) $(MODULE_CHAR_LOC)" clean: - rm -f $(M_OBJS) $(MX_OBJS) $(O_OBJS) $(OX_OBJS) $(obj-m) $(obj-m:%.o=%.ko) \ - .*.o.flags .*.o.cmd .depend .supported_cards.h *~ + rm -f $(M_OBJS) $(MX_OBJS) $(O_OBJS) $(OX_OBJS) $(obj-m) \ + .*.o.flags .*.o.cmd .*.ko.cmd .depend .supported_cards.h *~ \ + $(obj-m:%.o=%.mod.o) $(FINAL_MODULE_OBJS) ../$(FINAL_MODULE_OBJS) + +distclean: clean + ifndef KERNEL_MODULE_V26 include $(KERNEL_LOCATION)/Rules.make endif +