etisserant@355: #! gmake etisserant@355: etisserant@355: # etisserant@355: # Copyright (C) 2006 Edouard TISSERANT etisserant@355: # etisserant@355: # This file is part of canfestival, a library implementing the canopen etisserant@355: # stack etisserant@355: # etisserant@355: # This library is free software; you can redistribute it and/or etisserant@355: # modify it under the terms of the GNU Lesser General Public etisserant@355: # License as published by the Free Software Foundation; either etisserant@355: # version 2.1 of the License, or (at your option) any later version. etisserant@355: # etisserant@355: # This library is distributed in the hope that it will be useful, etisserant@355: # but WITHOUT ANY WARRANTY; without even the implied warranty of etisserant@355: # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU etisserant@355: # Lesser General Public License for more details. etisserant@355: # etisserant@355: # You should have received a copy of the GNU Lesser General Public etisserant@355: # License along with this library; if not, write to the Free Software etisserant@355: # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA etisserant@355: # etisserant@355: etisserant@355: CC = SUB_CC etisserant@355: CXX = SUB_CXX etisserant@355: LD = SUB_LD etisserant@355: OPT_CFLAGS = -O2 etisserant@355: CFLAGS = SUB_OPT_CFLAGS etisserant@355: PROG_CFLAGS = SUB_PROG_CFLAGS etisserant@355: PREFIX = SUB_PREFIX etisserant@355: TARGET = SUB_TARGET etisserant@355: CAN_DRIVER = SUB_CAN_DRIVER etisserant@355: TIMERS_DRIVER = SUB_TIMERS_DRIVER etisserant@355: ENABLE_DLL_DRIVERS=SUB_ENABLE_DLL_DRIVERS etisserant@355: CAN_DLL_CFLAGS=SUB_CAN_DLL_CFLAGS etisserant@355: etisserant@355: INCLUDES = -I../../include -I../../include/$(TARGET) -I../../include/$(CAN_DRIVER) etisserant@355: etisserant@355: OBJS = Socket.o $(CAN_DRIVER).o etisserant@355: etisserant@355: ifeq ($(ENABLE_DLL_DRIVERS),1) etisserant@355: #CFLAGS += -fPIC Edouard@770: DRIVER = libcanfestival_$(CAN_DRIVER).dll etisserant@355: else etisserant@355: DRIVER = $(OBJS) etisserant@355: endif etisserant@355: etisserant@355: SERVER = $(CAN_DRIVER)_server etisserant@355: s@790: TARGET_SOFILES = $(DESTDIR)$(PREFIX)/lib/$(DRIVER) etisserant@355: etisserant@355: all: driver etisserant@355: etisserant@355: driver: $(DRIVER) $(SERVER).exe etisserant@355: etisserant@355: $(SERVER).exe: Socket.o $(SERVER).cpp etisserant@355: $(CXX) $(CFLAGS) $(PROG_CFLAGS) ${PROGDEFINES} $(INCLUDES) $^ -o $@ -lws2_32 etisserant@355: etisserant@355: Socket.o: Socket.cpp Socket.h etisserant@355: $(CXX) $(CFLAGS) $(PROG_CFLAGS) ${PROGDEFINES} $(INCLUDES) -c $< -o $@ etisserant@355: Christian@658: %.o: %.c etisserant@355: $(CC) $(CFLAGS) $(PROG_CFLAGS) ${PROGDEFINES} $(INCLUDES) -o $@ -c $< etisserant@355: Christian@658: %.o: %.cpp etisserant@355: $(CXX) $(CFLAGS) $(PROG_CFLAGS) ${PROGDEFINES} $(INCLUDES) -o $@ -c $< etisserant@355: etisserant@355: $(DRIVER): $(OBJS) etisserant@355: $(LD) $(PROG_CFLAGS) -shared -o $@ \ etisserant@355: -Wl,--export-all-symbols \ etisserant@355: -Wl,--enable-auto-import \ etisserant@355: -Wl,--whole-archive $^ \ etisserant@355: -Wl,--no-whole-archive $(CAN_DLL_CFLAGS) \ etisserant@355: -Wl,--exclude-libs,ALL -lws2_32 etisserant@355: etisserant@355: install: libcanfestival_$(CAN_DRIVER).so s@790: mkdir -p $(DESTDIR)$(PREFIX)/lib/ s@790: cp $< $(DESTDIR)$(PREFIX)/lib/ etisserant@355: etisserant@355: uninstall: etisserant@355: rm -f $(TARGET_SOFILES) etisserant@355: etisserant@355: clean: etisserant@377: rm -f $(OBJS) $(DRIVER) $(SERVER).exe etisserant@355: etisserant@355: mrproper: clean