src/Makefile.in
author Edouard Tisserant
Sat, 21 Jan 2012 18:49:54 +0100
changeset 676 11e95dd60ffc
parent 658 7758d60e9260
child 790 1936110171a2
permissions -rw-r--r--
Merged some canfestival-3-ica Fixes.
0
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
     1
#! gmake
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
     2
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
     3
#
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
     4
# Copyright (C) 2006 Laurent Bessard
629
b9274b595650 CosateQ contribution.
edouard
parents: 619
diff changeset
     5
#
0
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
     6
# This file is part of canfestival, a library implementing the canopen
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
     7
# stack
629
b9274b595650 CosateQ contribution.
edouard
parents: 619
diff changeset
     8
#
0
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
     9
# This library is free software; you can redistribute it and/or
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    10
# modify it under the terms of the GNU Lesser General Public
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    11
# License as published by the Free Software Foundation; either
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    12
# version 2.1 of the License, or (at your option) any later version.
629
b9274b595650 CosateQ contribution.
edouard
parents: 619
diff changeset
    13
#
0
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    14
# This library is distributed in the hope that it will be useful,
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    15
# but WITHOUT ANY WARRANTY; without even the implied warranty of
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    16
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    17
# Lesser General Public License for more details.
629
b9274b595650 CosateQ contribution.
edouard
parents: 619
diff changeset
    18
#
0
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    19
# You should have received a copy of the GNU Lesser General Public
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    20
# License along with this library; if not, write to the Free Software
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    21
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
629
b9274b595650 CosateQ contribution.
edouard
parents: 619
diff changeset
    22
#
0
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    23
619
96f84395154f Enhancements for 'None' target : produce pre-linked object, remove some windows CRLF problems, fixed pedantic compiler warnings
edouard
parents: 391
diff changeset
    24
ifneq ($(KERNELRELEASE),)
391
7802a7d5584f Accepted Vladimir Chren linux kernelspace port patch.
etisserant
parents: 343
diff changeset
    25
# Kbuild part of Makefile
7802a7d5584f Accepted Vladimir Chren linux kernelspace port patch.
etisserant
parents: 343
diff changeset
    26
obj-m := canfestival.o
7802a7d5584f Accepted Vladimir Chren linux kernelspace port patch.
etisserant
parents: 343
diff changeset
    27
canfestival-objs := $(OBJS)
7802a7d5584f Accepted Vladimir Chren linux kernelspace port patch.
etisserant
parents: 343
diff changeset
    28
619
96f84395154f Enhancements for 'None' target : produce pre-linked object, remove some windows CRLF problems, fixed pedantic compiler warnings
edouard
parents: 391
diff changeset
    29
else
391
7802a7d5584f Accepted Vladimir Chren linux kernelspace port patch.
etisserant
parents: 343
diff changeset
    30
# Normal Makefile
0
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    31
CC = SUB_CC
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    32
PROG_CFLAGS = SUB_PROG_CFLAGS
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    33
OS_NAME = SUB_OS_NAME
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    34
ARCH_NAME = SUB_ARCH_NAME
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    35
PREFIX = SUB_PREFIX
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    36
BINUTILS_PREFIX = SUB_BINUTILS_PREFIX
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    37
TARGET = SUB_TARGET
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    38
CAN_DRIVER = SUB_CAN_DRIVER
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    39
TIMERS_DRIVER = SUB_TIMERS_DRIVER
343
118c1cabd0b0 Primary LSS support, thanks to Jorge Berzosa.
etisserant
parents: 284
diff changeset
    40
ENABLE_LSS = SUB_ENABLE_LSS
0
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    41
191
1e6e3d261b8f CleanUp and minor fixes
etisserant
parents: 178
diff changeset
    42
INCLUDES = -I../include -I../include/$(TARGET) -I../include/$(TIMERS_DRIVER) -I../drivers/$(TARGET)
0
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    43
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    44
OBJS = $(TARGET)_objacces.o $(TARGET)_lifegrd.o $(TARGET)_sdo.o\
284
24bf3d692993 Implemented EMCY objects.
luis
parents: 234
diff changeset
    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
