--- /dev/null
+#
+# 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
+#
+# Changes made by Pavel Pisa pisa@cmp.felk.cvut.cz as preliminary
+# study for OCERA Real Time CAN/CANOpen project ORTCAN
+#
+########## The following options can be changed ##########
+
+SUBDIRS = src utils
+
+ifndef SOURCES_DIR
+SOURCES_DIR := $(shell ( pwd -L ) )
+endif
+
+ifneq ($(wildcard $(SOURCES_DIR)/Standalone.mk),)
+# Standalone make outside of OCERA framework
+
+all: default
+
+.PHONY: dep default subdirs clean cleandepend
+.PHONY: check-dir include-pass library-pass binary-pass utils-pass kernel-lib-pass kernel-pass
+
+dirs = src utils
+
+default dep clean install utils-pass kernel-pass:
+ $(foreach dir, $(dirs), $(MAKE) -C $(SOURCES_DIR)/$(dir) \
+ SOURCES_DIR=$(SOURCES_DIR)/$(dir) $@ ; )
+
+else
+# Build in structure of OCERA framework
+
+TOPDIR = $(LINUX_DIR)
+
+ifneq ($(wildcard ../../../../ocera.mk),)
+include ../../../../ocera.mk
+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
+endif
+
--- /dev/null
+# Makefile for the Linux CAN-bus driver.
+# Written by Arnaud Westenberg email:arnaud@wanadoo.nl
+# This software is released under the GPL-License.
+# Version lincan-0.2 9 Aug 2003
+#
+# 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
+
+.PHONY: kernel-pass utils-pass
+
+kernel-pass : 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.6.0-test4
+#KERNEL_LOCATION=/home/cvs/ocera/ocera-build/kernel/linux
+
+
+# Enable debugging messages
+#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
+# file for a description of the supported hardware.
+# pccan Not to be confused with PCCCAN!!!
+# pcccan Not to be confused with PCCAN!!!
+
+SUPPORTED_CARDS = pip pccan smartcan nsi cc_can104 \
+ pc_i03 pcm3680 aim104 m437 pcccan ssv \
+ bfadcan pikronisa virtual template
+
+#SUPPORTED_CARDS = pcm3680 bfadcan pikronisa template
+
+#SUPPORTED_CARDS = virtual
+
+########## Don't change anything under this line ################
+
+# currently running kernel
+CURRENT=$(shell uname -r)
+KERNEL_NEW=$(shell if [ -d /lib/modules/$(CURRENT)/build ] ; \
+ then echo yes ; else echo no ; fi )
+
+#KERNEL_LOCATION=/usr/src/kernel/$(CURRENT)
+#KERNEL_LOCATION=/lib/modules/$(CURRENT)/build
+
+ifndef KERNEL_LOCATION
+ifeq ($(KERNEL_NEW),yes)
+KERNEL_LOCATION=/lib/modules/$(CURRENT)/build
+MODULE_CHAR_LOC=/lib/modules/$(CURRENT)/kernel/drivers/char
+else
+KERNEL_LOCATION=/usr/src/linux
+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}')
+
+PROC_FS := $(shell awk -F\ '/PROC_FS/ {print $$3}' \
+ $(KERNEL_LOCATION)/include/linux/autoconf.h)
+
+DEVFS_FS := $(shell awk -F\ '/DEVFS_FS/ {print $$3}' \
+ $(KERNEL_LOCATION)/include/linux/autoconf.h)
+
+KERNEL_MODULE_V26 := $(shell echo $(KERNEL_VERSION) \
+ | sed -n 's/^.*2\.[5-9]\..*$$/yes/p')
+
+ifdef DEBUG
+ EXTRA_CFLAGS += -DCAN_DEBUG
+ EXTRA_CFLAGS += -ggdb
+endif
+
+ifndef MODVERSIONS
+# EXTRA_CFLAGS += -DNOVER
+#else
+# EXTRA_CFLAGS += -DMODVERSIONS
+endif
+
+ifdef DEVFS_FS
+ EXTRA_CFLAGS += -DWITH_DEVFS_FS
+endif
+
+ifdef PROC_FS
+ O_OBJS += proc.o
+endif
+
+# Target object file if any
+# this must be undefined for 2.5.xx kernels
+ifndef KERNEL_MODULE_V26
+O_TARGET = can.o
+endif
+# Regular object files
+O_OBJS += $(SUPPORTED_CARDS:%=%.o)
+O_OBJS += can_queue.o can_quekern.o devcommon.o main.o modparms.o \
+ setup.o finish.o irq.o boardlist.o \
+ sja1000p.o sja1000.o i82527.o \
+ open.o proc.o close.o write.o read.o \
+ ioctl.o select.o fasync.o
+# Objects with exported symbols (-DEXPORT_SYMTAB)
+OX_OBJS =
+# Module objects
+M_OBJS = $(O_TARGET)
+# Module only objects with exported symbols (-DEXPORT_SYMTAB)
+MX_OBJS =
+# Kernel only objects
+L_OBJS =
+# Kernel only objects with exported symbols (-DEXPORT_SYMTAB)
+LX_OBJS =
+# Additional CFLAGS
+EXTRA_CFLAGS +=
+
+# Linux 2.4.2 and newer build system needs next
+can-objs = $(O_OBJS)
+obj-y = $(O_OBJS)
+obj-m = can.o
+
+ifndef KERNEL_MODULE_V26
+FINAL_MODULE_OBJS=$(obj-m)
+else
+FINAL_MODULE_OBJS=$(obj-m:%.o=%.ko)
+endif
+
+########## Source/target independent build of module #############
+
+default : make_this_module
+ cp $(FINAL_MODULE_OBJS) ../$(FINAL_MODULE_OBJS)
+
+dep: make_this_module_dep
+
+install : install_this_module
+
+.supported_cards.h: Makefile
+ echo >.supported_cards.h
+ $(foreach card, $(SUPPORTED_CARDS), \
+ echo \#define ENABLE_CARD_$(card) 1 >>.supported_cards.h ;)
+
+make_this_module: .supported_cards.h
+ echo Linux kernel version $(KERNEL_VERSION)
+ echo Linux kernel sources $(KERNEL_LOCATION)
+ echo Module target $(obj-m)
+ echo Module objects $(can-objs)
+ DIR=`pwd`; (cd $(KERNEL_LOCATION); make SUBDIRS=$$DIR modules)
+
+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 $(FINAL_MODULE_OBJS) $(MODULE_CHAR_LOC)"
+
+clean:
+ 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
+