4 # Copyright (C) 2006 Laurent Bessard
6 # This file is part of canfestival, a library implementing the canopen
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.
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.
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
24 #ifneq ($(KERNELRELEASE),)
25 # Kbuild part of Makefile
26 obj-m := canfestival.o
27 canfestival-objs := $(OBJS)
32 PROG_CFLAGS = SUB_PROG_CFLAGS
34 ARCH_NAME = SUB_ARCH_NAME
36 BINUTILS_PREFIX = SUB_BINUTILS_PREFIX
38 CAN_DRIVER = SUB_CAN_DRIVER
39 TIMERS_DRIVER = SUB_TIMERS_DRIVER
40 ENABLE_LSS = SUB_ENABLE_LSS
42 INCLUDES = -I../include -I../include/$(TARGET) -I../include/$(TIMERS_DRIVER) -I../drivers/$(TARGET)
44 OBJS = $(TARGET)_objacces.o $(TARGET)_lifegrd.o $(TARGET)_sdo.o\
45 $(TARGET)_pdo.o $(TARGET)_sync.o $(TARGET)_nmtSlave.o $(TARGET)_nmtMaster.o $(TARGET)_states.o $(TARGET)_timer.o $(TARGET)_dcf.o $(TARGET)_emcy.o
48 ifeq ($(ENABLE_LSS),1)
49 OBJS += $(TARGET)_lss.o
52 # # # # Target specific paramters # # # #
54 ifeq ($(TARGET),hcs12)
56 PROGDEFINES = -mnoshort -Wall -Wmissing-prototypes -fno-strict-aliasing
63 # # # # Options # # # #
67 ifeq ($(TIMERS_DRIVER), timers_kernel)
68 OBJS := $(shell echo $(OBJS) | sed "s:$(TARGET)_::g")
70 OBJS += ../drivers/unix/libcanfestival_$(TARGET).o
71 EXTRA_CFLAGS := $(shell echo $(INCLUDES) | sed "s:-I:-I$(src)/:g")
72 EXTRA_CFLAGS += $(PROG_CFLAGS)
73 KERNELDIR := SUB_KERNELDIR
79 @echo "*********************************************"
80 @echo "**Building [libcanfestival.o]"
81 @echo "*********************************************"
82 $(MAKE) -C $(KERNELDIR) M=$(shell pwd) modules
85 $(MAKE) -C $(KERNELDIR) M=$(shell pwd) clean
89 $(MAKE) -C $(KERNELDIR) M=$(shell pwd) modules_install
90 mkdir -p $(PREFIX)/include/canfestival
91 cp ../include/*.h $(PREFIX)/include/canfestival
94 rm -rf $(PREFIX)/include/canfestival
97 CFLAGS = SUB_OPT_CFLAGS
99 canfestival: libcanfestival.a
101 libcanfestival.a: $(OBJS)
103 @echo "*********************************************"
104 @echo "**Building [libcanfestival.a]"
105 @echo "*********************************************"
106 $(BINUTILS_PREFIX)ar rc $@ $(OBJS)
107 $(BINUTILS_PREFIX)ranlib $@
111 @echo "*********************************************"
112 @echo "**Compiling $< -> $@"
113 @echo "*********************************************"
114 $(CC) $(CFLAGS) $(PROG_CFLAGS) ${PROGDEFINES} $(INCLUDES) -o $@ -c $<
116 install: libcanfestival.a
117 mkdir -p $(PREFIX)/lib/
118 mkdir -p $(PREFIX)/include/canfestival
119 cp libcanfestival.a $(PREFIX)/lib/
120 cp ../include/*.h $(PREFIX)/include/canfestival
123 rm -f $(PREFIX)/lib/libcanfestival.a
124 rm -rf $(PREFIX)/include/canfestival
127 rm -f $(OBJS) libcanfestival.a