0
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    46
343
118c1cabd0b0 Primary LSS support, thanks to Jorge Berzosa.
etisserant
parents: 284
diff changeset
    47
118c1cabd0b0 Primary LSS support, thanks to Jorge Berzosa.
etisserant
parents: 284
diff changeset
    48
ifeq ($(ENABLE_LSS),1)
118c1cabd0b0 Primary LSS support, thanks to Jorge Berzosa.
etisserant
parents: 284
diff changeset
    49
OBJS += $(TARGET)_lss.o
118c1cabd0b0 Primary LSS support, thanks to Jorge Berzosa.
etisserant
parents: 284
diff changeset
    50
endif
118c1cabd0b0 Primary LSS support, thanks to Jorge Berzosa.
etisserant
parents: 284
diff changeset
    51
0
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    52
# # # # Target specific paramters # # # #
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    53
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    54
ifeq ($(TARGET),hcs12)
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    55
OPT_CFLAGS = -Os
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    56
PROGDEFINES = -mnoshort -Wall -Wmissing-prototypes -fno-strict-aliasing
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    57
endif
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    58
24
a9543d2ccd56 Linux and BSD now use "unix" target. Generic is for driverless compilation.
etisserant
parents: 3
diff changeset
    59
ifeq ($(TARGET),unix)
0
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    60
OPT_CFLAGS = -O2
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    61
endif
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    62
629
b9274b595650 CosateQ contribution.
edouard
parents: 619
diff changeset
    63
# # # # Options # # # #
0
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    64
391
7802a7d5584f Accepted Vladimir Chren linux kernelspace port patch.
etisserant
parents: 343
diff changeset
    65
all: canfestival
7802a7d5584f Accepted Vladimir Chren linux kernelspace port patch.
etisserant
parents: 343
diff changeset
    66
7802a7d5584f Accepted Vladimir Chren linux kernelspace port patch.
etisserant
parents: 343
diff changeset
    67
ifeq ($(TIMERS_DRIVER), timers_kernel)
629
b9274b595650 CosateQ contribution.
edouard
parents: 619
diff changeset
    68
USE_KERNEL_TIMER = true
b9274b595650 CosateQ contribution.
edouard
parents: 619
diff changeset
    69
endif
b9274b595650 CosateQ contribution.
edouard
parents: 619
diff changeset
    70
ifeq ($(TIMERS_DRIVER), timers_kernel_xeno)
b9274b595650 CosateQ contribution.
edouard
parents: 619
diff changeset
    71
USE_KERNEL_TIMER = true
b9274b595650 CosateQ contribution.
edouard
parents: 619
diff changeset
    72
endif
b9274b595650 CosateQ contribution.
edouard
parents: 619
diff changeset
    73
b9274b595650 CosateQ contribution.
edouard
parents: 619
diff changeset
    74
ifeq ($(USE_KERNEL_TIMER), true)
391
7802a7d5584f Accepted Vladimir Chren linux kernelspace port patch.
etisserant
parents: 343
diff changeset
    75
OBJS := $(shell echo $(OBJS) | sed "s:$(TARGET)_::g")
7802a7d5584f Accepted Vladimir Chren linux kernelspace port patch.
etisserant
parents: 343
diff changeset
    76
OBJS += symbols.o
7802a7d5584f Accepted Vladimir Chren linux kernelspace port patch.
etisserant
parents: 343
diff changeset
    77
OBJS += ../drivers/unix/libcanfestival_$(TARGET).o
7802a7d5584f Accepted Vladimir Chren linux kernelspace port patch.
etisserant
parents: 343
diff changeset
    78
EXTRA_CFLAGS := $(shell echo $(INCLUDES) | sed "s:-I:-I$(src)/:g")
7802a7d5584f Accepted Vladimir Chren linux kernelspace port patch.
etisserant
parents: 343
diff changeset
    79
EXTRA_CFLAGS += $(PROG_CFLAGS)
7802a7d5584f Accepted Vladimir Chren linux kernelspace port patch.
etisserant
parents: 343
diff changeset
    80
KERNELDIR := SUB_KERNELDIR
7802a7d5584f Accepted Vladimir Chren linux kernelspace port patch.
etisserant
parents: 343
diff changeset
    81
