etisserant@24: #! gmake etisserant@24: etisserant@24: # etisserant@24: # Copyright (C) 2006 Laurent Bessard edouard@629: # etisserant@24: # This file is part of canfestival, a library implementing the canopen etisserant@24: # stack edouard@629: # etisserant@24: # This library is free software; you can redistribute it and/or etisserant@24: # modify it under the terms of the GNU Lesser General Public etisserant@24: # License as published by the Free Software Foundation; either etisserant@24: # version 2.1 of the License, or (at your option) any later version. edouard@629: # etisserant@24: # This library is distributed in the hope that it will be useful, etisserant@24: # but WITHOUT ANY WARRANTY; without even the implied warranty of etisserant@24: # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU etisserant@24: # Lesser General Public License for more details. edouard@629: # etisserant@24: # You should have received a copy of the GNU Lesser General Public etisserant@24: # License along with this library; if not, write to the Free Software etisserant@24: # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA edouard@629: # etisserant@24: etisserant@391: #ifneq ($(KERNELRELEASE),) etisserant@391: # Kbuild part of Makefile etisserant@391: obj-m := libcanfestival_$(TARGET).o etisserant@391: libcanfestival_$(TARGET)-objs := $(OBJS) etisserant@391: etisserant@391: #else etisserant@391: # Normal Makefile etisserant@24: CC = SUB_CC etisserant@24: OPT_CFLAGS = -O2 etisserant@24: PROG_CFLAGS = SUB_PROG_CFLAGS etisserant@24: OS_NAME = SUB_OS_NAME etisserant@24: ARCH_NAME = SUB_ARCH_NAME etisserant@24: PREFIX = SUB_PREFIX etisserant@24: TARGET = SUB_TARGET etisserant@24: CAN_DRIVER = SUB_CAN_DRIVER etisserant@24: TIMERS_DRIVER = SUB_TIMERS_DRIVER etisserant@145: ENABLE_DLL_DRIVERS = SUB_ENABLE_DLL_DRIVERS etisserant@354: BINUTILS_PREFIX = SUB_BINUTILS_PREFIX etisserant@24: etisserant@145: INCLUDES = -I../../include -I../../include/$(TARGET) -I../../include/$(TIMERS_DRIVER) etisserant@24: etisserant@145: OBJS = $(TARGET).o etisserant@24: etisserant@24: # add timers driver if any etisserant@24: ifneq ($(TIMERS_DRIVER),timers_) etisserant@24: OBJS += ../$(TIMERS_DRIVER)/$(TIMERS_DRIVER).o etisserant@24: endif etisserant@24: etisserant@145: SRC_HFILES = ../../include/$(TARGET)/applicfg.h ../../include/$(TARGET)/canfestival.h etisserant@24: s@790: TARGET_HFILES = $(DESTDIR)$(PREFIX)/include/$(TARGET)/applicfg.h $(DESTDIR)$(PREFIX)/include/$(TARGET)/canfestival.h etisserant@24: etisserant@24: all: driver etisserant@24: etisserant@391: ifeq ($(TIMERS_DRIVER), timers_kernel) edouard@629: USE_KERNEL_TIMER = true edouard@629: endif edouard@629: ifeq ($(TIMERS_DRIVER), timers_kernel_xeno) edouard@629: USE_KERNEL_TIMER = true edouard@629: endif edouard@629: edouard@629: ifeq ($(USE_KERNEL_TIMER), true) etisserant@391: OBJS := $(shell echo $(OBJS) | sed "s:$(TARGET)_::g") etisserant@391: EXTRA_CFLAGS := $(shell echo $(INCLUDES) | sed "s:-I:-I$(src)/:g") etisserant@391: EXTRA_CFLAGS += $(PROG_CFLAGS) etisserant@391: KERNELDIR := SUB_KERNELDIR etisserant@391: export TARGET etisserant@391: export OBJS etisserant@391: export EXTRA_CFLAGS etisserant@391: etisserant@391: driver: libcanfestival_$(TARGET) etisserant@391: etisserant@391: libcanfestival_$(TARGET): etisserant@391: @echo Building [libcanfestival_$(TARGET).o] etisserant@391: $(MAKE) -C $(KERNELDIR) M=$(shell pwd) modules etisserant@391: etisserant@391: clean: etisserant@391: $(MAKE) -C $(KERNELDIR) M=$(shell pwd) clean etisserant@391: rm -f Module.symvers etisserant@391: etisserant@391: install: edouard@629: etisserant@391: etisserant@391: else etisserant@391: CFLAGS = SUB_OPT_CFLAGS etisserant@391: gabriele@791: driver: libcanfestival_$(TARGET).a etisserant@24: Christian@658: %.o: %.c etisserant@145: $(CC) $(CFLAGS) $(PROG_CFLAGS) ${PROGDEFINES} $(INCLUDES) -o $@ -c $< etisserant@145: etisserant@24: #../$(TIMERS_DRIVER)/$(TIMERS_DRIVER).o: etisserant@24: # $(MAKE) -C ../$(TIMERS_DRIVER) driver etisserant@24: etisserant@24: #../$(CAN_DRIVER)/$(CAN_DRIVER).o: etisserant@24: # $(MAKE) -C ../$(CAN_DRIVER) driver etisserant@24: etisserant@24: libcanfestival_$(TARGET).a: $(OBJS) etisserant@24: @echo Building [libcanfestival_$(TARGET).a] etisserant@354: $(BINUTILS_PREFIX)ar rc $@ $(OBJS) etisserant@354: $(BINUTILS_PREFIX)ranlib $@ etisserant@24: etisserant@24: install: libcanfestival_$(TARGET).a s@790: mkdir -p $(DESTDIR)$(PREFIX)/lib/ s@790: mkdir -p $(DESTDIR)$(PREFIX)/include/canfestival s@790: cp libcanfestival_$(TARGET).a $(DESTDIR)$(PREFIX)/lib/ s@790: cp $(SRC_HFILES) $(DESTDIR)$(PREFIX)/include/canfestival etisserant@24: etisserant@24: uninstall: s@790: rm -f $(DESTDIR)$(PREFIX)/lib/libcanfestival_$(TARGET).a etisserant@24: rm -f $(TARGET_HFILES) etisserant@24: etisserant@24: clean: etisserant@145: rm -f $(OBJS) etisserant@40: rm -f libcanfestival_$(TARGET).a etisserant@24: etisserant@391: endif etisserant@24: mrproper: clean etisserant@24: etisserant@391: #endif