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