1 #! gmake |
|
2 |
|
3 # |
|
4 # Copyright (C) 2006 OREMEQ |
|
5 # |
|
6 # This file is part of canfestival, a library implementing the canopen |
|
7 # stack |
|
8 # |
|
9 # This library is free software; you can redistribute it and/or |
|
10 # modify it under the terms of the GNU Lesser General Public |
|
11 # License as published by the Free Software Foundation; either |
|
12 # version 2.1 of the License, or (at your option) any later version. |
|
13 # |
|
14 # This library is distributed in the hope that it will be useful, |
|
15 # but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
16 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
|
17 # Lesser General Public License for more details. |
|
18 # |
|
19 # You should have received a copy of the GNU Lesser General Public |
|
20 # License along with this library; if not, write to the Free Software |
|
21 # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
|
22 # |
|
23 |
|
24 CC = SUB_CC |
|
25 OPT_CFLAGS = SUB_OPT_CFLAGS |
|
26 CFLAGS = |
|
27 PROG_CFLAGS = SUB_PROG_CFLAGS |
|
28 LIBS = -lm |
|
29 SHAREDLIBOPT = -shared |
|
30 OS_NAME = SUB_OS_NAME |
|
31 ARCH_NAME = SUB_ARCH_NAME |
|
32 PREFIX = SUB_PREFIX |
|
33 TARGET = SUB_TARGET |
|
34 INCLUDES = -I../../include -I../../examples/ecos_lpc2138_sja1000/include |
|
35 |
|
36 ECOS_GLOBAL_CFLAGS=-mcpu=arm7tdmi -Wall -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -Os -ffunction-sections -fdata-sections -fno-exceptions -finline-functions |
|
37 ECOS_GLOBAL_LDFLAGS=-mcpu=arm7tdmi -Wl,--gc-sections -Wl,-static -nostdlib |
|
38 |
|
39 export CAN_CONTROLER_CLOCK_SPEED := 24.000 # Crystal frequency of the SJA1000 clock input. |
|
40 export CAN_CONTROLER_PHASE_SHIFT_TOLERANCE := 3 #Synchronization Jump Width (SJW) (in SJA1000==> 0..3) |
|
41 #To compensate for phase shifts between |
|
42 #clock oscillators of different bus |
|
43 # controllers, any bus controller must |
|
44 #re-synchronize on any relevant signal |
|
45 #edge of the current transmission. |
|
46 |
|
47 |
|
48 OBJS = canOpenDriver.o lpc2138.o sja1000.o time_slicer.o |
|
49 INCLUDE_H = applicfg.h baudrate_table.h canOpenDriver.h lpc2138.h lpc2138_defs.h \ |
|
50 lpc2138_pinout.h sja1000.h time_slicer.h |
|
51 |
|
52 all: driver |
|
53 |
|
54 driver: build_baudrate $(OBJS) |
|
55 |
|
56 build_baudrate: |
|
57 gcc -o build_baudrate build_baudrate.c |
|
58 @echo "Generate The baudrate register structure in canControler.h regarding the" |
|
59 @echo "SJA1000 clock speed defined in the Makefile, CAN_CONTROLER_CLOCK_SPEED" |
|
60 ./build_baudrate $(CAN_CONTROLER_CLOCK_SPEED) $(CAN_CONTROLER_PHASE_SHIFT_TOLERANCE) |
|
61 |
|
62 |
|
63 libcandriver.a: $(OBJS) |
|
64 @echo " " |
|
65 @echo "*********************************************" |
|
66 @echo "**Building [libcandriver]" |
|
67 @echo "*********************************************" |
|
68 $(BINUTILS_PREFIX)ar rc $@ $(OBJS) |
|
69 $(BINUTILS_PREFIX)ranlib $@ |
|
70 |
|
71 %o: %c |
|
72 @echo " " |
|
73 @echo "*********************************************" |
|
74 @echo "**Compiling $< -> $@" |
|
75 @echo "*********************************************" |
|
76 $(CC) -g -c $(ECOS_GLOBAL_CFLAGS) $(INCLUDES) -I. -c -o $@ $< |
|
77 |
|
78 %o: %s |
|
79 @echo " " |
|
80 @echo "*********************************************" |
|
81 @echo "**Compiling $< -> $@" |
|
82 @echo "*********************************************" |
|
83 $(CC) -c -x assembler-with-cpp $(ECOS_GLOBAL_CFLAGS) $(INCLUDES) -I. -o $@ $< |
|
84 |
|
85 install: |
|
86 mkdir -p $(PREFIX)/lib |
|
87 ln -s ../../../drivers/ecos_lpc2138_sja1000 $(PREFIX)/lib/driver |
|
88 |
|
89 uninstall: |
|
90 rm -f ../../examples/ecos_lpc2138_sja1000/lib/driver |
|
91 |
|
92 clean: |
|
93 rm -f $(OBJS) build_baudrate baudrate_table.h |
|
94 |
|
95 mrproper: clean |
|
96 rm -f ../../lib/ecos_lpc2138_sja1000/libcandriver.a |
|
97 |
|