|
1 #! gmake |
|
2 |
|
3 # |
|
4 # Copyright (C) 2006 Laurent Bessard |
|
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 PROG_CFLAGS = SUB_PROG_CFLAGS |
|
26 LIBS = -lm |
|
27 SHAREDLIBOPT = -shared |
|
28 OS_NAME = SUB_OS_NAME |
|
29 ARCH_NAME = SUB_ARCH_NAME |
|
30 PREFIX = SUB_PREFIX |
|
31 BINUTILS_PREFIX = SUB_BINUTILS_PREFIX |
|
32 TARGET = SUB_TARGET |
|
33 LSS_ENABLE=SUB_LSS_ENABLE |
|
34 LED_ENABLE=SUB_LED_ENABLE |
|
35 NVRAM_ENABLE=SUB_NVRAM_ENABLE |
|
36 CAN_DRIVER = SUB_CAN_DRIVER |
|
37 TIMERS_DRIVER = SUB_TIMERS_DRIVER |
|
38 TIMERS_ENABLE = SUB_TIMERS_ENABLE |
|
39 |
|
40 INCLUDES = -I../include -I../include/$(TARGET) -I../include/$(CAN_DRIVER) -I../include/$(TIMERS_DRIVER) -I../drivers/$(TARGET) |
|
41 |
|
42 OBJS = $(TARGET)_objacces.o $(TARGET)_lifegrd.o $(TARGET)_sdo.o\ |
|
43 $(TARGET)_pdo.o $(TARGET)_sync.o $(TARGET)_nmtSlave.o $(TARGET)_nmtMaster.o $(TARGET)_states.o |
|
44 |
|
45 # ecos driver shortcuts timer.c |
|
46 ifeq ($(TIMERS_ENABLE),YES) |
|
47 OBJS += $(TARGET)_timer.o |
|
48 endif |
|
49 |
|
50 # # # # Target specific paramters # # # # |
|
51 |
|
52 ifeq ($(TARGET),ecos_lpc2138_sja1000) |
|
53 ECOS_GLOBAL_CFLAGS=-mcpu=arm7tdmi -Wall -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -Os -ffunction-sections -fdata-sections -fno-exceptions -finline-functions |
|
54 ECOS_GLOBAL_LDFLAGS=-mcpu=arm7tdmi -Wl,--gc-sections -Wl,-static -nostdlib |
|
55 endif |
|
56 |
|
57 ifeq ($(TARGET),hcs12) |
|
58 OPT_CFLAGS = -Os |
|
59 PROGDEFINES = -mnoshort -Wall -Wmissing-prototypes -fno-strict-aliasing |
|
60 endif |
|
61 |
|
62 ifeq ($(TARGET),generic) |
|
63 OPT_CFLAGS = -O2 |
|
64 endif |
|
65 |
|
66 # # # # Options # # # # |
|
67 |
|
68 ifeq ($(LSS_ENABLE),YES) |
|
69 OBJS += $(TARGET)_lss.o |
|
70 SRC_HFILES += ../include/lss.h |
|
71 endif |
|
72 |
|
73 ifeq ($(LED_ENABLE),YES) |
|
74 OBJS += $(TARGET)_led.o |
|
75 SRC_HFILES += ../include/led.h |
|
76 endif |
|
77 |
|
78 ifeq ($(NVRAM_ENABLE),YES) |
|
79 OBJS += $(TARGET)_nvram.o |
|
80 SRC_HFILES += ../include/nvram.h |
|
81 endif |
|
82 |
|
83 ifeq ($(TIMERS_ENABLE),YES) |
|
84 OBJS += $(TARGET)_timer.o |
|
85 endif |
|
86 |
|
87 |
|
88 CFLAGS = SUB_OPT_CFLAGS |
|
89 |
|
90 all: canfestival |
|
91 |
|
92 canfestival: libcanfestival.a |
|
93 |
|
94 libcanfestival.a: $(OBJS) |
|
95 @echo " " |
|
96 @echo "*********************************************" |
|
97 @echo "**Building [libcanfestival.a]" |
|
98 @echo "*********************************************" |
|
99 $(BINUTILS_PREFIX)ar rc $@ $(OBJS) |
|
100 $(BINUTILS_PREFIX)ranlib $@ |
|
101 |
|
102 $(TARGET)_%o: %c |
|
103 @echo " " |
|
104 @echo "*********************************************" |
|
105 @echo "**Compiling $< -> $@" |
|
106 @echo "*********************************************" |
|
107 $(CC) $(CFLAGS) $(PROG_CFLAGS) ${PROGDEFINES} $(INCLUDES) -o $@ -c $< |
|
108 |
|
109 install: libcanfestival.a |
|
110 mkdir -p $(PREFIX)/lib/ |
|
111 mkdir -p $(PREFIX)/include/canfestival |
|
112 cp libcanfestival.a $(PREFIX)/lib/ |
|
113 cp ../include/*.h $(PREFIX)/include/canfestival |
|
114 |
|
115 uninstall: |
|
116 rm -f $(PREFIX)/lib/libcanfestival.a |
|
117 rm -rf $(PREFIX)/include/canfestival |
|
118 |
|
119 clean: |
|
120 rm -f $(OBJS) libcanfestival.a |
|
121 |
|
122 mrproper: clean |
|
123 |