Moved from ..
#! gmake
#
# Copyright (C) 2006 OREMEQ
#
# This file is part of canfestival, a library implementing the canopen
# stack
#
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either
# version 2.1 of the License, or (at your option) any later version.
#
# This library is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
# License along with this library; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
#
CC = SUB_CC
OPT_CFLAGS = SUB_OPT_CFLAGS
CFLAGS =
PROG_CFLAGS = SUB_PROG_CFLAGS
LIBS = -lm
SHAREDLIBOPT = -shared
OS_NAME = SUB_OS_NAME
ARCH_NAME = SUB_ARCH_NAME
PREFIX = SUB_PREFIX
TARGET = SUB_TARGET
INCLUDES = -I../../include -I../../examples/ecos_lpc2138_sja1000/include
ECOS_GLOBAL_CFLAGS=-mcpu=arm7tdmi -Wall -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -Os -ffunction-sections -fdata-sections -fno-exceptions -finline-functions
ECOS_GLOBAL_LDFLAGS=-mcpu=arm7tdmi -Wl,--gc-sections -Wl,-static -nostdlib
export CAN_CONTROLER_CLOCK_SPEED := 24.000 # Crystal frequency of the SJA1000 clock input.
export CAN_CONTROLER_PHASE_SHIFT_TOLERANCE := 3 #Synchronization Jump Width (SJW) (in SJA1000==> 0..3)
#To compensate for phase shifts between
#clock oscillators of different bus
# controllers, any bus controller must
#re-synchronize on any relevant signal
#edge of the current transmission.
OBJS = canOpenDriver.o lpc2138.o sja1000.o time_slicer.o
INCLUDE_H = applicfg.h baudrate_table.h canOpenDriver.h lpc2138.h lpc2138_defs.h \
lpc2138_pinout.h sja1000.h time_slicer.h
all: driver
driver: build_baudrate $(OBJS)
build_baudrate:
gcc -o build_baudrate build_baudrate.c
@echo "Generate The baudrate register structure in canControler.h regarding the"
@echo "SJA1000 clock speed defined in the Makefile, CAN_CONTROLER_CLOCK_SPEED"
./build_baudrate $(CAN_CONTROLER_CLOCK_SPEED) $(CAN_CONTROLER_PHASE_SHIFT_TOLERANCE)
libcandriver.a: $(OBJS)
@echo " "
@echo "*********************************************"
@echo "**Building [libcandriver]"
@echo "*********************************************"
$(BINUTILS_PREFIX)ar rc $@ $(OBJS)
$(BINUTILS_PREFIX)ranlib $@
%o: %c
@echo " "
@echo "*********************************************"
@echo "**Compiling $< -> $@"
@echo "*********************************************"
$(CC) -g -c $(ECOS_GLOBAL_CFLAGS) $(INCLUDES) -I. -c -o $@ $<
%o: %s
@echo " "
@echo "*********************************************"
@echo "**Compiling $< -> $@"
@echo "*********************************************"
$(CC) -c -x assembler-with-cpp $(ECOS_GLOBAL_CFLAGS) $(INCLUDES) -I. -o $@ $<
install:
mkdir -p $(PREFIX)/lib
ln -s ../../../drivers/ecos_lpc2138_sja1000 $(PREFIX)/lib/driver
uninstall:
rm -f ../../examples/ecos_lpc2138_sja1000/lib/driver
clean:
rm -f $(OBJS) build_baudrate baudrate_table.h
mrproper: clean
rm -f ../../lib/ecos_lpc2138_sja1000/libcandriver.a