export OBJS
7802a7d5584f Accepted Vladimir Chren linux kernelspace port patch.
etisserant
parents: 343
diff changeset
    82
export EXTRA_CFLAGS
7802a7d5584f Accepted Vladimir Chren linux kernelspace port patch.
etisserant
parents: 343
diff changeset
    83
7802a7d5584f Accepted Vladimir Chren linux kernelspace port patch.
etisserant
parents: 343
diff changeset
    84
canfestival:
7802a7d5584f Accepted Vladimir Chren linux kernelspace port patch.
etisserant
parents: 343
diff changeset
    85
	@echo " "
7802a7d5584f Accepted Vladimir Chren linux kernelspace port patch.
etisserant
parents: 343
diff changeset
    86
	@echo "*********************************************"
619
96f84395154f Enhancements for 'None' target : produce pre-linked object, remove some windows CRLF problems, fixed pedantic compiler warnings
edouard
parents: 391
diff changeset
    87
	@echo "**Building [canfestival.o]"
391
7802a7d5584f Accepted Vladimir Chren linux kernelspace port patch.
etisserant
parents: 343
diff changeset
    88
	@echo "*********************************************"
7802a7d5584f Accepted Vladimir Chren linux kernelspace port patch.
etisserant
parents: 343
diff changeset
    89
	$(MAKE) -C $(KERNELDIR) M=$(shell pwd) modules
7802a7d5584f Accepted Vladimir Chren linux kernelspace port patch.
etisserant
parents: 343
diff changeset
    90
7802a7d5584f Accepted Vladimir Chren linux kernelspace port patch.
etisserant
parents: 343
diff changeset
    91
clean:
7802a7d5584f Accepted Vladimir Chren linux kernelspace port patch.
etisserant
parents: 343
diff changeset
    92
	$(MAKE) -C $(KERNELDIR) M=$(shell pwd) clean
7802a7d5584f Accepted Vladimir Chren linux kernelspace port patch.
etisserant
parents: 343
diff changeset
    93
	rm -f Module.symvers
7802a7d5584f Accepted Vladimir Chren linux kernelspace port patch.
etisserant
parents: 343
diff changeset
    94
7802a7d5584f Accepted Vladimir Chren linux kernelspace port patch.
etisserant
parents: 343
diff changeset
    95
install:
7802a7d5584f Accepted Vladimir Chren linux kernelspace port patch.
etisserant
parents: 343
diff changeset
    96
	$(MAKE) -C $(KERNELDIR) M=$(shell pwd) modules_install
7802a7d5584f Accepted Vladimir Chren linux kernelspace port patch.
etisserant
parents: 343
diff changeset
    97
	mkdir -p $(PREFIX)/include/canfestival
