]> rtime.felk.cvut.cz Git - CanFestival-3.git/blob - src/Makefile.in
fixed bug (forget to convert value in upper case)
[CanFestival-3.git] / src / Makefile.in
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 #ifneq ($(KERNELRELEASE),)
25 # Kbuild part of Makefile
26 obj-m := canfestival.o
27 canfestival-objs := $(OBJS)
28
29 #else
30 # Normal Makefile
31 CC = SUB_CC
32 PROG_CFLAGS = SUB_PROG_CFLAGS
33 OS_NAME = SUB_OS_NAME
34 ARCH_NAME = SUB_ARCH_NAME
35 PREFIX = SUB_PREFIX
36 BINUTILS_PREFIX = SUB_BINUTILS_PREFIX
37 TARGET = SUB_TARGET
38 CAN_DRIVER = SUB_CAN_DRIVER
39 TIMERS_DRIVER = SUB_TIMERS_DRIVER
40 ENABLE_LSS = SUB_ENABLE_LSS
41
42 INCLUDES = -I../include -I../include/$(TARGET) -I../include/$(TIMERS_DRIVER) -I../drivers/$(TARGET)
43
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
46
47
48 ifeq ($(ENABLE_LSS),1)
49 OBJS += $(TARGET)_lss.o
50 endif
51
52 # # # # Target specific paramters # # # #
53
54 ifeq ($(TARGET),hcs12)
55 OPT_CFLAGS = -Os
56 PROGDEFINES = -mnoshort -Wall -Wmissing-prototypes -fno-strict-aliasing
57 endif
58
59 ifeq ($(TARGET),unix)
60 OPT_CFLAGS = -O2
61 endif
62
63 # # # # Options # # # # 
64
65 all: canfestival
66
67 ifeq ($(TIMERS_DRIVER), timers_kernel)
68 OBJS := $(shell echo $(OBJS) | sed "s:$(TARGET)_::g")
69 OBJS += symbols.o
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
74 export OBJS
75 export EXTRA_CFLAGS
76
77 canfestival:
78         @echo " "
79         @echo "*********************************************"
80         @echo "**Building [libcanfestival.o]"
81         @echo "*********************************************"
82         $(MAKE) -C $(KERNELDIR) M=$(shell pwd) modules
83
84 clean:
85         $(MAKE) -C $(KERNELDIR) M=$(shell pwd) clean
86         rm -f Module.symvers
87
88 install:
89         $(MAKE) -C $(KERNELDIR) M=$(shell pwd) modules_install
90         mkdir -p $(PREFIX)/include/canfestival
91         cp ../include/*.h $(PREFIX)/include/canfestival
92
93 uninstall:
94         rm -rf $(PREFIX)/include/canfestival
95
96 else
97 CFLAGS = SUB_OPT_CFLAGS
98
99 canfestival: libcanfestival.a
100
101 libcanfestival.a: $(OBJS)
102         @echo " "
103         @echo "*********************************************"
104         @echo "**Building [libcanfestival.a]"
105         @echo "*********************************************"
106         $(BINUTILS_PREFIX)ar rc $@ $(OBJS)
107         $(BINUTILS_PREFIX)ranlib $@
108
109 $(TARGET)_%o: %c
110         @echo " "
111         @echo "*********************************************"
112         @echo "**Compiling $< -> $@"
113         @echo "*********************************************"
114         $(CC) $(CFLAGS) $(PROG_CFLAGS) ${PROGDEFINES} $(INCLUDES) -o $@ -c $<
115
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
121
122 uninstall:
123         rm -f $(PREFIX)/lib/libcanfestival.a
124         rm -rf $(PREFIX)/include/canfestival
125
126 clean:
127         rm -f $(OBJS) libcanfestival.a
128
129 endif
130 mrproper: clean
131
132 #endif