X-Git-Url: http://rtime.felk.cvut.cz/gitweb/lincan.git/blobdiff_plain/47652e8d16ce55b49ea5435b1216b002cbc366a9..2827b727d2910a3b48f9de7d67b3a67f59e256c7:/lincan/src/Makefile diff --git a/lincan/src/Makefile b/lincan/src/Makefile index 1a0f0e9..f595272 100644 --- a/lincan/src/Makefile +++ b/lincan/src/Makefile @@ -1,199 +1,14 @@ -# 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 -# -#***************************************************************** +# Generic directory or leaf node makefile for OCERA make framework -# Begin of OCERA framework header -ifdef SUBDIRS -SUBDIRS = +ifndef MAKERULES_DIR +MAKERULES_DIR := $(shell ( old_pwd="" ; while [ ! -e Makefile.rules ] ; do if [ "$$old_pwd" == `pwd` ] ; then exit 1 ; else old_pwd=`pwd` ; cd -L .. 2>/dev/null ; fi ; done ; pwd ) ) endif -ifneq ($(wildcard ../Standalone.mk),) -# Standalone make outside of OCERA framework +ifeq ($(MAKERULES_DIR),) 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 +.DEFAULT:: + @echo -e "\nThe Makefile.rules has not been found in this or partent directory\n" +else +include $(MAKERULES_DIR)/Makefile.rules endif