src/Makefile.in
changeset 0 4472ee7c6c3e
child 3 d9cf34cd6823
equal deleted inserted replaced
-1:000000000000 0:4472ee7c6c3e
       
     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