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