etisserant@0: #! gmake etisserant@0: etisserant@0: # etisserant@0: # Copyright (C) 2006 Laurent Bessard etisserant@0: # etisserant@0: # This file is part of canfestival, a library implementing the canopen etisserant@0: # stack etisserant@0: # etisserant@0: # This library is free software; you can redistribute it and/or etisserant@0: # modify it under the terms of the GNU Lesser General Public etisserant@0: # License as published by the Free Software Foundation; either etisserant@0: # version 2.1 of the License, or (at your option) any later version. etisserant@0: # etisserant@0: # This library is distributed in the hope that it will be useful, etisserant@0: # but WITHOUT ANY WARRANTY; without even the implied warranty of etisserant@0: # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU etisserant@0: # Lesser General Public License for more details. etisserant@0: # etisserant@0: # You should have received a copy of the GNU Lesser General Public etisserant@0: # License along with this library; if not, write to the Free Software etisserant@0: # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA etisserant@0: # etisserant@0: etisserant@0: CC = SUB_CC etisserant@0: PROG_CFLAGS = SUB_PROG_CFLAGS etisserant@0: LIBS = -lm etisserant@0: SHAREDLIBOPT = -shared etisserant@0: OS_NAME = SUB_OS_NAME etisserant@0: ARCH_NAME = SUB_ARCH_NAME etisserant@0: PREFIX = SUB_PREFIX etisserant@0: BINUTILS_PREFIX = SUB_BINUTILS_PREFIX etisserant@0: TARGET = SUB_TARGET etisserant@0: LSS_ENABLE=SUB_LSS_ENABLE etisserant@0: LED_ENABLE=SUB_LED_ENABLE etisserant@0: NVRAM_ENABLE=SUB_NVRAM_ENABLE etisserant@0: CAN_DRIVER = SUB_CAN_DRIVER etisserant@0: TIMERS_DRIVER = SUB_TIMERS_DRIVER etisserant@0: TIMERS_ENABLE = SUB_TIMERS_ENABLE etisserant@0: etisserant@0: INCLUDES = -I../include -I../include/$(TARGET) -I../include/$(CAN_DRIVER) -I../include/$(TIMERS_DRIVER) -I../drivers/$(TARGET) etisserant@0: etisserant@0: OBJS = $(TARGET)_objacces.o $(TARGET)_lifegrd.o $(TARGET)_sdo.o\ etisserant@0: $(TARGET)_pdo.o $(TARGET)_sync.o $(TARGET)_nmtSlave.o $(TARGET)_nmtMaster.o $(TARGET)_states.o etisserant@0: etisserant@0: # ecos driver shortcuts timer.c etisserant@0: ifeq ($(TIMERS_ENABLE),YES) etisserant@0: OBJS += $(TARGET)_timer.o etisserant@0: endif etisserant@0: etisserant@0: # # # # Target specific paramters # # # # etisserant@0: etisserant@0: ifeq ($(TARGET),ecos_lpc2138_sja1000) etisserant@0: ECOS_GLOBAL_CFLAGS=-mcpu=arm7tdmi -Wall -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -Os -ffunction-sections -fdata-sections -fno-exceptions -finline-functions etisserant@0: ECOS_GLOBAL_LDFLAGS=-mcpu=arm7tdmi -Wl,--gc-sections -Wl,-static -nostdlib etisserant@0: endif etisserant@0: etisserant@0: ifeq ($(TARGET),hcs12) etisserant@0: OPT_CFLAGS = -Os etisserant@0: PROGDEFINES = -mnoshort -Wall -Wmissing-prototypes -fno-strict-aliasing etisserant@0: endif etisserant@0: etisserant@0: ifeq ($(TARGET),generic) etisserant@0: OPT_CFLAGS = -O2 etisserant@0: endif etisserant@0: etisserant@0: # # # # Options # # # # etisserant@0: etisserant@0: ifeq ($(LSS_ENABLE),YES) etisserant@0: OBJS += $(TARGET)_lss.o etisserant@0: SRC_HFILES += ../include/lss.h etisserant@0: endif etisserant@0: etisserant@0: ifeq ($(LED_ENABLE),YES) etisserant@0: OBJS += $(TARGET)_led.o etisserant@0: SRC_HFILES += ../include/led.h etisserant@0: endif etisserant@0: etisserant@0: ifeq ($(NVRAM_ENABLE),YES) etisserant@0: OBJS += $(TARGET)_nvram.o etisserant@0: SRC_HFILES += ../include/nvram.h etisserant@0: endif etisserant@0: etisserant@0: ifeq ($(TIMERS_ENABLE),YES) etisserant@0: OBJS += $(TARGET)_timer.o etisserant@0: endif etisserant@0: etisserant@0: etisserant@0: CFLAGS = SUB_OPT_CFLAGS etisserant@0: etisserant@0: all: canfestival etisserant@0: etisserant@0: canfestival: libcanfestival.a etisserant@0: etisserant@0: libcanfestival.a: $(OBJS) etisserant@0: @echo " " etisserant@0: @echo "*********************************************" etisserant@0: @echo "**Building [libcanfestival.a]" etisserant@0: @echo "*********************************************" etisserant@0: $(BINUTILS_PREFIX)ar rc $@ $(OBJS) etisserant@0: $(BINUTILS_PREFIX)ranlib $@ etisserant@0: etisserant@0: $(TARGET)_%o: %c etisserant@0: @echo " " etisserant@0: @echo "*********************************************" etisserant@0: @echo "**Compiling $< -> $@" etisserant@0: @echo "*********************************************" etisserant@0: $(CC) $(CFLAGS) $(PROG_CFLAGS) ${PROGDEFINES} $(INCLUDES) -o $@ -c $< etisserant@0: etisserant@0: install: libcanfestival.a etisserant@0: mkdir -p $(PREFIX)/lib/ etisserant@0: mkdir -p $(PREFIX)/include/canfestival etisserant@0: cp libcanfestival.a $(PREFIX)/lib/ etisserant@0: cp ../include/*.h $(PREFIX)/include/canfestival etisserant@0: etisserant@0: uninstall: etisserant@0: rm -f $(PREFIX)/lib/libcanfestival.a etisserant@0: rm -rf $(PREFIX)/include/canfestival etisserant@0: etisserant@0: clean: etisserant@0: rm -f $(OBJS) libcanfestival.a etisserant@0: etisserant@0: mrproper: clean etisserant@0: