122 lines
3.3 KiB
Makefile
122 lines
3.3 KiB
Makefile
#*******************************************************************
|
|
# Motorola 683xx BDM Driver for Linux Kernel and GNU Debugger
|
|
#
|
|
# Makefile-mod - Makefile for regular compilation
|
|
# through Linux kernel rules
|
|
#
|
|
# This file must be renamed or linked to Makefile
|
|
#
|
|
# (C) Copyright 1999 by Pavel Pisa
|
|
#
|
|
# The BDM driver is distributed under the Gnu General Public Licence.
|
|
# See file COPYING for details.
|
|
#*******************************************************************/
|
|
|
|
# Use "make MODULE_NAME=foobar" if you want to give the driver module
|
|
# a different name. This might be usefull if you want to install both,
|
|
# Chris's and Pavel's drivers at the same machine.
|
|
MODULE_NAME=m683xx-bdm
|
|
|
|
# currently running kernel
|
|
CURRENT=$(shell uname -r)
|
|
KERNEL_NEW=$(shell if [ -d /lib/modules/$(CURRENT)/build ] ; \
|
|
then echo yes ; else echo no ; fi )
|
|
|
|
# Where to look for kernel
|
|
#KERNEL_LOCATION=/usr/src/linux
|
|
#KERNEL_LOCATION=/usr/src/kernel/$(CURRENT)
|
|
#KERNEL_LOCATION=/lib/modules/$(CURRENT)/build
|
|
#KERNEL_LOCATION=/usr/src/linux-2.2.19
|
|
#KERNEL_LOCATION=/usr/src/linux-2.5.60
|
|
|
|
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
|
|
|
|
# Test for latest 2.5.xx and future 2.6.xx kernels
|
|
KERNEL_VERSION := $(shell awk -F\" '/REL/ {print $$2}' \
|
|
$(KERNEL_LOCATION)/include/linux/version.h | awk -F\- '{print $$1}')
|
|
|
|
ifeq ($(KERNEL_VERSION),)
|
|
KERNEL_VERSION=$(shell grep UTS_RELEASE ${KERNEL_LOCATION}/include/linux/utsrelease.h | \
|
|
sed 's/[^"]*"\(.*\)\{1\}"/\1/')
|
|
endif
|
|
|
|
KERNEL_MODULE_V26 := $(shell echo $(KERNEL_VERSION) \
|
|
| sed -n 's/^.*2\.[5-9]\..*$$/yes/p')
|
|
|
|
# Target object file if any
|
|
O_TARGET :=
|
|
# Regular object files
|
|
O_OBJS = $(MODULE_NAME).o
|
|
# Objects with exported symbols (-DEXPORT_SYMTAB)
|
|
OX_OBJS =
|
|
# Module objects
|
|
M_OBJS = $(O_OBJS)
|
|
# 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 build system needs next
|
|
obj-m += $(O_OBJS)
|
|
|
|
ifndef KERNEL_MODULE_V26
|
|
FINAL_MODULE_OBJS=$(obj-m)
|
|
else
|
|
FINAL_MODULE_OBJS=$(obj-m:%.o=%.ko)
|
|
endif
|
|
|
|
all : make_this_module
|
|
|
|
install : install_this_module
|
|
|
|
$(MODULE_NAME).c: bdm.c bdm.h
|
|
cp $< $@
|
|
|
|
make_this_module: $(MODULE_NAME).c
|
|
DIR=`pwd`; (cd $(KERNEL_LOCATION); make SUBDIRS=$$DIR modules)
|
|
|
|
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) *.ko .*.o.flags .*.o.cmd .*.ko.cmd .depend *~
|
|
|
|
# which interface do you want to use
|
|
# now you can select both without problems
|
|
INTERFACE+= -D PD_INTERFACE
|
|
INTERFACE+= -D ICD_INTERFACE
|
|
|
|
# if you want to use ispGAL programming
|
|
INTERFACE+= -DEFIICDISP
|
|
|
|
# last possible way to make system work when you have problems
|
|
# with single step or stop
|
|
# it tries to find 17 bit protocol boundary
|
|
# after single step or stop
|
|
BDM_DEFS += -D BDM_TRY_RESYNCHRO
|
|
|
|
# if you want a PARPORT compatible device, then
|
|
# uncomment the following line
|
|
BDM_DEFS += -DWITH_PARPORT_SUPPORT
|
|
|
|
|
|
EXTRA_CFLAGS= $(INTERFACE) $(BDM_DEFS)
|
|
|
|
|
|
ifndef KERNEL_MODULE_V26
|
|
include $(KERNEL_LOCATION)/Rules.make
|
|
endif
|
|
|