| 1 |
#
|
| 2 |
# $Id$
|
| 3 |
#
|
| 4 |
|
| 5 |
# name of bundle
|
| 6 |
BUNDLE=ifd-ccid.bundle
|
| 7 |
|
| 8 |
# by default install in /usr/local
|
| 9 |
ifeq ($(DESTDIR),)
|
| 10 |
DESTDIR=/usr/local
|
| 11 |
endif
|
| 12 |
|
| 13 |
# by default use /usr/local/pcsc/drivers/
|
| 14 |
ifeq ($(PCSCLITE_HP_DROPDIR),)
|
| 15 |
PCSCLITE_HP_DROPDIR=/usr/local/pcsc/drivers/
|
| 16 |
endif
|
| 17 |
|
| 18 |
# use a correct default CFLAGS
|
| 19 |
ifeq ($(CFLAGS),)
|
| 20 |
CFLAGS = -O2 -g -Wall
|
| 21 |
endif
|
| 22 |
|
| 23 |
CFLAGS += -fPIC -I. -I/usr/local/include -DPCSCLITE_HP_DROPDIR=\"$(PCSCLITE_HP_DROPDIR)$(BUNDLE)\"
|
| 24 |
LDFLAGS += -L/usr/local/lib -lusb
|
| 25 |
|
| 26 |
# needed to correctly generate the lexer on MacOS X
|
| 27 |
YLWRAP = ylwrap
|
| 28 |
CPPFLAGS = -fno-common
|
| 29 |
|
| 30 |
ifeq ($(OSTYPE),darwin)
|
| 31 |
TARGET_LIB = libccid.dylib
|
| 32 |
PARSE =
|
| 33 |
BUNDLE_HOST = MacOS
|
| 34 |
else
|
| 35 |
TARGET_LIB = libccid.so
|
| 36 |
PARSE = parse
|
| 37 |
BUNDLE_HOST = Linux
|
| 38 |
endif
|
| 39 |
|
| 40 |
# /home/rousseau/sc/pcsc/ccid-0.5.10 -> 0.5.10
|
| 41 |
version=$(shell expr `pwd` : '.*-\([0-9.]*\)')
|
| 42 |
|
| 43 |
objects = capabilities.o commands.o debug.o ifdhandler.o ccid_usb.o utils.o
|
| 44 |
parse_objects = parse.o
|
| 45 |
sources = $(objects:%.o=%.c) $(parse_objects:%.o=%.c)
|
| 46 |
|
| 47 |
all: check expert
|
| 48 |
|
| 49 |
check: check_stamp
|
| 50 |
check_stamp:
|
| 51 |
./check
|
| 52 |
touch check_stamp
|
| 53 |
|
| 54 |
expert: $(PARSE) $(TARGET_LIB)
|
| 55 |
|
| 56 |
parse: $(objects) tokenparser.o parse.o
|
| 57 |
$(CC) $(LDFLAGS) -o $@ $^
|
| 58 |
|
| 59 |
libccid.so: $(objects)
|
| 60 |
$(CC) -shared $(LDFLAGS) -o $@ $(objects)
|
| 61 |
#strip $@
|
| 62 |
|
| 63 |
libccid.dylib: $(objects) tokenparser.o
|
| 64 |
$(CC) -dynamiclib -flat_namespace -undefined suppress $(LDFLAGS) -o $@ $(objects) tokenparser.o
|
| 65 |
|
| 66 |
tokenparser.c: tokenparser.l
|
| 67 |
$(SHELL) $(YLWRAP) $< lex.ccid.c $@ -- "$(LEX)" -Pccid
|
| 68 |
|
| 69 |
clean:
|
| 70 |
rm -f $(objects)
|
| 71 |
rm -f libccid.so
|
| 72 |
rm -rf $(BUNDLE)
|
| 73 |
rm -f ifd-ccid
|
| 74 |
rm -f tokenparser.o tokenparser.c parse.o parse
|
| 75 |
rm -f Makefile.bak
|
| 76 |
rm -f config.log
|
| 77 |
|
| 78 |
distclean: clean
|
| 79 |
rm -f .dependencies
|
| 80 |
touch .dependencies
|
| 81 |
rm -f tags
|
| 82 |
rm -f tokenparser.c
|
| 83 |
rm -f check_stamp dep_stamp
|
| 84 |
|
| 85 |
install: all
|
| 86 |
mkdir -p $(BUNDLE)/Contents/$(BUNDLE_HOST)/
|
| 87 |
cp libccid.so $(BUNDLE)/Contents/$(BUNDLE_HOST)/$(TARGET_LIB).$(version)
|
| 88 |
sed s/VERSION/$(version)/ Info.plist | sed s/TARGET/$(TARGET_LIB)/ > $(BUNDLE)/Contents/Info.plist
|
| 89 |
mkdir -p $(DESTDIR)/pcsc/drivers/
|
| 90 |
cp -r $(BUNDLE) $(DESTDIR)/pcsc/drivers/
|
| 91 |
|
| 92 |
dep: dep_stamp
|
| 93 |
dep_stamp:
|
| 94 |
@echo "Making dependencies..."
|
| 95 |
makedepend -f - -I. -DPCSCLITE_MAX_CHANNELS=16 $(sources) > .dependencies || true
|
| 96 |
touch dep_stamp
|
| 97 |
|
| 98 |
.dependencies: dep
|
| 99 |
|
| 100 |
ctags:
|
| 101 |
ctags-exuberant *.h *.c
|
| 102 |
|
| 103 |
.PHONY: common clean distclean dep ctags
|
| 104 |
|
| 105 |
include .dependencies
|
| 106 |
|