7802a7d5584f Accepted Vladimir Chren linux kernelspace port patch.
etisserant
parents: 343
diff changeset
    98
	cp ../include/*.h $(PREFIX)/include/canfestival
7802a7d5584f Accepted Vladimir Chren linux kernelspace port patch.
etisserant
parents: 343
diff changeset
    99
7802a7d5584f Accepted Vladimir Chren linux kernelspace port patch.
etisserant
parents: 343
diff changeset
   100
uninstall:
7802a7d5584f Accepted Vladimir Chren linux kernelspace port patch.
etisserant
parents: 343
diff changeset
   101
	rm -rf $(PREFIX)/include/canfestival
7802a7d5584f Accepted Vladimir Chren linux kernelspace port patch.
etisserant
parents: 343
diff changeset
   102
7802a7d5584f Accepted Vladimir Chren linux kernelspace port patch.
etisserant
parents: 343
diff changeset
   103
else
0
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   104
CFLAGS = SUB_OPT_CFLAGS
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   105
619
96f84395154f Enhancements for 'None' target : produce pre-linked object, remove some windows CRLF problems, fixed pedantic compiler warnings
edouard
parents: 391
diff changeset
   106
ifeq ($(TARGET),none)
96f84395154f Enhancements for 'None' target : produce pre-linked object, remove some windows CRLF problems, fixed pedantic compiler warnings
edouard
parents: 391
diff changeset
   107
canfestival: libcanfestival.o
96f84395154f Enhancements for 'None' target : produce pre-linked object, remove some windows CRLF problems, fixed pedantic compiler warnings
edouard
parents: 391
diff changeset
   108
else
0
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   109
canfestival: libcanfestival.a
619
96f84395154f Enhancements for 'None' target : produce pre-linked object, remove some windows CRLF problems, fixed pedantic compiler warnings
edouard
parents: 391
diff changeset
   110
endif
0
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   111
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   112
libcanfestival.a: $(OBJS)
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   113
	@echo " "
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   114
	@echo "*********************************************"
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   115
	@echo "**Building [libcanfestival.a]"
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   116
	@echo "*********************************************"
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   117
	$(BINUTILS_PREFIX)ar rc $@ $(OBJS)
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   118
	$(BINUTILS_PREFIX)ranlib $@
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   119
619
96f84395154f Enhancements for 'None' target : produce pre-linked object, remove some windows CRLF problems, fixed pedantic compiler warnings
edouard
parents: 391
diff changeset
   120
libcanfestival.o: $(OBJS)
96f84395154f Enhancements for 'None' target : produce pre-linked object, remove some windows CRLF problems, fixed pedantic compiler warnings
edouard
parents: 391
diff changeset
   121
	@echo " "
96f84395154f Enhancements for 'None' target : produce pre-linked object, remove some windows CRLF problems, fixed pedantic compiler warnings
edouard
parents: 391
diff changeset
   122
	@echo "*********************************************"
96f84395154f Enhancements for 'None' target : produce pre-linked object, remove some windows CRLF problems, fixed pedantic compiler warnings
edouard
parents: 391
diff changeset
   123
	@echo "**Prelink [libcanfestival.o]"
96f84395154f Enhancements for 'None' target : produce pre-linked object, remove some windows CRLF problems, fixed pedantic compiler warnings
edouard
parents: 391
diff changeset
   124
	@echo "*********************************************"
96f84395154f Enhancements for 'None' target : produce pre-linked object, remove some windows CRLF problems, fixed pedantic compiler warnings
edouard
parents: 391
diff changeset
   125
	$(BINUTILS_PREFIX)ld -r $(OBJS) -o $@
96f84395154f Enhancements for 'None' target : produce pre-linked object, remove some windows CRLF problems, fixed pedantic compiler warnings
edouard
parents: 391
diff changeset
   126
658
7758d60e9260 FIXED: - changed make targets from "%o: %c" to "%.o: %.c" (Patch from irc <oleg_osov>)
Christian Taedcke
parents: 629
diff changeset
   127
$(TARGET)_%.o: %.c
0
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   128
	@echo " "
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   129
	@echo "*********************************************"
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   130
	@echo "**Compiling $< -> $@"
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   131
	@echo "*********************************************"
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   132
	$(CC) $(CFLAGS) $(PROG_CFLAGS) ${PROGDEFINES} $(INCLUDES) -o $@ -c $<
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   133
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   134
install: libcanfestival.a
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   135
	mkdir -p $(PREFIX)/lib/
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   136
	mkdir -p $(PREFIX)/include/canfestival
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   137
	cp libcanfestival.a $(PREFIX)/lib/
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   138
	cp ../include/*.h $(PREFIX)/include/canfestival
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   139
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   140
uninstall:
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   141
	rm -f $(PREFIX)/lib/libcanfestival.a
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   142
	rm -rf $(PREFIX)/include/canfestival
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   143
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   144
clean:
619
96f84395154f Enhancements for 'None' target : produce pre-linked object, remove some windows CRLF problems, fixed pedantic compiler warnings
edouard
parents: 391
diff changeset
   145
	rm -f $(OBJS) libcanfestival.a libcanfestival.o
0
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   146
391
7802a7d5584f Accepted Vladimir Chren linux kernelspace port patch.
etisserant
parents: 343
diff changeset
   147
endif
0
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   148
mrproper: clean
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   149
619
96f84395154f Enhancements for 'None' target : produce pre-linked object, remove some windows CRLF problems, fixed pedantic compiler warnings
edouard
parents: 391
diff changeset
   150
endif