#
# $Id: Makefile,v 1.45 2004/07/03 21:08:05 rousseau Exp $
#

# set these paths to where you installed pcsc-lite and libusb
# you can use more than one path in each variable
INCS = -I/usr/local/include `pkg-config libpcsclite --cflags`
LIBS = -L/usr/local/lib

# use a correct default CFLAGS
ifeq ($(CFLAGS),)
CFLAGS = -O2 -g -Wall -fPIC -I. -I../common -DGEMPC=430 $(INCS)
else
CFLAGS += -Wall -fPIC -I. -I../common -DGEMPC=430 $(INCS)
endif
LDFLAGS = $(LIBS) -lusb

# by default install in /usr/local
ifeq ($(DESTDIR),)
DESTDIR=/usr/local
endif

# /home/rousseau/sc/pcsc/i/ifd-gempc-0.5.10/GemPC410 -> 0.5.10
version=$(shell expr `pwd` : '.*-\([0-9.]*\)')

targets= GCUSBTransport.o libusb_wrap.o GemPC430Utils.o

common_targets=	../common/ifdhandler.o ../common/GCCmds.o ../common/GCUtils.o

all: check expert

check: check_stamp
check_stamp:
	CFLAGS="$(INCS)" LDFLAGS="$(LIBS)" ../check 430
	touch check_stamp

expert: ifd-GemPC430 libGemPC430.so

common:
	$(MAKE) -C ../common CFLAGS="$(CFLAGS) -I../GemPC430" all

ifd-GemPC430: common $(targets) main.o ../common/GCdebug.o
	$(CC) $(LDFLAGS) -o $@ $(targets) $(common_targets) main.o ../common/GCdebug.o

libGemPC430.so: common $(targets)
	$(CC) -shared $(LDFLAGS) -o $@ $(targets) $(common_targets)
	strip $@

main.o: ../GemPC410/main.c
	$(CC) $(CFLAGS) -c -o $@ $^

clean:
	rm -f .dependencies
	touch .dependencies
	rm -f $(targets)
	rm -f libGemPC430.so ifd-GemPC430.bundle/Contents/Linux/libGemPC430.so.$(version)
	rm -f ifd-GemPC430 main.o
	$(MAKE) -C ../common clean
	rm -f Makefile.bak
	rm -f config.log

distclean: clean
	rm -f tags
	rm -f check_stamp dep_stamp

install: all
	mkdir -p $(DESTDIR)/pcsc/drivers/ifd-GemPC430.bundle/Contents/Linux/
	cp libGemPC430.so $(DESTDIR)/pcsc/drivers/ifd-GemPC430.bundle/Contents/Linux/libGemPC430.so.$(version)
	sed s/VERSION/$(version)/ Info.plist > $(DESTDIR)/pcsc/drivers/ifd-GemPC430.bundle/Contents/Info.plist

dep: dep_stamp
dep_stamp:
	@echo "Making dependencies..."
	makedepend -f - -I. -I../common -DGEMPC=430 GCUSBTransport.c \
		GemPC430Utils.c libusb_wrap.c > .dependencies || true
	$(MAKE) -C ../common dep
	touch dep_stamp

.dependencies: dep

ctags:
	ctags-exuberant *.h *.c ../common/*.h ../common/*.c

.PHONY: all common clean distclean dep ctags expert check

include .dependencies

