1# $Id: Makefile.am 6752 2013-09-16 18:27:04Z rousseau $
2
3CCID_BUNDLE = $(bundle)
4CCID_LIB = libccid.$(DYN_LIB_EXT)
5CCIDTWIN_LIB = libccidtwin.$(DYN_LIB_EXT)
6
7CCID_VERSION=CCID_VERSION=`$(srcdir)/convert_version.pl $(PACKAGE_VERSION)`
8
9lib_LTLIBRARIES =
10LIBS_TO_INSTALL =
11LIBS_TO_UNINSTALL =
12if WITH_LIBUSB
13lib_LTLIBRARIES += libccid.la
14LIBS_TO_INSTALL += install_ccid
15LIBS_TO_UNINSTALL += uninstall_ccid
16noinst_PROGRAMS = parse
17endif
18if WITH_TWIN_SERIAL
19lib_LTLIBRARIES += libccidtwin.la
20LIBS_TO_INSTALL += install_ccidtwin
21LIBS_TO_UNINSTALL += uninstall_ccidtwin
22endif
23
24COMMON = ccid.c \
25	ccid.h \
26	ccid_ifdhandler.h \
27	commands.c \
28	commands.h \
29	debug.h \
30	defs.h \
31	ifdhandler.c \
32	utils.c \
33	utils.h
34USB = ccid_usb.c ccid_usb.h
35SERIAL = ccid_serial.c ccid_serial.h
36T1 = towitoko/atr.c \
37	towitoko/atr.h \
38	towitoko/defines.h \
39	towitoko/pps.c \
40	towitoko/pps.h \
41	openct/buffer.c \
42	openct/buffer.h \
43	openct/checksum.c \
44	openct/checksum.h \
45	openct/proto-t1.c \
46	openct/proto-t1.h
47TOKEN_PARSER = tokenparser.l parser.h \
48	strlcpy.c \
49	misc.h \
50	strlcpycat.h \
51	simclist.c \
52	simclist.h
53
54PROVIDED_BY_PCSC = debug.c
55
56libccid_la_SOURCES = $(COMMON) $(USB) $(TOKEN_PARSER) $(PROVIDED_BY_PCSC) $(T1)
57libccid_la_LIBADD = $(LEXLIB) $(LIBUSB_LIBS) $(PTHREAD_LIBS)
58libccid_la_CFLAGS = $(PCSC_CFLAGS) $(LIBUSB_CFLAGS) $(PTHREAD_CFLAGS) \
59	$(SYMBOL_VISIBILITY) -D$(CCID_VERSION) -DSIMCLIST_NO_DUMPRESTORE
60libccid_la_LDFLAGS = -avoid-version
61
62libccidtwin_la_SOURCES = $(COMMON) $(SERIAL) $(TOKEN_PARSER) \
63	$(PROVIDED_BY_PCSC) $(T1)
64libccidtwin_la_CFLAGS = $(PCSC_CFLAGS) $(PTHREAD_CFLAGS) $(SYMBOL_VISIBILITY) \
65	-DTWIN_SERIAL -D$(CCID_VERSION) -DSIMCLIST_NO_DUMPRESTORE
66libccidtwin_la_LIBADD = $(PTHREAD_LIBS)
67libccidtwin_la_LDFLAGS = -avoid-version
68
69parse_SOURCES = parse.c debug.c ccid_usb.c $(TOKEN_PARSER)
70parse_LDADD = $(LIBUSB_LIBS)
71parse_CFLAGS = $(PCSC_CFLAGS) $(LIBUSB_CFLAGS) -DSIMCLIST_NO_DUMPRESTORE
72
73EXTRA_DIST = Info.plist.src create_Info_plist.pl reader.conf.in \
74	towitoko/COPYING towitoko/README openct/LICENSE \
75	convert_version.pl 92_pcscd_ccid.rules
76
77# We can't use install-exec-local since we want to overwrite the install
78# rule. We do not want to _add_ files to install
79install: $(LIBS_TO_INSTALL)
80
81INSTALL_UDEV_RULE_FILE=@/bin/echo -e "\n\33[01;31m***************\n" ; echo "copy the src/92_pcscd_ccid.rules file in udev directory (/etc/udev/rules.d/)" ; /bin/echo -e "\n***************\n\33[0m"
82
83Info.plist: Info.plist.src $(srcdir)/../readers/supported_readers.txt
84	$(srcdir)/create_Info_plist.pl $(srcdir)/../readers/supported_readers.txt $(srcdir)/Info.plist.src --target=$(CCID_LIB) --version=$(VERSION) $(NOCLASS) > Info.plist
85
86DISTCLEANFILES = tokenparser.c Info.plist
87
88install_ccid: libccid.la Info.plist
89	$(mkinstalldirs) $(DESTDIR)$(usbdropdir)/$(CCID_BUNDLE)/Contents/$(BUNDLE_HOST)/
90	cp Info.plist $(DESTDIR)$(usbdropdir)/$(CCID_BUNDLE)/Contents/
91	cp .libs/$(CCID_LIB) $(DESTDIR)$(usbdropdir)/$(CCID_BUNDLE)/Contents/$(BUNDLE_HOST)/$(CCID_LIB)
92	$(INSTALL_UDEV_RULE_FILE)
93
94install_ccidtwin: libccidtwin.la
95	$(mkinstalldirs) $(DESTDIR)$(ccidtwindir)
96	cp .libs/$(CCIDTWIN_LIB) $(DESTDIR)$(ccidtwindir)/$(CCIDTWIN_LIB)
97	$(mkinstalldirs) $(DESTDIR)/$(serialconfdir) ; \
98		perl -ne "s|TARGET|$(ccidtwindir)/$(CCIDTWIN_LIB)| ; print" $(srcdir)/reader.conf.in > $(DESTDIR)/$(serialconfdir)/libccidtwin
99
100# do not uninstall the serial driver by default
101# use explicitely 'make uninstall_ccidtwin'
102uninstall: $(LIBS_TO_UNINSTALL)
103
104uninstall_ccid:
105	rm -rf $(DESTDIR)$(usbdropdir)/$(CCID_BUNDLE)
106
107uninstall_ccidtwin:
108	rm -f $(DESTDIR)$(ccidtwindir)/$(CCIDTWIN_LIB)
109	rm -f $(DESTDIR)/$(serialconfdir)/libccidtwin
110
111