Update upstream source from tag 'upstream/1.8.24'
Update to upstream version '1.8.24'
with Debian dir 7cb749f34e
This commit is contained in:
commit
f8fb33eb20
24
COPYING
24
COPYING
|
@ -78,30 +78,6 @@ Files src/auth.c and src/auth.h are:
|
|||
* Author: Nikos Mavrogiannopoulos <nmav@redhat.com>
|
||||
|
||||
|
||||
Files src/sd-daemon.c and src/sd-daemon.h are:
|
||||
Copyright 2010 Lennart Poettering
|
||||
|
||||
Permission is hereby granted, free of charge, to any person
|
||||
obtaining a copy of this software and associated documentation files
|
||||
(the "Software"), to deal in the Software without restriction,
|
||||
including without limitation the rights to use, copy, modify, merge,
|
||||
publish, distribute, sublicense, and/or sell copies of the Software,
|
||||
and to permit persons to whom the Software is furnished to do so,
|
||||
subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be
|
||||
included in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
|
||||
BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
|
||||
ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
||||
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
|
||||
|
||||
Files src/simclist.c and src/simclist.h are:
|
||||
* Copyright (c) 2007,2008,2009,2010,2011 Mij <mij@bitchx.it>
|
||||
*
|
||||
|
|
13
ChangeLog
13
ChangeLog
|
@ -1,3 +1,16 @@
|
|||
1.8.24: Ludovic Rousseau
|
||||
12 October 2018
|
||||
- the project moved to https://pcsclite.apdu.fr/
|
||||
- SCardGetStatusChange(): Fix a rare race condition
|
||||
- SCardReleaseContext(): do not release a lock owned by another context
|
||||
- SCardReconnect(): suspend card auto power off
|
||||
- Allow "=" in serial driver filenames
|
||||
- Add the thread id in the pcscd log lines
|
||||
- pcsc-spy: correctly handle incomplete log file
|
||||
- Simclist: avoid to divide by zero in list_findpos()
|
||||
- Some other minor improvements
|
||||
|
||||
|
||||
1.8.23: Ludovic Rousseau
|
||||
18 December 2017
|
||||
- use libsystemd instead sd-daemon.{c,h}
|
||||
|
|
643
ChangeLog.git
643
ChangeLog.git
|
@ -1,4 +1,639 @@
|
|||
commit 09f0f85b86e7488cf26642dd17150f76bed5300c (HEAD -> master)
|
||||
commit 73d95ada3221c060cbd7b6aa2375453f9d0e359b (HEAD -> master, origin/master, origin/HEAD)
|
||||
Author: Ludovic Rousseau <ludovic.rousseau@free.fr>
|
||||
Date: Fri Oct 12 10:43:51 2018 +0200
|
||||
|
||||
Release 1.8.23
|
||||
|
||||
ChangeLog | 13 +++++++++++++
|
||||
configure.ac | 2 +-
|
||||
2 files changed, 14 insertions(+), 1 deletion(-)
|
||||
|
||||
commit eaaf8edac2a960feb884bcf4cd90720757fca0bb
|
||||
Author: Ludovic Rousseau <ludovic.rousseau@free.fr>
|
||||
Date: Fri Oct 12 11:00:56 2018 +0200
|
||||
|
||||
Fix compiler warning: output may be truncated
|
||||
|
||||
winscard_msg.c: In function ‘ClientSetupSession’:
|
||||
winscard_msg.c:134:2: warning: ‘strncpy’ output may be truncated copying 108 bytes from a string of length 109 [-Wstringop-truncation]
|
||||
strncpy(svc_addr.sun_path, socketName, sizeof(svc_addr.sun_path));
|
||||
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
The source was sizeof(struct sockaddr_un) bytes long.
|
||||
But the destination was sizeof(svc_addr.sun_path) bytes long only.
|
||||
|
||||
svc_addr is a struct sockaddr_un but the sun_path field is shorter (1
|
||||
byte shorter according to the compiler) than the complete struct
|
||||
sockaddr_un.
|
||||
|
||||
src/winscard_msg.c | 4 +++-
|
||||
1 file changed, 3 insertions(+), 1 deletion(-)
|
||||
|
||||
commit 2bef09483a51c9835ae70f4647791c9c00b98861
|
||||
Author: Ludovic Rousseau <ludovic.rousseau@free.fr>
|
||||
Date: Fri Oct 12 10:53:41 2018 +0200
|
||||
|
||||
Fix compiler warning: cast between incompatible function
|
||||
|
||||
hotplug_libudev.c: In function ‘HPRegisterForHotplugEvents’:
|
||||
hotplug_libudev.c:769:3: warning: cast between incompatible function types from ‘void (*)(void *)’ to ‘void * (*)(void *)’ [-Wcast-function-type]
|
||||
(PCSCLITE_THREAD_FUNCTION( )) HPEstablishUSBNotifications, udev_monitor))
|
||||
^
|
||||
|
||||
src/hotplug_libudev.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
commit 3c80087b60fa30b45ee240f3c58a8562275c08f4
|
||||
Author: Ludovic Rousseau <ludovic.rousseau@free.fr>
|
||||
Date: Fri Oct 12 10:52:47 2018 +0200
|
||||
|
||||
Fix compiler warning: cast between incompatible function
|
||||
|
||||
eventhandler.c: In function ‘EHSpawnEventHandler’:
|
||||
eventhandler.c:234:3: warning: cast between incompatible function types from ‘void (*)(READER_CONTEXT *)’ {aka ‘void (*)(struct ReaderContext *)’} to ‘void * (*)(void *)’ [-Wcast-function-type]
|
||||
(PCSCLITE_THREAD_FUNCTION( ))EHStatusHandlerThread, (LPVOID) rContext);
|
||||
^
|
||||
|
||||
src/eventhandler.c | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
commit d6ba979b448901a063af537ef8ad68ca0b76727a
|
||||
Author: Ludovic Rousseau <ludovic.rousseau@free.fr>
|
||||
Date: Fri Oct 12 10:51:48 2018 +0200
|
||||
|
||||
Fix compiler warning: cast between incompatible function
|
||||
|
||||
winscard_svc.c: In function ‘CreateContextThread’:
|
||||
winscard_svc.c:237:3: warning: cast between incompatible function types from ‘void (*)(void *)’ to ‘void * (*)(void *)’ [-Wcast-function-type]
|
||||
(PCSCLITE_THREAD_FUNCTION( )) ContextThread, (LPVOID) newContext);
|
||||
^
|
||||
|
||||
src/winscard_svc.c | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
commit 0984e0f4a03e5e29bb5725b6f149f56c9e9c73c2
|
||||
Author: Mateusz Piotrowski <0mp@FreeBSD.org>
|
||||
Date: Tue Oct 9 12:10:13 2018 +0200
|
||||
|
||||
Remove license information for src/sd-daemon.{c,h}
|
||||
|
||||
Those files were removed in 30e10951.
|
||||
|
||||
COPYING | 24 ------------------------
|
||||
1 file changed, 24 deletions(-)
|
||||
|
||||
commit db6b67acf7027ecbc275cdb8242cddf3e6508b26 (zotac/master, zmaster)
|
||||
Author: Ludovic Rousseau <ludovic.rousseau@free.fr>
|
||||
Date: Mon Oct 8 14:41:53 2018 +0200
|
||||
|
||||
Rename POWER_STATE_INUSE -> POWER_STATE_IN_USE
|
||||
|
||||
src/pcscd.h.in | 2 +-
|
||||
src/winscard.c | 8 ++++----
|
||||
2 files changed, 5 insertions(+), 5 deletions(-)
|
||||
|
||||
commit 5467a3896755f05e406fda15be090b9376909d6e
|
||||
Author: Ludovic Rousseau <ludovic.rousseau@free.fr>
|
||||
Date: Mon Oct 8 14:29:20 2018 +0200
|
||||
|
||||
UT for SCardReconnect(): suspend card auto power off
|
||||
|
||||
Check the card is not auto powered off after 5 seconds when
|
||||
SCardReconnect() is used.
|
||||
|
||||
UnitaryTests/CheckAutoPowerOff.py | 91 +++++++++++++++++++++++++++++++++++++++
|
||||
1 file changed, 91 insertions(+)
|
||||
|
||||
commit 02dd27bfd19a88c051b91885472e5f6144f7a0a5
|
||||
Author: Ludovic Rousseau <ludovic.rousseau@free.fr>
|
||||
Date: Mon Oct 8 14:24:18 2018 +0200
|
||||
|
||||
SCardReconnect(): suspend card auto power off
|
||||
|
||||
When the card is reconnected the power state must be changed to
|
||||
POWER_STATE_INUSE so that card auto power off is not triggered.
|
||||
|
||||
See associated Unitary Test CheckAutoPowerOff.py
|
||||
|
||||
Thanks to Christophe Ferrando for the bug report
|
||||
|
||||
src/winscard.c | 6 ++++++
|
||||
1 file changed, 6 insertions(+)
|
||||
|
||||
commit c3bcdeb702658cd6233133b5f092292c9360a7d9
|
||||
Author: Ludovic Rousseau <ludovic.rousseau@free.fr>
|
||||
Date: Thu Oct 4 15:12:19 2018 +0200
|
||||
|
||||
MSGRemoveContext(): always disconnect the card
|
||||
|
||||
We need to call SCardDisconnect() in all cases so that the card use
|
||||
counter is always decremented when a client disappear.
|
||||
|
||||
- when no lock is in use
|
||||
- when a lock is in use
|
||||
- but the lock is held by another context
|
||||
- the lock is held by the current context
|
||||
|
||||
The bug effect was that smart card auto power off was not working
|
||||
correctly.
|
||||
|
||||
src/winscard_svc.c | 3 +++
|
||||
1 file changed, 3 insertions(+)
|
||||
|
||||
commit 46d174c492791bdb8205f29b3d5bfd903f4a798d
|
||||
Author: Ludovic Rousseau <ludovic.rousseau@free.fr>
|
||||
Date: Thu Oct 4 14:45:12 2018 +0200
|
||||
|
||||
MSGRemoveContext(): Do not reset the card if no lock
|
||||
|
||||
If the card was not locked (PC/SC transaction) then no need to reset it
|
||||
when the context is released.
|
||||
|
||||
src/winscard_svc.c | 46 +++++++++++++++++++++++++++-------------------
|
||||
1 file changed, 27 insertions(+), 19 deletions(-)
|
||||
|
||||
commit c2d79706d8074cc19c6d1e0a1b7a08137936911c
|
||||
Author: Ludovic Rousseau <ludovic.rousseau@free.fr>
|
||||
Date: Thu Oct 4 14:36:27 2018 +0200
|
||||
|
||||
MSGRemoveContext(): disconnect also if no lock is ongoing
|
||||
|
||||
If SCardDisconnect() is not called by the application it should be
|
||||
called by pcscd to enable card auto power off.
|
||||
|
||||
This fixes a regression added by 57092b3.
|
||||
|
||||
src/winscard_svc.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
commit dde4deb7f709c2a54d791249a3e08f94a3763ca5
|
||||
Author: Ludovic Rousseau <ludovic.rousseau@free.fr>
|
||||
Date: Tue Oct 2 14:30:11 2018 +0200
|
||||
|
||||
Unit Test for bug fixed in 57092b3
|
||||
|
||||
UnitaryTests/SCardBeginTransaction_SharedMode.py | 132 +++++++++++++++++++++++
|
||||
1 file changed, 132 insertions(+)
|
||||
|
||||
commit 57092b35cab35a9d939cd9094c49d8ecac85f1d2
|
||||
Author: Ludovic Rousseau <ludovic.rousseau@free.fr>
|
||||
Date: Tue Oct 2 14:22:48 2018 +0200
|
||||
|
||||
MSGRemoveContext(): only release a owned transaction
|
||||
|
||||
SCardReleaseContext() shall NOT release a lock (PC/SC transaction)
|
||||
owned by another context.
|
||||
|
||||
Thanks to Frederic Hoerni for the bug report
|
||||
"[Pcsclite-muscle] closing client cancels ongoing transaction"
|
||||
http://lists.infradead.org/pipermail/pcsclite-muscle/2018-September/001126.html
|
||||
|
||||
src/winscard_svc.c | 20 ++++++++++----------
|
||||
1 file changed, 10 insertions(+), 10 deletions(-)
|
||||
|
||||
commit ea1ecdeb0fcfb77863ac03615f2c82b48d9a9c9a
|
||||
Author: Ludovic Rousseau <ludovic.rousseau@free.fr>
|
||||
Date: Sat Sep 15 18:20:46 2018 +0200
|
||||
|
||||
Add the thread id in the log lines
|
||||
|
||||
src/debuglog.c | 12 +++++++++++-
|
||||
1 file changed, 11 insertions(+), 1 deletion(-)
|
||||
|
||||
commit ded26af34a07d4bde9e86334519dc1799fbe6633
|
||||
Author: Ludovic Rousseau <ludovic.rousseau@free.fr>
|
||||
Date: Fri Jul 27 16:29:37 2018 +0200
|
||||
|
||||
Fix compiler warning: missing field 'rv' initializer
|
||||
|
||||
winscard_svc.c:814:44: warning: missing field 'rv' initializer
|
||||
[-Wmissing-field-initializers]
|
||||
struct wait_reader_state_change waStr = {0};
|
||||
^
|
||||
|
||||
src/winscard_svc.c | 6 +++++-
|
||||
1 file changed, 5 insertions(+), 1 deletion(-)
|
||||
|
||||
commit e632d595fc7f1a7be73353ba2c9d89b509389917
|
||||
Author: Ludovic Rousseau <ludovic.rousseau@free.fr>
|
||||
Date: Fri Jul 27 16:28:35 2018 +0200
|
||||
|
||||
Fix compiler warning missing field 'rv' initializer
|
||||
|
||||
winscard_svc.c:428:47: warning: missing field 'rv' initializer
|
||||
[-Wmissing-field-initializers]
|
||||
struct wait_reader_state_change waStr = {0};
|
||||
|
||||
src/winscard_svc.c | 6 +++++-
|
||||
1 file changed, 5 insertions(+), 1 deletion(-)
|
||||
|
||||
commit 54224a4cbf60f95f2da5f0978c62656f3369b700
|
||||
Author: Ludovic Rousseau <ludovic.rousseau@free.fr>
|
||||
Date: Fri Jul 27 16:00:49 2018 +0200
|
||||
|
||||
Fix SCardGetStatusChange() broken in a previous patch 984f84df
|
||||
|
||||
The patch in 984f84df10e2d0f432039e3b31f94c74e95092eb broke the
|
||||
execution of SCardGetStatusChange() when SCardCancel() is used.
|
||||
|
||||
The client was waiting for a message that was never sent by the server.
|
||||
|
||||
Fortunately the broken code was never released in a stable version of
|
||||
pcsc-lite.
|
||||
|
||||
Thanks to Sam Van Den Berge for the bug report
|
||||
"[Pcsclite-muscle] SCardCancel broken"
|
||||
http://lists.infradead.org/pipermail/pcsclite-muscle/2018-July/001096.html
|
||||
|
||||
Hello,
|
||||
|
||||
It seems like SCardGetStatusChange is currently broken.
|
||||
This can be tested with UnitaryTests/SCardCancel.
|
||||
|
||||
Before commit 984f84df10e2d0f432039e3b31f94c74e95092eb:
|
||||
|
||||
$ LD_LIBRARY_PATH=../src/.libs/ ./SCardCancel
|
||||
SCardEstablishContext:[0x00000000] Command successful.
|
||||
Press Enter to cancel within 3 seconds
|
||||
Entering blocking call
|
||||
|
||||
Calling SCardCancel...
|
||||
SCardGetStatusChange:[0x80100002] Command cancelled.
|
||||
Blocking call canceled
|
||||
Good
|
||||
SCardCancel:[0x00000000] Command successful.
|
||||
SCardReleaseContext:[0x00000000] Command successful.
|
||||
Waiting thread...
|
||||
|
||||
After commit 984f84df10e2d0f432039e3b31f94c74e95092eb:
|
||||
|
||||
$ LD_LIBRARY_PATH=../src/.libs/ ./SCardCancel
|
||||
SCardEstablishContext:[0x00000000] Command successful.
|
||||
Press Enter to cancel within 3 seconds
|
||||
Entering blocking call
|
||||
|
||||
Calling SCardCancel...
|
||||
SCardCancel:[0x00000000] Command successful.
|
||||
|
||||
<<<<<<<<< SCardGetStatusChange hangs here >>>>>>>>>
|
||||
|
||||
I don't have a fix but I just wanted to report this. Besides this big
|
||||
thank you for all your great work!
|
||||
|
||||
Kr,
|
||||
Sam.
|
||||
|
||||
src/winscard_clnt.c | 5 ++++-
|
||||
1 file changed, 4 insertions(+), 1 deletion(-)
|
||||
|
||||
commit ddf725874447a339f4ed69c70e1ad70b3d6c4d1c
|
||||
Author: Ludovic Rousseau <ludovic.rousseau@free.fr>
|
||||
Date: Fri Jun 29 17:16:03 2018 +0200
|
||||
|
||||
Doxygen: documentation moved to pcsclite.apdu.fr
|
||||
|
||||
Update the update.sh script to update the Doxygen documentation pages.
|
||||
|
||||
doc/update.sh | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
commit 01677078a426d82f913ca43583390f6cb9e5b29c
|
||||
Author: Ludovic Rousseau <ludovic.rousseau@free.fr>
|
||||
Date: Fri Jun 29 16:31:30 2018 +0200
|
||||
|
||||
Allow "=" in serial driver filenames
|
||||
|
||||
For example the configuration:
|
||||
LIBPATH /tmp/lib/pcsc/drivers/lib=ccid.dylib
|
||||
failed with:
|
||||
00000057 configfile.l:165:evaluatetoken() Error with library /tmp/lib/pcsc/drivers/lib: No such file or directory
|
||||
|
||||
The problem was detected on Android 8.0 with file names such as:
|
||||
/data/app/com.baimobile.android.enterprise.credential.service-4wM9GBtoaS74ZiA0Y25YuQ==/lib/arm64/lib_some_reader_driver.so
|
||||
|
||||
Thanks to Alan Kozlay for the bug report and patch.
|
||||
|
||||
src/configfile.l | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
commit 08664ae6e9b442ce6e6d54385dcba4d9cb70b2ca
|
||||
Author: Ludovic Rousseau <ludovic.rousseau@free.fr>
|
||||
Date: Fri Jun 29 16:28:13 2018 +0200
|
||||
|
||||
Doxygen: fix warning
|
||||
|
||||
PCSC/src/PCSC/ifdhandler.h:84: warning: Unsupported xml/html tag
|
||||
<string> found
|
||||
|
||||
src/PCSC/ifdhandler.h | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
commit d412c4bb65cc26f124fd5adb5f81299b08789d8e
|
||||
Author: Ludovic Rousseau <ludovic.rousseau@free.fr>
|
||||
Date: Fri Jun 29 16:23:39 2018 +0200
|
||||
|
||||
Doxygen: do not document disabled functions
|
||||
|
||||
If USE_LIBSYSTEMD is not defined then ListenExistingSocket() is not
|
||||
implemented and the associated Doxygen documentation should not be
|
||||
present.
|
||||
|
||||
Fix Doxygen warning:
|
||||
PCSC/src/winscard_msg_srv.c:193: warning: argument 'fd' of command @param is not found in the argument list of ProcessEventsServer(uint32_t *pdwClientID)
|
||||
|
||||
src/winscard_msg_srv.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
commit e4f50dc1cf264e0159524043a6f5fc1263942c32
|
||||
Author: Ludovic Rousseau <ludovic.rousseau@free.fr>
|
||||
Date: Fri Jun 29 16:19:55 2018 +0200
|
||||
|
||||
Doxygen: Use " " for FRIENDLYNAME
|
||||
|
||||
The FRIENDLYNAME declaration for reader.conf files must use " " if space
|
||||
characters are present in the name.
|
||||
|
||||
src/PCSC/ifdhandler.h | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
commit f14658076f12dde739a0e94a71036f62f83b1259
|
||||
Author: Ludovic Rousseau <ludovic.rousseau@free.fr>
|
||||
Date: Mon May 28 11:32:21 2018 +0200
|
||||
|
||||
Makefile.am: do not distribute DRIVERS
|
||||
|
||||
The DRIVERS files has been removed because it was obsolete. Do not
|
||||
include it in the generated tarball.
|
||||
|
||||
Makefile.am | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
commit 5616594ce51a9b1e1fa6d913b3f8001289924a15
|
||||
Author: Ludovic Rousseau <ludovic.rousseau@free.fr>
|
||||
Date: Mon May 21 23:06:44 2018 +0200
|
||||
|
||||
ifdhandler.h: fix PC/SC Driver Developers Kit URL
|
||||
|
||||
It is now at https://muscle.apdu.fr/musclecard.com/sourcedrivers.html
|
||||
|
||||
src/PCSC/ifdhandler.h | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
commit e93d7199fe69f35267421b51e673eca3b0e18b49
|
||||
Author: Ludovic Rousseau <ludovic.rousseau@free.fr>
|
||||
Date: Mon May 21 23:05:52 2018 +0200
|
||||
|
||||
HELP: fix Musle mailing list information
|
||||
|
||||
Move from muscle@lists.musclecard.com to pcsclite-muscle@lists.infradead.org
|
||||
|
||||
HELP | 5 +++--
|
||||
1 file changed, 3 insertions(+), 2 deletions(-)
|
||||
|
||||
commit dd40b62179791d108de37dc164da672a12b39064
|
||||
Author: Ludovic Rousseau <ludovic.rousseau@free.fr>
|
||||
Date: Mon May 21 23:01:51 2018 +0200
|
||||
|
||||
DRIVERS: remove outdated file
|
||||
|
||||
Fixes issue #37
|
||||
"drivers aren't available at given location"
|
||||
https://github.com/LudovicRousseau/PCSC/issues/37
|
||||
|
||||
DRIVERS | 28 ----------------------------
|
||||
1 file changed, 28 deletions(-)
|
||||
|
||||
commit 378ed84c4cfa0b373b793e62540549bf0eeb9b79
|
||||
Author: Ludovic Rousseau <ludovic.rousseau@free.fr>
|
||||
Date: Fri May 18 17:54:07 2018 +0200
|
||||
|
||||
Fix project URL
|
||||
|
||||
Move from pcsclite.alioth.debian.org to pcsclite.apdu.fr
|
||||
|
||||
UnitaryTests/BufferOverflow_SCardControl.c | 2 +-
|
||||
UnitaryTests/BufferOverflow_SCardGetAttrib.c | 2 +-
|
||||
UnitaryTests/BufferOverflow_SCardTransmit.c | 2 +-
|
||||
doc/example/pcsc_demo.c | 2 +-
|
||||
doc/org.debian.pcsc-lite.policy | 2 +-
|
||||
doc/pcscd.8.in | 2 +-
|
||||
src/PCSC/debuglog.h | 2 +-
|
||||
src/PCSC/ifdhandler.h | 7 +++----
|
||||
src/PCSC/pcsclite.h.in | 2 +-
|
||||
src/PCSC/reader.h | 2 +-
|
||||
src/PCSC/winscard.h | 2 +-
|
||||
src/PCSC/wintypes.h | 2 +-
|
||||
src/atrhandler.c | 2 +-
|
||||
src/atrhandler.h | 2 +-
|
||||
src/auth.c | 2 +-
|
||||
src/auth.h | 2 +-
|
||||
src/configfile.h | 2 +-
|
||||
src/configfile.l | 2 +-
|
||||
src/debug.c | 2 +-
|
||||
src/debuglog.c | 2 +-
|
||||
src/dyn_generic.h | 2 +-
|
||||
src/dyn_hpux.c | 2 +-
|
||||
src/dyn_macosx.c | 2 +-
|
||||
src/dyn_unix.c | 2 +-
|
||||
src/error.c | 2 +-
|
||||
src/eventhandler.c | 2 +-
|
||||
src/eventhandler.h | 2 +-
|
||||
src/hotplug.h | 2 +-
|
||||
src/hotplug_generic.c | 2 +-
|
||||
src/hotplug_libudev.c | 2 +-
|
||||
src/hotplug_libusb.c | 2 +-
|
||||
src/hotplug_linux.c | 2 +-
|
||||
src/hotplug_macosx.c | 2 +-
|
||||
src/ifdwrapper.c | 2 +-
|
||||
src/ifdwrapper.h | 2 +-
|
||||
src/misc.h | 2 +-
|
||||
src/parser.h | 2 +-
|
||||
src/pcscd.h.in | 2 +-
|
||||
src/pcscdaemon.c | 2 +-
|
||||
src/prothandler.c | 2 +-
|
||||
src/prothandler.h | 2 +-
|
||||
src/readerfactory.c | 2 +-
|
||||
src/readerfactory.h | 2 +-
|
||||
src/strlcpycat.h | 2 +-
|
||||
src/sys_generic.h | 2 +-
|
||||
src/sys_unix.c | 2 +-
|
||||
src/testpcsc.c | 2 +-
|
||||
src/tokenparser.l | 2 +-
|
||||
src/utils.c | 2 +-
|
||||
src/utils.h | 2 +-
|
||||
src/utils/formaticc.c | 2 +-
|
||||
src/utils/installifd.c | 2 +-
|
||||
src/winscard.c | 2 +-
|
||||
src/winscard_clnt.c | 2 +-
|
||||
src/winscard_msg.c | 2 +-
|
||||
src/winscard_msg.h | 2 +-
|
||||
src/winscard_msg_srv.c | 2 +-
|
||||
src/winscard_svc.c | 2 +-
|
||||
src/winscard_svc.h | 2 +-
|
||||
59 files changed, 61 insertions(+), 62 deletions(-)
|
||||
|
||||
commit 78505c8b025454de296331652b767e7bd198e593
|
||||
Author: Ludovic Rousseau <ludovic.rousseau@free.fr>
|
||||
Date: Fri May 18 17:26:13 2018 +0200
|
||||
|
||||
README.md: Fix project URL
|
||||
|
||||
Move from pcsclite.alioth.debian.org to pcsclite.apdu.fr
|
||||
|
||||
README.md | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
commit 984f84df10e2d0f432039e3b31f94c74e95092eb
|
||||
Author: Ludovic Rousseau <ludovic.rousseau@free.fr>
|
||||
Date: Mon Apr 23 10:03:21 2018 +0200
|
||||
|
||||
Fix a rare race condition in SCardGetStatusChange()
|
||||
|
||||
Thanks to Maximilian Stein for the patch
|
||||
|
||||
[Pcsclite-muscle] Rare race condition in SCardGetStatusChange()
|
||||
http://lists.infradead.org/pipermail/pcsclite-muscle/2018-April/001068.html
|
||||
|
||||
" Hello all,
|
||||
|
||||
recently we stumbled upon another (rare) race condition in the
|
||||
SCardGetStatusChange() function. I especially ask Maksim Ivanov and
|
||||
Florian Kaiser kindly to share their opinion about the problem and the
|
||||
proposed fix, since they did a good job in improving
|
||||
SCardGetStatusChange/SCardCancel in the recent past.
|
||||
|
||||
The problem:
|
||||
The problem is basically the small gap between fetching the reader
|
||||
states from pcscd [winscard_clnt.c:1741 and 2119] and registering for
|
||||
event notifications [winscard_clnt.c:2070]. If a notification is sent in
|
||||
this time period, SCardGetStatusChange() will sleep until another event
|
||||
or the internal time-out is reached. Consider the following flow of
|
||||
execution and events:
|
||||
|
||||
Precondition: [client] knows the current state of all readers from a
|
||||
previous call to SCardGetStatusChange() and no changes happened since
|
||||
then. Basically consider a thread that monitors the reader states which
|
||||
calls SCardGetStatusChange() in a loop.
|
||||
1. [client] calls SCardGetStatusChange() and fetches the reader states
|
||||
from pcscd (line 1741). The fetched states are equal to the already
|
||||
known states.
|
||||
2. [pcscd] notices a change in any terminal state (smartcard movement or
|
||||
number of connected clients to the smartcard changes) and sends a signal
|
||||
to all *registered* clients via EHSignalEventToClients(). [client] is
|
||||
not yet registered for event notifications, so EHSignalEventToClients()
|
||||
won't send anything.
|
||||
3. [client] continues execution and compares the given reader states to
|
||||
the states fetched before [pcscd] noticed the change. The states are
|
||||
equal so it registers for event notifications (line 2070). No
|
||||
notification was sent, so [client] sleeps until the internal time-out
|
||||
(60 seconds) is reached.
|
||||
4. [client] reaches the internal time-out and fetches the current reader
|
||||
states from [pcscd]. Now the states are different and
|
||||
SCardGetStatusChange returns.
|
||||
|
||||
In the end the state change is noticed thanks to the internal polling
|
||||
mechanism, but in automated environments, 60 seconds is a very long time
|
||||
until a state change is detected. The error is most likely to occur if
|
||||
multiple readers are used and state changes are frequent. Even more
|
||||
likely it occurs if reader state polling is used by pcscd, i.e. when the
|
||||
IFD handler does not support asynchronous card event notification (no
|
||||
capability TAG_IFD_POLLING_THREAD_WITH_TIMEOUT). Then multiple readers
|
||||
can accumulate their events to be processed in a very small time frame.
|
||||
|
||||
Suggestion for a fix:
|
||||
The proposed fix makes fetching the reader states and registering for
|
||||
event notifications an atomic action. The command
|
||||
CMD_WAIT_READER_STATE_CHANGE expected no return value anyway, so I made
|
||||
it return the reader states equal to CMD_GET_READERS_STATE. The action
|
||||
is protected by the ClientsWaitingForEvent_lock in eventhandler.c, which
|
||||
prevents parallel calls of MSGSignalClient() via
|
||||
EHSignalEventToClients(). This is necessary to prevent a signal before
|
||||
the reader states are sent, which would appear as garbage in the client
|
||||
socket.
|
||||
|
||||
With the proposed fix, the client is registered for events after the
|
||||
reader states were fetched. So if any difference is found in the local
|
||||
and remote state (so that SCardGetStatusChange() returns) we have to
|
||||
unregister from events. This was not necessary before, but works just
|
||||
like unregistering after a timeout. This could be refined by checking
|
||||
why the loop was exited and only unregister if necessary.
|
||||
|
||||
Unfortunately the proposed fix will slightly alter the internal protocol
|
||||
between libpcsclite and pcscd, breaking statically linked client
|
||||
applications with newer pcscd versions.
|
||||
|
||||
Further related thoughts:
|
||||
I'm a bit uncertain if my proposed fix works nicely with SCardCancel(),
|
||||
because I can think of one very rare situation when
|
||||
SCardGetStatusChange() times out and unregisters from event
|
||||
notifications, then gets cancelled but is not informed about that. Then
|
||||
it re-registers for notifications, because no changes happened. Thus it
|
||||
will not returned despite it was cancelled. But this should have been an
|
||||
issue even before my fix.
|
||||
|
||||
I think the notification mechanism could be improved by using "response
|
||||
headers" analogous to the server side, or just an additional field
|
||||
"command" in the data structs. This way every message related to reader
|
||||
state events could be identified by the client and handled respectively.
|
||||
As I understand it, some of the past issues were because of signal,
|
||||
cancel or stop-reader-state-change messages messing up the client socket
|
||||
data. With a command field it can be decided what data the client
|
||||
received, and what data is still expected to be received.
|
||||
|
||||
Best regards
|
||||
Maximilian Stein "
|
||||
|
||||
src/eventhandler.c | 2 ++
|
||||
src/winscard_clnt.c | 79 ++++++++++++++++++++++++++++++++++++-----------------
|
||||
src/winscard_msg.h | 2 +-
|
||||
src/winscard_svc.c | 31 +++++++++++++--------
|
||||
src/winscard_svc.h | 1 +
|
||||
5 files changed, 78 insertions(+), 37 deletions(-)
|
||||
|
||||
commit 0127d3c73d0ad2072407d880b92baf454992b27d
|
||||
Author: Nicolas Dusart <dusartnicolas@gmail.com>
|
||||
Date: Wed Mar 21 18:00:26 2018 +0100
|
||||
|
||||
Simclist: avoid to divide by zero in list_findpos()
|
||||
|
||||
A division by zero with float is undefined in C.
|
||||
For example gcc 6.3.0 reports (when detected):
|
||||
dividebyzero.c:5:20: warning: division by zero [-Wdiv-by-zero]
|
||||
float a = (float)1/0;
|
||||
|
||||
But the code does NOT crash. The value of a is just infinity.
|
||||
|
||||
The problem is when Free Pascal runtime is used. In this case the code crashed.
|
||||
|
||||
src/simclist.c | 5 ++++-
|
||||
1 file changed, 4 insertions(+), 1 deletion(-)
|
||||
|
||||
commit 2f99e761e000c2c0ef1eb3bd6954b770ac294f22
|
||||
Author: Ludovic Rousseau <ludovic.rousseau@free.fr>
|
||||
Date: Fri Feb 2 15:21:25 2018 +0100
|
||||
|
||||
pcsc-spy: correctly handle incomplete log file
|
||||
|
||||
If the application is interrupted in the middle of a PC/SC call then we
|
||||
do not get the returned values of the PC/SC call.
|
||||
The total execution time is then not known and -1 seconds is displayed
|
||||
instead.
|
||||
|
||||
src/spy/pcsc-spy | 10 +++++++---
|
||||
1 file changed, 7 insertions(+), 3 deletions(-)
|
||||
|
||||
commit cc70541a47058fc0c6f16a964c75dfcd5b7c88e2
|
||||
Author: Ludovic Rousseau <ludovic.rousseau@free.fr>
|
||||
Date: Tue Dec 19 16:13:42 2017 +0100
|
||||
|
||||
systemd pcscd.service: add Documentation key
|
||||
|
||||
For now the documentation refers to pcscd(8) manpage.
|
||||
|
||||
etc/pcscd.service.in | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
commit 09f0f85b86e7488cf26642dd17150f76bed5300c (tag: pcsc-1.8.23)
|
||||
Author: Ludovic Rousseau <ludovic.rousseau@free.fr>
|
||||
Date: Mon Dec 18 19:56:49 2017 +0100
|
||||
|
||||
|
@ -8,7 +643,7 @@ Date: Mon Dec 18 19:56:49 2017 +0100
|
|||
configure.ac | 2 +-
|
||||
2 files changed, 9 insertions(+), 1 deletion(-)
|
||||
|
||||
commit 1dde8427236fa988e9f488baa46d7316691a5555 (origin/master, origin/HEAD)
|
||||
commit 1dde8427236fa988e9f488baa46d7316691a5555
|
||||
Author: Ludovic Rousseau <ludovic.rousseau@free.fr>
|
||||
Date: Tue Nov 14 15:09:25 2017 +0100
|
||||
|
||||
|
@ -194,7 +829,7 @@ Date: Tue Aug 1 10:11:29 2017 +0200
|
|||
configure.ac | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
commit 8946edadaca353d65112664a5fcd7bbe1be54ed5
|
||||
commit 8946edadaca353d65112664a5fcd7bbe1be54ed5 (zotac/fix)
|
||||
Author: Ludovic Rousseau <ludovic.rousseau@free.fr>
|
||||
Date: Wed Jul 12 17:59:48 2017 +0200
|
||||
|
||||
|
@ -209,7 +844,7 @@ Date: Wed Jul 12 17:59:48 2017 +0200
|
|||
src/simclist.c | 7 +++++++
|
||||
1 file changed, 7 insertions(+)
|
||||
|
||||
commit 30e10951f81b9480e788965f89d0d4d0aee909c0 (zotac/master, github/master)
|
||||
commit 30e10951f81b9480e788965f89d0d4d0aee909c0
|
||||
Author: Ludovic Rousseau <ludovic.rousseau@free.fr>
|
||||
Date: Thu Jul 13 17:52:13 2017 +0200
|
||||
|
||||
|
|
28
DRIVERS
28
DRIVERS
|
@ -1,28 +0,0 @@
|
|||
DRIVERS
|
||||
|
||||
To install USB drivers, download the driver from
|
||||
http://musclecard.com/software.html and copy it to a temporary location.
|
||||
After you have unarchived the files copy the directory to
|
||||
/usr/local/pcsc/drivers/. If the directory /usr/local/pcsc/drivers/
|
||||
does not exist create it before copying the driver directory to it.
|
||||
|
||||
Example Mac OS X, Linux 2.4:
|
||||
|
||||
tar -xzvf driver.bundle-0.1.0.tar.gz
|
||||
cp -r driver.bundle /usr/local/pcsc/drivers/
|
||||
cd /usr/local/pcsc/drivers/driver.bundle
|
||||
build or use Project Builder to build
|
||||
|
||||
The /usr/local/pcsc/drivers/ directory should contain bundle directories only.
|
||||
You must restart pcscd to use the new driver.
|
||||
|
||||
|
||||
All OS's:
|
||||
|
||||
For non-USB users, you must edit the /etc/reader.conf file.
|
||||
You can do this easily by running the installifd program in the utils/
|
||||
directory of pcsc-lite. Some newer drivers require you to specify 1 as the
|
||||
port and then make a symlink from /dev/pcsc/1 to /dev/ttyS* so you can
|
||||
enumerate your ports on any Unix without changing the driver.
|
||||
|
||||
Refer to the driver README for more information.
|
5
HELP
5
HELP
|
@ -1,6 +1,7 @@
|
|||
General questions:
|
||||
Contact the mailing list muscle@lists.musclecard.com
|
||||
(you must subscribe first at http://musclecard.com/list.html)
|
||||
Contact the mailing list pcsclite-muscle@lists.infradead.org
|
||||
(you must subscribe first at
|
||||
https://lists.infradead.org/mailman/listinfo/pcsclite-muscle )
|
||||
|
||||
|
||||
Contract work:
|
||||
|
|
316
INSTALL
316
INSTALL
|
@ -1,8 +1,8 @@
|
|||
Installation Instructions
|
||||
*************************
|
||||
|
||||
Copyright (C) 1994-1996, 1999-2002, 2004-2013 Free Software Foundation,
|
||||
Inc.
|
||||
Copyright (C) 1994-1996, 1999-2002, 2004-2016 Free Software
|
||||
Foundation, Inc.
|
||||
|
||||
Copying and distribution of this file, with or without modification,
|
||||
are permitted in any medium without royalty provided the copyright
|
||||
|
@ -12,97 +12,96 @@ without warranty of any kind.
|
|||
Basic Installation
|
||||
==================
|
||||
|
||||
Briefly, the shell command `./configure && make && make install'
|
||||
Briefly, the shell command './configure && make && make install'
|
||||
should configure, build, and install this package. The following
|
||||
more-detailed instructions are generic; see the `README' file for
|
||||
more-detailed instructions are generic; see the 'README' file for
|
||||
instructions specific to this package. Some packages provide this
|
||||
`INSTALL' file but do not implement all of the features documented
|
||||
'INSTALL' file but do not implement all of the features documented
|
||||
below. The lack of an optional feature in a given package is not
|
||||
necessarily a bug. More recommendations for GNU packages can be found
|
||||
in *note Makefile Conventions: (standards)Makefile Conventions.
|
||||
|
||||
The `configure' shell script attempts to guess correct values for
|
||||
The 'configure' shell script attempts to guess correct values for
|
||||
various system-dependent variables used during compilation. It uses
|
||||
those values to create a `Makefile' in each directory of the package.
|
||||
It may also create one or more `.h' files containing system-dependent
|
||||
definitions. Finally, it creates a shell script `config.status' that
|
||||
those values to create a 'Makefile' in each directory of the package.
|
||||
It may also create one or more '.h' files containing system-dependent
|
||||
definitions. Finally, it creates a shell script 'config.status' that
|
||||
you can run in the future to recreate the current configuration, and a
|
||||
file `config.log' containing compiler output (useful mainly for
|
||||
debugging `configure').
|
||||
file 'config.log' containing compiler output (useful mainly for
|
||||
debugging 'configure').
|
||||
|
||||
It can also use an optional file (typically called `config.cache'
|
||||
and enabled with `--cache-file=config.cache' or simply `-C') that saves
|
||||
the results of its tests to speed up reconfiguring. Caching is
|
||||
disabled by default to prevent problems with accidental use of stale
|
||||
cache files.
|
||||
It can also use an optional file (typically called 'config.cache' and
|
||||
enabled with '--cache-file=config.cache' or simply '-C') that saves the
|
||||
results of its tests to speed up reconfiguring. Caching is disabled by
|
||||
default to prevent problems with accidental use of stale cache files.
|
||||
|
||||
If you need to do unusual things to compile the package, please try
|
||||
to figure out how `configure' could check whether to do them, and mail
|
||||
diffs or instructions to the address given in the `README' so they can
|
||||
to figure out how 'configure' could check whether to do them, and mail
|
||||
diffs or instructions to the address given in the 'README' so they can
|
||||
be considered for the next release. If you are using the cache, and at
|
||||
some point `config.cache' contains results you don't want to keep, you
|
||||
some point 'config.cache' contains results you don't want to keep, you
|
||||
may remove or edit it.
|
||||
|
||||
The file `configure.ac' (or `configure.in') is used to create
|
||||
`configure' by a program called `autoconf'. You need `configure.ac' if
|
||||
you want to change it or regenerate `configure' using a newer version
|
||||
of `autoconf'.
|
||||
The file 'configure.ac' (or 'configure.in') is used to create
|
||||
'configure' by a program called 'autoconf'. You need 'configure.ac' if
|
||||
you want to change it or regenerate 'configure' using a newer version of
|
||||
'autoconf'.
|
||||
|
||||
The simplest way to compile this package is:
|
||||
|
||||
1. `cd' to the directory containing the package's source code and type
|
||||
`./configure' to configure the package for your system.
|
||||
1. 'cd' to the directory containing the package's source code and type
|
||||
'./configure' to configure the package for your system.
|
||||
|
||||
Running `configure' might take a while. While running, it prints
|
||||
Running 'configure' might take a while. While running, it prints
|
||||
some messages telling which features it is checking for.
|
||||
|
||||
2. Type `make' to compile the package.
|
||||
2. Type 'make' to compile the package.
|
||||
|
||||
3. Optionally, type `make check' to run any self-tests that come with
|
||||
3. Optionally, type 'make check' to run any self-tests that come with
|
||||
the package, generally using the just-built uninstalled binaries.
|
||||
|
||||
4. Type `make install' to install the programs and any data files and
|
||||
4. Type 'make install' to install the programs and any data files and
|
||||
documentation. When installing into a prefix owned by root, it is
|
||||
recommended that the package be configured and built as a regular
|
||||
user, and only the `make install' phase executed with root
|
||||
user, and only the 'make install' phase executed with root
|
||||
privileges.
|
||||
|
||||
5. Optionally, type `make installcheck' to repeat any self-tests, but
|
||||
5. Optionally, type 'make installcheck' to repeat any self-tests, but
|
||||
this time using the binaries in their final installed location.
|
||||
This target does not install anything. Running this target as a
|
||||
regular user, particularly if the prior `make install' required
|
||||
regular user, particularly if the prior 'make install' required
|
||||
root privileges, verifies that the installation completed
|
||||
correctly.
|
||||
|
||||
6. You can remove the program binaries and object files from the
|
||||
source code directory by typing `make clean'. To also remove the
|
||||
files that `configure' created (so you can compile the package for
|
||||
a different kind of computer), type `make distclean'. There is
|
||||
also a `make maintainer-clean' target, but that is intended mainly
|
||||
source code directory by typing 'make clean'. To also remove the
|
||||
files that 'configure' created (so you can compile the package for
|
||||
a different kind of computer), type 'make distclean'. There is
|
||||
also a 'make maintainer-clean' target, but that is intended mainly
|
||||
for the package's developers. If you use it, you may have to get
|
||||
all sorts of other programs in order to regenerate files that came
|
||||
with the distribution.
|
||||
|
||||
7. Often, you can also type `make uninstall' to remove the installed
|
||||
7. Often, you can also type 'make uninstall' to remove the installed
|
||||
files again. In practice, not all packages have tested that
|
||||
uninstallation works correctly, even though it is required by the
|
||||
GNU Coding Standards.
|
||||
|
||||
8. Some packages, particularly those that use Automake, provide `make
|
||||
8. Some packages, particularly those that use Automake, provide 'make
|
||||
distcheck', which can by used by developers to test that all other
|
||||
targets like `make install' and `make uninstall' work correctly.
|
||||
targets like 'make install' and 'make uninstall' work correctly.
|
||||
This target is generally not run by end users.
|
||||
|
||||
Compilers and Options
|
||||
=====================
|
||||
|
||||
Some systems require unusual options for compilation or linking that
|
||||
the `configure' script does not know about. Run `./configure --help'
|
||||
the 'configure' script does not know about. Run './configure --help'
|
||||
for details on some of the pertinent environment variables.
|
||||
|
||||
You can give `configure' initial values for configuration parameters
|
||||
by setting variables in the command line or in the environment. Here
|
||||
is an example:
|
||||
You can give 'configure' initial values for configuration parameters
|
||||
by setting variables in the command line or in the environment. Here is
|
||||
an example:
|
||||
|
||||
./configure CC=c99 CFLAGS=-g LIBS=-lposix
|
||||
|
||||
|
@ -113,21 +112,21 @@ Compiling For Multiple Architectures
|
|||
|
||||
You can compile the package for more than one kind of computer at the
|
||||
same time, by placing the object files for each architecture in their
|
||||
own directory. To do this, you can use GNU `make'. `cd' to the
|
||||
own directory. To do this, you can use GNU 'make'. 'cd' to the
|
||||
directory where you want the object files and executables to go and run
|
||||
the `configure' script. `configure' automatically checks for the
|
||||
source code in the directory that `configure' is in and in `..'. This
|
||||
is known as a "VPATH" build.
|
||||
the 'configure' script. 'configure' automatically checks for the source
|
||||
code in the directory that 'configure' is in and in '..'. This is known
|
||||
as a "VPATH" build.
|
||||
|
||||
With a non-GNU `make', it is safer to compile the package for one
|
||||
With a non-GNU 'make', it is safer to compile the package for one
|
||||
architecture at a time in the source code directory. After you have
|
||||
installed the package for one architecture, use `make distclean' before
|
||||
installed the package for one architecture, use 'make distclean' before
|
||||
reconfiguring for another architecture.
|
||||
|
||||
On MacOS X 10.5 and later systems, you can create libraries and
|
||||
executables that work on multiple system types--known as "fat" or
|
||||
"universal" binaries--by specifying multiple `-arch' options to the
|
||||
compiler but only a single `-arch' option to the preprocessor. Like
|
||||
"universal" binaries--by specifying multiple '-arch' options to the
|
||||
compiler but only a single '-arch' option to the preprocessor. Like
|
||||
this:
|
||||
|
||||
./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
|
||||
|
@ -136,105 +135,104 @@ this:
|
|||
|
||||
This is not guaranteed to produce working output in all cases, you
|
||||
may have to build one architecture at a time and combine the results
|
||||
using the `lipo' tool if you have problems.
|
||||
using the 'lipo' tool if you have problems.
|
||||
|
||||
Installation Names
|
||||
==================
|
||||
|
||||
By default, `make install' installs the package's commands under
|
||||
`/usr/local/bin', include files under `/usr/local/include', etc. You
|
||||
can specify an installation prefix other than `/usr/local' by giving
|
||||
`configure' the option `--prefix=PREFIX', where PREFIX must be an
|
||||
By default, 'make install' installs the package's commands under
|
||||
'/usr/local/bin', include files under '/usr/local/include', etc. You
|
||||
can specify an installation prefix other than '/usr/local' by giving
|
||||
'configure' the option '--prefix=PREFIX', where PREFIX must be an
|
||||
absolute file name.
|
||||
|
||||
You can specify separate installation prefixes for
|
||||
architecture-specific files and architecture-independent files. If you
|
||||
pass the option `--exec-prefix=PREFIX' to `configure', the package uses
|
||||
pass the option '--exec-prefix=PREFIX' to 'configure', the package uses
|
||||
PREFIX as the prefix for installing programs and libraries.
|
||||
Documentation and other data files still use the regular prefix.
|
||||
|
||||
In addition, if you use an unusual directory layout you can give
|
||||
options like `--bindir=DIR' to specify different values for particular
|
||||
kinds of files. Run `configure --help' for a list of the directories
|
||||
you can set and what kinds of files go in them. In general, the
|
||||
default for these options is expressed in terms of `${prefix}', so that
|
||||
specifying just `--prefix' will affect all of the other directory
|
||||
options like '--bindir=DIR' to specify different values for particular
|
||||
kinds of files. Run 'configure --help' for a list of the directories
|
||||
you can set and what kinds of files go in them. In general, the default
|
||||
for these options is expressed in terms of '${prefix}', so that
|
||||
specifying just '--prefix' will affect all of the other directory
|
||||
specifications that were not explicitly provided.
|
||||
|
||||
The most portable way to affect installation locations is to pass the
|
||||
correct locations to `configure'; however, many packages provide one or
|
||||
correct locations to 'configure'; however, many packages provide one or
|
||||
both of the following shortcuts of passing variable assignments to the
|
||||
`make install' command line to change installation locations without
|
||||
'make install' command line to change installation locations without
|
||||
having to reconfigure or recompile.
|
||||
|
||||
The first method involves providing an override variable for each
|
||||
affected directory. For example, `make install
|
||||
affected directory. For example, 'make install
|
||||
prefix=/alternate/directory' will choose an alternate location for all
|
||||
directory configuration variables that were expressed in terms of
|
||||
`${prefix}'. Any directories that were specified during `configure',
|
||||
but not in terms of `${prefix}', must each be overridden at install
|
||||
time for the entire installation to be relocated. The approach of
|
||||
makefile variable overrides for each directory variable is required by
|
||||
the GNU Coding Standards, and ideally causes no recompilation.
|
||||
However, some platforms have known limitations with the semantics of
|
||||
shared libraries that end up requiring recompilation when using this
|
||||
method, particularly noticeable in packages that use GNU Libtool.
|
||||
'${prefix}'. Any directories that were specified during 'configure',
|
||||
but not in terms of '${prefix}', must each be overridden at install time
|
||||
for the entire installation to be relocated. The approach of makefile
|
||||
variable overrides for each directory variable is required by the GNU
|
||||
Coding Standards, and ideally causes no recompilation. However, some
|
||||
platforms have known limitations with the semantics of shared libraries
|
||||
that end up requiring recompilation when using this method, particularly
|
||||
noticeable in packages that use GNU Libtool.
|
||||
|
||||
The second method involves providing the `DESTDIR' variable. For
|
||||
example, `make install DESTDIR=/alternate/directory' will prepend
|
||||
`/alternate/directory' before all installation names. The approach of
|
||||
`DESTDIR' overrides is not required by the GNU Coding Standards, and
|
||||
The second method involves providing the 'DESTDIR' variable. For
|
||||
example, 'make install DESTDIR=/alternate/directory' will prepend
|
||||
'/alternate/directory' before all installation names. The approach of
|
||||
'DESTDIR' overrides is not required by the GNU Coding Standards, and
|
||||
does not work on platforms that have drive letters. On the other hand,
|
||||
it does better at avoiding recompilation issues, and works well even
|
||||
when some directory options were not specified in terms of `${prefix}'
|
||||
at `configure' time.
|
||||
when some directory options were not specified in terms of '${prefix}'
|
||||
at 'configure' time.
|
||||
|
||||
Optional Features
|
||||
=================
|
||||
|
||||
If the package supports it, you can cause programs to be installed
|
||||
with an extra prefix or suffix on their names by giving `configure' the
|
||||
option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.
|
||||
with an extra prefix or suffix on their names by giving 'configure' the
|
||||
option '--program-prefix=PREFIX' or '--program-suffix=SUFFIX'.
|
||||
|
||||
Some packages pay attention to `--enable-FEATURE' options to
|
||||
`configure', where FEATURE indicates an optional part of the package.
|
||||
They may also pay attention to `--with-PACKAGE' options, where PACKAGE
|
||||
is something like `gnu-as' or `x' (for the X Window System). The
|
||||
`README' should mention any `--enable-' and `--with-' options that the
|
||||
Some packages pay attention to '--enable-FEATURE' options to
|
||||
'configure', where FEATURE indicates an optional part of the package.
|
||||
They may also pay attention to '--with-PACKAGE' options, where PACKAGE
|
||||
is something like 'gnu-as' or 'x' (for the X Window System). The
|
||||
'README' should mention any '--enable-' and '--with-' options that the
|
||||
package recognizes.
|
||||
|
||||
For packages that use the X Window System, `configure' can usually
|
||||
For packages that use the X Window System, 'configure' can usually
|
||||
find the X include and library files automatically, but if it doesn't,
|
||||
you can use the `configure' options `--x-includes=DIR' and
|
||||
`--x-libraries=DIR' to specify their locations.
|
||||
you can use the 'configure' options '--x-includes=DIR' and
|
||||
'--x-libraries=DIR' to specify their locations.
|
||||
|
||||
Some packages offer the ability to configure how verbose the
|
||||
execution of `make' will be. For these packages, running `./configure
|
||||
execution of 'make' will be. For these packages, running './configure
|
||||
--enable-silent-rules' sets the default to minimal output, which can be
|
||||
overridden with `make V=1'; while running `./configure
|
||||
overridden with 'make V=1'; while running './configure
|
||||
--disable-silent-rules' sets the default to verbose, which can be
|
||||
overridden with `make V=0'.
|
||||
overridden with 'make V=0'.
|
||||
|
||||
Particular systems
|
||||
==================
|
||||
|
||||
On HP-UX, the default C compiler is not ANSI C compatible. If GNU
|
||||
CC is not installed, it is recommended to use the following options in
|
||||
On HP-UX, the default C compiler is not ANSI C compatible. If GNU CC
|
||||
is not installed, it is recommended to use the following options in
|
||||
order to use an ANSI C compiler:
|
||||
|
||||
./configure CC="cc -Ae -D_XOPEN_SOURCE=500"
|
||||
|
||||
and if that doesn't work, install pre-built binaries of GCC for HP-UX.
|
||||
|
||||
HP-UX `make' updates targets which have the same time stamps as
|
||||
their prerequisites, which makes it generally unusable when shipped
|
||||
generated files such as `configure' are involved. Use GNU `make'
|
||||
instead.
|
||||
HP-UX 'make' updates targets which have the same time stamps as their
|
||||
prerequisites, which makes it generally unusable when shipped generated
|
||||
files such as 'configure' are involved. Use GNU 'make' instead.
|
||||
|
||||
On OSF/1 a.k.a. Tru64, some versions of the default C compiler cannot
|
||||
parse its `<wchar.h>' header file. The option `-nodtk' can be used as
|
||||
a workaround. If GNU CC is not installed, it is therefore recommended
|
||||
to try
|
||||
parse its '<wchar.h>' header file. The option '-nodtk' can be used as a
|
||||
workaround. If GNU CC is not installed, it is therefore recommended to
|
||||
try
|
||||
|
||||
./configure CC="cc"
|
||||
|
||||
|
@ -242,26 +240,26 @@ and if that doesn't work, try
|
|||
|
||||
./configure CC="cc -nodtk"
|
||||
|
||||
On Solaris, don't put `/usr/ucb' early in your `PATH'. This
|
||||
On Solaris, don't put '/usr/ucb' early in your 'PATH'. This
|
||||
directory contains several dysfunctional programs; working variants of
|
||||
these programs are available in `/usr/bin'. So, if you need `/usr/ucb'
|
||||
in your `PATH', put it _after_ `/usr/bin'.
|
||||
these programs are available in '/usr/bin'. So, if you need '/usr/ucb'
|
||||
in your 'PATH', put it _after_ '/usr/bin'.
|
||||
|
||||
On Haiku, software installed for all users goes in `/boot/common',
|
||||
not `/usr/local'. It is recommended to use the following options:
|
||||
On Haiku, software installed for all users goes in '/boot/common',
|
||||
not '/usr/local'. It is recommended to use the following options:
|
||||
|
||||
./configure --prefix=/boot/common
|
||||
|
||||
Specifying the System Type
|
||||
==========================
|
||||
|
||||
There may be some features `configure' cannot figure out
|
||||
There may be some features 'configure' cannot figure out
|
||||
automatically, but needs to determine by the type of machine the package
|
||||
will run on. Usually, assuming the package is built to be run on the
|
||||
_same_ architectures, `configure' can figure that out, but if it prints
|
||||
_same_ architectures, 'configure' can figure that out, but if it prints
|
||||
a message saying it cannot guess the machine type, give it the
|
||||
`--build=TYPE' option. TYPE can either be a short name for the system
|
||||
type, such as `sun4', or a canonical name which has the form:
|
||||
'--build=TYPE' option. TYPE can either be a short name for the system
|
||||
type, such as 'sun4', or a canonical name which has the form:
|
||||
|
||||
CPU-COMPANY-SYSTEM
|
||||
|
||||
|
@ -270,101 +268,101 @@ where SYSTEM can have one of these forms:
|
|||
OS
|
||||
KERNEL-OS
|
||||
|
||||
See the file `config.sub' for the possible values of each field. If
|
||||
`config.sub' isn't included in this package, then this package doesn't
|
||||
See the file 'config.sub' for the possible values of each field. If
|
||||
'config.sub' isn't included in this package, then this package doesn't
|
||||
need to know the machine type.
|
||||
|
||||
If you are _building_ compiler tools for cross-compiling, you should
|
||||
use the option `--target=TYPE' to select the type of system they will
|
||||
use the option '--target=TYPE' to select the type of system they will
|
||||
produce code for.
|
||||
|
||||
If you want to _use_ a cross compiler, that generates code for a
|
||||
platform different from the build platform, you should specify the
|
||||
"host" platform (i.e., that on which the generated programs will
|
||||
eventually be run) with `--host=TYPE'.
|
||||
eventually be run) with '--host=TYPE'.
|
||||
|
||||
Sharing Defaults
|
||||
================
|
||||
|
||||
If you want to set default values for `configure' scripts to share,
|
||||
you can create a site shell script called `config.site' that gives
|
||||
default values for variables like `CC', `cache_file', and `prefix'.
|
||||
`configure' looks for `PREFIX/share/config.site' if it exists, then
|
||||
`PREFIX/etc/config.site' if it exists. Or, you can set the
|
||||
`CONFIG_SITE' environment variable to the location of the site script.
|
||||
A warning: not all `configure' scripts look for a site script.
|
||||
If you want to set default values for 'configure' scripts to share,
|
||||
you can create a site shell script called 'config.site' that gives
|
||||
default values for variables like 'CC', 'cache_file', and 'prefix'.
|
||||
'configure' looks for 'PREFIX/share/config.site' if it exists, then
|
||||
'PREFIX/etc/config.site' if it exists. Or, you can set the
|
||||
'CONFIG_SITE' environment variable to the location of the site script.
|
||||
A warning: not all 'configure' scripts look for a site script.
|
||||
|
||||
Defining Variables
|
||||
==================
|
||||
|
||||
Variables not defined in a site shell script can be set in the
|
||||
environment passed to `configure'. However, some packages may run
|
||||
environment passed to 'configure'. However, some packages may run
|
||||
configure again during the build, and the customized values of these
|
||||
variables may be lost. In order to avoid this problem, you should set
|
||||
them in the `configure' command line, using `VAR=value'. For example:
|
||||
them in the 'configure' command line, using 'VAR=value'. For example:
|
||||
|
||||
./configure CC=/usr/local2/bin/gcc
|
||||
|
||||
causes the specified `gcc' to be used as the C compiler (unless it is
|
||||
causes the specified 'gcc' to be used as the C compiler (unless it is
|
||||
overridden in the site shell script).
|
||||
|
||||
Unfortunately, this technique does not work for `CONFIG_SHELL' due to
|
||||
an Autoconf limitation. Until the limitation is lifted, you can use
|
||||
this workaround:
|
||||
Unfortunately, this technique does not work for 'CONFIG_SHELL' due to an
|
||||
Autoconf limitation. Until the limitation is lifted, you can use this
|
||||
workaround:
|
||||
|
||||
CONFIG_SHELL=/bin/bash ./configure CONFIG_SHELL=/bin/bash
|
||||
|
||||
`configure' Invocation
|
||||
'configure' Invocation
|
||||
======================
|
||||
|
||||
`configure' recognizes the following options to control how it
|
||||
'configure' recognizes the following options to control how it
|
||||
operates.
|
||||
|
||||
`--help'
|
||||
`-h'
|
||||
Print a summary of all of the options to `configure', and exit.
|
||||
'--help'
|
||||
'-h'
|
||||
Print a summary of all of the options to 'configure', and exit.
|
||||
|
||||
`--help=short'
|
||||
`--help=recursive'
|
||||
'--help=short'
|
||||
'--help=recursive'
|
||||
Print a summary of the options unique to this package's
|
||||
`configure', and exit. The `short' variant lists options used
|
||||
only in the top level, while the `recursive' variant lists options
|
||||
also present in any nested packages.
|
||||
'configure', and exit. The 'short' variant lists options used only
|
||||
in the top level, while the 'recursive' variant lists options also
|
||||
present in any nested packages.
|
||||
|
||||
`--version'
|
||||
`-V'
|
||||
Print the version of Autoconf used to generate the `configure'
|
||||
'--version'
|
||||
'-V'
|
||||
Print the version of Autoconf used to generate the 'configure'
|
||||
script, and exit.
|
||||
|
||||
`--cache-file=FILE'
|
||||
'--cache-file=FILE'
|
||||
Enable the cache: use and save the results of the tests in FILE,
|
||||
traditionally `config.cache'. FILE defaults to `/dev/null' to
|
||||
traditionally 'config.cache'. FILE defaults to '/dev/null' to
|
||||
disable caching.
|
||||
|
||||
`--config-cache'
|
||||
`-C'
|
||||
Alias for `--cache-file=config.cache'.
|
||||
'--config-cache'
|
||||
'-C'
|
||||
Alias for '--cache-file=config.cache'.
|
||||
|
||||
`--quiet'
|
||||
`--silent'
|
||||
`-q'
|
||||
'--quiet'
|
||||
'--silent'
|
||||
'-q'
|
||||
Do not print messages saying which checks are being made. To
|
||||
suppress all normal output, redirect it to `/dev/null' (any error
|
||||
suppress all normal output, redirect it to '/dev/null' (any error
|
||||
messages will still be shown).
|
||||
|
||||
`--srcdir=DIR'
|
||||
'--srcdir=DIR'
|
||||
Look for the package's source code in directory DIR. Usually
|
||||
`configure' can determine that directory automatically.
|
||||
'configure' can determine that directory automatically.
|
||||
|
||||
`--prefix=DIR'
|
||||
Use DIR as the installation prefix. *note Installation Names::
|
||||
for more details, including other options available for fine-tuning
|
||||
the installation locations.
|
||||
'--prefix=DIR'
|
||||
Use DIR as the installation prefix. *note Installation Names:: for
|
||||
more details, including other options available for fine-tuning the
|
||||
installation locations.
|
||||
|
||||
`--no-create'
|
||||
`-n'
|
||||
'--no-create'
|
||||
'-n'
|
||||
Run the configure checks, but stop before creating any output
|
||||
files.
|
||||
|
||||
`configure' also accepts some other, not widely useful, options. Run
|
||||
`configure --help' for more details.
|
||||
'configure' also accepts some other, not widely useful, options. Run
|
||||
'configure --help' for more details.
|
||||
|
|
|
@ -12,7 +12,7 @@ EXTRA_DIST = \
|
|||
GPL-3.0.txt \
|
||||
bootstrap \
|
||||
ChangeLog.git \
|
||||
DRIVERS SECURITY \
|
||||
SECURITY \
|
||||
HELP \
|
||||
m4/ax_pthread.m4 \
|
||||
m4/as-ac-expand.m4
|
||||
|
|
27
Makefile.in
27
Makefile.in
|
@ -1,7 +1,7 @@
|
|||
# Makefile.in generated by automake 1.15 from Makefile.am.
|
||||
# Makefile.in generated by automake 1.16.1 from Makefile.am.
|
||||
# @configure_input@
|
||||
|
||||
# Copyright (C) 1994-2014 Free Software Foundation, Inc.
|
||||
# Copyright (C) 1994-2018 Free Software Foundation, Inc.
|
||||
|
||||
# This Makefile.in is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
|
@ -138,7 +138,7 @@ am__recursive_targets = \
|
|||
$(RECURSIVE_CLEAN_TARGETS) \
|
||||
$(am__extra_recursive_targets)
|
||||
AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \
|
||||
cscope distdir dist dist-all distcheck
|
||||
cscope distdir distdir-am dist dist-all distcheck
|
||||
am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) \
|
||||
$(LISP)config.h.in
|
||||
# Read a list of newline-separated strings from the standard input,
|
||||
|
@ -164,7 +164,7 @@ DIST_SUBDIRS = $(SUBDIRS)
|
|||
am__DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/config.h.in \
|
||||
$(top_srcdir)/src/PCSC/pcsclite.h.in AUTHORS COPYING ChangeLog \
|
||||
INSTALL NEWS README TODO ar-lib compile config.guess \
|
||||
config.sub depcomp install-sh ltmain.sh missing ylwrap
|
||||
config.sub install-sh ltmain.sh missing ylwrap
|
||||
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
||||
distdir = $(PACKAGE)-$(VERSION)
|
||||
top_distdir = $(distdir)
|
||||
|
@ -368,7 +368,7 @@ EXTRA_DIST = \
|
|||
GPL-3.0.txt \
|
||||
bootstrap \
|
||||
ChangeLog.git \
|
||||
DRIVERS SECURITY \
|
||||
SECURITY \
|
||||
HELP \
|
||||
m4/ax_pthread.m4 \
|
||||
m4/as-ac-expand.m4
|
||||
|
@ -399,8 +399,8 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
|
|||
echo ' $(SHELL) ./config.status'; \
|
||||
$(SHELL) ./config.status;; \
|
||||
*) \
|
||||
echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \
|
||||
cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \
|
||||
echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__maybe_remake_depfiles)'; \
|
||||
cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__maybe_remake_depfiles);; \
|
||||
esac;
|
||||
|
||||
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
|
||||
|
@ -544,7 +544,10 @@ distclean-tags:
|
|||
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
|
||||
-rm -f cscope.out cscope.in.out cscope.po.out cscope.files
|
||||
|
||||
distdir: $(DISTFILES)
|
||||
distdir: $(BUILT_SOURCES)
|
||||
$(MAKE) $(AM_MAKEFLAGS) distdir-am
|
||||
|
||||
distdir-am: $(DISTFILES)
|
||||
$(am__remove_distdir)
|
||||
test -d "$(distdir)" || mkdir "$(distdir)"
|
||||
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
||||
|
@ -609,7 +612,7 @@ distdir: $(DISTFILES)
|
|||
! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \
|
||||
|| chmod -R a+r "$(distdir)"
|
||||
dist-gzip: distdir
|
||||
tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
|
||||
tardir=$(distdir) && $(am__tar) | eval GZIP= gzip $(GZIP_ENV) -c >$(distdir).tar.gz
|
||||
$(am__post_remove_distdir)
|
||||
dist-bzip2: distdir
|
||||
tardir=$(distdir) && $(am__tar) | BZIP2=$${BZIP2--9} bzip2 -c >$(distdir).tar.bz2
|
||||
|
@ -634,7 +637,7 @@ dist-shar: distdir
|
|||
@echo WARNING: "Support for shar distribution archives is" \
|
||||
"deprecated." >&2
|
||||
@echo WARNING: "It will be removed altogether in Automake 2.0" >&2
|
||||
shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz
|
||||
shar $(distdir) | eval GZIP= gzip $(GZIP_ENV) -c >$(distdir).shar.gz
|
||||
$(am__post_remove_distdir)
|
||||
|
||||
dist-zip: distdir
|
||||
|
@ -652,7 +655,7 @@ dist dist-all:
|
|||
distcheck: dist
|
||||
case '$(DIST_ARCHIVES)' in \
|
||||
*.tar.gz*) \
|
||||
GZIP=$(GZIP_ENV) gzip -dc $(distdir).tar.gz | $(am__untar) ;;\
|
||||
eval GZIP= gzip $(GZIP_ENV) -dc $(distdir).tar.gz | $(am__untar) ;;\
|
||||
*.tar.bz2*) \
|
||||
bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\
|
||||
*.tar.lz*) \
|
||||
|
@ -662,7 +665,7 @@ distcheck: dist
|
|||
*.tar.Z*) \
|
||||
uncompress -c $(distdir).tar.Z | $(am__untar) ;;\
|
||||
*.shar.gz*) \
|
||||
GZIP=$(GZIP_ENV) gzip -dc $(distdir).shar.gz | unshar ;;\
|
||||
eval GZIP= gzip $(GZIP_ENV) -dc $(distdir).shar.gz | unshar ;;\
|
||||
*.zip*) \
|
||||
unzip $(distdir).zip ;;\
|
||||
esac
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
# generated automatically by aclocal 1.15 -*- Autoconf -*-
|
||||
# generated automatically by aclocal 1.16.1 -*- Autoconf -*-
|
||||
|
||||
# Copyright (C) 1996-2014 Free Software Foundation, Inc.
|
||||
# Copyright (C) 1996-2018 Free Software Foundation, Inc.
|
||||
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
|
@ -296,7 +296,7 @@ AS_VAR_COPY([$1], [pkg_cv_][$1])
|
|||
AS_VAR_IF([$1], [""], [$5], [$4])dnl
|
||||
])dnl PKG_CHECK_VAR
|
||||
|
||||
# Copyright (C) 2002-2014 Free Software Foundation, Inc.
|
||||
# Copyright (C) 2002-2018 Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
|
@ -308,10 +308,10 @@ AS_VAR_IF([$1], [""], [$5], [$4])dnl
|
|||
# generated from the m4 files accompanying Automake X.Y.
|
||||
# (This private macro should not be called outside this file.)
|
||||
AC_DEFUN([AM_AUTOMAKE_VERSION],
|
||||
[am__api_version='1.15'
|
||||
[am__api_version='1.16'
|
||||
dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to
|
||||
dnl require some minimum version. Point them to the right macro.
|
||||
m4_if([$1], [1.15], [],
|
||||
m4_if([$1], [1.16.1], [],
|
||||
[AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl
|
||||
])
|
||||
|
||||
|
@ -327,12 +327,12 @@ m4_define([_AM_AUTOCONF_VERSION], [])
|
|||
# Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced.
|
||||
# This function is AC_REQUIREd by AM_INIT_AUTOMAKE.
|
||||
AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
|
||||
[AM_AUTOMAKE_VERSION([1.15])dnl
|
||||
[AM_AUTOMAKE_VERSION([1.16.1])dnl
|
||||
m4_ifndef([AC_AUTOCONF_VERSION],
|
||||
[m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
|
||||
_AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))])
|
||||
|
||||
# Copyright (C) 2011-2014 Free Software Foundation, Inc.
|
||||
# Copyright (C) 2011-2018 Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
|
@ -394,7 +394,7 @@ AC_SUBST([AR])dnl
|
|||
|
||||
# AM_AUX_DIR_EXPAND -*- Autoconf -*-
|
||||
|
||||
# Copyright (C) 2001-2014 Free Software Foundation, Inc.
|
||||
# Copyright (C) 2001-2018 Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
|
@ -446,7 +446,7 @@ am_aux_dir=`cd "$ac_aux_dir" && pwd`
|
|||
|
||||
# AM_CONDITIONAL -*- Autoconf -*-
|
||||
|
||||
# Copyright (C) 1997-2014 Free Software Foundation, Inc.
|
||||
# Copyright (C) 1997-2018 Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
|
@ -477,7 +477,7 @@ AC_CONFIG_COMMANDS_PRE(
|
|||
Usually this means the macro was only invoked conditionally.]])
|
||||
fi])])
|
||||
|
||||
# Copyright (C) 1999-2014 Free Software Foundation, Inc.
|
||||
# Copyright (C) 1999-2018 Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
|
@ -668,13 +668,12 @@ _AM_SUBST_NOTMAKE([am__nodep])dnl
|
|||
|
||||
# Generate code to set up dependency tracking. -*- Autoconf -*-
|
||||
|
||||
# Copyright (C) 1999-2014 Free Software Foundation, Inc.
|
||||
# Copyright (C) 1999-2018 Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
|
||||
# _AM_OUTPUT_DEPENDENCY_COMMANDS
|
||||
# ------------------------------
|
||||
AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS],
|
||||
|
@ -682,49 +681,41 @@ AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS],
|
|||
# Older Autoconf quotes --file arguments for eval, but not when files
|
||||
# are listed without --file. Let's play safe and only enable the eval
|
||||
# if we detect the quoting.
|
||||
case $CONFIG_FILES in
|
||||
*\'*) eval set x "$CONFIG_FILES" ;;
|
||||
*) set x $CONFIG_FILES ;;
|
||||
esac
|
||||
# TODO: see whether this extra hack can be removed once we start
|
||||
# requiring Autoconf 2.70 or later.
|
||||
AS_CASE([$CONFIG_FILES],
|
||||
[*\'*], [eval set x "$CONFIG_FILES"],
|
||||
[*], [set x $CONFIG_FILES])
|
||||
shift
|
||||
for mf
|
||||
# Used to flag and report bootstrapping failures.
|
||||
am_rc=0
|
||||
for am_mf
|
||||
do
|
||||
# Strip MF so we end up with the name of the file.
|
||||
mf=`echo "$mf" | sed -e 's/:.*$//'`
|
||||
# Check whether this is an Automake generated Makefile or not.
|
||||
# We used to match only the files named 'Makefile.in', but
|
||||
# some people rename them; so instead we look at the file content.
|
||||
# Grep'ing the first line is not enough: some people post-process
|
||||
# each Makefile.in and add a new line on top of each file to say so.
|
||||
# Grep'ing the whole file is not good either: AIX grep has a line
|
||||
am_mf=`AS_ECHO(["$am_mf"]) | sed -e 's/:.*$//'`
|
||||
# Check whether this is an Automake generated Makefile which includes
|
||||
# dependency-tracking related rules and includes.
|
||||
# Grep'ing the whole file directly is not great: AIX grep has a line
|
||||
# limit of 2048, but all sed's we know have understand at least 4000.
|
||||
if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then
|
||||
dirpart=`AS_DIRNAME("$mf")`
|
||||
else
|
||||
continue
|
||||
fi
|
||||
# Extract the definition of DEPDIR, am__include, and am__quote
|
||||
# from the Makefile without running 'make'.
|
||||
DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
|
||||
test -z "$DEPDIR" && continue
|
||||
am__include=`sed -n 's/^am__include = //p' < "$mf"`
|
||||
test -z "$am__include" && continue
|
||||
am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
|
||||
# Find all dependency output files, they are included files with
|
||||
# $(DEPDIR) in their names. We invoke sed twice because it is the
|
||||
# simplest approach to changing $(DEPDIR) to its actual value in the
|
||||
# expansion.
|
||||
for file in `sed -n "
|
||||
s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \
|
||||
sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g'`; do
|
||||
# Make sure the directory exists.
|
||||
test -f "$dirpart/$file" && continue
|
||||
fdir=`AS_DIRNAME(["$file"])`
|
||||
AS_MKDIR_P([$dirpart/$fdir])
|
||||
# echo "creating $dirpart/$file"
|
||||
echo '# dummy' > "$dirpart/$file"
|
||||
done
|
||||
sed -n 's,^am--depfiles:.*,X,p' "$am_mf" | grep X >/dev/null 2>&1 \
|
||||
|| continue
|
||||
am_dirpart=`AS_DIRNAME(["$am_mf"])`
|
||||
am_filepart=`AS_BASENAME(["$am_mf"])`
|
||||
AM_RUN_LOG([cd "$am_dirpart" \
|
||||
&& sed -e '/# am--include-marker/d' "$am_filepart" \
|
||||
| $MAKE -f - am--depfiles]) || am_rc=$?
|
||||
done
|
||||
if test $am_rc -ne 0; then
|
||||
AC_MSG_FAILURE([Something went wrong bootstrapping makefile fragments
|
||||
for automatic dependency tracking. Try re-running configure with the
|
||||
'--disable-dependency-tracking' option to at least be able to build
|
||||
the package (albeit without support for automatic dependency tracking).])
|
||||
fi
|
||||
AS_UNSET([am_dirpart])
|
||||
AS_UNSET([am_filepart])
|
||||
AS_UNSET([am_mf])
|
||||
AS_UNSET([am_rc])
|
||||
rm -f conftest-deps.mk
|
||||
}
|
||||
])# _AM_OUTPUT_DEPENDENCY_COMMANDS
|
||||
|
||||
|
@ -733,18 +724,17 @@ AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS],
|
|||
# -----------------------------
|
||||
# This macro should only be invoked once -- use via AC_REQUIRE.
|
||||
#
|
||||
# This code is only required when automatic dependency tracking
|
||||
# is enabled. FIXME. This creates each '.P' file that we will
|
||||
# need in order to bootstrap the dependency handling code.
|
||||
# This code is only required when automatic dependency tracking is enabled.
|
||||
# This creates each '.Po' and '.Plo' makefile fragment that we'll need in
|
||||
# order to bootstrap the dependency handling code.
|
||||
AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS],
|
||||
[AC_CONFIG_COMMANDS([depfiles],
|
||||
[test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS],
|
||||
[AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"])
|
||||
])
|
||||
[AMDEP_TRUE="$AMDEP_TRUE" MAKE="${MAKE-make}"])])
|
||||
|
||||
# Do all the work for Automake. -*- Autoconf -*-
|
||||
|
||||
# Copyright (C) 1996-2014 Free Software Foundation, Inc.
|
||||
# Copyright (C) 1996-2018 Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
|
@ -831,8 +821,8 @@ AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl
|
|||
AC_REQUIRE([AC_PROG_MKDIR_P])dnl
|
||||
# For better backward compatibility. To be removed once Automake 1.9.x
|
||||
# dies out for good. For more background, see:
|
||||
# <http://lists.gnu.org/archive/html/automake/2012-07/msg00001.html>
|
||||
# <http://lists.gnu.org/archive/html/automake/2012-07/msg00014.html>
|
||||
# <https://lists.gnu.org/archive/html/automake/2012-07/msg00001.html>
|
||||
# <https://lists.gnu.org/archive/html/automake/2012-07/msg00014.html>
|
||||
AC_SUBST([mkdir_p], ['$(MKDIR_P)'])
|
||||
# We need awk for the "check" target (and possibly the TAP driver). The
|
||||
# system "awk" is bad on some platforms.
|
||||
|
@ -899,7 +889,7 @@ END
|
|||
Aborting the configuration process, to ensure you take notice of the issue.
|
||||
|
||||
You can download and install GNU coreutils to get an 'rm' implementation
|
||||
that behaves properly: <http://www.gnu.org/software/coreutils/>.
|
||||
that behaves properly: <https://www.gnu.org/software/coreutils/>.
|
||||
|
||||
If you want to complete the configuration process using your problematic
|
||||
'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM
|
||||
|
@ -941,7 +931,7 @@ for _am_header in $config_headers :; do
|
|||
done
|
||||
echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count])
|
||||
|
||||
# Copyright (C) 2001-2014 Free Software Foundation, Inc.
|
||||
# Copyright (C) 2001-2018 Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
|
@ -962,7 +952,7 @@ if test x"${install_sh+set}" != xset; then
|
|||
fi
|
||||
AC_SUBST([install_sh])])
|
||||
|
||||
# Copyright (C) 2003-2014 Free Software Foundation, Inc.
|
||||
# Copyright (C) 2003-2018 Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
|
@ -981,7 +971,7 @@ fi
|
|||
rmdir .tst 2>/dev/null
|
||||
AC_SUBST([am__leading_dot])])
|
||||
|
||||
# Copyright (C) 1998-2014 Free Software Foundation, Inc.
|
||||
# Copyright (C) 1998-2018 Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
|
@ -1002,7 +992,7 @@ fi])
|
|||
# Add --enable-maintainer-mode option to configure. -*- Autoconf -*-
|
||||
# From Jim Meyering
|
||||
|
||||
# Copyright (C) 1996-2014 Free Software Foundation, Inc.
|
||||
# Copyright (C) 1996-2018 Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
|
@ -1037,7 +1027,7 @@ AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles])
|
|||
|
||||
# Check to see how 'make' treats includes. -*- Autoconf -*-
|
||||
|
||||
# Copyright (C) 2001-2014 Free Software Foundation, Inc.
|
||||
# Copyright (C) 2001-2018 Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
|
@ -1045,49 +1035,42 @@ AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles])
|
|||
|
||||
# AM_MAKE_INCLUDE()
|
||||
# -----------------
|
||||
# Check to see how make treats includes.
|
||||
# Check whether make has an 'include' directive that can support all
|
||||
# the idioms we need for our automatic dependency tracking code.
|
||||
AC_DEFUN([AM_MAKE_INCLUDE],
|
||||
[am_make=${MAKE-make}
|
||||
cat > confinc << 'END'
|
||||
[AC_MSG_CHECKING([whether ${MAKE-make} supports the include directive])
|
||||
cat > confinc.mk << 'END'
|
||||
am__doit:
|
||||
@echo this is the am__doit target
|
||||
@echo this is the am__doit target >confinc.out
|
||||
.PHONY: am__doit
|
||||
END
|
||||
# If we don't find an include directive, just comment out the code.
|
||||
AC_MSG_CHECKING([for style of include used by $am_make])
|
||||
am__include="#"
|
||||
am__quote=
|
||||
_am_result=none
|
||||
# First try GNU make style include.
|
||||
echo "include confinc" > confmf
|
||||
# Ignore all kinds of additional output from 'make'.
|
||||
case `$am_make -s -f confmf 2> /dev/null` in #(
|
||||
*the\ am__doit\ target*)
|
||||
am__include=include
|
||||
am__quote=
|
||||
_am_result=GNU
|
||||
;;
|
||||
esac
|
||||
# Now try BSD make style include.
|
||||
if test "$am__include" = "#"; then
|
||||
echo '.include "confinc"' > confmf
|
||||
case `$am_make -s -f confmf 2> /dev/null` in #(
|
||||
*the\ am__doit\ target*)
|
||||
am__include=.include
|
||||
am__quote="\""
|
||||
_am_result=BSD
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
AC_SUBST([am__include])
|
||||
AC_SUBST([am__quote])
|
||||
AC_MSG_RESULT([$_am_result])
|
||||
rm -f confinc confmf
|
||||
])
|
||||
# BSD make does it like this.
|
||||
echo '.include "confinc.mk" # ignored' > confmf.BSD
|
||||
# Other make implementations (GNU, Solaris 10, AIX) do it like this.
|
||||
echo 'include confinc.mk # ignored' > confmf.GNU
|
||||
_am_result=no
|
||||
for s in GNU BSD; do
|
||||
AM_RUN_LOG([${MAKE-make} -f confmf.$s && cat confinc.out])
|
||||
AS_CASE([$?:`cat confinc.out 2>/dev/null`],
|
||||
['0:this is the am__doit target'],
|
||||
[AS_CASE([$s],
|
||||
[BSD], [am__include='.include' am__quote='"'],
|
||||
[am__include='include' am__quote=''])])
|
||||
if test "$am__include" != "#"; then
|
||||
_am_result="yes ($s style)"
|
||||
break
|
||||
fi
|
||||
done
|
||||
rm -f confinc.* confmf.*
|
||||
AC_MSG_RESULT([${_am_result}])
|
||||
AC_SUBST([am__include])])
|
||||
AC_SUBST([am__quote])])
|
||||
|
||||
# Fake the existence of programs that GNU maintainers use. -*- Autoconf -*-
|
||||
|
||||
# Copyright (C) 1997-2014 Free Software Foundation, Inc.
|
||||
# Copyright (C) 1997-2018 Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
|
@ -1126,7 +1109,7 @@ fi
|
|||
|
||||
# Helper functions for option handling. -*- Autoconf -*-
|
||||
|
||||
# Copyright (C) 2001-2014 Free Software Foundation, Inc.
|
||||
# Copyright (C) 2001-2018 Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
|
@ -1155,7 +1138,7 @@ AC_DEFUN([_AM_SET_OPTIONS],
|
|||
AC_DEFUN([_AM_IF_OPTION],
|
||||
[m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])])
|
||||
|
||||
# Copyright (C) 1999-2014 Free Software Foundation, Inc.
|
||||
# Copyright (C) 1999-2018 Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
|
@ -1202,7 +1185,7 @@ AC_LANG_POP([C])])
|
|||
# For backward compatibility.
|
||||
AC_DEFUN_ONCE([AM_PROG_CC_C_O], [AC_REQUIRE([AC_PROG_CC])])
|
||||
|
||||
# Copyright (C) 2001-2014 Free Software Foundation, Inc.
|
||||
# Copyright (C) 2001-2018 Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
|
@ -1221,7 +1204,7 @@ AC_DEFUN([AM_RUN_LOG],
|
|||
|
||||
# Check to make sure that the build environment is sane. -*- Autoconf -*-
|
||||
|
||||
# Copyright (C) 1996-2014 Free Software Foundation, Inc.
|
||||
# Copyright (C) 1996-2018 Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
|
@ -1302,7 +1285,7 @@ AC_CONFIG_COMMANDS_PRE(
|
|||
rm -f conftest.file
|
||||
])
|
||||
|
||||
# Copyright (C) 2009-2014 Free Software Foundation, Inc.
|
||||
# Copyright (C) 2009-2018 Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
|
@ -1362,7 +1345,7 @@ AC_SUBST([AM_BACKSLASH])dnl
|
|||
_AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl
|
||||
])
|
||||
|
||||
# Copyright (C) 2001-2014 Free Software Foundation, Inc.
|
||||
# Copyright (C) 2001-2018 Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
|
@ -1390,7 +1373,7 @@ fi
|
|||
INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
|
||||
AC_SUBST([INSTALL_STRIP_PROGRAM])])
|
||||
|
||||
# Copyright (C) 2006-2014 Free Software Foundation, Inc.
|
||||
# Copyright (C) 2006-2018 Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
|
@ -1409,7 +1392,7 @@ AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)])
|
|||
|
||||
# Check how to create a tarball. -*- Autoconf -*-
|
||||
|
||||
# Copyright (C) 2004-2014 Free Software Foundation, Inc.
|
||||
# Copyright (C) 2004-2018 Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
|
|
2
ar-lib
2
ar-lib
|
@ -4,7 +4,7 @@
|
|||
me=ar-lib
|
||||
scriptversion=2012-03-01.08; # UTC
|
||||
|
||||
# Copyright (C) 2010-2013 Free Software Foundation, Inc.
|
||||
# Copyright (C) 2010-2017 Free Software Foundation, Inc.
|
||||
# Written by Peter Rosin <peda@lysator.liu.se>.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
|
|
2
compile
2
compile
|
@ -3,7 +3,7 @@
|
|||
|
||||
scriptversion=2012-10-14.11; # UTC
|
||||
|
||||
# Copyright (C) 1999-2013 Free Software Foundation, Inc.
|
||||
# Copyright (C) 1999-2014 Free Software Foundation, Inc.
|
||||
# Written by Tom Tromey <tromey@cygnus.com>.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -1,8 +1,8 @@
|
|||
#! /bin/sh
|
||||
# Configuration validation subroutine script.
|
||||
# Copyright 1992-2016 Free Software Foundation, Inc.
|
||||
# Copyright 1992-2018 Free Software Foundation, Inc.
|
||||
|
||||
timestamp='2016-11-04'
|
||||
timestamp='2018-02-22'
|
||||
|
||||
# This file is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License as published by
|
||||
|
@ -15,7 +15,7 @@ timestamp='2016-11-04'
|
|||
# General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program; if not, see <http://www.gnu.org/licenses/>.
|
||||
# along with this program; if not, see <https://www.gnu.org/licenses/>.
|
||||
#
|
||||
# As a special exception to the GNU General Public License, if you
|
||||
# distribute this file as part of a program that contains a
|
||||
|
@ -33,7 +33,7 @@ timestamp='2016-11-04'
|
|||
# Otherwise, we print the canonical config type on stdout and succeed.
|
||||
|
||||
# You can get the latest version of this script from:
|
||||
# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub
|
||||
# https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub
|
||||
|
||||
# This file is supposed to be the same for all GNU packages
|
||||
# and recognize all the CPU types, system types and aliases
|
||||
|
@ -57,7 +57,7 @@ Usage: $0 [OPTION] CPU-MFR-OPSYS or ALIAS
|
|||
|
||||
Canonicalize a configuration name.
|
||||
|
||||
Operation modes:
|
||||
Options:
|
||||
-h, --help print this help, then exit
|
||||
-t, --time-stamp print date of last modification, then exit
|
||||
-v, --version print version number, then exit
|
||||
|
@ -67,7 +67,7 @@ Report bugs and patches to <config-patches@gnu.org>."
|
|||
version="\
|
||||
GNU config.sub ($timestamp)
|
||||
|
||||
Copyright 1992-2016 Free Software Foundation, Inc.
|
||||
Copyright 1992-2018 Free Software Foundation, Inc.
|
||||
|
||||
This is free software; see the source for copying conditions. There is NO
|
||||
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
|
||||
|
@ -94,7 +94,7 @@ while test $# -gt 0 ; do
|
|||
|
||||
*local*)
|
||||
# First pass through any local machine types.
|
||||
echo $1
|
||||
echo "$1"
|
||||
exit ;;
|
||||
|
||||
* )
|
||||
|
@ -112,7 +112,7 @@ esac
|
|||
|
||||
# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any).
|
||||
# Here we must recognize all the valid KERNEL-OS combinations.
|
||||
maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
|
||||
maybe_os=`echo "$1" | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
|
||||
case $maybe_os in
|
||||
nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \
|
||||
linux-musl* | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \
|
||||
|
@ -120,16 +120,16 @@ case $maybe_os in
|
|||
kopensolaris*-gnu* | cloudabi*-eabi* | \
|
||||
storm-chaos* | os2-emx* | rtmk-nova*)
|
||||
os=-$maybe_os
|
||||
basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
|
||||
basic_machine=`echo "$1" | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
|
||||
;;
|
||||
android-linux)
|
||||
os=-linux-android
|
||||
basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`-unknown
|
||||
basic_machine=`echo "$1" | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`-unknown
|
||||
;;
|
||||
*)
|
||||
basic_machine=`echo $1 | sed 's/-[^-]*$//'`
|
||||
if [ $basic_machine != $1 ]
|
||||
then os=`echo $1 | sed 's/.*-/-/'`
|
||||
basic_machine=`echo "$1" | sed 's/-[^-]*$//'`
|
||||
if [ "$basic_machine" != "$1" ]
|
||||
then os=`echo "$1" | sed 's/.*-/-/'`
|
||||
else os=; fi
|
||||
;;
|
||||
esac
|
||||
|
@ -178,44 +178,44 @@ case $os in
|
|||
;;
|
||||
-sco6)
|
||||
os=-sco5v6
|
||||
basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
|
||||
basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
|
||||
;;
|
||||
-sco5)
|
||||
os=-sco3.2v5
|
||||
basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
|
||||
basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
|
||||
;;
|
||||
-sco4)
|
||||
os=-sco3.2v4
|
||||
basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
|
||||
basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
|
||||
;;
|
||||
-sco3.2.[4-9]*)
|
||||
os=`echo $os | sed -e 's/sco3.2./sco3.2v/'`
|
||||
basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
|
||||
basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
|
||||
;;
|
||||
-sco3.2v[4-9]*)
|
||||
# Don't forget version if it is 3.2v4 or newer.
|
||||
basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
|
||||
basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
|
||||
;;
|
||||
-sco5v6*)
|
||||
# Don't forget version if it is 3.2v4 or newer.
|
||||
basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
|
||||
basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
|
||||
;;
|
||||
-sco*)
|
||||
os=-sco3.2v2
|
||||
basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
|
||||
basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
|
||||
;;
|
||||
-udk*)
|
||||
basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
|
||||
basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
|
||||
;;
|
||||
-isc)
|
||||
os=-isc2.2
|
||||
basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
|
||||
basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
|
||||
;;
|
||||
-clix*)
|
||||
basic_machine=clipper-intergraph
|
||||
;;
|
||||
-isc*)
|
||||
basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
|
||||
basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
|
||||
;;
|
||||
-lynx*178)
|
||||
os=-lynxos178
|
||||
|
@ -227,10 +227,7 @@ case $os in
|
|||
os=-lynxos
|
||||
;;
|
||||
-ptx*)
|
||||
basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'`
|
||||
;;
|
||||
-windowsnt*)
|
||||
os=`echo $os | sed -e 's/windowsnt/winnt/'`
|
||||
basic_machine=`echo "$1" | sed -e 's/86-.*/86-sequent/'`
|
||||
;;
|
||||
-psos*)
|
||||
os=-psos
|
||||
|
@ -263,7 +260,7 @@ case $basic_machine in
|
|||
| fido | fr30 | frv | ft32 \
|
||||
| h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
|
||||
| hexagon \
|
||||
| i370 | i860 | i960 | ia64 \
|
||||
| i370 | i860 | i960 | ia16 | ia64 \
|
||||
| ip2k | iq2000 \
|
||||
| k1om \
|
||||
| le32 | le64 \
|
||||
|
@ -299,7 +296,7 @@ case $basic_machine in
|
|||
| nios | nios2 | nios2eb | nios2el \
|
||||
| ns16k | ns32k \
|
||||
| open8 | or1k | or1knd | or32 \
|
||||
| pdp10 | pdp11 | pj | pjl \
|
||||
| pdp10 | pj | pjl \
|
||||
| powerpc | powerpc64 | powerpc64le | powerpcle \
|
||||
| pru \
|
||||
| pyramid \
|
||||
|
@ -315,7 +312,7 @@ case $basic_machine in
|
|||
| ubicom32 \
|
||||
| v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \
|
||||
| visium \
|
||||
| we32k \
|
||||
| wasm32 \
|
||||
| x86 | xc16x | xstormy16 | xtensa \
|
||||
| z8k | z80)
|
||||
basic_machine=$basic_machine-unknown
|
||||
|
@ -336,7 +333,7 @@ case $basic_machine in
|
|||
basic_machine=$basic_machine-unknown
|
||||
os=-none
|
||||
;;
|
||||
m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k)
|
||||
m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65)
|
||||
;;
|
||||
ms1)
|
||||
basic_machine=mt-unknown
|
||||
|
@ -365,7 +362,7 @@ case $basic_machine in
|
|||
;;
|
||||
# Object if more than one company name word.
|
||||
*-*-*)
|
||||
echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
|
||||
echo Invalid configuration \`"$1"\': machine \`"$basic_machine"\' not recognized 1>&2
|
||||
exit 1
|
||||
;;
|
||||
# Recognize the basic CPU types with company name.
|
||||
|
@ -388,7 +385,7 @@ case $basic_machine in
|
|||
| h8300-* | h8500-* \
|
||||
| hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
|
||||
| hexagon-* \
|
||||
| i*86-* | i860-* | i960-* | ia64-* \
|
||||
| i*86-* | i860-* | i960-* | ia16-* | ia64-* \
|
||||
| ip2k-* | iq2000-* \
|
||||
| k1om-* \
|
||||
| le32-* | le64-* \
|
||||
|
@ -446,6 +443,7 @@ case $basic_machine in
|
|||
| v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \
|
||||
| vax-* \
|
||||
| visium-* \
|
||||
| wasm32-* \
|
||||
| we32k-* \
|
||||
| x86-* | x86_64-* | xc16x-* | xps100-* \
|
||||
| xstormy16-* | xtensa*-* \
|
||||
|
@ -459,7 +457,7 @@ case $basic_machine in
|
|||
# Recognize the various machine names and aliases which stand
|
||||
# for a CPU type and a company and sometimes even an OS.
|
||||
386bsd)
|
||||
basic_machine=i386-unknown
|
||||
basic_machine=i386-pc
|
||||
os=-bsd
|
||||
;;
|
||||
3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc)
|
||||
|
@ -493,7 +491,7 @@ case $basic_machine in
|
|||
basic_machine=x86_64-pc
|
||||
;;
|
||||
amd64-*)
|
||||
basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'`
|
||||
basic_machine=x86_64-`echo "$basic_machine" | sed 's/^[^-]*-//'`
|
||||
;;
|
||||
amdahl)
|
||||
basic_machine=580-amdahl
|
||||
|
@ -538,7 +536,7 @@ case $basic_machine in
|
|||
os=-linux
|
||||
;;
|
||||
blackfin-*)
|
||||
basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'`
|
||||
basic_machine=bfin-`echo "$basic_machine" | sed 's/^[^-]*-//'`
|
||||
os=-linux
|
||||
;;
|
||||
bluegene*)
|
||||
|
@ -546,13 +544,13 @@ case $basic_machine in
|
|||
os=-cnk
|
||||
;;
|
||||
c54x-*)
|
||||
basic_machine=tic54x-`echo $basic_machine | sed 's/^[^-]*-//'`
|
||||
basic_machine=tic54x-`echo "$basic_machine" | sed 's/^[^-]*-//'`
|
||||
;;
|
||||
c55x-*)
|
||||
basic_machine=tic55x-`echo $basic_machine | sed 's/^[^-]*-//'`
|
||||
basic_machine=tic55x-`echo "$basic_machine" | sed 's/^[^-]*-//'`
|
||||
;;
|
||||
c6x-*)
|
||||
basic_machine=tic6x-`echo $basic_machine | sed 's/^[^-]*-//'`
|
||||
basic_machine=tic6x-`echo "$basic_machine" | sed 's/^[^-]*-//'`
|
||||
;;
|
||||
c90)
|
||||
basic_machine=c90-cray
|
||||
|
@ -641,7 +639,7 @@ case $basic_machine in
|
|||
basic_machine=rs6000-bull
|
||||
os=-bosx
|
||||
;;
|
||||
dpx2* | dpx2*-bull)
|
||||
dpx2*)
|
||||
basic_machine=m68k-bull
|
||||
os=-sysv3
|
||||
;;
|
||||
|
@ -650,7 +648,7 @@ case $basic_machine in
|
|||
os=$os"spe"
|
||||
;;
|
||||
e500v[12]-*)
|
||||
basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
|
||||
basic_machine=powerpc-`echo "$basic_machine" | sed 's/^[^-]*-//'`
|
||||
os=$os"spe"
|
||||
;;
|
||||
ebmon29k)
|
||||
|
@ -742,9 +740,6 @@ case $basic_machine in
|
|||
hp9k8[0-9][0-9] | hp8[0-9][0-9])
|
||||
basic_machine=hppa1.0-hp
|
||||
;;
|
||||
hppa-next)
|
||||
os=-nextstep3
|
||||
;;
|
||||
hppaosf)
|
||||
basic_machine=hppa1.1-hp
|
||||
os=-osf
|
||||
|
@ -757,26 +752,26 @@ case $basic_machine in
|
|||
basic_machine=i370-ibm
|
||||
;;
|
||||
i*86v32)
|
||||
basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
|
||||
basic_machine=`echo "$1" | sed -e 's/86.*/86-pc/'`
|
||||
os=-sysv32
|
||||
;;
|
||||
i*86v4*)
|
||||
basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
|
||||
basic_machine=`echo "$1" | sed -e 's/86.*/86-pc/'`
|
||||
os=-sysv4
|
||||
;;
|
||||
i*86v)
|
||||
basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
|
||||
basic_machine=`echo "$1" | sed -e 's/86.*/86-pc/'`
|
||||
os=-sysv
|
||||
;;
|
||||
i*86sol2)
|
||||
basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
|
||||
basic_machine=`echo "$1" | sed -e 's/86.*/86-pc/'`
|
||||
os=-solaris2
|
||||
;;
|
||||
i386mach)
|
||||
basic_machine=i386-mach
|
||||
os=-mach
|
||||
;;
|
||||
i386-vsta | vsta)
|
||||
vsta)
|
||||
basic_machine=i386-unknown
|
||||
os=-vsta
|
||||
;;
|
||||
|
@ -795,19 +790,16 @@ case $basic_machine in
|
|||
os=-sysv
|
||||
;;
|
||||
leon-*|leon[3-9]-*)
|
||||
basic_machine=sparc-`echo $basic_machine | sed 's/-.*//'`
|
||||
basic_machine=sparc-`echo "$basic_machine" | sed 's/-.*//'`
|
||||
;;
|
||||
m68knommu)
|
||||
basic_machine=m68k-unknown
|
||||
os=-linux
|
||||
;;
|
||||
m68knommu-*)
|
||||
basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'`
|
||||
basic_machine=m68k-`echo "$basic_machine" | sed 's/^[^-]*-//'`
|
||||
os=-linux
|
||||
;;
|
||||
m88k-omron*)
|
||||
basic_machine=m88k-omron
|
||||
;;
|
||||
magnum | m3230)
|
||||
basic_machine=mips-mips
|
||||
os=-sysv
|
||||
|
@ -839,10 +831,10 @@ case $basic_machine in
|
|||
os=-mint
|
||||
;;
|
||||
mips3*-*)
|
||||
basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`
|
||||
basic_machine=`echo "$basic_machine" | sed -e 's/mips3/mips64/'`
|
||||
;;
|
||||
mips3*)
|
||||
basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown
|
||||
basic_machine=`echo "$basic_machine" | sed -e 's/mips3/mips64/'`-unknown
|
||||
;;
|
||||
monitor)
|
||||
basic_machine=m68k-rom68k
|
||||
|
@ -861,7 +853,7 @@ case $basic_machine in
|
|||
os=-msdos
|
||||
;;
|
||||
ms1-*)
|
||||
basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'`
|
||||
basic_machine=`echo "$basic_machine" | sed -e 's/ms1-/mt-/'`
|
||||
;;
|
||||
msys)
|
||||
basic_machine=i686-pc
|
||||
|
@ -903,7 +895,7 @@ case $basic_machine in
|
|||
basic_machine=v70-nec
|
||||
os=-sysv
|
||||
;;
|
||||
next | m*-next )
|
||||
next | m*-next)
|
||||
basic_machine=m68k-next
|
||||
case $os in
|
||||
-nextstep* )
|
||||
|
@ -948,6 +940,12 @@ case $basic_machine in
|
|||
nsr-tandem)
|
||||
basic_machine=nsr-tandem
|
||||
;;
|
||||
nsv-tandem)
|
||||
basic_machine=nsv-tandem
|
||||
;;
|
||||
nsx-tandem)
|
||||
basic_machine=nsx-tandem
|
||||
;;
|
||||
op50n-* | op60c-*)
|
||||
basic_machine=hppa1.1-oki
|
||||
os=-proelf
|
||||
|
@ -980,7 +978,7 @@ case $basic_machine in
|
|||
os=-linux
|
||||
;;
|
||||
parisc-*)
|
||||
basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'`
|
||||
basic_machine=hppa-`echo "$basic_machine" | sed 's/^[^-]*-//'`
|
||||
os=-linux
|
||||
;;
|
||||
pbd)
|
||||
|
@ -996,7 +994,7 @@ case $basic_machine in
|
|||
basic_machine=i386-pc
|
||||
;;
|
||||
pc98-*)
|
||||
basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'`
|
||||
basic_machine=i386-`echo "$basic_machine" | sed 's/^[^-]*-//'`
|
||||
;;
|
||||
pentium | p5 | k5 | k6 | nexgen | viac3)
|
||||
basic_machine=i586-pc
|
||||
|
@ -1011,16 +1009,16 @@ case $basic_machine in
|
|||
basic_machine=i786-pc
|
||||
;;
|
||||
pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*)
|
||||
basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'`
|
||||
basic_machine=i586-`echo "$basic_machine" | sed 's/^[^-]*-//'`
|
||||
;;
|
||||
pentiumpro-* | p6-* | 6x86-* | athlon-*)
|
||||
basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
|
||||
basic_machine=i686-`echo "$basic_machine" | sed 's/^[^-]*-//'`
|
||||
;;
|
||||
pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*)
|
||||
basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
|
||||
basic_machine=i686-`echo "$basic_machine" | sed 's/^[^-]*-//'`
|
||||
;;
|
||||
pentium4-*)
|
||||
basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'`
|
||||
basic_machine=i786-`echo "$basic_machine" | sed 's/^[^-]*-//'`
|
||||
;;
|
||||
pn)
|
||||
basic_machine=pn-gould
|
||||
|
@ -1030,23 +1028,23 @@ case $basic_machine in
|
|||
ppc | ppcbe) basic_machine=powerpc-unknown
|
||||
;;
|
||||
ppc-* | ppcbe-*)
|
||||
basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
|
||||
basic_machine=powerpc-`echo "$basic_machine" | sed 's/^[^-]*-//'`
|
||||
;;
|
||||
ppcle | powerpclittle)
|
||||
basic_machine=powerpcle-unknown
|
||||
;;
|
||||
ppcle-* | powerpclittle-*)
|
||||
basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'`
|
||||
basic_machine=powerpcle-`echo "$basic_machine" | sed 's/^[^-]*-//'`
|
||||
;;
|
||||
ppc64) basic_machine=powerpc64-unknown
|
||||
;;
|
||||
ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'`
|
||||
ppc64-*) basic_machine=powerpc64-`echo "$basic_machine" | sed 's/^[^-]*-//'`
|
||||
;;
|
||||
ppc64le | powerpc64little)
|
||||
basic_machine=powerpc64le-unknown
|
||||
;;
|
||||
ppc64le-* | powerpc64little-*)
|
||||
basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'`
|
||||
basic_machine=powerpc64le-`echo "$basic_machine" | sed 's/^[^-]*-//'`
|
||||
;;
|
||||
ps2)
|
||||
basic_machine=i386-ibm
|
||||
|
@ -1100,17 +1098,10 @@ case $basic_machine in
|
|||
sequent)
|
||||
basic_machine=i386-sequent
|
||||
;;
|
||||
sh)
|
||||
basic_machine=sh-hitachi
|
||||
os=-hms
|
||||
;;
|
||||
sh5el)
|
||||
basic_machine=sh5le-unknown
|
||||
;;
|
||||
sh64)
|
||||
basic_machine=sh64-unknown
|
||||
;;
|
||||
sparclite-wrs | simso-wrs)
|
||||
simso-wrs)
|
||||
basic_machine=sparclite-wrs
|
||||
os=-vxworks
|
||||
;;
|
||||
|
@ -1129,7 +1120,7 @@ case $basic_machine in
|
|||
os=-sysv4
|
||||
;;
|
||||
strongarm-* | thumb-*)
|
||||
basic_machine=arm-`echo $basic_machine | sed 's/^[^-]*-//'`
|
||||
basic_machine=arm-`echo "$basic_machine" | sed 's/^[^-]*-//'`
|
||||
;;
|
||||
sun2)
|
||||
basic_machine=m68000-sun
|
||||
|
@ -1251,6 +1242,9 @@ case $basic_machine in
|
|||
basic_machine=hppa1.1-winbond
|
||||
os=-proelf
|
||||
;;
|
||||
x64)
|
||||
basic_machine=x86_64-pc
|
||||
;;
|
||||
xbox)
|
||||
basic_machine=i686-pc
|
||||
os=-mingw32
|
||||
|
@ -1259,20 +1253,12 @@ case $basic_machine in
|
|||
basic_machine=xps100-honeywell
|
||||
;;
|
||||
xscale-* | xscalee[bl]-*)
|
||||
basic_machine=`echo $basic_machine | sed 's/^xscale/arm/'`
|
||||
basic_machine=`echo "$basic_machine" | sed 's/^xscale/arm/'`
|
||||
;;
|
||||
ymp)
|
||||
basic_machine=ymp-cray
|
||||
os=-unicos
|
||||
;;
|
||||
z8k-*-coff)
|
||||
basic_machine=z8k-unknown
|
||||
os=-sim
|
||||
;;
|
||||
z80-*-coff)
|
||||
basic_machine=z80-unknown
|
||||
os=-sim
|
||||
;;
|
||||
none)
|
||||
basic_machine=none-none
|
||||
os=-none
|
||||
|
@ -1301,10 +1287,6 @@ case $basic_machine in
|
|||
vax)
|
||||
basic_machine=vax-dec
|
||||
;;
|
||||
pdp10)
|
||||
# there are many clones, so DEC is not a safe bet
|
||||
basic_machine=pdp10-unknown
|
||||
;;
|
||||
pdp11)
|
||||
basic_machine=pdp11-dec
|
||||
;;
|
||||
|
@ -1314,9 +1296,6 @@ case $basic_machine in
|
|||
sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele)
|
||||
basic_machine=sh-unknown
|
||||
;;
|
||||
sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v)
|
||||
basic_machine=sparc-sun
|
||||
;;
|
||||
cydra)
|
||||
basic_machine=cydra-cydrome
|
||||
;;
|
||||
|
@ -1336,7 +1315,7 @@ case $basic_machine in
|
|||
# Make sure to match an already-canonicalized machine name.
|
||||
;;
|
||||
*)
|
||||
echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
|
||||
echo Invalid configuration \`"$1"\': machine \`"$basic_machine"\' not recognized 1>&2
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
@ -1344,10 +1323,10 @@ esac
|
|||
# Here we canonicalize certain aliases for manufacturers.
|
||||
case $basic_machine in
|
||||
*-digital*)
|
||||
basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'`
|
||||
basic_machine=`echo "$basic_machine" | sed 's/digital.*/dec/'`
|
||||
;;
|
||||
*-commodore*)
|
||||
basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'`
|
||||
basic_machine=`echo "$basic_machine" | sed 's/commodore.*/cbm/'`
|
||||
;;
|
||||
*)
|
||||
;;
|
||||
|
@ -1358,8 +1337,8 @@ esac
|
|||
if [ x"$os" != x"" ]
|
||||
then
|
||||
case $os in
|
||||
# First match some system type aliases
|
||||
# that might get confused with valid system types.
|
||||
# First match some system type aliases that might get confused
|
||||
# with valid system types.
|
||||
# -solaris* is a basic system type, with this one exception.
|
||||
-auroraux)
|
||||
os=-auroraux
|
||||
|
@ -1370,18 +1349,19 @@ case $os in
|
|||
-solaris)
|
||||
os=-solaris2
|
||||
;;
|
||||
-svr4*)
|
||||
os=-sysv4
|
||||
;;
|
||||
-unixware*)
|
||||
os=-sysv4.2uw
|
||||
;;
|
||||
-gnu/linux*)
|
||||
os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'`
|
||||
;;
|
||||
# First accept the basic system types.
|
||||
# es1800 is here to avoid being matched by es* (a different OS)
|
||||
-es1800*)
|
||||
os=-ose
|
||||
;;
|
||||
# Now accept the basic system types.
|
||||
# The portable systems comes first.
|
||||
# Each alternative MUST END IN A *, to match a version number.
|
||||
# Each alternative MUST end in a * to match a version number.
|
||||
# -sysv* is not here because it comes later, after sysvr4.
|
||||
-gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
|
||||
| -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\
|
||||
|
@ -1391,25 +1371,26 @@ case $os in
|
|||
| -aos* | -aros* | -cloudabi* | -sortix* \
|
||||
| -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
|
||||
| -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
|
||||
| -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \
|
||||
| -hiux* | -knetbsd* | -mirbsd* | -netbsd* \
|
||||
| -bitrig* | -openbsd* | -solidbsd* | -libertybsd* \
|
||||
| -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \
|
||||
| -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
|
||||
| -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
|
||||
| -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
|
||||
| -chorusos* | -chorusrdb* | -cegcc* \
|
||||
| -chorusos* | -chorusrdb* | -cegcc* | -glidix* \
|
||||
| -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
|
||||
| -midipix* | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \
|
||||
| -linux-newlib* | -linux-musl* | -linux-uclibc* \
|
||||
| -uxpv* | -beos* | -mpeix* | -udk* | -moxiebox* \
|
||||
| -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \
|
||||
| -interix* | -uwin* | -mks* | -rhapsody* | -darwin* \
|
||||
| -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
|
||||
| -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \
|
||||
| -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
|
||||
| -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
|
||||
| -morphos* | -superux* | -rtmk* | -windiss* \
|
||||
| -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \
|
||||
| -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es* \
|
||||
| -onefs* | -tirtos* | -phoenix* | -fuchsia*)
|
||||
| -onefs* | -tirtos* | -phoenix* | -fuchsia* | -redox* | -bme* \
|
||||
| -midnightbsd*)
|
||||
# Remember, each alternative MUST END IN *, to match a version number.
|
||||
;;
|
||||
-qnx*)
|
||||
|
@ -1426,12 +1407,12 @@ case $os in
|
|||
-nto*)
|
||||
os=`echo $os | sed -e 's|nto|nto-qnx|'`
|
||||
;;
|
||||
-sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \
|
||||
| -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \
|
||||
-sim | -xray | -os68k* | -v88r* \
|
||||
| -windows* | -osx | -abug | -netware* | -os9* \
|
||||
| -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*)
|
||||
;;
|
||||
-mac*)
|
||||
os=`echo $os | sed -e 's|mac|macos|'`
|
||||
os=`echo "$os" | sed -e 's|mac|macos|'`
|
||||
;;
|
||||
-linux-dietlibc)
|
||||
os=-linux-dietlibc
|
||||
|
@ -1440,10 +1421,10 @@ case $os in
|
|||
os=`echo $os | sed -e 's|linux|linux-gnu|'`
|
||||
;;
|
||||
-sunos5*)
|
||||
os=`echo $os | sed -e 's|sunos5|solaris2|'`
|
||||
os=`echo "$os" | sed -e 's|sunos5|solaris2|'`
|
||||
;;
|
||||
-sunos6*)
|
||||
os=`echo $os | sed -e 's|sunos6|solaris3|'`
|
||||
os=`echo "$os" | sed -e 's|sunos6|solaris3|'`
|
||||
;;
|
||||
-opened*)
|
||||
os=-openedition
|
||||
|
@ -1454,12 +1435,6 @@ case $os in
|
|||
-wince*)
|
||||
os=-wince
|
||||
;;
|
||||
-osfrose*)
|
||||
os=-osfrose
|
||||
;;
|
||||
-osf*)
|
||||
os=-osf
|
||||
;;
|
||||
-utek*)
|
||||
os=-bsd
|
||||
;;
|
||||
|
@ -1484,7 +1459,7 @@ case $os in
|
|||
-nova*)
|
||||
os=-rtmk-nova
|
||||
;;
|
||||
-ns2 )
|
||||
-ns2)
|
||||
os=-nextstep2
|
||||
;;
|
||||
-nsk*)
|
||||
|
@ -1506,7 +1481,7 @@ case $os in
|
|||
-oss*)
|
||||
os=-sysv3
|
||||
;;
|
||||
-svr4)
|
||||
-svr4*)
|
||||
os=-sysv4
|
||||
;;
|
||||
-svr3)
|
||||
|
@ -1521,24 +1496,28 @@ case $os in
|
|||
-ose*)
|
||||
os=-ose
|
||||
;;
|
||||
-es1800*)
|
||||
os=-ose
|
||||
;;
|
||||
-xenix)
|
||||
os=-xenix
|
||||
;;
|
||||
-*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
|
||||
os=-mint
|
||||
;;
|
||||
-aros*)
|
||||
os=-aros
|
||||
;;
|
||||
-zvmoe)
|
||||
os=-zvmoe
|
||||
;;
|
||||
-dicos*)
|
||||
os=-dicos
|
||||
;;
|
||||
-pikeos*)
|
||||
# Until real need of OS specific support for
|
||||
# particular features comes up, bare metal
|
||||
# configurations are quite functional.
|
||||
case $basic_machine in
|
||||
arm*)
|
||||
os=-eabi
|
||||
;;
|
||||
*)
|
||||
os=-elf
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
-nacl*)
|
||||
;;
|
||||
-ios)
|
||||
|
@ -1548,7 +1527,7 @@ case $os in
|
|||
*)
|
||||
# Get rid of the `-' at the beginning of $os.
|
||||
os=`echo $os | sed 's/[^-]*-//'`
|
||||
echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2
|
||||
echo Invalid configuration \`"$1"\': system \`"$os"\' not recognized 1>&2
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
@ -1638,12 +1617,12 @@ case $basic_machine in
|
|||
sparc-* | *-sun)
|
||||
os=-sunos4.1.1
|
||||
;;
|
||||
pru-*)
|
||||
os=-elf
|
||||
;;
|
||||
*-be)
|
||||
os=-beos
|
||||
;;
|
||||
*-haiku)
|
||||
os=-haiku
|
||||
;;
|
||||
*-ibm)
|
||||
os=-aix
|
||||
;;
|
||||
|
@ -1683,7 +1662,7 @@ case $basic_machine in
|
|||
m88k-omron*)
|
||||
os=-luna
|
||||
;;
|
||||
*-next )
|
||||
*-next)
|
||||
os=-nextstep
|
||||
;;
|
||||
*-sequent)
|
||||
|
@ -1698,9 +1677,6 @@ case $basic_machine in
|
|||
i370-*)
|
||||
os=-mvs
|
||||
;;
|
||||
*-next)
|
||||
os=-nextstep3
|
||||
;;
|
||||
*-gould)
|
||||
os=-sysv
|
||||
;;
|
||||
|
@ -1810,15 +1786,15 @@ case $basic_machine in
|
|||
vendor=stratus
|
||||
;;
|
||||
esac
|
||||
basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"`
|
||||
basic_machine=`echo "$basic_machine" | sed "s/unknown/$vendor/"`
|
||||
;;
|
||||
esac
|
||||
|
||||
echo $basic_machine$os
|
||||
echo "$basic_machine$os"
|
||||
exit
|
||||
|
||||
# Local variables:
|
||||
# eval: (add-hook 'write-file-hooks 'time-stamp)
|
||||
# eval: (add-hook 'write-file-functions 'time-stamp)
|
||||
# time-stamp-start: "timestamp='"
|
||||
# time-stamp-format: "%:y-%02m-%02d"
|
||||
# time-stamp-end: "'"
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
#! /bin/sh
|
||||
# Guess values for system-dependent variables and create Makefiles.
|
||||
# Generated by GNU Autoconf 2.69 for pcsc-lite 1.8.23.
|
||||
# Generated by GNU Autoconf 2.69 for pcsc-lite 1.8.24.
|
||||
#
|
||||
#
|
||||
# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
|
||||
|
@ -587,8 +587,8 @@ MAKEFLAGS=
|
|||
# Identity of this package.
|
||||
PACKAGE_NAME='pcsc-lite'
|
||||
PACKAGE_TARNAME='pcsc-lite'
|
||||
PACKAGE_VERSION='1.8.23'
|
||||
PACKAGE_STRING='pcsc-lite 1.8.23'
|
||||
PACKAGE_VERSION='1.8.24'
|
||||
PACKAGE_STRING='pcsc-lite 1.8.24'
|
||||
PACKAGE_BUGREPORT=''
|
||||
PACKAGE_URL=''
|
||||
|
||||
|
@ -709,7 +709,6 @@ am__nodep
|
|||
AMDEPBACKSLASH
|
||||
AMDEP_FALSE
|
||||
AMDEP_TRUE
|
||||
am__quote
|
||||
am__include
|
||||
DEPDIR
|
||||
OBJEXT
|
||||
|
@ -792,7 +791,8 @@ PACKAGE_VERSION
|
|||
PACKAGE_TARNAME
|
||||
PACKAGE_NAME
|
||||
PATH_SEPARATOR
|
||||
SHELL'
|
||||
SHELL
|
||||
am__quote'
|
||||
ac_subst_files=''
|
||||
ac_user_opts='
|
||||
enable_option_checking
|
||||
|
@ -1392,7 +1392,7 @@ if test "$ac_init_help" = "long"; then
|
|||
# Omit some internal or obsolete options to make the list less imposing.
|
||||
# This message is too long to be a string in the A/UX 3.1 sh.
|
||||
cat <<_ACEOF
|
||||
\`configure' configures pcsc-lite 1.8.23 to adapt to many kinds of systems.
|
||||
\`configure' configures pcsc-lite 1.8.24 to adapt to many kinds of systems.
|
||||
|
||||
Usage: $0 [OPTION]... [VAR=VALUE]...
|
||||
|
||||
|
@ -1463,7 +1463,7 @@ fi
|
|||
|
||||
if test -n "$ac_init_help"; then
|
||||
case $ac_init_help in
|
||||
short | recursive ) echo "Configuration of pcsc-lite 1.8.23:";;
|
||||
short | recursive ) echo "Configuration of pcsc-lite 1.8.24:";;
|
||||
esac
|
||||
cat <<\_ACEOF
|
||||
|
||||
|
@ -1615,7 +1615,7 @@ fi
|
|||
test -n "$ac_init_help" && exit $ac_status
|
||||
if $ac_init_version; then
|
||||
cat <<\_ACEOF
|
||||
pcsc-lite configure 1.8.23
|
||||
pcsc-lite configure 1.8.24
|
||||
generated by GNU Autoconf 2.69
|
||||
|
||||
Copyright (C) 2012 Free Software Foundation, Inc.
|
||||
|
@ -2091,7 +2091,7 @@ cat >config.log <<_ACEOF
|
|||
This file contains any messages produced by compilers while
|
||||
running configure, to aid debugging if configure makes a mistake.
|
||||
|
||||
It was created by pcsc-lite $as_me 1.8.23, which was
|
||||
It was created by pcsc-lite $as_me 1.8.24, which was
|
||||
generated by GNU Autoconf 2.69. Invocation command line was
|
||||
|
||||
$ $0 $@
|
||||
|
@ -2440,7 +2440,7 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
|
|||
|
||||
|
||||
|
||||
am__api_version='1.15'
|
||||
am__api_version='1.16'
|
||||
|
||||
ac_aux_dir=
|
||||
for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do
|
||||
|
@ -2955,7 +2955,7 @@ fi
|
|||
|
||||
# Define the identity of the package.
|
||||
PACKAGE='pcsc-lite'
|
||||
VERSION='1.8.23'
|
||||
VERSION='1.8.24'
|
||||
|
||||
|
||||
cat >>confdefs.h <<_ACEOF
|
||||
|
@ -2985,8 +2985,8 @@ MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"}
|
|||
|
||||
# For better backward compatibility. To be removed once Automake 1.9.x
|
||||
# dies out for good. For more background, see:
|
||||
# <http://lists.gnu.org/archive/html/automake/2012-07/msg00001.html>
|
||||
# <http://lists.gnu.org/archive/html/automake/2012-07/msg00014.html>
|
||||
# <https://lists.gnu.org/archive/html/automake/2012-07/msg00001.html>
|
||||
# <https://lists.gnu.org/archive/html/automake/2012-07/msg00014.html>
|
||||
mkdir_p='$(MKDIR_P)'
|
||||
|
||||
# We need awk for the "check" target (and possibly the TAP driver). The
|
||||
|
@ -3037,7 +3037,7 @@ END
|
|||
Aborting the configuration process, to ensure you take notice of the issue.
|
||||
|
||||
You can download and install GNU coreutils to get an 'rm' implementation
|
||||
that behaves properly: <http://www.gnu.org/software/coreutils/>.
|
||||
that behaves properly: <https://www.gnu.org/software/coreutils/>.
|
||||
|
||||
If you want to complete the configuration process using your problematic
|
||||
'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM
|
||||
|
@ -4015,45 +4015,45 @@ DEPDIR="${am__leading_dot}deps"
|
|||
|
||||
ac_config_commands="$ac_config_commands depfiles"
|
||||
|
||||
|
||||
am_make=${MAKE-make}
|
||||
cat > confinc << 'END'
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} supports the include directive" >&5
|
||||
$as_echo_n "checking whether ${MAKE-make} supports the include directive... " >&6; }
|
||||
cat > confinc.mk << 'END'
|
||||
am__doit:
|
||||
@echo this is the am__doit target
|
||||
@echo this is the am__doit target >confinc.out
|
||||
.PHONY: am__doit
|
||||
END
|
||||
# If we don't find an include directive, just comment out the code.
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for style of include used by $am_make" >&5
|
||||
$as_echo_n "checking for style of include used by $am_make... " >&6; }
|
||||
am__include="#"
|
||||
am__quote=
|
||||
_am_result=none
|
||||
# First try GNU make style include.
|
||||
echo "include confinc" > confmf
|
||||
# Ignore all kinds of additional output from 'make'.
|
||||
case `$am_make -s -f confmf 2> /dev/null` in #(
|
||||
*the\ am__doit\ target*)
|
||||
am__include=include
|
||||
am__quote=
|
||||
_am_result=GNU
|
||||
;;
|
||||
esac
|
||||
# Now try BSD make style include.
|
||||
if test "$am__include" = "#"; then
|
||||
echo '.include "confinc"' > confmf
|
||||
case `$am_make -s -f confmf 2> /dev/null` in #(
|
||||
*the\ am__doit\ target*)
|
||||
am__include=.include
|
||||
am__quote="\""
|
||||
_am_result=BSD
|
||||
# BSD make does it like this.
|
||||
echo '.include "confinc.mk" # ignored' > confmf.BSD
|
||||
# Other make implementations (GNU, Solaris 10, AIX) do it like this.
|
||||
echo 'include confinc.mk # ignored' > confmf.GNU
|
||||
_am_result=no
|
||||
for s in GNU BSD; do
|
||||
{ echo "$as_me:$LINENO: ${MAKE-make} -f confmf.$s && cat confinc.out" >&5
|
||||
(${MAKE-make} -f confmf.$s && cat confinc.out) >&5 2>&5
|
||||
ac_status=$?
|
||||
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||
(exit $ac_status); }
|
||||
case $?:`cat confinc.out 2>/dev/null` in #(
|
||||
'0:this is the am__doit target') :
|
||||
case $s in #(
|
||||
BSD) :
|
||||
am__include='.include' am__quote='"' ;; #(
|
||||
*) :
|
||||
am__include='include' am__quote='' ;;
|
||||
esac ;; #(
|
||||
*) :
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
|
||||
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $_am_result" >&5
|
||||
$as_echo "$_am_result" >&6; }
|
||||
rm -f confinc confmf
|
||||
esac
|
||||
if test "$am__include" != "#"; then
|
||||
_am_result="yes ($s style)"
|
||||
break
|
||||
fi
|
||||
done
|
||||
rm -f confinc.* confmf.*
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: ${_am_result}" >&5
|
||||
$as_echo "${_am_result}" >&6; }
|
||||
|
||||
# Check whether --enable-dependency-tracking was given.
|
||||
if test "${enable_dependency_tracking+set}" = set; then :
|
||||
|
@ -16172,7 +16172,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
|
|||
# report actual input values of CONFIG_FILES etc. instead of their
|
||||
# values after options handling.
|
||||
ac_log="
|
||||
This file was extended by pcsc-lite $as_me 1.8.23, which was
|
||||
This file was extended by pcsc-lite $as_me 1.8.24, which was
|
||||
generated by GNU Autoconf 2.69. Invocation command line was
|
||||
|
||||
CONFIG_FILES = $CONFIG_FILES
|
||||
|
@ -16238,7 +16238,7 @@ _ACEOF
|
|||
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
|
||||
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
|
||||
ac_cs_version="\\
|
||||
pcsc-lite config.status 1.8.23
|
||||
pcsc-lite config.status 1.8.24
|
||||
configured by $0, generated by GNU Autoconf 2.69,
|
||||
with options \\"\$ac_cs_config\\"
|
||||
|
||||
|
@ -16357,7 +16357,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
|
|||
#
|
||||
# INIT-COMMANDS
|
||||
#
|
||||
AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"
|
||||
AMDEP_TRUE="$AMDEP_TRUE" MAKE="${MAKE-make}"
|
||||
|
||||
|
||||
# The HP-UX ksh and POSIX shell print the target directory to stdout
|
||||
|
@ -17266,29 +17266,35 @@ $as_echo "$as_me: executing $ac_file commands" >&6;}
|
|||
# Older Autoconf quotes --file arguments for eval, but not when files
|
||||
# are listed without --file. Let's play safe and only enable the eval
|
||||
# if we detect the quoting.
|
||||
case $CONFIG_FILES in
|
||||
*\'*) eval set x "$CONFIG_FILES" ;;
|
||||
*) set x $CONFIG_FILES ;;
|
||||
esac
|
||||
# TODO: see whether this extra hack can be removed once we start
|
||||
# requiring Autoconf 2.70 or later.
|
||||
case $CONFIG_FILES in #(
|
||||
*\'*) :
|
||||
eval set x "$CONFIG_FILES" ;; #(
|
||||
*) :
|
||||
set x $CONFIG_FILES ;; #(
|
||||
*) :
|
||||
;;
|
||||
esac
|
||||
shift
|
||||
for mf
|
||||
# Used to flag and report bootstrapping failures.
|
||||
am_rc=0
|
||||
for am_mf
|
||||
do
|
||||
# Strip MF so we end up with the name of the file.
|
||||
mf=`echo "$mf" | sed -e 's/:.*$//'`
|
||||
# Check whether this is an Automake generated Makefile or not.
|
||||
# We used to match only the files named 'Makefile.in', but
|
||||
# some people rename them; so instead we look at the file content.
|
||||
# Grep'ing the first line is not enough: some people post-process
|
||||
# each Makefile.in and add a new line on top of each file to say so.
|
||||
# Grep'ing the whole file is not good either: AIX grep has a line
|
||||
am_mf=`$as_echo "$am_mf" | sed -e 's/:.*$//'`
|
||||
# Check whether this is an Automake generated Makefile which includes
|
||||
# dependency-tracking related rules and includes.
|
||||
# Grep'ing the whole file directly is not great: AIX grep has a line
|
||||
# limit of 2048, but all sed's we know have understand at least 4000.
|
||||
if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then
|
||||
dirpart=`$as_dirname -- "$mf" ||
|
||||
$as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
|
||||
X"$mf" : 'X\(//\)[^/]' \| \
|
||||
X"$mf" : 'X\(//\)$' \| \
|
||||
X"$mf" : 'X\(/\)' \| . 2>/dev/null ||
|
||||
$as_echo X"$mf" |
|
||||
sed -n 's,^am--depfiles:.*,X,p' "$am_mf" | grep X >/dev/null 2>&1 \
|
||||
|| continue
|
||||
am_dirpart=`$as_dirname -- "$am_mf" ||
|
||||
$as_expr X"$am_mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
|
||||
X"$am_mf" : 'X\(//\)[^/]' \| \
|
||||
X"$am_mf" : 'X\(//\)$' \| \
|
||||
X"$am_mf" : 'X\(/\)' \| . 2>/dev/null ||
|
||||
$as_echo X"$am_mf" |
|
||||
sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
|
||||
s//\1/
|
||||
q
|
||||
|
@ -17306,53 +17312,48 @@ $as_echo X"$mf" |
|
|||
q
|
||||
}
|
||||
s/.*/./; q'`
|
||||
else
|
||||
continue
|
||||
fi
|
||||
# Extract the definition of DEPDIR, am__include, and am__quote
|
||||
# from the Makefile without running 'make'.
|
||||
DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
|
||||
test -z "$DEPDIR" && continue
|
||||
am__include=`sed -n 's/^am__include = //p' < "$mf"`
|
||||
test -z "$am__include" && continue
|
||||
am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
|
||||
# Find all dependency output files, they are included files with
|
||||
# $(DEPDIR) in their names. We invoke sed twice because it is the
|
||||
# simplest approach to changing $(DEPDIR) to its actual value in the
|
||||
# expansion.
|
||||
for file in `sed -n "
|
||||
s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \
|
||||
sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g'`; do
|
||||
# Make sure the directory exists.
|
||||
test -f "$dirpart/$file" && continue
|
||||
fdir=`$as_dirname -- "$file" ||
|
||||
$as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
|
||||
X"$file" : 'X\(//\)[^/]' \| \
|
||||
X"$file" : 'X\(//\)$' \| \
|
||||
X"$file" : 'X\(/\)' \| . 2>/dev/null ||
|
||||
$as_echo X"$file" |
|
||||
sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
|
||||
am_filepart=`$as_basename -- "$am_mf" ||
|
||||
$as_expr X/"$am_mf" : '.*/\([^/][^/]*\)/*$' \| \
|
||||
X"$am_mf" : 'X\(//\)$' \| \
|
||||
X"$am_mf" : 'X\(/\)' \| . 2>/dev/null ||
|
||||
$as_echo X/"$am_mf" |
|
||||
sed '/^.*\/\([^/][^/]*\)\/*$/{
|
||||
s//\1/
|
||||
q
|
||||
}
|
||||
/^X\(\/\/\)[^/].*/{
|
||||
/^X\/\(\/\/\)$/{
|
||||
s//\1/
|
||||
q
|
||||
}
|
||||
/^X\(\/\/\)$/{
|
||||
s//\1/
|
||||
q
|
||||
}
|
||||
/^X\(\/\).*/{
|
||||
/^X\/\(\/\).*/{
|
||||
s//\1/
|
||||
q
|
||||
}
|
||||
s/.*/./; q'`
|
||||
as_dir=$dirpart/$fdir; as_fn_mkdir_p
|
||||
# echo "creating $dirpart/$file"
|
||||
echo '# dummy' > "$dirpart/$file"
|
||||
done
|
||||
{ echo "$as_me:$LINENO: cd "$am_dirpart" \
|
||||
&& sed -e '/# am--include-marker/d' "$am_filepart" \
|
||||
| $MAKE -f - am--depfiles" >&5
|
||||
(cd "$am_dirpart" \
|
||||
&& sed -e '/# am--include-marker/d' "$am_filepart" \
|
||||
| $MAKE -f - am--depfiles) >&5 2>&5
|
||||
ac_status=$?
|
||||
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||
(exit $ac_status); } || am_rc=$?
|
||||
done
|
||||
if test $am_rc -ne 0; then
|
||||
{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
|
||||
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
|
||||
as_fn_error $? "Something went wrong bootstrapping makefile fragments
|
||||
for automatic dependency tracking. Try re-running configure with the
|
||||
'--disable-dependency-tracking' option to at least be able to build
|
||||
the package (albeit without support for automatic dependency tracking).
|
||||
See \`config.log' for more details" "$LINENO" 5; }
|
||||
fi
|
||||
{ am_dirpart=; unset am_dirpart;}
|
||||
{ am_filepart=; unset am_filepart;}
|
||||
{ am_mf=; unset am_mf;}
|
||||
{ am_rc=; unset am_rc;}
|
||||
rm -f conftest-deps.mk
|
||||
}
|
||||
;;
|
||||
"libtool":C)
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
|
||||
AC_PREREQ([2.69])
|
||||
|
||||
AC_INIT([pcsc-lite],[1.8.23])
|
||||
AC_INIT([pcsc-lite],[1.8.24])
|
||||
AC_CONFIG_SRCDIR(src/pcscdaemon.c)
|
||||
AM_INIT_AUTOMAKE(1.8 dist-bzip2 no-dist-gzip)
|
||||
AC_CONFIG_HEADERS([config.h])
|
||||
|
|
10
depcomp
10
depcomp
|
@ -1,9 +1,9 @@
|
|||
#! /bin/sh
|
||||
# depcomp - compile a program generating dependencies as side-effects
|
||||
|
||||
scriptversion=2013-05-30.07; # UTC
|
||||
scriptversion=2018-03-07.03; # UTC
|
||||
|
||||
# Copyright (C) 1999-2014 Free Software Foundation, Inc.
|
||||
# Copyright (C) 1999-2018 Free Software Foundation, Inc.
|
||||
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
|
@ -16,7 +16,7 @@ scriptversion=2013-05-30.07; # UTC
|
|||
# GNU General Public License for more details.
|
||||
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
# along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
|
||||
# As a special exception to the GNU General Public License, if you
|
||||
# distribute this file as part of a program that contains a
|
||||
|
@ -783,9 +783,9 @@ exit 0
|
|||
# Local Variables:
|
||||
# mode: shell-script
|
||||
# sh-indentation: 2
|
||||
# eval: (add-hook 'write-file-hooks 'time-stamp)
|
||||
# eval: (add-hook 'before-save-hook 'time-stamp)
|
||||
# time-stamp-start: "scriptversion="
|
||||
# time-stamp-format: "%:y-%02m-%02d.%02H"
|
||||
# time-stamp-time-zone: "UTC"
|
||||
# time-stamp-time-zone: "UTC0"
|
||||
# time-stamp-end: "; # UTC"
|
||||
# End:
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
# Makefile.in generated by automake 1.15 from Makefile.am.
|
||||
# Makefile.in generated by automake 1.16.1 from Makefile.am.
|
||||
# @configure_input@
|
||||
|
||||
# Copyright (C) 1994-2014 Free Software Foundation, Inc.
|
||||
# Copyright (C) 1994-2018 Free Software Foundation, Inc.
|
||||
|
||||
# This Makefile.in is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
|
@ -172,7 +172,7 @@ am__recursive_targets = \
|
|||
$(RECURSIVE_CLEAN_TARGETS) \
|
||||
$(am__extra_recursive_targets)
|
||||
AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \
|
||||
distdir
|
||||
distdir distdir-am
|
||||
am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
|
||||
# Read a list of newline-separated strings from the standard input,
|
||||
# and print each of them once, without duplicates. Input order is
|
||||
|
@ -402,8 +402,8 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
|
|||
*config.status*) \
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
|
||||
*) \
|
||||
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
|
||||
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
|
||||
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \
|
||||
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \
|
||||
esac;
|
||||
|
||||
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
|
||||
|
@ -633,7 +633,10 @@ cscopelist-am: $(am__tagged_files)
|
|||
distclean-tags:
|
||||
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
|
||||
|
||||
distdir: $(DISTFILES)
|
||||
distdir: $(BUILT_SOURCES)
|
||||
$(MAKE) $(AM_MAKEFLAGS) distdir-am
|
||||
|
||||
distdir-am: $(DISTFILES)
|
||||
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
||||
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
||||
list='$(DISTFILES)'; \
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
# Makefile.in generated by automake 1.15 from Makefile.am.
|
||||
# Makefile.in generated by automake 1.16.1 from Makefile.am.
|
||||
# @configure_input@
|
||||
|
||||
# Copyright (C) 1994-2014 Free Software Foundation, Inc.
|
||||
# Copyright (C) 1994-2018 Free Software Foundation, Inc.
|
||||
|
||||
# This Makefile.in is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
|
@ -130,7 +130,8 @@ am__v_at_0 = @
|
|||
am__v_at_1 =
|
||||
DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
|
||||
depcomp = $(SHELL) $(top_srcdir)/depcomp
|
||||
am__depfiles_maybe = depfiles
|
||||
am__maybe_remake_depfiles = depfiles
|
||||
am__depfiles_remade = ./$(DEPDIR)/pcsc_demo-pcsc_demo.Po
|
||||
am__mv = mv -f
|
||||
COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
|
||||
$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
|
||||
|
@ -354,8 +355,8 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
|
|||
*config.status*) \
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
|
||||
*) \
|
||||
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
|
||||
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
|
||||
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \
|
||||
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \
|
||||
esac;
|
||||
|
||||
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
|
||||
|
@ -386,7 +387,13 @@ mostlyclean-compile:
|
|||
distclean-compile:
|
||||
-rm -f *.tab.c
|
||||
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pcsc_demo-pcsc_demo.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pcsc_demo-pcsc_demo.Po@am__quote@ # am--include-marker
|
||||
|
||||
$(am__depfiles_remade):
|
||||
@$(MKDIR_P) $(@D)
|
||||
@echo '# dummy' >$@-t && $(am__mv) $@-t $@
|
||||
|
||||
am--depfiles: $(am__depfiles_remade)
|
||||
|
||||
.c.o:
|
||||
@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
|
||||
|
@ -481,7 +488,10 @@ cscopelist-am: $(am__tagged_files)
|
|||
distclean-tags:
|
||||
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
|
||||
|
||||
distdir: $(DISTFILES)
|
||||
distdir: $(BUILT_SOURCES)
|
||||
$(MAKE) $(AM_MAKEFLAGS) distdir-am
|
||||
|
||||
distdir-am: $(DISTFILES)
|
||||
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
||||
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
||||
list='$(DISTFILES)'; \
|
||||
|
@ -551,7 +561,7 @@ clean-am: clean-generic clean-libtool clean-noinstPROGRAMS \
|
|||
mostlyclean-am
|
||||
|
||||
distclean: distclean-am
|
||||
-rm -rf ./$(DEPDIR)
|
||||
-rm -f ./$(DEPDIR)/pcsc_demo-pcsc_demo.Po
|
||||
-rm -f Makefile
|
||||
distclean-am: clean-am distclean-compile distclean-generic \
|
||||
distclean-tags
|
||||
|
@ -597,7 +607,7 @@ install-ps-am:
|
|||
installcheck-am:
|
||||
|
||||
maintainer-clean: maintainer-clean-am
|
||||
-rm -rf ./$(DEPDIR)
|
||||
-rm -f ./$(DEPDIR)/pcsc_demo-pcsc_demo.Po
|
||||
-rm -f Makefile
|
||||
maintainer-clean-am: distclean-am maintainer-clean-generic
|
||||
|
||||
|
@ -618,9 +628,9 @@ uninstall-am:
|
|||
|
||||
.MAKE: install-am install-strip
|
||||
|
||||
.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
|
||||
clean-libtool clean-noinstPROGRAMS cscopelist-am ctags \
|
||||
ctags-am distclean distclean-compile distclean-generic \
|
||||
.PHONY: CTAGS GTAGS TAGS all all-am am--depfiles check check-am clean \
|
||||
clean-generic clean-libtool clean-noinstPROGRAMS cscopelist-am \
|
||||
ctags ctags-am distclean distclean-compile distclean-generic \
|
||||
distclean-libtool distclean-tags distdir dvi dvi-am html \
|
||||
html-am info info-am install install-am install-data \
|
||||
install-data-am install-dvi install-dvi-am install-exec \
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
/*
|
||||
* Sample program to use PC/SC API.
|
||||
*
|
||||
* MUSCLE SmartCard Development ( http://pcsclite.alioth.debian.org/pcsclite.html )
|
||||
* MUSCLE SmartCard Development ( https://pcsclite.apdu.fr/ )
|
||||
*
|
||||
* Copyright (C) 2003-2011
|
||||
* Ludovic Rousseau <ludovic.rousseau@free.fr>
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
"http://www.freedesktop.org/standards/PolicyKit/1.0/policyconfig.dtd">
|
||||
<policyconfig>
|
||||
<vendor>The PCSC-lite Project</vendor>
|
||||
<vendor_url>http://pcsclite.alioth.debian.org/</vendor_url>
|
||||
<vendor_url>https://pcsclite.apdu.fr/</vendor_url>
|
||||
<!-- <icon_name>smart-card</icon_name> -->
|
||||
|
||||
<action id="org.debian.pcsc-lite.access_pcsc">
|
||||
|
|
|
@ -102,7 +102,7 @@ file. See the
|
|||
.BR reader.conf (5)
|
||||
manual page for more information.
|
||||
.PP
|
||||
Some drivers are available at \fIhttp://pcsclite.alioth.debian.org/musclecard.com/drivers.html\fP.
|
||||
Some drivers are available at \fIhttps://muscle.apdu.fr/musclecard.com/drivers.html\fP.
|
||||
.
|
||||
.SH "USB SMART CARD READER DRIVERS"
|
||||
USB smart card reader drivers are located in
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
# Makefile.in generated by automake 1.15 from Makefile.am.
|
||||
# Makefile.in generated by automake 1.16.1 from Makefile.am.
|
||||
# @configure_input@
|
||||
|
||||
# Copyright (C) 1994-2014 Free Software Foundation, Inc.
|
||||
# Copyright (C) 1994-2018 Free Software Foundation, Inc.
|
||||
|
||||
# This Makefile.in is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
|
@ -334,8 +334,8 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
|
|||
*config.status*) \
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
|
||||
*) \
|
||||
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
|
||||
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
|
||||
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \
|
||||
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \
|
||||
esac;
|
||||
|
||||
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
|
||||
|
@ -384,7 +384,10 @@ ctags CTAGS:
|
|||
cscope cscopelist:
|
||||
|
||||
|
||||
distdir: $(DISTFILES)
|
||||
distdir: $(BUILT_SOURCES)
|
||||
$(MAKE) $(AM_MAKEFLAGS) distdir-am
|
||||
|
||||
distdir-am: $(DISTFILES)
|
||||
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
||||
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
||||
list='$(DISTFILES)'; \
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
[Unit]
|
||||
Description=PC/SC Smart Card Daemon
|
||||
Requires=pcscd.socket
|
||||
Documentation=man:pcscd(8)
|
||||
|
||||
[Service]
|
||||
ExecStart=@sbindir_exp@/pcscd --foreground --auto-exit
|
||||
|
|
361
install-sh
361
install-sh
|
@ -1,7 +1,7 @@
|
|||
#!/bin/sh
|
||||
# install - install a program, script, or datafile
|
||||
|
||||
scriptversion=2011-11-20.07; # UTC
|
||||
scriptversion=2014-09-12.12; # UTC
|
||||
|
||||
# This originates from X11R5 (mit/util/scripts/install.sh), which was
|
||||
# later released in X11R6 (xc/config/util/install.sh) with the
|
||||
|
@ -41,19 +41,15 @@ scriptversion=2011-11-20.07; # UTC
|
|||
# This script is compatible with the BSD install script, but was written
|
||||
# from scratch.
|
||||
|
||||
tab=' '
|
||||
nl='
|
||||
'
|
||||
IFS=" "" $nl"
|
||||
IFS=" $tab$nl"
|
||||
|
||||
# set DOITPROG to echo to test this script
|
||||
# Set DOITPROG to "echo" to test this script.
|
||||
|
||||
# Don't use :- since 4.3BSD and earlier shells don't like it.
|
||||
doit=${DOITPROG-}
|
||||
if test -z "$doit"; then
|
||||
doit_exec=exec
|
||||
else
|
||||
doit_exec=$doit
|
||||
fi
|
||||
doit_exec=${doit:-exec}
|
||||
|
||||
# Put in absolute file names if you don't have them in your path;
|
||||
# or use environment vars.
|
||||
|
@ -68,17 +64,6 @@ mvprog=${MVPROG-mv}
|
|||
rmprog=${RMPROG-rm}
|
||||
stripprog=${STRIPPROG-strip}
|
||||
|
||||
posix_glob='?'
|
||||
initialize_posix_glob='
|
||||
test "$posix_glob" != "?" || {
|
||||
if (set -f) 2>/dev/null; then
|
||||
posix_glob=
|
||||
else
|
||||
posix_glob=:
|
||||
fi
|
||||
}
|
||||
'
|
||||
|
||||
posix_mkdir=
|
||||
|
||||
# Desired mode of installed file.
|
||||
|
@ -97,7 +82,7 @@ dir_arg=
|
|||
dst_arg=
|
||||
|
||||
copy_on_change=false
|
||||
no_target_directory=
|
||||
is_target_a_directory=possibly
|
||||
|
||||
usage="\
|
||||
Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE
|
||||
|
@ -137,46 +122,57 @@ while test $# -ne 0; do
|
|||
-d) dir_arg=true;;
|
||||
|
||||
-g) chgrpcmd="$chgrpprog $2"
|
||||
shift;;
|
||||
shift;;
|
||||
|
||||
--help) echo "$usage"; exit $?;;
|
||||
|
||||
-m) mode=$2
|
||||
case $mode in
|
||||
*' '* | *' '* | *'
|
||||
'* | *'*'* | *'?'* | *'['*)
|
||||
echo "$0: invalid mode: $mode" >&2
|
||||
exit 1;;
|
||||
esac
|
||||
shift;;
|
||||
case $mode in
|
||||
*' '* | *"$tab"* | *"$nl"* | *'*'* | *'?'* | *'['*)
|
||||
echo "$0: invalid mode: $mode" >&2
|
||||
exit 1;;
|
||||
esac
|
||||
shift;;
|
||||
|
||||
-o) chowncmd="$chownprog $2"
|
||||
shift;;
|
||||
shift;;
|
||||
|
||||
-s) stripcmd=$stripprog;;
|
||||
|
||||
-t) dst_arg=$2
|
||||
# Protect names problematic for 'test' and other utilities.
|
||||
case $dst_arg in
|
||||
-* | [=\(\)!]) dst_arg=./$dst_arg;;
|
||||
esac
|
||||
shift;;
|
||||
-t)
|
||||
is_target_a_directory=always
|
||||
dst_arg=$2
|
||||
# Protect names problematic for 'test' and other utilities.
|
||||
case $dst_arg in
|
||||
-* | [=\(\)!]) dst_arg=./$dst_arg;;
|
||||
esac
|
||||
shift;;
|
||||
|
||||
-T) no_target_directory=true;;
|
||||
-T) is_target_a_directory=never;;
|
||||
|
||||
--version) echo "$0 $scriptversion"; exit $?;;
|
||||
|
||||
--) shift
|
||||
break;;
|
||||
--) shift
|
||||
break;;
|
||||
|
||||
-*) echo "$0: invalid option: $1" >&2
|
||||
exit 1;;
|
||||
-*) echo "$0: invalid option: $1" >&2
|
||||
exit 1;;
|
||||
|
||||
*) break;;
|
||||
esac
|
||||
shift
|
||||
done
|
||||
|
||||
# We allow the use of options -d and -T together, by making -d
|
||||
# take the precedence; this is for compatibility with GNU install.
|
||||
|
||||
if test -n "$dir_arg"; then
|
||||
if test -n "$dst_arg"; then
|
||||
echo "$0: target directory not allowed when installing a directory." >&2
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then
|
||||
# When -d is used, all remaining arguments are directories to create.
|
||||
# When -t is used, the destination is already specified.
|
||||
|
@ -207,6 +203,15 @@ if test $# -eq 0; then
|
|||
exit 0
|
||||
fi
|
||||
|
||||
if test -z "$dir_arg"; then
|
||||
if test $# -gt 1 || test "$is_target_a_directory" = always; then
|
||||
if test ! -d "$dst_arg"; then
|
||||
echo "$0: $dst_arg: Is not a directory." >&2
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
if test -z "$dir_arg"; then
|
||||
do_exit='(exit $ret); exit $ret'
|
||||
trap "ret=129; $do_exit" 1
|
||||
|
@ -223,16 +228,16 @@ if test -z "$dir_arg"; then
|
|||
|
||||
*[0-7])
|
||||
if test -z "$stripcmd"; then
|
||||
u_plus_rw=
|
||||
u_plus_rw=
|
||||
else
|
||||
u_plus_rw='% 200'
|
||||
u_plus_rw='% 200'
|
||||
fi
|
||||
cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;;
|
||||
*)
|
||||
if test -z "$stripcmd"; then
|
||||
u_plus_rw=
|
||||
u_plus_rw=
|
||||
else
|
||||
u_plus_rw=,u+rw
|
||||
u_plus_rw=,u+rw
|
||||
fi
|
||||
cp_umask=$mode$u_plus_rw;;
|
||||
esac
|
||||
|
@ -269,41 +274,15 @@ do
|
|||
# If destination is a directory, append the input filename; won't work
|
||||
# if double slashes aren't ignored.
|
||||
if test -d "$dst"; then
|
||||
if test -n "$no_target_directory"; then
|
||||
echo "$0: $dst_arg: Is a directory" >&2
|
||||
exit 1
|
||||
if test "$is_target_a_directory" = never; then
|
||||
echo "$0: $dst_arg: Is a directory" >&2
|
||||
exit 1
|
||||
fi
|
||||
dstdir=$dst
|
||||
dst=$dstdir/`basename "$src"`
|
||||
dstdir_status=0
|
||||
else
|
||||
# Prefer dirname, but fall back on a substitute if dirname fails.
|
||||
dstdir=`
|
||||
(dirname "$dst") 2>/dev/null ||
|
||||
expr X"$dst" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
|
||||
X"$dst" : 'X\(//\)[^/]' \| \
|
||||
X"$dst" : 'X\(//\)$' \| \
|
||||
X"$dst" : 'X\(/\)' \| . 2>/dev/null ||
|
||||
echo X"$dst" |
|
||||
sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
|
||||
s//\1/
|
||||
q
|
||||
}
|
||||
/^X\(\/\/\)[^/].*/{
|
||||
s//\1/
|
||||
q
|
||||
}
|
||||
/^X\(\/\/\)$/{
|
||||
s//\1/
|
||||
q
|
||||
}
|
||||
/^X\(\/\).*/{
|
||||
s//\1/
|
||||
q
|
||||
}
|
||||
s/.*/./; q'
|
||||
`
|
||||
|
||||
dstdir=`dirname "$dst"`
|
||||
test -d "$dstdir"
|
||||
dstdir_status=$?
|
||||
fi
|
||||
|
@ -314,74 +293,81 @@ do
|
|||
if test $dstdir_status != 0; then
|
||||
case $posix_mkdir in
|
||||
'')
|
||||
# Create intermediate dirs using mode 755 as modified by the umask.
|
||||
# This is like FreeBSD 'install' as of 1997-10-28.
|
||||
umask=`umask`
|
||||
case $stripcmd.$umask in
|
||||
# Optimize common cases.
|
||||
*[2367][2367]) mkdir_umask=$umask;;
|
||||
.*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;;
|
||||
# Create intermediate dirs using mode 755 as modified by the umask.
|
||||
# This is like FreeBSD 'install' as of 1997-10-28.
|
||||
umask=`umask`
|
||||
case $stripcmd.$umask in
|
||||
# Optimize common cases.
|
||||
*[2367][2367]) mkdir_umask=$umask;;
|
||||
.*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;;
|
||||
|
||||
*[0-7])
|
||||
mkdir_umask=`expr $umask + 22 \
|
||||
- $umask % 100 % 40 + $umask % 20 \
|
||||
- $umask % 10 % 4 + $umask % 2
|
||||
`;;
|
||||
*) mkdir_umask=$umask,go-w;;
|
||||
esac
|
||||
*[0-7])
|
||||
mkdir_umask=`expr $umask + 22 \
|
||||
- $umask % 100 % 40 + $umask % 20 \
|
||||
- $umask % 10 % 4 + $umask % 2
|
||||
`;;
|
||||
*) mkdir_umask=$umask,go-w;;
|
||||
esac
|
||||
|
||||
# With -d, create the new directory with the user-specified mode.
|
||||
# Otherwise, rely on $mkdir_umask.
|
||||
if test -n "$dir_arg"; then
|
||||
mkdir_mode=-m$mode
|
||||
else
|
||||
mkdir_mode=
|
||||
fi
|
||||
# With -d, create the new directory with the user-specified mode.
|
||||
# Otherwise, rely on $mkdir_umask.
|
||||
if test -n "$dir_arg"; then
|
||||
mkdir_mode=-m$mode
|
||||
else
|
||||
mkdir_mode=
|
||||
fi
|
||||
|
||||
posix_mkdir=false
|
||||
case $umask in
|
||||
*[123567][0-7][0-7])
|
||||
# POSIX mkdir -p sets u+wx bits regardless of umask, which
|
||||
# is incompatible with FreeBSD 'install' when (umask & 300) != 0.
|
||||
;;
|
||||
*)
|
||||
tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$
|
||||
trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0
|
||||
posix_mkdir=false
|
||||
case $umask in
|
||||
*[123567][0-7][0-7])
|
||||
# POSIX mkdir -p sets u+wx bits regardless of umask, which
|
||||
# is incompatible with FreeBSD 'install' when (umask & 300) != 0.
|
||||
;;
|
||||
*)
|
||||
# $RANDOM is not portable (e.g. dash); use it when possible to
|
||||
# lower collision chance
|
||||
tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$
|
||||
trap 'ret=$?; rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir" 2>/dev/null; exit $ret' 0
|
||||
|
||||
if (umask $mkdir_umask &&
|
||||
exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1
|
||||
then
|
||||
if test -z "$dir_arg" || {
|
||||
# Check for POSIX incompatibilities with -m.
|
||||
# HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or
|
||||
# other-writable bit of parent directory when it shouldn't.
|
||||
# FreeBSD 6.1 mkdir -m -p sets mode of existing directory.
|
||||
ls_ld_tmpdir=`ls -ld "$tmpdir"`
|
||||
case $ls_ld_tmpdir in
|
||||
d????-?r-*) different_mode=700;;
|
||||
d????-?--*) different_mode=755;;
|
||||
*) false;;
|
||||
esac &&
|
||||
$mkdirprog -m$different_mode -p -- "$tmpdir" && {
|
||||
ls_ld_tmpdir_1=`ls -ld "$tmpdir"`
|
||||
test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1"
|
||||
}
|
||||
}
|
||||
then posix_mkdir=:
|
||||
fi
|
||||
rmdir "$tmpdir/d" "$tmpdir"
|
||||
else
|
||||
# Remove any dirs left behind by ancient mkdir implementations.
|
||||
rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null
|
||||
fi
|
||||
trap '' 0;;
|
||||
esac;;
|
||||
# As "mkdir -p" follows symlinks and we work in /tmp possibly; so
|
||||
# create the $tmpdir first (and fail if unsuccessful) to make sure
|
||||
# that nobody tries to guess the $tmpdir name.
|
||||
if (umask $mkdir_umask &&
|
||||
$mkdirprog $mkdir_mode "$tmpdir" &&
|
||||
exec $mkdirprog $mkdir_mode -p -- "$tmpdir/a/b") >/dev/null 2>&1
|
||||
then
|
||||
if test -z "$dir_arg" || {
|
||||
# Check for POSIX incompatibilities with -m.
|
||||
# HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or
|
||||
# other-writable bit of parent directory when it shouldn't.
|
||||
# FreeBSD 6.1 mkdir -m -p sets mode of existing directory.
|
||||
test_tmpdir="$tmpdir/a"
|
||||
ls_ld_tmpdir=`ls -ld "$test_tmpdir"`
|
||||
case $ls_ld_tmpdir in
|
||||
d????-?r-*) different_mode=700;;
|
||||
d????-?--*) different_mode=755;;
|
||||
*) false;;
|
||||
esac &&
|
||||
$mkdirprog -m$different_mode -p -- "$test_tmpdir" && {
|
||||
ls_ld_tmpdir_1=`ls -ld "$test_tmpdir"`
|
||||
test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1"
|
||||
}
|
||||
}
|
||||
then posix_mkdir=:
|
||||
fi
|
||||
rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir"
|
||||
else
|
||||
# Remove any dirs left behind by ancient mkdir implementations.
|
||||
rmdir ./$mkdir_mode ./-p ./-- "$tmpdir" 2>/dev/null
|
||||
fi
|
||||
trap '' 0;;
|
||||
esac;;
|
||||
esac
|
||||
|
||||
if
|
||||
$posix_mkdir && (
|
||||
umask $mkdir_umask &&
|
||||
$doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir"
|
||||
umask $mkdir_umask &&
|
||||
$doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir"
|
||||
)
|
||||
then :
|
||||
else
|
||||
|
@ -391,53 +377,51 @@ do
|
|||
# directory the slow way, step by step, checking for races as we go.
|
||||
|
||||
case $dstdir in
|
||||
/*) prefix='/';;
|
||||
[-=\(\)!]*) prefix='./';;
|
||||
*) prefix='';;
|
||||
/*) prefix='/';;
|
||||
[-=\(\)!]*) prefix='./';;
|
||||
*) prefix='';;
|
||||
esac
|
||||
|
||||
eval "$initialize_posix_glob"
|
||||
|
||||
oIFS=$IFS
|
||||
IFS=/
|
||||
$posix_glob set -f
|
||||
set -f
|
||||
set fnord $dstdir
|
||||
shift
|
||||
$posix_glob set +f
|
||||
set +f
|
||||
IFS=$oIFS
|
||||
|
||||
prefixes=
|
||||
|
||||
for d
|
||||
do
|
||||
test X"$d" = X && continue
|
||||
test X"$d" = X && continue
|
||||
|
||||
prefix=$prefix$d
|
||||
if test -d "$prefix"; then
|
||||
prefixes=
|
||||
else
|
||||
if $posix_mkdir; then
|
||||
(umask=$mkdir_umask &&
|
||||
$doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break
|
||||
# Don't fail if two instances are running concurrently.
|
||||
test -d "$prefix" || exit 1
|
||||
else
|
||||
case $prefix in
|
||||
*\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;;
|
||||
*) qprefix=$prefix;;
|
||||
esac
|
||||
prefixes="$prefixes '$qprefix'"
|
||||
fi
|
||||
fi
|
||||
prefix=$prefix/
|
||||
prefix=$prefix$d
|
||||
if test -d "$prefix"; then
|
||||
prefixes=
|
||||
else
|
||||
if $posix_mkdir; then
|
||||
(umask=$mkdir_umask &&
|
||||
$doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break
|
||||
# Don't fail if two instances are running concurrently.
|
||||
test -d "$prefix" || exit 1
|
||||
else
|
||||
case $prefix in
|
||||
*\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;;
|
||||
*) qprefix=$prefix;;
|
||||
esac
|
||||
prefixes="$prefixes '$qprefix'"
|
||||
fi
|
||||
fi
|
||||
prefix=$prefix/
|
||||
done
|
||||
|
||||
if test -n "$prefixes"; then
|
||||
# Don't fail if two instances are running concurrently.
|
||||
(umask $mkdir_umask &&
|
||||
eval "\$doit_exec \$mkdirprog $prefixes") ||
|
||||
test -d "$dstdir" || exit 1
|
||||
obsolete_mkdir_used=true
|
||||
# Don't fail if two instances are running concurrently.
|
||||
(umask $mkdir_umask &&
|
||||
eval "\$doit_exec \$mkdirprog $prefixes") ||
|
||||
test -d "$dstdir" || exit 1
|
||||
obsolete_mkdir_used=true
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
@ -472,15 +456,12 @@ do
|
|||
|
||||
# If -C, don't bother to copy if it wouldn't change the file.
|
||||
if $copy_on_change &&
|
||||
old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` &&
|
||||
new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` &&
|
||||
|
||||
eval "$initialize_posix_glob" &&
|
||||
$posix_glob set -f &&
|
||||
old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` &&
|
||||
new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` &&
|
||||
set -f &&
|
||||
set X $old && old=:$2:$4:$5:$6 &&
|
||||
set X $new && new=:$2:$4:$5:$6 &&
|
||||
$posix_glob set +f &&
|
||||
|
||||
set +f &&
|
||||
test "$old" = "$new" &&
|
||||
$cmpprog "$dst" "$dsttmp" >/dev/null 2>&1
|
||||
then
|
||||
|
@ -493,24 +474,24 @@ do
|
|||
# to itself, or perhaps because mv is so ancient that it does not
|
||||
# support -f.
|
||||
{
|
||||
# Now remove or move aside any old file at destination location.
|
||||
# We try this two ways since rm can't unlink itself on some
|
||||
# systems and the destination file might be busy for other
|
||||
# reasons. In this case, the final cleanup might fail but the new
|
||||
# file should still install successfully.
|
||||
{
|
||||
test ! -f "$dst" ||
|
||||
$doit $rmcmd -f "$dst" 2>/dev/null ||
|
||||
{ $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null &&
|
||||
{ $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; }
|
||||
} ||
|
||||
{ echo "$0: cannot unlink or rename $dst" >&2
|
||||
(exit 1); exit 1
|
||||
}
|
||||
} &&
|
||||
# Now remove or move aside any old file at destination location.
|
||||
# We try this two ways since rm can't unlink itself on some
|
||||
# systems and the destination file might be busy for other
|
||||
# reasons. In this case, the final cleanup might fail but the new
|
||||
# file should still install successfully.
|
||||
{
|
||||
test ! -f "$dst" ||
|
||||
$doit $rmcmd -f "$dst" 2>/dev/null ||
|
||||
{ $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null &&
|
||||
{ $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; }
|
||||
} ||
|
||||
{ echo "$0: cannot unlink or rename $dst" >&2
|
||||
(exit 1); exit 1
|
||||
}
|
||||
} &&
|
||||
|
||||
# Now rename the file to the real destination.
|
||||
$doit $mvcmd "$dsttmp" "$dst"
|
||||
# Now rename the file to the real destination.
|
||||
$doit $mvcmd "$dsttmp" "$dst"
|
||||
}
|
||||
fi || exit 1
|
||||
|
||||
|
|
556
ltmain.sh
556
ltmain.sh
|
@ -31,7 +31,7 @@
|
|||
|
||||
PROGRAM=libtool
|
||||
PACKAGE=libtool
|
||||
VERSION="2.4.6 Debian-2.4.6-2"
|
||||
VERSION="2.4.6 Debian-2.4.6-4"
|
||||
package_revision=2.4.6
|
||||
|
||||
|
||||
|
@ -64,7 +64,7 @@ package_revision=2.4.6
|
|||
# libraries, which are installed to $pkgauxdir.
|
||||
|
||||
# Set a version string for this script.
|
||||
scriptversion=2015-01-20.17; # UTC
|
||||
scriptversion=2015-10-12.13; # UTC
|
||||
|
||||
# General shell script boiler plate, and helper functions.
|
||||
# Written by Gary V. Vaughan, 2004
|
||||
|
@ -580,16 +580,16 @@ if test yes = "$_G_HAVE_PLUSEQ_OP"; then
|
|||
{
|
||||
$debug_cmd
|
||||
|
||||
func_quote_for_eval "$2"
|
||||
eval "$1+=\\ \$func_quote_for_eval_result"
|
||||
func_quote_arg pretty "$2"
|
||||
eval "$1+=\\ \$func_quote_arg_result"
|
||||
}'
|
||||
else
|
||||
func_append_quoted ()
|
||||
{
|
||||
$debug_cmd
|
||||
|
||||
func_quote_for_eval "$2"
|
||||
eval "$1=\$$1\\ \$func_quote_for_eval_result"
|
||||
func_quote_arg pretty "$2"
|
||||
eval "$1=\$$1\\ \$func_quote_arg_result"
|
||||
}
|
||||
fi
|
||||
|
||||
|
@ -1091,85 +1091,181 @@ func_relative_path ()
|
|||
}
|
||||
|
||||
|
||||
# func_quote_for_eval ARG...
|
||||
# --------------------------
|
||||
# Aesthetically quote ARGs to be evaled later.
|
||||
# This function returns two values:
|
||||
# i) func_quote_for_eval_result
|
||||
# double-quoted, suitable for a subsequent eval
|
||||
# ii) func_quote_for_eval_unquoted_result
|
||||
# has all characters that are still active within double
|
||||
# quotes backslashified.
|
||||
func_quote_for_eval ()
|
||||
# func_quote_portable EVAL ARG
|
||||
# ----------------------------
|
||||
# Internal function to portably implement func_quote_arg. Note that we still
|
||||
# keep attention to performance here so we as much as possible try to avoid
|
||||
# calling sed binary (so far O(N) complexity as long as func_append is O(1)).
|
||||
func_quote_portable ()
|
||||
{
|
||||
$debug_cmd
|
||||
|
||||
func_quote_for_eval_unquoted_result=
|
||||
func_quote_for_eval_result=
|
||||
while test 0 -lt $#; do
|
||||
case $1 in
|
||||
func_quote_portable_result=$2
|
||||
|
||||
# one-time-loop (easy break)
|
||||
while true
|
||||
do
|
||||
if $1; then
|
||||
func_quote_portable_result=`$ECHO "$2" | $SED \
|
||||
-e "$sed_double_quote_subst" -e "$sed_double_backslash"`
|
||||
break
|
||||
fi
|
||||
|
||||
# Quote for eval.
|
||||
case $func_quote_portable_result in
|
||||
*[\\\`\"\$]*)
|
||||
_G_unquoted_arg=`printf '%s\n' "$1" |$SED "$sed_quote_subst"` ;;
|
||||
*)
|
||||
_G_unquoted_arg=$1 ;;
|
||||
esac
|
||||
if test -n "$func_quote_for_eval_unquoted_result"; then
|
||||
func_append func_quote_for_eval_unquoted_result " $_G_unquoted_arg"
|
||||
else
|
||||
func_append func_quote_for_eval_unquoted_result "$_G_unquoted_arg"
|
||||
fi
|
||||
case $func_quote_portable_result in
|
||||
*[\[\*\?]*)
|
||||
func_quote_portable_result=`$ECHO "$func_quote_portable_result" | $SED "$sed_quote_subst"`
|
||||
break
|
||||
;;
|
||||
esac
|
||||
|
||||
case $_G_unquoted_arg in
|
||||
# Double-quote args containing shell metacharacters to delay
|
||||
# word splitting, command substitution and variable expansion
|
||||
# for a subsequent eval.
|
||||
# Many Bourne shells cannot handle close brackets correctly
|
||||
# in scan sets, so we specify it separately.
|
||||
*[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
|
||||
_G_quoted_arg=\"$_G_unquoted_arg\"
|
||||
func_quote_portable_old_IFS=$IFS
|
||||
for _G_char in '\' '`' '"' '$'
|
||||
do
|
||||
# STATE($1) PREV($2) SEPARATOR($3)
|
||||
set start "" ""
|
||||
func_quote_portable_result=dummy"$_G_char$func_quote_portable_result$_G_char"dummy
|
||||
IFS=$_G_char
|
||||
for _G_part in $func_quote_portable_result
|
||||
do
|
||||
case $1 in
|
||||
quote)
|
||||
func_append func_quote_portable_result "$3$2"
|
||||
set quote "$_G_part" "\\$_G_char"
|
||||
;;
|
||||
start)
|
||||
set first "" ""
|
||||
func_quote_portable_result=
|
||||
;;
|
||||
first)
|
||||
set quote "$_G_part" ""
|
||||
;;
|
||||
esac
|
||||
done
|
||||
done
|
||||
IFS=$func_quote_portable_old_IFS
|
||||
;;
|
||||
*)
|
||||
_G_quoted_arg=$_G_unquoted_arg
|
||||
;;
|
||||
*) ;;
|
||||
esac
|
||||
|
||||
if test -n "$func_quote_for_eval_result"; then
|
||||
func_append func_quote_for_eval_result " $_G_quoted_arg"
|
||||
else
|
||||
func_append func_quote_for_eval_result "$_G_quoted_arg"
|
||||
fi
|
||||
shift
|
||||
break
|
||||
done
|
||||
|
||||
func_quote_portable_unquoted_result=$func_quote_portable_result
|
||||
case $func_quote_portable_result in
|
||||
# double-quote args containing shell metacharacters to delay
|
||||
# word splitting, command substitution and variable expansion
|
||||
# for a subsequent eval.
|
||||
# many bourne shells cannot handle close brackets correctly
|
||||
# in scan sets, so we specify it separately.
|
||||
*[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
|
||||
func_quote_portable_result=\"$func_quote_portable_result\"
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
|
||||
# func_quote_for_expand ARG
|
||||
# -------------------------
|
||||
# Aesthetically quote ARG to be evaled later; same as above,
|
||||
# but do not quote variable references.
|
||||
func_quote_for_expand ()
|
||||
# func_quotefast_eval ARG
|
||||
# -----------------------
|
||||
# Quote one ARG (internal). This is equivalent to 'func_quote_arg eval ARG',
|
||||
# but optimized for speed. Result is stored in $func_quotefast_eval.
|
||||
if test xyes = `(x=; printf -v x %q yes; echo x"$x") 2>/dev/null`; then
|
||||
func_quotefast_eval ()
|
||||
{
|
||||
printf -v func_quotefast_eval_result %q "$1"
|
||||
}
|
||||
else
|
||||
func_quotefast_eval ()
|
||||
{
|
||||
func_quote_portable false "$1"
|
||||
func_quotefast_eval_result=$func_quote_portable_result
|
||||
}
|
||||
fi
|
||||
|
||||
|
||||
# func_quote_arg MODEs ARG
|
||||
# ------------------------
|
||||
# Quote one ARG to be evaled later. MODEs argument may contain zero ore more
|
||||
# specifiers listed below separated by ',' character. This function returns two
|
||||
# values:
|
||||
# i) func_quote_arg_result
|
||||
# double-quoted (when needed), suitable for a subsequent eval
|
||||
# ii) func_quote_arg_unquoted_result
|
||||
# has all characters that are still active within double
|
||||
# quotes backslashified. Available only if 'unquoted' is specified.
|
||||
#
|
||||
# Available modes:
|
||||
# ----------------
|
||||
# 'eval' (default)
|
||||
# - escape shell special characters
|
||||
# 'expand'
|
||||
# - the same as 'eval'; but do not quote variable references
|
||||
# 'pretty'
|
||||
# - request aesthetic output, i.e. '"a b"' instead of 'a\ b'. This might
|
||||
# later used in func_quote to get output like: 'echo "a b"' instead of
|
||||
# 'echo a\ b'. This is slower than default on some shells.
|
||||
# 'unquoted'
|
||||
# - produce also $func_quote_arg_unquoted_result which does not contain
|
||||
# wrapping double-quotes.
|
||||
#
|
||||
# Examples for 'func_quote_arg pretty,unquoted string':
|
||||
#
|
||||
# string | *_result | *_unquoted_result
|
||||
# ------------+-----------------------+-------------------
|
||||
# " | \" | \"
|
||||
# a b | "a b" | a b
|
||||
# "a b" | "\"a b\"" | \"a b\"
|
||||
# * | "*" | *
|
||||
# z="${x-$y}" | "z=\"\${x-\$y}\"" | z=\"\${x-\$y}\"
|
||||
#
|
||||
# Examples for 'func_quote_arg pretty,unquoted,expand string':
|
||||
#
|
||||
# string | *_result | *_unquoted_result
|
||||
# --------------+---------------------+--------------------
|
||||
# z="${x-$y}" | "z=\"${x-$y}\"" | z=\"${x-$y}\"
|
||||
func_quote_arg ()
|
||||
{
|
||||
$debug_cmd
|
||||
|
||||
case $1 in
|
||||
*[\\\`\"]*)
|
||||
_G_arg=`$ECHO "$1" | $SED \
|
||||
-e "$sed_double_quote_subst" -e "$sed_double_backslash"` ;;
|
||||
*)
|
||||
_G_arg=$1 ;;
|
||||
esac
|
||||
|
||||
case $_G_arg in
|
||||
# Double-quote args containing shell metacharacters to delay
|
||||
# word splitting and command substitution for a subsequent eval.
|
||||
# Many Bourne shells cannot handle close brackets correctly
|
||||
# in scan sets, so we specify it separately.
|
||||
*[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
|
||||
_G_arg=\"$_G_arg\"
|
||||
_G_quote_expand=false
|
||||
case ,$1, in
|
||||
*,expand,*)
|
||||
_G_quote_expand=:
|
||||
;;
|
||||
esac
|
||||
|
||||
func_quote_for_expand_result=$_G_arg
|
||||
case ,$1, in
|
||||
*,pretty,*|*,expand,*|*,unquoted,*)
|
||||
func_quote_portable $_G_quote_expand "$2"
|
||||
func_quote_arg_result=$func_quote_portable_result
|
||||
func_quote_arg_unquoted_result=$func_quote_portable_unquoted_result
|
||||
;;
|
||||
*)
|
||||
# Faster quote-for-eval for some shells.
|
||||
func_quotefast_eval "$2"
|
||||
func_quote_arg_result=$func_quotefast_eval_result
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
|
||||
# func_quote MODEs ARGs...
|
||||
# ------------------------
|
||||
# Quote all ARGs to be evaled later and join them into single command. See
|
||||
# func_quote_arg's description for more info.
|
||||
func_quote ()
|
||||
{
|
||||
$debug_cmd
|
||||
_G_func_quote_mode=$1 ; shift
|
||||
func_quote_result=
|
||||
while test 0 -lt $#; do
|
||||
func_quote_arg "$_G_func_quote_mode" "$1"
|
||||
if test -n "$func_quote_result"; then
|
||||
func_append func_quote_result " $func_quote_arg_result"
|
||||
else
|
||||
func_append func_quote_result "$func_quote_arg_result"
|
||||
fi
|
||||
shift
|
||||
done
|
||||
}
|
||||
|
||||
|
||||
|
@ -1215,8 +1311,8 @@ func_show_eval ()
|
|||
_G_cmd=$1
|
||||
_G_fail_exp=${2-':'}
|
||||
|
||||
func_quote_for_expand "$_G_cmd"
|
||||
eval "func_notquiet $func_quote_for_expand_result"
|
||||
func_quote_arg pretty,expand "$_G_cmd"
|
||||
eval "func_notquiet $func_quote_arg_result"
|
||||
|
||||
$opt_dry_run || {
|
||||
eval "$_G_cmd"
|
||||
|
@ -1241,8 +1337,8 @@ func_show_eval_locale ()
|
|||
_G_fail_exp=${2-':'}
|
||||
|
||||
$opt_quiet || {
|
||||
func_quote_for_expand "$_G_cmd"
|
||||
eval "func_echo $func_quote_for_expand_result"
|
||||
func_quote_arg expand,pretty "$_G_cmd"
|
||||
eval "func_echo $func_quote_arg_result"
|
||||
}
|
||||
|
||||
$opt_dry_run || {
|
||||
|
@ -1370,7 +1466,7 @@ func_lt_ver ()
|
|||
#! /bin/sh
|
||||
|
||||
# Set a version string for this script.
|
||||
scriptversion=2014-01-07.03; # UTC
|
||||
scriptversion=2015-10-12.13; # UTC
|
||||
|
||||
# A portable, pluggable option parser for Bourne shell.
|
||||
# Written by Gary V. Vaughan, 2010
|
||||
|
@ -1530,6 +1626,8 @@ func_run_hooks ()
|
|||
{
|
||||
$debug_cmd
|
||||
|
||||
_G_rc_run_hooks=false
|
||||
|
||||
case " $hookable_fns " in
|
||||
*" $1 "*) ;;
|
||||
*) func_fatal_error "'$1' does not support hook funcions.n" ;;
|
||||
|
@ -1538,16 +1636,16 @@ func_run_hooks ()
|
|||
eval _G_hook_fns=\$$1_hooks; shift
|
||||
|
||||
for _G_hook in $_G_hook_fns; do
|
||||
eval $_G_hook '"$@"'
|
||||
|
||||
# store returned options list back into positional
|
||||
# parameters for next 'cmd' execution.
|
||||
eval _G_hook_result=\$${_G_hook}_result
|
||||
eval set dummy "$_G_hook_result"; shift
|
||||
if eval $_G_hook '"$@"'; then
|
||||
# store returned options list back into positional
|
||||
# parameters for next 'cmd' execution.
|
||||
eval _G_hook_result=\$${_G_hook}_result
|
||||
eval set dummy "$_G_hook_result"; shift
|
||||
_G_rc_run_hooks=:
|
||||
fi
|
||||
done
|
||||
|
||||
func_quote_for_eval ${1+"$@"}
|
||||
func_run_hooks_result=$func_quote_for_eval_result
|
||||
$_G_rc_run_hooks && func_run_hooks_result=$_G_hook_result
|
||||
}
|
||||
|
||||
|
||||
|
@ -1557,10 +1655,16 @@ func_run_hooks ()
|
|||
## --------------- ##
|
||||
|
||||
# In order to add your own option parsing hooks, you must accept the
|
||||
# full positional parameter list in your hook function, remove any
|
||||
# options that you action, and then pass back the remaining unprocessed
|
||||
# full positional parameter list in your hook function, you may remove/edit
|
||||
# any options that you action, and then pass back the remaining unprocessed
|
||||
# options in '<hooked_function_name>_result', escaped suitably for
|
||||
# 'eval'. Like this:
|
||||
# 'eval'. In this case you also must return $EXIT_SUCCESS to let the
|
||||
# hook's caller know that it should pay attention to
|
||||
# '<hooked_function_name>_result'. Returning $EXIT_FAILURE signalizes that
|
||||
# arguments are left untouched by the hook and therefore caller will ignore the
|
||||
# result variable.
|
||||
#
|
||||
# Like this:
|
||||
#
|
||||
# my_options_prep ()
|
||||
# {
|
||||
|
@ -1570,9 +1674,11 @@ func_run_hooks ()
|
|||
# usage_message=$usage_message'
|
||||
# -s, --silent don'\''t print informational messages
|
||||
# '
|
||||
#
|
||||
# func_quote_for_eval ${1+"$@"}
|
||||
# my_options_prep_result=$func_quote_for_eval_result
|
||||
# # No change in '$@' (ignored completely by this hook). There is
|
||||
# # no need to do the equivalent (but slower) action:
|
||||
# # func_quote eval ${1+"$@"}
|
||||
# # my_options_prep_result=$func_quote_result
|
||||
# false
|
||||
# }
|
||||
# func_add_hook func_options_prep my_options_prep
|
||||
#
|
||||
|
@ -1581,25 +1687,37 @@ func_run_hooks ()
|
|||
# {
|
||||
# $debug_cmd
|
||||
#
|
||||
# args_changed=false
|
||||
#
|
||||
# # Note that for efficiency, we parse as many options as we can
|
||||
# # recognise in a loop before passing the remainder back to the
|
||||
# # caller on the first unrecognised argument we encounter.
|
||||
# while test $# -gt 0; do
|
||||
# opt=$1; shift
|
||||
# case $opt in
|
||||
# --silent|-s) opt_silent=: ;;
|
||||
# --silent|-s) opt_silent=:
|
||||
# args_changed=:
|
||||
# ;;
|
||||
# # Separate non-argument short options:
|
||||
# -s*) func_split_short_opt "$_G_opt"
|
||||
# set dummy "$func_split_short_opt_name" \
|
||||
# "-$func_split_short_opt_arg" ${1+"$@"}
|
||||
# shift
|
||||
# args_changed=:
|
||||
# ;;
|
||||
# *) set dummy "$_G_opt" "$*"; shift; break ;;
|
||||
# *) # Make sure the first unrecognised option "$_G_opt"
|
||||
# # is added back to "$@", we could need that later
|
||||
# # if $args_changed is true.
|
||||
# set dummy "$_G_opt" ${1+"$@"}; shift; break ;;
|
||||
# esac
|
||||
# done
|
||||
#
|
||||
# func_quote_for_eval ${1+"$@"}
|
||||
# my_silent_option_result=$func_quote_for_eval_result
|
||||
# if $args_changed; then
|
||||
# func_quote eval ${1+"$@"}
|
||||
# my_silent_option_result=$func_quote_result
|
||||
# fi
|
||||
#
|
||||
# $args_changed
|
||||
# }
|
||||
# func_add_hook func_parse_options my_silent_option
|
||||
#
|
||||
|
@ -1611,16 +1729,32 @@ func_run_hooks ()
|
|||
# $opt_silent && $opt_verbose && func_fatal_help "\
|
||||
# '--silent' and '--verbose' options are mutually exclusive."
|
||||
#
|
||||
# func_quote_for_eval ${1+"$@"}
|
||||
# my_option_validation_result=$func_quote_for_eval_result
|
||||
# false
|
||||
# }
|
||||
# func_add_hook func_validate_options my_option_validation
|
||||
#
|
||||
# You'll alse need to manually amend $usage_message to reflect the extra
|
||||
# You'll also need to manually amend $usage_message to reflect the extra
|
||||
# options you parse. It's preferable to append if you can, so that
|
||||
# multiple option parsing hooks can be added safely.
|
||||
|
||||
|
||||
# func_options_finish [ARG]...
|
||||
# ----------------------------
|
||||
# Finishing the option parse loop (call 'func_options' hooks ATM).
|
||||
func_options_finish ()
|
||||
{
|
||||
$debug_cmd
|
||||
|
||||
_G_func_options_finish_exit=false
|
||||
if func_run_hooks func_options ${1+"$@"}; then
|
||||
func_options_finish_result=$func_run_hooks_result
|
||||
_G_func_options_finish_exit=:
|
||||
fi
|
||||
|
||||
$_G_func_options_finish_exit
|
||||
}
|
||||
|
||||
|
||||
# func_options [ARG]...
|
||||
# ---------------------
|
||||
# All the functions called inside func_options are hookable. See the
|
||||
|
@ -1630,17 +1764,28 @@ func_options ()
|
|||
{
|
||||
$debug_cmd
|
||||
|
||||
func_options_prep ${1+"$@"}
|
||||
eval func_parse_options \
|
||||
${func_options_prep_result+"$func_options_prep_result"}
|
||||
eval func_validate_options \
|
||||
${func_parse_options_result+"$func_parse_options_result"}
|
||||
_G_rc_options=false
|
||||
|
||||
eval func_run_hooks func_options \
|
||||
${func_validate_options_result+"$func_validate_options_result"}
|
||||
for my_func in options_prep parse_options validate_options options_finish
|
||||
do
|
||||
if eval func_$my_func '${1+"$@"}'; then
|
||||
eval _G_res_var='$'"func_${my_func}_result"
|
||||
eval set dummy "$_G_res_var" ; shift
|
||||
_G_rc_options=:
|
||||
fi
|
||||
done
|
||||
|
||||
# save modified positional parameters for caller
|
||||
func_options_result=$func_run_hooks_result
|
||||
# Save modified positional parameters for caller. As a top-level
|
||||
# options-parser function we always need to set the 'func_options_result'
|
||||
# variable (regardless the $_G_rc_options value).
|
||||
if $_G_rc_options; then
|
||||
func_options_result=$_G_res_var
|
||||
else
|
||||
func_quote eval ${1+"$@"}
|
||||
func_options_result=$func_quote_result
|
||||
fi
|
||||
|
||||
$_G_rc_options
|
||||
}
|
||||
|
||||
|
||||
|
@ -1649,9 +1794,9 @@ func_options ()
|
|||
# All initialisations required before starting the option parse loop.
|
||||
# Note that when calling hook functions, we pass through the list of
|
||||
# positional parameters. If a hook function modifies that list, and
|
||||
# needs to propogate that back to rest of this script, then the complete
|
||||
# needs to propagate that back to rest of this script, then the complete
|
||||
# modified list must be put in 'func_run_hooks_result' before
|
||||
# returning.
|
||||
# returning $EXIT_SUCCESS (otherwise $EXIT_FAILURE is returned).
|
||||
func_hookable func_options_prep
|
||||
func_options_prep ()
|
||||
{
|
||||
|
@ -1661,10 +1806,14 @@ func_options_prep ()
|
|||
opt_verbose=false
|
||||
opt_warning_types=
|
||||
|
||||
func_run_hooks func_options_prep ${1+"$@"}
|
||||
_G_rc_options_prep=false
|
||||
if func_run_hooks func_options_prep ${1+"$@"}; then
|
||||
_G_rc_options_prep=:
|
||||
# save modified positional parameters for caller
|
||||
func_options_prep_result=$func_run_hooks_result
|
||||
fi
|
||||
|
||||
# save modified positional parameters for caller
|
||||
func_options_prep_result=$func_run_hooks_result
|
||||
$_G_rc_options_prep
|
||||
}
|
||||
|
||||
|
||||
|
@ -1678,18 +1827,20 @@ func_parse_options ()
|
|||
|
||||
func_parse_options_result=
|
||||
|
||||
_G_rc_parse_options=false
|
||||
# this just eases exit handling
|
||||
while test $# -gt 0; do
|
||||
# Defer to hook functions for initial option parsing, so they
|
||||
# get priority in the event of reusing an option name.
|
||||
func_run_hooks func_parse_options ${1+"$@"}
|
||||
|
||||
# Adjust func_parse_options positional parameters to match
|
||||
eval set dummy "$func_run_hooks_result"; shift
|
||||
if func_run_hooks func_parse_options ${1+"$@"}; then
|
||||
eval set dummy "$func_run_hooks_result"; shift
|
||||
_G_rc_parse_options=:
|
||||
fi
|
||||
|
||||
# Break out of the loop if we already parsed every option.
|
||||
test $# -gt 0 || break
|
||||
|
||||
_G_match_parse_options=:
|
||||
_G_opt=$1
|
||||
shift
|
||||
case $_G_opt in
|
||||
|
@ -1704,7 +1855,10 @@ func_parse_options ()
|
|||
;;
|
||||
|
||||
--warnings|--warning|-W)
|
||||
test $# = 0 && func_missing_arg $_G_opt && break
|
||||
if test $# = 0 && func_missing_arg $_G_opt; then
|
||||
_G_rc_parse_options=:
|
||||
break
|
||||
fi
|
||||
case " $warning_categories $1" in
|
||||
*" $1 "*)
|
||||
# trailing space prevents matching last $1 above
|
||||
|
@ -1757,15 +1911,25 @@ func_parse_options ()
|
|||
shift
|
||||
;;
|
||||
|
||||
--) break ;;
|
||||
--) _G_rc_parse_options=: ; break ;;
|
||||
-*) func_fatal_help "unrecognised option: '$_G_opt'" ;;
|
||||
*) set dummy "$_G_opt" ${1+"$@"}; shift; break ;;
|
||||
*) set dummy "$_G_opt" ${1+"$@"}; shift
|
||||
_G_match_parse_options=false
|
||||
break
|
||||
;;
|
||||
esac
|
||||
|
||||
$_G_match_parse_options && _G_rc_parse_options=:
|
||||
done
|
||||
|
||||
# save modified positional parameters for caller
|
||||
func_quote_for_eval ${1+"$@"}
|
||||
func_parse_options_result=$func_quote_for_eval_result
|
||||
|
||||
if $_G_rc_parse_options; then
|
||||
# save modified positional parameters for caller
|
||||
func_quote eval ${1+"$@"}
|
||||
func_parse_options_result=$func_quote_result
|
||||
fi
|
||||
|
||||
$_G_rc_parse_options
|
||||
}
|
||||
|
||||
|
||||
|
@ -1778,16 +1942,21 @@ func_validate_options ()
|
|||
{
|
||||
$debug_cmd
|
||||
|
||||
_G_rc_validate_options=false
|
||||
|
||||
# Display all warnings if -W was not given.
|
||||
test -n "$opt_warning_types" || opt_warning_types=" $warning_categories"
|
||||
|
||||
func_run_hooks func_validate_options ${1+"$@"}
|
||||
if func_run_hooks func_validate_options ${1+"$@"}; then
|
||||
# save modified positional parameters for caller
|
||||
func_validate_options_result=$func_run_hooks_result
|
||||
_G_rc_validate_options=:
|
||||
fi
|
||||
|
||||
# Bail if the options were screwed!
|
||||
$exit_cmd $EXIT_FAILURE
|
||||
|
||||
# save modified positional parameters for caller
|
||||
func_validate_options_result=$func_run_hooks_result
|
||||
$_G_rc_validate_options
|
||||
}
|
||||
|
||||
|
||||
|
@ -2068,7 +2237,7 @@ include the following information:
|
|||
compiler: $LTCC
|
||||
compiler flags: $LTCFLAGS
|
||||
linker: $LD (gnu? $with_gnu_ld)
|
||||
version: $progname $scriptversion Debian-2.4.6-2
|
||||
version: $progname $scriptversion Debian-2.4.6-4
|
||||
automake: `($AUTOMAKE --version) 2>/dev/null |$SED 1q`
|
||||
autoconf: `($AUTOCONF --version) 2>/dev/null |$SED 1q`
|
||||
|
||||
|
@ -2270,6 +2439,8 @@ libtool_options_prep ()
|
|||
nonopt=
|
||||
preserve_args=
|
||||
|
||||
_G_rc_lt_options_prep=:
|
||||
|
||||
# Shorthand for --mode=foo, only valid as the first argument
|
||||
case $1 in
|
||||
clean|clea|cle|cl)
|
||||
|
@ -2293,11 +2464,18 @@ libtool_options_prep ()
|
|||
uninstall|uninstal|uninsta|uninst|unins|unin|uni|un|u)
|
||||
shift; set dummy --mode uninstall ${1+"$@"}; shift
|
||||
;;
|
||||
*)
|
||||
_G_rc_lt_options_prep=false
|
||||
;;
|
||||
esac
|
||||
|
||||
# Pass back the list of options.
|
||||
func_quote_for_eval ${1+"$@"}
|
||||
libtool_options_prep_result=$func_quote_for_eval_result
|
||||
if $_G_rc_lt_options_prep; then
|
||||
# Pass back the list of options.
|
||||
func_quote eval ${1+"$@"}
|
||||
libtool_options_prep_result=$func_quote_result
|
||||
fi
|
||||
|
||||
$_G_rc_lt_options_prep
|
||||
}
|
||||
func_add_hook func_options_prep libtool_options_prep
|
||||
|
||||
|
@ -2309,9 +2487,12 @@ libtool_parse_options ()
|
|||
{
|
||||
$debug_cmd
|
||||
|
||||
_G_rc_lt_parse_options=false
|
||||
|
||||
# Perform our own loop to consume as many options as possible in
|
||||
# each iteration.
|
||||
while test $# -gt 0; do
|
||||
_G_match_lt_parse_options=:
|
||||
_G_opt=$1
|
||||
shift
|
||||
case $_G_opt in
|
||||
|
@ -2386,15 +2567,22 @@ libtool_parse_options ()
|
|||
func_append preserve_args " $_G_opt"
|
||||
;;
|
||||
|
||||
# An option not handled by this hook function:
|
||||
*) set dummy "$_G_opt" ${1+"$@"}; shift; break ;;
|
||||
# An option not handled by this hook function:
|
||||
*) set dummy "$_G_opt" ${1+"$@"} ; shift
|
||||
_G_match_lt_parse_options=false
|
||||
break
|
||||
;;
|
||||
esac
|
||||
$_G_match_lt_parse_options && _G_rc_lt_parse_options=:
|
||||
done
|
||||
|
||||
if $_G_rc_lt_parse_options; then
|
||||
# save modified positional parameters for caller
|
||||
func_quote eval ${1+"$@"}
|
||||
libtool_parse_options_result=$func_quote_result
|
||||
fi
|
||||
|
||||
# save modified positional parameters for caller
|
||||
func_quote_for_eval ${1+"$@"}
|
||||
libtool_parse_options_result=$func_quote_for_eval_result
|
||||
$_G_rc_lt_parse_options
|
||||
}
|
||||
func_add_hook func_parse_options libtool_parse_options
|
||||
|
||||
|
@ -2451,8 +2639,8 @@ libtool_validate_options ()
|
|||
}
|
||||
|
||||
# Pass back the unparsed argument list
|
||||
func_quote_for_eval ${1+"$@"}
|
||||
libtool_validate_options_result=$func_quote_for_eval_result
|
||||
func_quote eval ${1+"$@"}
|
||||
libtool_validate_options_result=$func_quote_result
|
||||
}
|
||||
func_add_hook func_validate_options libtool_validate_options
|
||||
|
||||
|
@ -3418,8 +3606,8 @@ func_mode_compile ()
|
|||
esac
|
||||
done
|
||||
|
||||
func_quote_for_eval "$libobj"
|
||||
test "X$libobj" != "X$func_quote_for_eval_result" \
|
||||
func_quote_arg pretty "$libobj"
|
||||
test "X$libobj" != "X$func_quote_arg_result" \
|
||||
&& $ECHO "X$libobj" | $GREP '[]~#^*{};<>?"'"'"' &()|`$[]' \
|
||||
&& func_warning "libobj name '$libobj' may not contain shell special characters."
|
||||
func_dirname_and_basename "$obj" "/" ""
|
||||
|
@ -3492,8 +3680,8 @@ compiler."
|
|||
|
||||
func_to_tool_file "$srcfile" func_convert_file_msys_to_w32
|
||||
srcfile=$func_to_tool_file_result
|
||||
func_quote_for_eval "$srcfile"
|
||||
qsrcfile=$func_quote_for_eval_result
|
||||
func_quote_arg pretty "$srcfile"
|
||||
qsrcfile=$func_quote_arg_result
|
||||
|
||||
# Only build a PIC object if we are building libtool libraries.
|
||||
if test yes = "$build_libtool_libs"; then
|
||||
|
@ -4096,8 +4284,8 @@ func_mode_install ()
|
|||
case $nonopt in *shtool*) :;; *) false;; esac
|
||||
then
|
||||
# Aesthetically quote it.
|
||||
func_quote_for_eval "$nonopt"
|
||||
install_prog="$func_quote_for_eval_result "
|
||||
func_quote_arg pretty "$nonopt"
|
||||
install_prog="$func_quote_arg_result "
|
||||
arg=$1
|
||||
shift
|
||||
else
|
||||
|
@ -4107,8 +4295,8 @@ func_mode_install ()
|
|||
|
||||
# The real first argument should be the name of the installation program.
|
||||
# Aesthetically quote it.
|
||||
func_quote_for_eval "$arg"
|
||||
func_append install_prog "$func_quote_for_eval_result"
|
||||
func_quote_arg pretty "$arg"
|
||||
func_append install_prog "$func_quote_arg_result"
|
||||
install_shared_prog=$install_prog
|
||||
case " $install_prog " in
|
||||
*[\\\ /]cp\ *) install_cp=: ;;
|
||||
|
@ -4165,12 +4353,12 @@ func_mode_install ()
|
|||
esac
|
||||
|
||||
# Aesthetically quote the argument.
|
||||
func_quote_for_eval "$arg"
|
||||
func_append install_prog " $func_quote_for_eval_result"
|
||||
func_quote_arg pretty "$arg"
|
||||
func_append install_prog " $func_quote_arg_result"
|
||||
if test -n "$arg2"; then
|
||||
func_quote_for_eval "$arg2"
|
||||
func_quote_arg pretty "$arg2"
|
||||
fi
|
||||
func_append install_shared_prog " $func_quote_for_eval_result"
|
||||
func_append install_shared_prog " $func_quote_arg_result"
|
||||
done
|
||||
|
||||
test -z "$install_prog" && \
|
||||
|
@ -4181,8 +4369,8 @@ func_mode_install ()
|
|||
|
||||
if test -n "$install_override_mode" && $no_mode; then
|
||||
if $install_cp; then :; else
|
||||
func_quote_for_eval "$install_override_mode"
|
||||
func_append install_shared_prog " -m $func_quote_for_eval_result"
|
||||
func_quote_arg pretty "$install_override_mode"
|
||||
func_append install_shared_prog " -m $func_quote_arg_result"
|
||||
fi
|
||||
fi
|
||||
|
||||
|
@ -4478,8 +4666,8 @@ func_mode_install ()
|
|||
relink_command=`$ECHO "$relink_command" | $SED 's%@OUTPUT@%'"$outputname"'%g'`
|
||||
|
||||
$opt_quiet || {
|
||||
func_quote_for_expand "$relink_command"
|
||||
eval "func_echo $func_quote_for_expand_result"
|
||||
func_quote_arg expand,pretty "$relink_command"
|
||||
eval "func_echo $func_quote_arg_result"
|
||||
}
|
||||
if eval "$relink_command"; then :
|
||||
else
|
||||
|
@ -5258,7 +5446,8 @@ else
|
|||
if test \"\$libtool_execute_magic\" != \"$magic\"; then
|
||||
file=\"\$0\""
|
||||
|
||||
qECHO=`$ECHO "$ECHO" | $SED "$sed_quote_subst"`
|
||||
func_quote_arg pretty "$ECHO"
|
||||
qECHO=$func_quote_arg_result
|
||||
$ECHO "\
|
||||
|
||||
# A function that is used when there is no print builtin or printf.
|
||||
|
@ -5268,7 +5457,7 @@ func_fallback_echo ()
|
|||
\$1
|
||||
_LTECHO_EOF'
|
||||
}
|
||||
ECHO=\"$qECHO\"
|
||||
ECHO=$qECHO
|
||||
fi
|
||||
|
||||
# Very basic option parsing. These options are (a) specific to
|
||||
|
@ -6611,9 +6800,9 @@ func_mode_link ()
|
|||
while test "$#" -gt 0; do
|
||||
arg=$1
|
||||
shift
|
||||
func_quote_for_eval "$arg"
|
||||
qarg=$func_quote_for_eval_unquoted_result
|
||||
func_append libtool_args " $func_quote_for_eval_result"
|
||||
func_quote_arg pretty,unquoted "$arg"
|
||||
qarg=$func_quote_arg_unquoted_result
|
||||
func_append libtool_args " $func_quote_arg_result"
|
||||
|
||||
# If the previous option needs an argument, assign it.
|
||||
if test -n "$prev"; then
|
||||
|
@ -7211,9 +7400,9 @@ func_mode_link ()
|
|||
save_ifs=$IFS; IFS=,
|
||||
for flag in $args; do
|
||||
IFS=$save_ifs
|
||||
func_quote_for_eval "$flag"
|
||||
func_append arg " $func_quote_for_eval_result"
|
||||
func_append compiler_flags " $func_quote_for_eval_result"
|
||||
func_quote_arg pretty "$flag"
|
||||
func_append arg " $func_quote_arg_result"
|
||||
func_append compiler_flags " $func_quote_arg_result"
|
||||
done
|
||||
IFS=$save_ifs
|
||||
func_stripname ' ' '' "$arg"
|
||||
|
@ -7227,10 +7416,10 @@ func_mode_link ()
|
|||
save_ifs=$IFS; IFS=,
|
||||
for flag in $args; do
|
||||
IFS=$save_ifs
|
||||
func_quote_for_eval "$flag"
|
||||
func_append arg " $wl$func_quote_for_eval_result"
|
||||
func_append compiler_flags " $wl$func_quote_for_eval_result"
|
||||
func_append linker_flags " $func_quote_for_eval_result"
|
||||
func_quote_arg pretty "$flag"
|
||||
func_append arg " $wl$func_quote_arg_result"
|
||||
func_append compiler_flags " $wl$func_quote_arg_result"
|
||||
func_append linker_flags " $func_quote_arg_result"
|
||||
done
|
||||
IFS=$save_ifs
|
||||
func_stripname ' ' '' "$arg"
|
||||
|
@ -7254,8 +7443,8 @@ func_mode_link ()
|
|||
|
||||
# -msg_* for osf cc
|
||||
-msg_*)
|
||||
func_quote_for_eval "$arg"
|
||||
arg=$func_quote_for_eval_result
|
||||
func_quote_arg pretty "$arg"
|
||||
arg=$func_quote_arg_result
|
||||
;;
|
||||
|
||||
# Flags to be passed through unchanged, with rationale:
|
||||
|
@ -7279,8 +7468,8 @@ func_mode_link ()
|
|||
-t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*|-tp=*|--sysroot=*| \
|
||||
-O*|-g*|-flto*|-fwhopr*|-fuse-linker-plugin|-fstack-protector*|-stdlib=*| \
|
||||
-specs=*|-fsanitize=*)
|
||||
func_quote_for_eval "$arg"
|
||||
arg=$func_quote_for_eval_result
|
||||
func_quote_arg pretty "$arg"
|
||||
arg=$func_quote_arg_result
|
||||
func_append compile_command " $arg"
|
||||
func_append finalize_command " $arg"
|
||||
func_append compiler_flags " $arg"
|
||||
|
@ -7301,15 +7490,15 @@ func_mode_link ()
|
|||
continue
|
||||
else
|
||||
# Otherwise treat like 'Some other compiler flag' below
|
||||
func_quote_for_eval "$arg"
|
||||
arg=$func_quote_for_eval_result
|
||||
func_quote_arg pretty "$arg"
|
||||
arg=$func_quote_arg_result
|
||||
fi
|
||||
;;
|
||||
|
||||
# Some other compiler flag.
|
||||
-* | +*)
|
||||
func_quote_for_eval "$arg"
|
||||
arg=$func_quote_for_eval_result
|
||||
func_quote_arg pretty "$arg"
|
||||
arg=$func_quote_arg_result
|
||||
;;
|
||||
|
||||
*.$objext)
|
||||
|
@ -7429,8 +7618,8 @@ func_mode_link ()
|
|||
*)
|
||||
# Unknown arguments in both finalize_command and compile_command need
|
||||
# to be aesthetically quoted because they are evaled later.
|
||||
func_quote_for_eval "$arg"
|
||||
arg=$func_quote_for_eval_result
|
||||
func_quote_arg pretty "$arg"
|
||||
arg=$func_quote_arg_result
|
||||
;;
|
||||
esac # arg
|
||||
|
||||
|
@ -9942,8 +10131,8 @@ EOF
|
|||
for cmd in $concat_cmds; do
|
||||
IFS=$save_ifs
|
||||
$opt_quiet || {
|
||||
func_quote_for_expand "$cmd"
|
||||
eval "func_echo $func_quote_for_expand_result"
|
||||
func_quote_arg expand,pretty "$cmd"
|
||||
eval "func_echo $func_quote_arg_result"
|
||||
}
|
||||
$opt_dry_run || eval "$cmd" || {
|
||||
lt_exit=$?
|
||||
|
@ -10036,8 +10225,8 @@ EOF
|
|||
eval cmd=\"$cmd\"
|
||||
IFS=$save_ifs
|
||||
$opt_quiet || {
|
||||
func_quote_for_expand "$cmd"
|
||||
eval "func_echo $func_quote_for_expand_result"
|
||||
func_quote_arg expand,pretty "$cmd"
|
||||
eval "func_echo $func_quote_arg_result"
|
||||
}
|
||||
$opt_dry_run || eval "$cmd" || {
|
||||
lt_exit=$?
|
||||
|
@ -10511,12 +10700,12 @@ EOF
|
|||
elif eval var_value=\$$var; test -z "$var_value"; then
|
||||
relink_command="$var=; export $var; $relink_command"
|
||||
else
|
||||
func_quote_for_eval "$var_value"
|
||||
relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command"
|
||||
func_quote_arg pretty "$var_value"
|
||||
relink_command="$var=$func_quote_arg_result; export $var; $relink_command"
|
||||
fi
|
||||
done
|
||||
relink_command="(cd `pwd`; $relink_command)"
|
||||
relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"`
|
||||
func_quote_arg pretty,unquoted "(cd `pwd`; $relink_command)"
|
||||
relink_command=$func_quote_arg_unquoted_result
|
||||
fi
|
||||
|
||||
# Only actually do things if not in dry run mode.
|
||||
|
@ -10756,13 +10945,14 @@ EOF
|
|||
elif eval var_value=\$$var; test -z "$var_value"; then
|
||||
relink_command="$var=; export $var; $relink_command"
|
||||
else
|
||||
func_quote_for_eval "$var_value"
|
||||
relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command"
|
||||
func_quote_arg pretty,unquoted "$var_value"
|
||||
relink_command="$var=$func_quote_arg_unquoted_result; export $var; $relink_command"
|
||||
fi
|
||||
done
|
||||
# Quote the link command for shipping.
|
||||
relink_command="(cd `pwd`; $SHELL \"$progpath\" $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)"
|
||||
relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"`
|
||||
func_quote_arg pretty,unquoted "$relink_command"
|
||||
relink_command=$func_quote_arg_unquoted_result
|
||||
if test yes = "$hardcode_automatic"; then
|
||||
relink_command=
|
||||
fi
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
# ltsugar.m4 -- libtool m4 base layer. -*-Autoconf-*-
|
||||
#
|
||||
# Copyright (C) 2004, 2005, 2007, 2008 Free Software Foundation, Inc.
|
||||
# Copyright (C) 2004-2005, 2007-2008, 2011-2015 Free Software
|
||||
# Foundation, Inc.
|
||||
# Written by Gary V. Vaughan, 2004
|
||||
#
|
||||
# This file is free software; the Free Software Foundation gives
|
||||
|
@ -33,7 +34,7 @@ m4_define([_lt_join],
|
|||
# ------------
|
||||
# Manipulate m4 lists.
|
||||
# These macros are necessary as long as will still need to support
|
||||
# Autoconf-2.59 which quotes differently.
|
||||
# Autoconf-2.59, which quotes differently.
|
||||
m4_define([lt_car], [[$1]])
|
||||
m4_define([lt_cdr],
|
||||
[m4_if([$#], 0, [m4_fatal([$0: cannot be called without arguments])],
|
||||
|
@ -44,7 +45,7 @@ m4_define([lt_unquote], $1)
|
|||
|
||||
# lt_append(MACRO-NAME, STRING, [SEPARATOR])
|
||||
# ------------------------------------------
|
||||
# Redefine MACRO-NAME to hold its former content plus `SEPARATOR'`STRING'.
|
||||
# Redefine MACRO-NAME to hold its former content plus 'SEPARATOR''STRING'.
|
||||
# Note that neither SEPARATOR nor STRING are expanded; they are appended
|
||||
# to MACRO-NAME as is (leaving the expansion for when MACRO-NAME is invoked).
|
||||
# No SEPARATOR is output if MACRO-NAME was previously undefined (different
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
# lt~obsolete.m4 -- aclocal satisfying obsolete definitions. -*-Autoconf-*-
|
||||
#
|
||||
# Copyright (C) 2004, 2005, 2007, 2009 Free Software Foundation, Inc.
|
||||
# Copyright (C) 2004-2005, 2007, 2009, 2011-2015 Free Software
|
||||
# Foundation, Inc.
|
||||
# Written by Scott James Remnant, 2004.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation gives
|
||||
|
@ -11,7 +12,7 @@
|
|||
|
||||
# These exist entirely to fool aclocal when bootstrapping libtool.
|
||||
#
|
||||
# In the past libtool.m4 has provided macros via AC_DEFUN (or AU_DEFUN)
|
||||
# In the past libtool.m4 has provided macros via AC_DEFUN (or AU_DEFUN),
|
||||
# which have later been changed to m4_define as they aren't part of the
|
||||
# exported API, or moved to Autoconf or Automake where they belong.
|
||||
#
|
||||
|
@ -25,7 +26,7 @@
|
|||
# included after everything else. This provides aclocal with the
|
||||
# AC_DEFUNs it wants, but when m4 processes it, it doesn't do anything
|
||||
# because those macros already exist, or will be overwritten later.
|
||||
# We use AC_DEFUN over AU_DEFUN for compatibility with aclocal-1.6.
|
||||
# We use AC_DEFUN over AU_DEFUN for compatibility with aclocal-1.6.
|
||||
#
|
||||
# Anytime we withdraw an AC_DEFUN or AU_DEFUN, remember to add it here.
|
||||
# Yes, that means every name once taken will need to remain here until
|
||||
|
|
2
missing
2
missing
|
@ -3,7 +3,7 @@
|
|||
|
||||
scriptversion=2013-10-28.13; # UTC
|
||||
|
||||
# Copyright (C) 1996-2013 Free Software Foundation, Inc.
|
||||
# Copyright (C) 1996-2014 Free Software Foundation, Inc.
|
||||
# Originally written by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996.
|
||||
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
|
|
321
src/Makefile.in
321
src/Makefile.in
|
@ -1,7 +1,7 @@
|
|||
# Makefile.in generated by automake 1.15 from Makefile.am.
|
||||
# Makefile.in generated by automake 1.16.1 from Makefile.am.
|
||||
# @configure_input@
|
||||
|
||||
# Copyright (C) 1994-2014 Free Software Foundation, Inc.
|
||||
# Copyright (C) 1994-2018 Free Software Foundation, Inc.
|
||||
|
||||
# This Makefile.in is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
|
@ -109,6 +109,10 @@ mkinstalldirs = $(install_sh) -d
|
|||
CONFIG_HEADER = $(top_builddir)/config.h
|
||||
CONFIG_CLEAN_FILES = libpcsclite.pc pcscd.h
|
||||
CONFIG_CLEAN_VPATH_FILES =
|
||||
am__installdirs = "$(DESTDIR)$(sbindir)" "$(DESTDIR)$(libdir)" \
|
||||
"$(DESTDIR)$(nodistheaderdir)" "$(DESTDIR)$(pcdir)" \
|
||||
"$(DESTDIR)$(includedir)"
|
||||
PROGRAMS = $(noinst_PROGRAMS) $(sbin_PROGRAMS)
|
||||
am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
|
||||
am__vpath_adj = case $$p in \
|
||||
$(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
|
||||
|
@ -136,9 +140,6 @@ am__uninstall_files_from_dir = { \
|
|||
|| { echo " ( cd '$$dir' && rm -f" $$files ")"; \
|
||||
$(am__cd) "$$dir" && rm -f $$files; }; \
|
||||
}
|
||||
am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(sbindir)" \
|
||||
"$(DESTDIR)$(nodistheaderdir)" "$(DESTDIR)$(pcdir)" \
|
||||
"$(DESTDIR)$(includedir)"
|
||||
LTLIBRARIES = $(lib_LTLIBRARIES)
|
||||
am__DEPENDENCIES_1 =
|
||||
libpcsclite_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \
|
||||
|
@ -156,7 +157,6 @@ libpcsclite_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
|
|||
$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
|
||||
$(libpcsclite_la_CFLAGS) $(CFLAGS) $(libpcsclite_la_LDFLAGS) \
|
||||
$(LDFLAGS) -o $@
|
||||
PROGRAMS = $(noinst_PROGRAMS) $(sbin_PROGRAMS)
|
||||
am_pcsc_wirecheck_OBJECTS = pcsc-wirecheck-dist.$(OBJEXT) \
|
||||
pcsc-wirecheck-main.$(OBJEXT)
|
||||
pcsc_wirecheck_OBJECTS = $(am_pcsc_wirecheck_OBJECTS)
|
||||
|
@ -218,7 +218,37 @@ am__v_at_0 = @
|
|||
am__v_at_1 =
|
||||
DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
|
||||
depcomp = $(SHELL) $(top_srcdir)/depcomp
|
||||
am__depfiles_maybe = depfiles
|
||||
am__maybe_remake_depfiles = depfiles
|
||||
am__depfiles_remade = ./$(DEPDIR)/libpcsclite_la-debug.Plo \
|
||||
./$(DEPDIR)/libpcsclite_la-error.Plo \
|
||||
./$(DEPDIR)/libpcsclite_la-simclist.Plo \
|
||||
./$(DEPDIR)/libpcsclite_la-sys_unix.Plo \
|
||||
./$(DEPDIR)/libpcsclite_la-utils.Plo \
|
||||
./$(DEPDIR)/libpcsclite_la-winscard_clnt.Plo \
|
||||
./$(DEPDIR)/libpcsclite_la-winscard_msg.Plo \
|
||||
./$(DEPDIR)/pcsc-wirecheck-dist.Po \
|
||||
./$(DEPDIR)/pcsc-wirecheck-gen.Po \
|
||||
./$(DEPDIR)/pcsc-wirecheck-main.Po \
|
||||
./$(DEPDIR)/pcscd-atrhandler.Po ./$(DEPDIR)/pcscd-auth.Po \
|
||||
./$(DEPDIR)/pcscd-configfile.Po ./$(DEPDIR)/pcscd-debuglog.Po \
|
||||
./$(DEPDIR)/pcscd-dyn_hpux.Po ./$(DEPDIR)/pcscd-dyn_macosx.Po \
|
||||
./$(DEPDIR)/pcscd-dyn_unix.Po \
|
||||
./$(DEPDIR)/pcscd-eventhandler.Po \
|
||||
./$(DEPDIR)/pcscd-hotplug_generic.Po \
|
||||
./$(DEPDIR)/pcscd-hotplug_libudev.Po \
|
||||
./$(DEPDIR)/pcscd-hotplug_libusb.Po \
|
||||
./$(DEPDIR)/pcscd-hotplug_linux.Po \
|
||||
./$(DEPDIR)/pcscd-hotplug_macosx.Po \
|
||||
./$(DEPDIR)/pcscd-ifdwrapper.Po \
|
||||
./$(DEPDIR)/pcscd-pcscdaemon.Po \
|
||||
./$(DEPDIR)/pcscd-prothandler.Po \
|
||||
./$(DEPDIR)/pcscd-readerfactory.Po \
|
||||
./$(DEPDIR)/pcscd-simclist.Po ./$(DEPDIR)/pcscd-sys_unix.Po \
|
||||
./$(DEPDIR)/pcscd-tokenparser.Po ./$(DEPDIR)/pcscd-utils.Po \
|
||||
./$(DEPDIR)/pcscd-winscard.Po \
|
||||
./$(DEPDIR)/pcscd-winscard_msg.Po \
|
||||
./$(DEPDIR)/pcscd-winscard_msg_srv.Po \
|
||||
./$(DEPDIR)/pcscd-winscard_svc.Po ./$(DEPDIR)/testpcsc.Po
|
||||
am__mv = mv -f
|
||||
COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
|
||||
$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
|
||||
|
@ -275,7 +305,7 @@ am__recursive_targets = \
|
|||
$(RECURSIVE_CLEAN_TARGETS) \
|
||||
$(am__extra_recursive_targets)
|
||||
AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \
|
||||
distdir
|
||||
distdir distdir-am
|
||||
am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
|
||||
# Read a list of newline-separated strings from the standard input,
|
||||
# and print each of them once, without duplicates. Input order is
|
||||
|
@ -602,8 +632,8 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
|
|||
*config.status*) \
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
|
||||
*) \
|
||||
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
|
||||
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
|
||||
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \
|
||||
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \
|
||||
esac;
|
||||
|
||||
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
|
||||
|
@ -619,44 +649,6 @@ libpcsclite.pc: $(top_builddir)/config.status $(srcdir)/libpcsclite.pc.in
|
|||
pcscd.h: $(top_builddir)/config.status $(srcdir)/pcscd.h.in
|
||||
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
|
||||
|
||||
install-libLTLIBRARIES: $(lib_LTLIBRARIES)
|
||||
@$(NORMAL_INSTALL)
|
||||
@list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \
|
||||
list2=; for p in $$list; do \
|
||||
if test -f $$p; then \
|
||||
list2="$$list2 $$p"; \
|
||||
else :; fi; \
|
||||
done; \
|
||||
test -z "$$list2" || { \
|
||||
echo " $(MKDIR_P) '$(DESTDIR)$(libdir)'"; \
|
||||
$(MKDIR_P) "$(DESTDIR)$(libdir)" || exit 1; \
|
||||
echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \
|
||||
$(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \
|
||||
}
|
||||
|
||||
uninstall-libLTLIBRARIES:
|
||||
@$(NORMAL_UNINSTALL)
|
||||
@list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \
|
||||
for p in $$list; do \
|
||||
$(am__strip_dir) \
|
||||
echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$f'"; \
|
||||
$(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$f"; \
|
||||
done
|
||||
|
||||
clean-libLTLIBRARIES:
|
||||
-test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES)
|
||||
@list='$(lib_LTLIBRARIES)'; \
|
||||
locs=`for p in $$list; do echo $$p; done | \
|
||||
sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \
|
||||
sort -u`; \
|
||||
test -z "$$locs" || { \
|
||||
echo rm -f $${locs}; \
|
||||
rm -f $${locs}; \
|
||||
}
|
||||
|
||||
libpcsclite.la: $(libpcsclite_la_OBJECTS) $(libpcsclite_la_DEPENDENCIES) $(EXTRA_libpcsclite_la_DEPENDENCIES)
|
||||
$(AM_V_CCLD)$(libpcsclite_la_LINK) -rpath $(libdir) $(libpcsclite_la_OBJECTS) $(libpcsclite_la_LIBADD) $(LIBS)
|
||||
|
||||
clean-noinstPROGRAMS:
|
||||
@list='$(noinst_PROGRAMS)'; test -n "$$list" || exit 0; \
|
||||
echo " rm -f" $$list; \
|
||||
|
@ -715,6 +707,44 @@ clean-sbinPROGRAMS:
|
|||
echo " rm -f" $$list; \
|
||||
rm -f $$list
|
||||
|
||||
install-libLTLIBRARIES: $(lib_LTLIBRARIES)
|
||||
@$(NORMAL_INSTALL)
|
||||
@list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \
|
||||
list2=; for p in $$list; do \
|
||||
if test -f $$p; then \
|
||||
list2="$$list2 $$p"; \
|
||||
else :; fi; \
|
||||
done; \
|
||||
test -z "$$list2" || { \
|
||||
echo " $(MKDIR_P) '$(DESTDIR)$(libdir)'"; \
|
||||
$(MKDIR_P) "$(DESTDIR)$(libdir)" || exit 1; \
|
||||
echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \
|
||||
$(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \
|
||||
}
|
||||
|
||||
uninstall-libLTLIBRARIES:
|
||||
@$(NORMAL_UNINSTALL)
|
||||
@list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \
|
||||
for p in $$list; do \
|
||||
$(am__strip_dir) \
|
||||
echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$f'"; \
|
||||
$(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$f"; \
|
||||
done
|
||||
|
||||
clean-libLTLIBRARIES:
|
||||
-test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES)
|
||||
@list='$(lib_LTLIBRARIES)'; \
|
||||
locs=`for p in $$list; do echo $$p; done | \
|
||||
sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \
|
||||
sort -u`; \
|
||||
test -z "$$locs" || { \
|
||||
echo rm -f $${locs}; \
|
||||
rm -f $${locs}; \
|
||||
}
|
||||
|
||||
libpcsclite.la: $(libpcsclite_la_OBJECTS) $(libpcsclite_la_DEPENDENCIES) $(EXTRA_libpcsclite_la_DEPENDENCIES)
|
||||
$(AM_V_CCLD)$(libpcsclite_la_LINK) -rpath $(libdir) $(libpcsclite_la_OBJECTS) $(libpcsclite_la_LIBADD) $(LIBS)
|
||||
|
||||
pcsc-wirecheck$(EXEEXT): $(pcsc_wirecheck_OBJECTS) $(pcsc_wirecheck_DEPENDENCIES) $(EXTRA_pcsc_wirecheck_DEPENDENCIES)
|
||||
@rm -f pcsc-wirecheck$(EXEEXT)
|
||||
$(AM_V_CCLD)$(LINK) $(pcsc_wirecheck_OBJECTS) $(pcsc_wirecheck_LDADD) $(LIBS)
|
||||
|
@ -737,42 +767,48 @@ mostlyclean-compile:
|
|||
distclean-compile:
|
||||
-rm -f *.tab.c
|
||||
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libpcsclite_la-debug.Plo@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libpcsclite_la-error.Plo@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libpcsclite_la-simclist.Plo@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libpcsclite_la-sys_unix.Plo@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libpcsclite_la-utils.Plo@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libpcsclite_la-winscard_clnt.Plo@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libpcsclite_la-winscard_msg.Plo@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pcsc-wirecheck-dist.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pcsc-wirecheck-gen.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pcsc-wirecheck-main.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pcscd-atrhandler.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pcscd-auth.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pcscd-configfile.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pcscd-debuglog.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pcscd-dyn_hpux.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pcscd-dyn_macosx.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pcscd-dyn_unix.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pcscd-eventhandler.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pcscd-hotplug_generic.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pcscd-hotplug_libudev.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pcscd-hotplug_libusb.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pcscd-hotplug_linux.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pcscd-hotplug_macosx.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pcscd-ifdwrapper.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pcscd-pcscdaemon.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pcscd-prothandler.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pcscd-readerfactory.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pcscd-simclist.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pcscd-sys_unix.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pcscd-tokenparser.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pcscd-utils.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pcscd-winscard.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pcscd-winscard_msg.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pcscd-winscard_msg_srv.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pcscd-winscard_svc.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/testpcsc.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libpcsclite_la-debug.Plo@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libpcsclite_la-error.Plo@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libpcsclite_la-simclist.Plo@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libpcsclite_la-sys_unix.Plo@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libpcsclite_la-utils.Plo@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libpcsclite_la-winscard_clnt.Plo@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libpcsclite_la-winscard_msg.Plo@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pcsc-wirecheck-dist.Po@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pcsc-wirecheck-gen.Po@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pcsc-wirecheck-main.Po@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pcscd-atrhandler.Po@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pcscd-auth.Po@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pcscd-configfile.Po@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pcscd-debuglog.Po@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pcscd-dyn_hpux.Po@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pcscd-dyn_macosx.Po@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pcscd-dyn_unix.Po@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pcscd-eventhandler.Po@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pcscd-hotplug_generic.Po@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pcscd-hotplug_libudev.Po@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pcscd-hotplug_libusb.Po@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pcscd-hotplug_linux.Po@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pcscd-hotplug_macosx.Po@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pcscd-ifdwrapper.Po@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pcscd-pcscdaemon.Po@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pcscd-prothandler.Po@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pcscd-readerfactory.Po@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pcscd-simclist.Po@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pcscd-sys_unix.Po@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pcscd-tokenparser.Po@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pcscd-utils.Po@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pcscd-winscard.Po@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pcscd-winscard_msg.Po@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pcscd-winscard_msg_srv.Po@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pcscd-winscard_svc.Po@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/testpcsc.Po@am__quote@ # am--include-marker
|
||||
|
||||
$(am__depfiles_remade):
|
||||
@$(MKDIR_P) $(@D)
|
||||
@echo '# dummy' >$@-t && $(am__mv) $@-t $@
|
||||
|
||||
am--depfiles: $(am__depfiles_remade)
|
||||
|
||||
.c.o:
|
||||
@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
|
||||
|
@ -1368,7 +1404,10 @@ cscopelist-am: $(am__tagged_files)
|
|||
distclean-tags:
|
||||
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
|
||||
|
||||
distdir: $(DISTFILES)
|
||||
distdir: $(BUILT_SOURCES)
|
||||
$(MAKE) $(AM_MAKEFLAGS) distdir-am
|
||||
|
||||
distdir-am: $(DISTFILES)
|
||||
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
||||
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
||||
list='$(DISTFILES)'; \
|
||||
|
@ -1425,10 +1464,10 @@ distdir: $(DISTFILES)
|
|||
done
|
||||
check-am: all-am
|
||||
check: check-recursive
|
||||
all-am: Makefile $(LTLIBRARIES) $(PROGRAMS) $(DATA) $(HEADERS)
|
||||
all-am: Makefile $(PROGRAMS) $(LTLIBRARIES) $(DATA) $(HEADERS)
|
||||
installdirs: installdirs-recursive
|
||||
installdirs-am:
|
||||
for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(sbindir)" "$(DESTDIR)$(nodistheaderdir)" "$(DESTDIR)$(pcdir)" "$(DESTDIR)$(includedir)"; do \
|
||||
for dir in "$(DESTDIR)$(sbindir)" "$(DESTDIR)$(libdir)" "$(DESTDIR)$(nodistheaderdir)" "$(DESTDIR)$(pcdir)" "$(DESTDIR)$(includedir)"; do \
|
||||
test -z "$$dir" || $(MKDIR_P) "$$dir"; \
|
||||
done
|
||||
install: install-recursive
|
||||
|
@ -1469,7 +1508,42 @@ clean-am: clean-generic clean-libLTLIBRARIES clean-libtool \
|
|||
clean-noinstPROGRAMS clean-sbinPROGRAMS mostlyclean-am
|
||||
|
||||
distclean: distclean-recursive
|
||||
-rm -rf ./$(DEPDIR)
|
||||
-rm -f ./$(DEPDIR)/libpcsclite_la-debug.Plo
|
||||
-rm -f ./$(DEPDIR)/libpcsclite_la-error.Plo
|
||||
-rm -f ./$(DEPDIR)/libpcsclite_la-simclist.Plo
|
||||
-rm -f ./$(DEPDIR)/libpcsclite_la-sys_unix.Plo
|
||||
-rm -f ./$(DEPDIR)/libpcsclite_la-utils.Plo
|
||||
-rm -f ./$(DEPDIR)/libpcsclite_la-winscard_clnt.Plo
|
||||
-rm -f ./$(DEPDIR)/libpcsclite_la-winscard_msg.Plo
|
||||
-rm -f ./$(DEPDIR)/pcsc-wirecheck-dist.Po
|
||||
-rm -f ./$(DEPDIR)/pcsc-wirecheck-gen.Po
|
||||
-rm -f ./$(DEPDIR)/pcsc-wirecheck-main.Po
|
||||
-rm -f ./$(DEPDIR)/pcscd-atrhandler.Po
|
||||
-rm -f ./$(DEPDIR)/pcscd-auth.Po
|
||||
-rm -f ./$(DEPDIR)/pcscd-configfile.Po
|
||||
-rm -f ./$(DEPDIR)/pcscd-debuglog.Po
|
||||
-rm -f ./$(DEPDIR)/pcscd-dyn_hpux.Po
|
||||
-rm -f ./$(DEPDIR)/pcscd-dyn_macosx.Po
|
||||
-rm -f ./$(DEPDIR)/pcscd-dyn_unix.Po
|
||||
-rm -f ./$(DEPDIR)/pcscd-eventhandler.Po
|
||||
-rm -f ./$(DEPDIR)/pcscd-hotplug_generic.Po
|
||||
-rm -f ./$(DEPDIR)/pcscd-hotplug_libudev.Po
|
||||
-rm -f ./$(DEPDIR)/pcscd-hotplug_libusb.Po
|
||||
-rm -f ./$(DEPDIR)/pcscd-hotplug_linux.Po
|
||||
-rm -f ./$(DEPDIR)/pcscd-hotplug_macosx.Po
|
||||
-rm -f ./$(DEPDIR)/pcscd-ifdwrapper.Po
|
||||
-rm -f ./$(DEPDIR)/pcscd-pcscdaemon.Po
|
||||
-rm -f ./$(DEPDIR)/pcscd-prothandler.Po
|
||||
-rm -f ./$(DEPDIR)/pcscd-readerfactory.Po
|
||||
-rm -f ./$(DEPDIR)/pcscd-simclist.Po
|
||||
-rm -f ./$(DEPDIR)/pcscd-sys_unix.Po
|
||||
-rm -f ./$(DEPDIR)/pcscd-tokenparser.Po
|
||||
-rm -f ./$(DEPDIR)/pcscd-utils.Po
|
||||
-rm -f ./$(DEPDIR)/pcscd-winscard.Po
|
||||
-rm -f ./$(DEPDIR)/pcscd-winscard_msg.Po
|
||||
-rm -f ./$(DEPDIR)/pcscd-winscard_msg_srv.Po
|
||||
-rm -f ./$(DEPDIR)/pcscd-winscard_svc.Po
|
||||
-rm -f ./$(DEPDIR)/testpcsc.Po
|
||||
-rm -f Makefile
|
||||
distclean-am: clean-am distclean-compile distclean-generic \
|
||||
distclean-tags
|
||||
|
@ -1516,7 +1590,42 @@ install-ps-am:
|
|||
installcheck-am:
|
||||
|
||||
maintainer-clean: maintainer-clean-recursive
|
||||
-rm -rf ./$(DEPDIR)
|
||||
-rm -f ./$(DEPDIR)/libpcsclite_la-debug.Plo
|
||||
-rm -f ./$(DEPDIR)/libpcsclite_la-error.Plo
|
||||
-rm -f ./$(DEPDIR)/libpcsclite_la-simclist.Plo
|
||||
-rm -f ./$(DEPDIR)/libpcsclite_la-sys_unix.Plo
|
||||
-rm -f ./$(DEPDIR)/libpcsclite_la-utils.Plo
|
||||
-rm -f ./$(DEPDIR)/libpcsclite_la-winscard_clnt.Plo
|
||||
-rm -f ./$(DEPDIR)/libpcsclite_la-winscard_msg.Plo
|
||||
-rm -f ./$(DEPDIR)/pcsc-wirecheck-dist.Po
|
||||
-rm -f ./$(DEPDIR)/pcsc-wirecheck-gen.Po
|
||||
-rm -f ./$(DEPDIR)/pcsc-wirecheck-main.Po
|
||||
-rm -f ./$(DEPDIR)/pcscd-atrhandler.Po
|
||||
-rm -f ./$(DEPDIR)/pcscd-auth.Po
|
||||
-rm -f ./$(DEPDIR)/pcscd-configfile.Po
|
||||
-rm -f ./$(DEPDIR)/pcscd-debuglog.Po
|
||||
-rm -f ./$(DEPDIR)/pcscd-dyn_hpux.Po
|
||||
-rm -f ./$(DEPDIR)/pcscd-dyn_macosx.Po
|
||||
-rm -f ./$(DEPDIR)/pcscd-dyn_unix.Po
|
||||
-rm -f ./$(DEPDIR)/pcscd-eventhandler.Po
|
||||
-rm -f ./$(DEPDIR)/pcscd-hotplug_generic.Po
|
||||
-rm -f ./$(DEPDIR)/pcscd-hotplug_libudev.Po
|
||||
-rm -f ./$(DEPDIR)/pcscd-hotplug_libusb.Po
|
||||
-rm -f ./$(DEPDIR)/pcscd-hotplug_linux.Po
|
||||
-rm -f ./$(DEPDIR)/pcscd-hotplug_macosx.Po
|
||||
-rm -f ./$(DEPDIR)/pcscd-ifdwrapper.Po
|
||||
-rm -f ./$(DEPDIR)/pcscd-pcscdaemon.Po
|
||||
-rm -f ./$(DEPDIR)/pcscd-prothandler.Po
|
||||
-rm -f ./$(DEPDIR)/pcscd-readerfactory.Po
|
||||
-rm -f ./$(DEPDIR)/pcscd-simclist.Po
|
||||
-rm -f ./$(DEPDIR)/pcscd-sys_unix.Po
|
||||
-rm -f ./$(DEPDIR)/pcscd-tokenparser.Po
|
||||
-rm -f ./$(DEPDIR)/pcscd-utils.Po
|
||||
-rm -f ./$(DEPDIR)/pcscd-winscard.Po
|
||||
-rm -f ./$(DEPDIR)/pcscd-winscard_msg.Po
|
||||
-rm -f ./$(DEPDIR)/pcscd-winscard_msg_srv.Po
|
||||
-rm -f ./$(DEPDIR)/pcscd-winscard_svc.Po
|
||||
-rm -f ./$(DEPDIR)/testpcsc.Po
|
||||
-rm -f Makefile
|
||||
maintainer-clean-am: distclean-am maintainer-clean-generic
|
||||
|
||||
|
@ -1539,23 +1648,23 @@ uninstall-am: uninstall-libLTLIBRARIES uninstall-nobase_includeHEADERS \
|
|||
|
||||
.MAKE: $(am__recursive_targets) install-am install-strip
|
||||
|
||||
.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \
|
||||
check-am clean clean-generic clean-libLTLIBRARIES \
|
||||
clean-libtool clean-noinstPROGRAMS clean-sbinPROGRAMS \
|
||||
cscopelist-am ctags ctags-am distclean distclean-compile \
|
||||
distclean-generic distclean-libtool distclean-tags distdir dvi \
|
||||
dvi-am html html-am info info-am install install-am \
|
||||
install-data install-data-am install-dvi install-dvi-am \
|
||||
install-exec install-exec-am install-html install-html-am \
|
||||
install-info install-info-am install-libLTLIBRARIES \
|
||||
install-man install-nobase_includeHEADERS \
|
||||
install-nodistheaderDATA install-pcDATA install-pdf \
|
||||
install-pdf-am install-ps install-ps-am install-sbinPROGRAMS \
|
||||
install-strip installcheck installcheck-am installdirs \
|
||||
installdirs-am maintainer-clean maintainer-clean-generic \
|
||||
mostlyclean mostlyclean-compile mostlyclean-generic \
|
||||
mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \
|
||||
uninstall-am uninstall-libLTLIBRARIES \
|
||||
.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am \
|
||||
am--depfiles check check-am clean clean-generic \
|
||||
clean-libLTLIBRARIES clean-libtool clean-noinstPROGRAMS \
|
||||
clean-sbinPROGRAMS cscopelist-am ctags ctags-am distclean \
|
||||
distclean-compile distclean-generic distclean-libtool \
|
||||
distclean-tags distdir dvi dvi-am html html-am info info-am \
|
||||
install install-am install-data install-data-am install-dvi \
|
||||
install-dvi-am install-exec install-exec-am install-html \
|
||||
install-html-am install-info install-info-am \
|
||||
install-libLTLIBRARIES install-man \
|
||||
install-nobase_includeHEADERS install-nodistheaderDATA \
|
||||
install-pcDATA install-pdf install-pdf-am install-ps \
|
||||
install-ps-am install-sbinPROGRAMS install-strip installcheck \
|
||||
installcheck-am installdirs installdirs-am maintainer-clean \
|
||||
maintainer-clean-generic mostlyclean mostlyclean-compile \
|
||||
mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
|
||||
tags tags-am uninstall uninstall-am uninstall-libLTLIBRARIES \
|
||||
uninstall-nobase_includeHEADERS uninstall-nodistheaderDATA \
|
||||
uninstall-pcDATA uninstall-sbinPROGRAMS
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* MUSCLE SmartCard Development ( http://pcsclite.alioth.debian.org/pcsclite.html )
|
||||
* MUSCLE SmartCard Development ( https://pcsclite.apdu.fr/ )
|
||||
*
|
||||
* Copyright (C) 1999-2004
|
||||
* David Corcoran <corcoran@musclecard.com>
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* MUSCLE SmartCard Development ( http://pcsclite.alioth.debian.org/pcsclite.html )
|
||||
* MUSCLE SmartCard Development ( https://pcsclite.apdu.fr/ )
|
||||
*
|
||||
* Copyright (C) 1999-2004
|
||||
* David Corcoran <corcoran@musclecard.com>
|
||||
|
@ -40,7 +40,7 @@ THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|||
The routines specified hereafter will allow you to write an IFD handler
|
||||
for the PC/SC Lite resource manager. Please use the complement
|
||||
developer's kit complete with headers and Makefile at:
|
||||
http://www.musclecard.com/drivers.html
|
||||
https://muscle.apdu.fr/musclecard.com/sourcedrivers.html
|
||||
|
||||
This gives a common API for communication to most readers in a
|
||||
homogeneous fashion. This document assumes that the driver developer is
|
||||
|
@ -82,7 +82,7 @@ Example:
|
|||
<string>0x04E6</string>
|
||||
@endverbatim
|
||||
|
||||
You may have an OEM of this reader in which an additional @c <string>
|
||||
You may have an OEM of this reader in which an additional @c \<string>
|
||||
can be used like in the below example:
|
||||
|
||||
@verbatim
|
||||
|
@ -98,9 +98,8 @@ also. You may chose not to support this feature but it is useful when
|
|||
reader vendors OEM products so you only distribute one driver.
|
||||
|
||||
|
||||
The CCID driver from Ludovic Rousseau
|
||||
http://pcsclite.alioth.debian.org/ccid.html uses this feature since the
|
||||
same driver supports many different readers.
|
||||
The CCID driver from Ludovic Rousseau https://ccid.apdu.fr/ uses this
|
||||
feature since the same driver supports many different readers.
|
||||
|
||||
@subsection ifdProductID
|
||||
|
||||
|
@ -203,7 +202,7 @@ It has the following syntax:
|
|||
# Configuration file for pcsc-lite
|
||||
# David Corcoran <corcoran@musclecard.com>
|
||||
|
||||
FRIENDLYNAME Generic Reader
|
||||
FRIENDLYNAME "Generic Reader"
|
||||
DEVICENAME /dev/ttyS0
|
||||
LIBPATH /usr/lib/pcsc/drivers/libgen_ifd.so
|
||||
CHANNELID 1
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* MUSCLE SmartCard Development ( http://pcsclite.alioth.debian.org/pcsclite.html )
|
||||
* MUSCLE SmartCard Development ( https://pcsclite.apdu.fr/ )
|
||||
*
|
||||
* Copyright (C) 1999-2004
|
||||
* David Corcoran <corcoran@musclecard.com>
|
||||
|
@ -279,7 +279,7 @@ extern const SCARD_IO_REQUEST g_rgSCardT0Pci, g_rgSCardT1Pci, g_rgSCardRawPci;
|
|||
#define INFINITE 0xFFFFFFFF /**< Infinite timeout */
|
||||
#endif
|
||||
|
||||
#define PCSCLITE_VERSION_NUMBER "1.8.23" /**< Current version */
|
||||
#define PCSCLITE_VERSION_NUMBER "1.8.24" /**< Current version */
|
||||
/** Maximum readers context (a slot is count as a reader) */
|
||||
#define PCSCLITE_MAX_READERS_CONTEXTS 16
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* MUSCLE SmartCard Development ( http://pcsclite.alioth.debian.org/pcsclite.html )
|
||||
* MUSCLE SmartCard Development ( https://pcsclite.apdu.fr/ )
|
||||
*
|
||||
* Copyright (C) 1999-2004
|
||||
* David Corcoran <corcoran@musclecard.com>
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* MUSCLE SmartCard Development ( http://pcsclite.alioth.debian.org/pcsclite.html )
|
||||
* MUSCLE SmartCard Development ( https://pcsclite.apdu.fr/ )
|
||||
*
|
||||
* Copyright (C) 1999-2005
|
||||
* David Corcoran <corcoran@musclecard.com>
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* MUSCLE SmartCard Development ( http://pcsclite.alioth.debian.org/pcsclite.html )
|
||||
* MUSCLE SmartCard Development ( https://pcsclite.apdu.fr/ )
|
||||
*
|
||||
* Copyright (C) 1999-2003
|
||||
* David Corcoran <corcoran@musclecard.com>
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* MUSCLE SmartCard Development ( http://pcsclite.alioth.debian.org/pcsclite.html )
|
||||
* MUSCLE SmartCard Development ( https://pcsclite.apdu.fr/ )
|
||||
*
|
||||
* Copyright (C) 1999
|
||||
* David Corcoran <corcoran@musclecard.com>
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* MUSCLE SmartCard Development ( http://pcsclite.alioth.debian.org/pcsclite.html )
|
||||
* MUSCLE SmartCard Development ( https://pcsclite.apdu.fr/ )
|
||||
*
|
||||
* Copyright (C) 1999-2002
|
||||
* David Corcoran <corcoran@musclecard.com>
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* MUSCLE SmartCard Development ( http://pcsclite.alioth.debian.org/pcsclite.html )
|
||||
* MUSCLE SmartCard Development ( https://pcsclite.apdu.fr/ )
|
||||
*
|
||||
* Copyright (C) 1999-2002
|
||||
* David Corcoran <corcoran@musclecard.com>
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* MUSCLE SmartCard Development ( http://pcsclite.alioth.debian.org/pcsclite.html )
|
||||
* MUSCLE SmartCard Development ( https://pcsclite.apdu.fr/ )
|
||||
*
|
||||
* Copyright (C) 2013 Red Hat
|
||||
*
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* MUSCLE SmartCard Development ( http://pcsclite.alioth.debian.org/pcsclite.html )
|
||||
* MUSCLE SmartCard Development ( https://pcsclite.apdu.fr/ )
|
||||
*
|
||||
* Copyright (C) 2013 Red Hat
|
||||
*
|
||||
|
|
242
src/configfile.c
242
src/configfile.c
|
@ -8,7 +8,7 @@
|
|||
#define FLEX_SCANNER
|
||||
#define YY_FLEX_MAJOR_VERSION 2
|
||||
#define YY_FLEX_MINOR_VERSION 6
|
||||
#define YY_FLEX_SUBMINOR_VERSION 1
|
||||
#define YY_FLEX_SUBMINOR_VERSION 4
|
||||
#if YY_FLEX_SUBMINOR_VERSION > 0
|
||||
#define FLEX_BETA
|
||||
#endif
|
||||
|
@ -83,10 +83,16 @@ typedef unsigned int flex_uint32_t;
|
|||
#define UINT32_MAX (4294967295U)
|
||||
#endif
|
||||
|
||||
#ifndef SIZE_MAX
|
||||
#define SIZE_MAX (~(size_t)0)
|
||||
#endif
|
||||
|
||||
#endif /* ! C99 */
|
||||
|
||||
#endif /* ! FLEXINT_H */
|
||||
|
||||
/* begin standard C++ headers. */
|
||||
|
||||
/* TODO: this is always defined, so inline it */
|
||||
#define yyconst const
|
||||
|
||||
|
@ -99,32 +105,26 @@ typedef unsigned int flex_uint32_t;
|
|||
/* Returned upon end-of-file. */
|
||||
#define YY_NULL 0
|
||||
|
||||
/* Promotes a possibly negative, possibly signed char to an unsigned
|
||||
* integer for use as an array index. If the signed char is negative,
|
||||
* we want to instead treat it as an 8-bit unsigned char, hence the
|
||||
* double cast.
|
||||
/* Promotes a possibly negative, possibly signed char to an
|
||||
* integer in range [0..255] for use as an array index.
|
||||
*/
|
||||
#define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
|
||||
#define YY_SC_TO_UI(c) ((YY_CHAR) (c))
|
||||
|
||||
/* Enter a start condition. This macro really ought to take a parameter,
|
||||
* but we do it the disgusting crufty way forced on us by the ()-less
|
||||
* definition of BEGIN.
|
||||
*/
|
||||
#define BEGIN (yy_start) = 1 + 2 *
|
||||
|
||||
/* Translate the current start state into a value that can be later handed
|
||||
* to BEGIN to return to the state. The YYSTATE alias is for lex
|
||||
* compatibility.
|
||||
*/
|
||||
#define YY_START (((yy_start) - 1) / 2)
|
||||
#define YYSTATE YY_START
|
||||
|
||||
/* Action number for EOF rule of a given start state. */
|
||||
#define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
|
||||
|
||||
/* Special action meaning "start processing a new file". */
|
||||
#define YY_NEW_FILE yyrestart(yyin )
|
||||
|
||||
#define YY_NEW_FILE yyrestart( yyin )
|
||||
#define YY_END_OF_BUFFER_CHAR 0
|
||||
|
||||
/* Size of default input buffer. */
|
||||
|
@ -161,7 +161,7 @@ extern FILE *yyin, *yyout;
|
|||
#define EOB_ACT_CONTINUE_SCAN 0
|
||||
#define EOB_ACT_END_OF_FILE 1
|
||||
#define EOB_ACT_LAST_MATCH 2
|
||||
|
||||
|
||||
#define YY_LESS_LINENO(n)
|
||||
#define YY_LINENO_REWIND_TO(ptr)
|
||||
|
||||
|
@ -178,7 +178,6 @@ extern FILE *yyin, *yyout;
|
|||
YY_DO_BEFORE_ACTION; /* set up yytext again */ \
|
||||
} \
|
||||
while ( 0 )
|
||||
|
||||
#define unput(c) yyunput( c, (yytext_ptr) )
|
||||
|
||||
#ifndef YY_STRUCT_YY_BUFFER_STATE
|
||||
|
@ -260,7 +259,6 @@ static YY_BUFFER_STATE * yy_buffer_stack = NULL; /**< Stack as an array. */
|
|||
#define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
|
||||
? (yy_buffer_stack)[(yy_buffer_stack_top)] \
|
||||
: NULL)
|
||||
|
||||
/* Same as previous macro, but useful when we know that the buffer stack is not
|
||||
* NULL or when we need an lvalue. For internal use only.
|
||||
*/
|
||||
|
@ -281,65 +279,59 @@ static int yy_start = 0; /* start state number */
|
|||
*/
|
||||
static int yy_did_buffer_switch_on_eof;
|
||||
|
||||
void yyrestart (FILE *input_file );
|
||||
void yy_switch_to_buffer (YY_BUFFER_STATE new_buffer );
|
||||
YY_BUFFER_STATE yy_create_buffer (FILE *file,int size );
|
||||
void yy_delete_buffer (YY_BUFFER_STATE b );
|
||||
void yy_flush_buffer (YY_BUFFER_STATE b );
|
||||
void yypush_buffer_state (YY_BUFFER_STATE new_buffer );
|
||||
void yypop_buffer_state (void );
|
||||
void yyrestart ( FILE *input_file );
|
||||
void yy_switch_to_buffer ( YY_BUFFER_STATE new_buffer );
|
||||
YY_BUFFER_STATE yy_create_buffer ( FILE *file, int size );
|
||||
void yy_delete_buffer ( YY_BUFFER_STATE b );
|
||||
void yy_flush_buffer ( YY_BUFFER_STATE b );
|
||||
void yypush_buffer_state ( YY_BUFFER_STATE new_buffer );
|
||||
void yypop_buffer_state ( void );
|
||||
|
||||
static void yyensure_buffer_stack (void );
|
||||
static void yy_load_buffer_state (void );
|
||||
static void yy_init_buffer (YY_BUFFER_STATE b,FILE *file );
|
||||
static void yyensure_buffer_stack ( void );
|
||||
static void yy_load_buffer_state ( void );
|
||||
static void yy_init_buffer ( YY_BUFFER_STATE b, FILE *file );
|
||||
#define YY_FLUSH_BUFFER yy_flush_buffer( YY_CURRENT_BUFFER )
|
||||
|
||||
#define YY_FLUSH_BUFFER yy_flush_buffer(YY_CURRENT_BUFFER )
|
||||
YY_BUFFER_STATE yy_scan_buffer ( char *base, yy_size_t size );
|
||||
YY_BUFFER_STATE yy_scan_string ( const char *yy_str );
|
||||
YY_BUFFER_STATE yy_scan_bytes ( const char *bytes, int len );
|
||||
|
||||
YY_BUFFER_STATE yy_scan_buffer (char *base,yy_size_t size );
|
||||
YY_BUFFER_STATE yy_scan_string (yyconst char *yy_str );
|
||||
YY_BUFFER_STATE yy_scan_bytes (yyconst char *bytes,int len );
|
||||
|
||||
void *yyalloc (yy_size_t );
|
||||
void *yyrealloc (void *,yy_size_t );
|
||||
void yyfree (void * );
|
||||
void *yyalloc ( yy_size_t );
|
||||
void *yyrealloc ( void *, yy_size_t );
|
||||
void yyfree ( void * );
|
||||
|
||||
#define yy_new_buffer yy_create_buffer
|
||||
|
||||
#define yy_set_interactive(is_interactive) \
|
||||
{ \
|
||||
if ( ! YY_CURRENT_BUFFER ){ \
|
||||
yyensure_buffer_stack (); \
|
||||
YY_CURRENT_BUFFER_LVALUE = \
|
||||
yy_create_buffer(yyin,YY_BUF_SIZE ); \
|
||||
yy_create_buffer( yyin, YY_BUF_SIZE ); \
|
||||
} \
|
||||
YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
|
||||
}
|
||||
|
||||
#define yy_set_bol(at_bol) \
|
||||
{ \
|
||||
if ( ! YY_CURRENT_BUFFER ){\
|
||||
yyensure_buffer_stack (); \
|
||||
YY_CURRENT_BUFFER_LVALUE = \
|
||||
yy_create_buffer(yyin,YY_BUF_SIZE ); \
|
||||
yy_create_buffer( yyin, YY_BUF_SIZE ); \
|
||||
} \
|
||||
YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
|
||||
}
|
||||
|
||||
#define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
|
||||
|
||||
/* Begin user sect3 */
|
||||
|
||||
#define yywrap() (/*CONSTCOND*/1)
|
||||
#define YY_SKIP_YYWRAP
|
||||
|
||||
typedef unsigned char YY_CHAR;
|
||||
typedef flex_uint8_t YY_CHAR;
|
||||
|
||||
FILE *yyin = NULL, *yyout = NULL;
|
||||
|
||||
typedef int yy_state_type;
|
||||
|
||||
extern int yylineno;
|
||||
|
||||
int yylineno = 1;
|
||||
|
||||
extern char *yytext;
|
||||
|
@ -348,10 +340,10 @@ extern char *yytext;
|
|||
#endif
|
||||
#define yytext_ptr yytext
|
||||
|
||||
static yy_state_type yy_get_previous_state (void );
|
||||
static yy_state_type yy_try_NUL_trans (yy_state_type current_state );
|
||||
static int yy_get_next_buffer (void );
|
||||
static void yynoreturn yy_fatal_error (yyconst char* msg );
|
||||
static yy_state_type yy_get_previous_state ( void );
|
||||
static yy_state_type yy_try_NUL_trans ( yy_state_type current_state );
|
||||
static int yy_get_next_buffer ( void );
|
||||
static void yynoreturn yy_fatal_error ( const char* msg );
|
||||
|
||||
/* Done after the current pattern has been matched and before the
|
||||
* corresponding action - sets up yytext.
|
||||
|
@ -362,7 +354,6 @@ static void yynoreturn yy_fatal_error (yyconst char* msg );
|
|||
(yy_hold_char) = *yy_cp; \
|
||||
*yy_cp = '\0'; \
|
||||
(yy_c_buf_p) = yy_cp;
|
||||
|
||||
#define YY_NUM_RULES 7
|
||||
#define YY_END_OF_BUFFER 8
|
||||
/* This struct is not used in this scanner,
|
||||
|
@ -372,13 +363,13 @@ struct yy_trans_info
|
|||
flex_int32_t yy_verify;
|
||||
flex_int32_t yy_nxt;
|
||||
};
|
||||
static yyconst flex_int16_t yy_accept[17] =
|
||||
static const flex_int16_t yy_accept[17] =
|
||||
{ 0,
|
||||
0, 0, 8, 6, 4, 2, 6, 1, 6, 5,
|
||||
0, 3, 1, 0, 5, 0
|
||||
} ;
|
||||
|
||||
static yyconst YY_CHAR yy_ec[256] =
|
||||
static const YY_CHAR yy_ec[256] =
|
||||
{ 0,
|
||||
1, 1, 1, 1, 1, 1, 1, 1, 2, 3,
|
||||
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
|
||||
|
@ -386,7 +377,7 @@ static yyconst YY_CHAR yy_ec[256] =
|
|||
1, 2, 1, 4, 5, 1, 1, 1, 6, 1,
|
||||
1, 1, 1, 1, 7, 7, 7, 8, 8, 8,
|
||||
8, 8, 8, 8, 8, 8, 8, 7, 1, 1,
|
||||
1, 1, 1, 7, 9, 9, 9, 9, 9, 9,
|
||||
7, 1, 1, 7, 9, 9, 9, 9, 9, 9,
|
||||
9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
|
||||
9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
|
||||
1, 7, 1, 1, 7, 1, 10, 10, 10, 10,
|
||||
|
@ -410,24 +401,24 @@ static yyconst YY_CHAR yy_ec[256] =
|
|||
1, 1, 1, 1, 1
|
||||
} ;
|
||||
|
||||
static yyconst YY_CHAR yy_meta[11] =
|
||||
static const YY_CHAR yy_meta[11] =
|
||||
{ 0,
|
||||
1, 1, 2, 1, 1, 1, 1, 1, 1, 1
|
||||
} ;
|
||||
|
||||
static yyconst flex_uint16_t yy_base[20] =
|
||||
static const flex_int16_t yy_base[20] =
|
||||
{ 0,
|
||||
0, 0, 15, 31, 31, 31, 8, 0, 10, 10,
|
||||
18, 31, 0, 20, 0, 31, 26, 13, 28
|
||||
} ;
|
||||
|
||||
static yyconst flex_int16_t yy_def[20] =
|
||||
static const flex_int16_t yy_def[20] =
|
||||
{ 0,
|
||||
16, 1, 16, 16, 16, 16, 17, 18, 19, 16,
|
||||
17, 16, 18, 19, 10, 0, 16, 16, 16
|
||||
} ;
|
||||
|
||||
static yyconst flex_uint16_t yy_nxt[42] =
|
||||
static const flex_int16_t yy_nxt[42] =
|
||||
{ 0,
|
||||
4, 5, 6, 7, 8, 9, 10, 10, 10, 10,
|
||||
12, 12, 12, 13, 16, 12, 15, 15, 15, 15,
|
||||
|
@ -436,7 +427,7 @@ static yyconst flex_uint16_t yy_nxt[42] =
|
|||
16
|
||||
} ;
|
||||
|
||||
static yyconst flex_int16_t yy_chk[42] =
|
||||
static const flex_int16_t yy_chk[42] =
|
||||
{ 0,
|
||||
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
|
||||
7, 7, 9, 18, 3, 9, 10, 10, 10, 10,
|
||||
|
@ -463,7 +454,7 @@ char *yytext;
|
|||
/*
|
||||
* Reads lexical config files and updates database.
|
||||
*
|
||||
* MUSCLE SmartCard Development ( http://pcsclite.alioth.debian.org/pcsclite.html )
|
||||
* MUSCLE SmartCard Development ( https://pcsclite.apdu.fr/ )
|
||||
*
|
||||
* Copyright (C) 1999-2002
|
||||
* David Corcoran <corcoran@musclecard.com>
|
||||
|
@ -521,8 +512,9 @@ const char *ConfFile;
|
|||
|
||||
void tok_error(char *pcToken_error);
|
||||
|
||||
#line 516 "configfile.c"
|
||||
#define YY_NO_INPUT 1
|
||||
#line 526 "configfile.c"
|
||||
#line 518 "configfile.c"
|
||||
|
||||
#define INITIAL 0
|
||||
|
||||
|
@ -538,36 +530,36 @@ void tok_error(char *pcToken_error);
|
|||
#define YY_EXTRA_TYPE void *
|
||||
#endif
|
||||
|
||||
static int yy_init_globals (void );
|
||||
static int yy_init_globals ( void );
|
||||
|
||||
/* Accessor methods to globals.
|
||||
These are made visible to non-reentrant scanners for convenience. */
|
||||
|
||||
int yylex_destroy (void );
|
||||
int yylex_destroy ( void );
|
||||
|
||||
int yyget_debug (void );
|
||||
int yyget_debug ( void );
|
||||
|
||||
void yyset_debug (int debug_flag );
|
||||
void yyset_debug ( int debug_flag );
|
||||
|
||||
YY_EXTRA_TYPE yyget_extra (void );
|
||||
YY_EXTRA_TYPE yyget_extra ( void );
|
||||
|
||||
void yyset_extra (YY_EXTRA_TYPE user_defined );
|
||||
void yyset_extra ( YY_EXTRA_TYPE user_defined );
|
||||
|
||||
FILE *yyget_in (void );
|
||||
FILE *yyget_in ( void );
|
||||
|
||||
void yyset_in (FILE * _in_str );
|
||||
void yyset_in ( FILE * _in_str );
|
||||
|
||||
FILE *yyget_out (void );
|
||||
FILE *yyget_out ( void );
|
||||
|
||||
void yyset_out (FILE * _out_str );
|
||||
void yyset_out ( FILE * _out_str );
|
||||
|
||||
int yyget_leng (void );
|
||||
int yyget_leng ( void );
|
||||
|
||||
char *yyget_text (void );
|
||||
char *yyget_text ( void );
|
||||
|
||||
int yyget_lineno (void );
|
||||
int yyget_lineno ( void );
|
||||
|
||||
void yyset_lineno (int _line_number );
|
||||
void yyset_lineno ( int _line_number );
|
||||
|
||||
/* Macros after this point can all be overridden by user definitions in
|
||||
* section 1.
|
||||
|
@ -575,9 +567,9 @@ void yyset_lineno (int _line_number );
|
|||
|
||||
#ifndef YY_SKIP_YYWRAP
|
||||
#ifdef __cplusplus
|
||||
extern "C" int yywrap (void );
|
||||
extern "C" int yywrap ( void );
|
||||
#else
|
||||
extern int yywrap (void );
|
||||
extern int yywrap ( void );
|
||||
#endif
|
||||
#endif
|
||||
|
||||
|
@ -586,19 +578,18 @@ extern int yywrap (void );
|
|||
#endif
|
||||
|
||||
#ifndef yytext_ptr
|
||||
static void yy_flex_strncpy (char *,yyconst char *,int );
|
||||
static void yy_flex_strncpy ( char *, const char *, int );
|
||||
#endif
|
||||
|
||||
#ifdef YY_NEED_STRLEN
|
||||
static int yy_flex_strlen (yyconst char * );
|
||||
static int yy_flex_strlen ( const char * );
|
||||
#endif
|
||||
|
||||
#ifndef YY_NO_INPUT
|
||||
|
||||
#ifdef __cplusplus
|
||||
static int yyinput (void );
|
||||
static int yyinput ( void );
|
||||
#else
|
||||
static int input (void );
|
||||
static int input ( void );
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
@ -629,7 +620,7 @@ static int input (void );
|
|||
if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
|
||||
{ \
|
||||
int c = '*'; \
|
||||
size_t n; \
|
||||
int n; \
|
||||
for ( n = 0; n < max_size && \
|
||||
(c = getc( yyin )) != EOF && c != '\n'; ++n ) \
|
||||
buf[n] = (char) c; \
|
||||
|
@ -642,7 +633,7 @@ static int input (void );
|
|||
else \
|
||||
{ \
|
||||
errno=0; \
|
||||
while ( (result = (int) fread(buf, 1, max_size, yyin))==0 && ferror(yyin)) \
|
||||
while ( (result = (int) fread(buf, 1, (yy_size_t) max_size, yyin)) == 0 && ferror(yyin)) \
|
||||
{ \
|
||||
if( errno != EINTR) \
|
||||
{ \
|
||||
|
@ -731,17 +722,17 @@ YY_DECL
|
|||
if ( ! YY_CURRENT_BUFFER ) {
|
||||
yyensure_buffer_stack ();
|
||||
YY_CURRENT_BUFFER_LVALUE =
|
||||
yy_create_buffer(yyin,YY_BUF_SIZE );
|
||||
yy_create_buffer( yyin, YY_BUF_SIZE );
|
||||
}
|
||||
|
||||
yy_load_buffer_state( );
|
||||
yy_load_buffer_state( );
|
||||
}
|
||||
|
||||
{
|
||||
#line 69 "configfile.l"
|
||||
|
||||
|
||||
#line 745 "configfile.c"
|
||||
#line 736 "configfile.c"
|
||||
|
||||
while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */
|
||||
{
|
||||
|
@ -769,9 +760,9 @@ yy_match:
|
|||
{
|
||||
yy_current_state = (int) yy_def[yy_current_state];
|
||||
if ( yy_current_state >= 17 )
|
||||
yy_c = yy_meta[(unsigned int) yy_c];
|
||||
yy_c = yy_meta[yy_c];
|
||||
}
|
||||
yy_current_state = yy_nxt[yy_base[yy_current_state] + (flex_int16_t) yy_c];
|
||||
yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
|
||||
++yy_cp;
|
||||
}
|
||||
while ( yy_base[yy_current_state] != 31 );
|
||||
|
@ -835,7 +826,7 @@ YY_RULE_SETUP
|
|||
#line 77 "configfile.l"
|
||||
ECHO;
|
||||
YY_BREAK
|
||||
#line 839 "configfile.c"
|
||||
#line 830 "configfile.c"
|
||||
case YY_STATE_EOF(INITIAL):
|
||||
yyterminate();
|
||||
|
||||
|
@ -913,7 +904,7 @@ case YY_STATE_EOF(INITIAL):
|
|||
{
|
||||
(yy_did_buffer_switch_on_eof) = 0;
|
||||
|
||||
if ( yywrap( ) )
|
||||
if ( yywrap( ) )
|
||||
{
|
||||
/* Note: because we've taken care in
|
||||
* yy_get_next_buffer() to have set up
|
||||
|
@ -1045,7 +1036,8 @@ static int yy_get_next_buffer (void)
|
|||
|
||||
b->yy_ch_buf = (char *)
|
||||
/* Include room in for 2 EOB chars. */
|
||||
yyrealloc((void *) b->yy_ch_buf,b->yy_buf_size + 2 );
|
||||
yyrealloc( (void *) b->yy_ch_buf,
|
||||
(yy_size_t) (b->yy_buf_size + 2) );
|
||||
}
|
||||
else
|
||||
/* Can't grow it, we don't own it. */
|
||||
|
@ -1077,7 +1069,7 @@ static int yy_get_next_buffer (void)
|
|||
if ( number_to_move == YY_MORE_ADJ )
|
||||
{
|
||||
ret_val = EOB_ACT_END_OF_FILE;
|
||||
yyrestart(yyin );
|
||||
yyrestart( yyin );
|
||||
}
|
||||
|
||||
else
|
||||
|
@ -1094,9 +1086,12 @@ static int yy_get_next_buffer (void)
|
|||
if (((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
|
||||
/* Extend the array by 50%, plus the number we really need. */
|
||||
int new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
|
||||
YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size );
|
||||
YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc(
|
||||
(void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf, (yy_size_t) new_size );
|
||||
if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
|
||||
YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
|
||||
/* "- 2" to take care of EOB's */
|
||||
YY_CURRENT_BUFFER_LVALUE->yy_buf_size = (int) (new_size - 2);
|
||||
}
|
||||
|
||||
(yy_n_chars) += number_to_move;
|
||||
|
@ -1129,9 +1124,9 @@ static int yy_get_next_buffer (void)
|
|||
{
|
||||
yy_current_state = (int) yy_def[yy_current_state];
|
||||
if ( yy_current_state >= 17 )
|
||||
yy_c = yy_meta[(unsigned int) yy_c];
|
||||
yy_c = yy_meta[yy_c];
|
||||
}
|
||||
yy_current_state = yy_nxt[yy_base[yy_current_state] + (flex_int16_t) yy_c];
|
||||
yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
|
||||
}
|
||||
|
||||
return yy_current_state;
|
||||
|
@ -1157,9 +1152,9 @@ static int yy_get_next_buffer (void)
|
|||
{
|
||||
yy_current_state = (int) yy_def[yy_current_state];
|
||||
if ( yy_current_state >= 17 )
|
||||
yy_c = yy_meta[(unsigned int) yy_c];
|
||||
yy_c = yy_meta[yy_c];
|
||||
}
|
||||
yy_current_state = yy_nxt[yy_base[yy_current_state] + (flex_int16_t) yy_c];
|
||||
yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
|
||||
yy_is_jam = (yy_current_state == 16);
|
||||
|
||||
return yy_is_jam ? 0 : yy_current_state;
|
||||
|
@ -1193,7 +1188,7 @@ static int yy_get_next_buffer (void)
|
|||
|
||||
else
|
||||
{ /* need more input */
|
||||
int offset = (yy_c_buf_p) - (yytext_ptr);
|
||||
int offset = (int) ((yy_c_buf_p) - (yytext_ptr));
|
||||
++(yy_c_buf_p);
|
||||
|
||||
switch ( yy_get_next_buffer( ) )
|
||||
|
@ -1210,13 +1205,13 @@ static int yy_get_next_buffer (void)
|
|||
*/
|
||||
|
||||
/* Reset buffer status. */
|
||||
yyrestart(yyin );
|
||||
yyrestart( yyin );
|
||||
|
||||
/*FALLTHROUGH*/
|
||||
|
||||
case EOB_ACT_END_OF_FILE:
|
||||
{
|
||||
if ( yywrap( ) )
|
||||
if ( yywrap( ) )
|
||||
return 0;
|
||||
|
||||
if ( ! (yy_did_buffer_switch_on_eof) )
|
||||
|
@ -1254,11 +1249,11 @@ static int yy_get_next_buffer (void)
|
|||
if ( ! YY_CURRENT_BUFFER ){
|
||||
yyensure_buffer_stack ();
|
||||
YY_CURRENT_BUFFER_LVALUE =
|
||||
yy_create_buffer(yyin,YY_BUF_SIZE );
|
||||
yy_create_buffer( yyin, YY_BUF_SIZE );
|
||||
}
|
||||
|
||||
yy_init_buffer(YY_CURRENT_BUFFER,input_file );
|
||||
yy_load_buffer_state( );
|
||||
yy_init_buffer( YY_CURRENT_BUFFER, input_file );
|
||||
yy_load_buffer_state( );
|
||||
}
|
||||
|
||||
/** Switch to a different input buffer.
|
||||
|
@ -1286,7 +1281,7 @@ static int yy_get_next_buffer (void)
|
|||
}
|
||||
|
||||
YY_CURRENT_BUFFER_LVALUE = new_buffer;
|
||||
yy_load_buffer_state( );
|
||||
yy_load_buffer_state( );
|
||||
|
||||
/* We don't actually know whether we did this switch during
|
||||
* EOF (yywrap()) processing, but the only time this flag
|
||||
|
@ -1314,22 +1309,22 @@ static void yy_load_buffer_state (void)
|
|||
{
|
||||
YY_BUFFER_STATE b;
|
||||
|
||||
b = (YY_BUFFER_STATE) yyalloc(sizeof( struct yy_buffer_state ) );
|
||||
b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state ) );
|
||||
if ( ! b )
|
||||
YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
|
||||
|
||||
b->yy_buf_size = (yy_size_t)size;
|
||||
b->yy_buf_size = size;
|
||||
|
||||
/* yy_ch_buf has to be 2 characters longer than the size given because
|
||||
* we need to put in 2 end-of-buffer characters.
|
||||
*/
|
||||
b->yy_ch_buf = (char *) yyalloc(b->yy_buf_size + 2 );
|
||||
b->yy_ch_buf = (char *) yyalloc( (yy_size_t) (b->yy_buf_size + 2) );
|
||||
if ( ! b->yy_ch_buf )
|
||||
YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
|
||||
|
||||
b->yy_is_our_buffer = 1;
|
||||
|
||||
yy_init_buffer(b,file );
|
||||
yy_init_buffer( b, file );
|
||||
|
||||
return b;
|
||||
}
|
||||
|
@ -1348,9 +1343,9 @@ static void yy_load_buffer_state (void)
|
|||
YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
|
||||
|
||||
if ( b->yy_is_our_buffer )
|
||||
yyfree((void *) b->yy_ch_buf );
|
||||
yyfree( (void *) b->yy_ch_buf );
|
||||
|
||||
yyfree((void *) b );
|
||||
yyfree( (void *) b );
|
||||
}
|
||||
|
||||
/* Initializes or reinitializes a buffer.
|
||||
|
@ -1362,7 +1357,7 @@ static void yy_load_buffer_state (void)
|
|||
{
|
||||
int oerrno = errno;
|
||||
|
||||
yy_flush_buffer(b );
|
||||
yy_flush_buffer( b );
|
||||
|
||||
b->yy_input_file = file;
|
||||
b->yy_fill_buffer = 1;
|
||||
|
@ -1405,7 +1400,7 @@ static void yy_load_buffer_state (void)
|
|||
b->yy_buffer_status = YY_BUFFER_NEW;
|
||||
|
||||
if ( b == YY_CURRENT_BUFFER )
|
||||
yy_load_buffer_state( );
|
||||
yy_load_buffer_state( );
|
||||
}
|
||||
|
||||
/** Pushes the new state onto the stack. The new state becomes
|
||||
|
@ -1436,7 +1431,7 @@ void yypush_buffer_state (YY_BUFFER_STATE new_buffer )
|
|||
YY_CURRENT_BUFFER_LVALUE = new_buffer;
|
||||
|
||||
/* copied from yy_switch_to_buffer. */
|
||||
yy_load_buffer_state( );
|
||||
yy_load_buffer_state( );
|
||||
(yy_did_buffer_switch_on_eof) = 1;
|
||||
}
|
||||
|
||||
|
@ -1455,7 +1450,7 @@ void yypop_buffer_state (void)
|
|||
--(yy_buffer_stack_top);
|
||||
|
||||
if (YY_CURRENT_BUFFER) {
|
||||
yy_load_buffer_state( );
|
||||
yy_load_buffer_state( );
|
||||
(yy_did_buffer_switch_on_eof) = 1;
|
||||
}
|
||||
}
|
||||
|
@ -1465,7 +1460,7 @@ void yypop_buffer_state (void)
|
|||
*/
|
||||
static void yyensure_buffer_stack (void)
|
||||
{
|
||||
int num_to_alloc;
|
||||
yy_size_t num_to_alloc;
|
||||
|
||||
if (!(yy_buffer_stack)) {
|
||||
|
||||
|
@ -1522,11 +1517,11 @@ YY_BUFFER_STATE yy_scan_buffer (char * base, yy_size_t size )
|
|||
/* They forgot to leave room for the EOB's. */
|
||||
return NULL;
|
||||
|
||||
b = (YY_BUFFER_STATE) yyalloc(sizeof( struct yy_buffer_state ) );
|
||||
b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state ) );
|
||||
if ( ! b )
|
||||
YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );
|
||||
|
||||
b->yy_buf_size = size - 2; /* "- 2" to take care of EOB's */
|
||||
b->yy_buf_size = (int) (size - 2); /* "- 2" to take care of EOB's */
|
||||
b->yy_buf_pos = b->yy_ch_buf = base;
|
||||
b->yy_is_our_buffer = 0;
|
||||
b->yy_input_file = NULL;
|
||||
|
@ -1536,7 +1531,7 @@ YY_BUFFER_STATE yy_scan_buffer (char * base, yy_size_t size )
|
|||
b->yy_fill_buffer = 0;
|
||||
b->yy_buffer_status = YY_BUFFER_NEW;
|
||||
|
||||
yy_switch_to_buffer(b );
|
||||
yy_switch_to_buffer( b );
|
||||
|
||||
return b;
|
||||
}
|
||||
|
@ -1549,10 +1544,10 @@ YY_BUFFER_STATE yy_scan_buffer (char * base, yy_size_t size )
|
|||
* @note If you want to scan bytes that may contain NUL values, then use
|
||||
* yy_scan_bytes() instead.
|
||||
*/
|
||||
YY_BUFFER_STATE yy_scan_string (yyconst char * yystr )
|
||||
YY_BUFFER_STATE yy_scan_string (const char * yystr )
|
||||
{
|
||||
|
||||
return yy_scan_bytes(yystr,(int) strlen(yystr) );
|
||||
return yy_scan_bytes( yystr, (int) strlen(yystr) );
|
||||
}
|
||||
|
||||
/** Setup the input buffer state to scan the given bytes. The next call to yylex() will
|
||||
|
@ -1562,7 +1557,7 @@ YY_BUFFER_STATE yy_scan_string (yyconst char * yystr )
|
|||
*
|
||||
* @return the newly allocated buffer state object.
|
||||
*/
|
||||
YY_BUFFER_STATE yy_scan_bytes (yyconst char * yybytes, int _yybytes_len )
|
||||
YY_BUFFER_STATE yy_scan_bytes (const char * yybytes, int _yybytes_len )
|
||||
{
|
||||
YY_BUFFER_STATE b;
|
||||
char *buf;
|
||||
|
@ -1571,7 +1566,7 @@ YY_BUFFER_STATE yy_scan_bytes (yyconst char * yybytes, int _yybytes_len )
|
|||
|
||||
/* Get memory for full buffer, including space for trailing EOB's. */
|
||||
n = (yy_size_t) (_yybytes_len + 2);
|
||||
buf = (char *) yyalloc(n );
|
||||
buf = (char *) yyalloc( n );
|
||||
if ( ! buf )
|
||||
YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );
|
||||
|
||||
|
@ -1580,7 +1575,7 @@ YY_BUFFER_STATE yy_scan_bytes (yyconst char * yybytes, int _yybytes_len )
|
|||
|
||||
buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
|
||||
|
||||
b = yy_scan_buffer(buf,n );
|
||||
b = yy_scan_buffer( buf, n );
|
||||
if ( ! b )
|
||||
YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" );
|
||||
|
||||
|
@ -1596,9 +1591,9 @@ YY_BUFFER_STATE yy_scan_bytes (yyconst char * yybytes, int _yybytes_len )
|
|||
#define YY_EXIT_FAILURE 2
|
||||
#endif
|
||||
|
||||
static void yynoreturn yy_fatal_error (yyconst char* msg )
|
||||
static void yynoreturn yy_fatal_error (const char* msg )
|
||||
{
|
||||
(void) fprintf( stderr, "%s\n", msg );
|
||||
fprintf( stderr, "%s\n", msg );
|
||||
exit( YY_EXIT_FAILURE );
|
||||
}
|
||||
|
||||
|
@ -1733,7 +1728,7 @@ int yylex_destroy (void)
|
|||
|
||||
/* Pop the buffer stack, destroying each element. */
|
||||
while(YY_CURRENT_BUFFER){
|
||||
yy_delete_buffer(YY_CURRENT_BUFFER );
|
||||
yy_delete_buffer( YY_CURRENT_BUFFER );
|
||||
YY_CURRENT_BUFFER_LVALUE = NULL;
|
||||
yypop_buffer_state();
|
||||
}
|
||||
|
@ -1754,7 +1749,7 @@ int yylex_destroy (void)
|
|||
*/
|
||||
|
||||
#ifndef yytext_ptr
|
||||
static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
|
||||
static void yy_flex_strncpy (char* s1, const char * s2, int n )
|
||||
{
|
||||
|
||||
int i;
|
||||
|
@ -1764,7 +1759,7 @@ static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
|
|||
#endif
|
||||
|
||||
#ifdef YY_NEED_STRLEN
|
||||
static int yy_flex_strlen (yyconst char * s )
|
||||
static int yy_flex_strlen (const char * s )
|
||||
{
|
||||
int n;
|
||||
for ( n = 0; s[n]; ++n )
|
||||
|
@ -1802,7 +1797,6 @@ void yyfree (void * ptr )
|
|||
#line 77 "configfile.l"
|
||||
|
||||
|
||||
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include <errno.h>
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
/*
|
||||
* Header file for reading lexical config files.
|
||||
*
|
||||
* MUSCLE SmartCard Development ( http://pcsclite.alioth.debian.org/pcsclite.html )
|
||||
* MUSCLE SmartCard Development ( https://pcsclite.apdu.fr/ )
|
||||
*
|
||||
* Copyright (C) 1999-2002
|
||||
* David Corcoran <corcoran@musclecard.com>
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
/*
|
||||
* Reads lexical config files and updates database.
|
||||
*
|
||||
* MUSCLE SmartCard Development ( http://pcsclite.alioth.debian.org/pcsclite.html )
|
||||
* MUSCLE SmartCard Development ( https://pcsclite.apdu.fr/ )
|
||||
*
|
||||
* Copyright (C) 1999-2002
|
||||
* David Corcoran <corcoran@musclecard.com>
|
||||
|
@ -72,7 +72,7 @@ void tok_error(char *pcToken_error);
|
|||
"\n" { iLinenumber++; }
|
||||
(\"[^"\n]*["\n])|(\'[^'\n]*['\n]) { (void)evaluatetoken(yytext); }
|
||||
[ \t] {}
|
||||
([A-Z]|[a-z]|[0-9]|[\\\/\-\.\_\@:])+ { (void)evaluatetoken(yytext); }
|
||||
([A-Z]|[a-z]|[0-9]|[=\\\/\-\.\_\@:])+ { (void)evaluatetoken(yytext); }
|
||||
. { iOldLinenumber = iLinenumber; tok_error(yytext); }
|
||||
%%
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* MUSCLE SmartCard Development ( http://pcsclite.alioth.debian.org/pcsclite.html )
|
||||
* MUSCLE SmartCard Development ( https://pcsclite.apdu.fr/ )
|
||||
*
|
||||
* Copyright (C) 1999-2002
|
||||
* David Corcoran <corcoran@musclecard.com>
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* MUSCLE SmartCard Development ( http://pcsclite.alioth.debian.org/pcsclite.html )
|
||||
* MUSCLE SmartCard Development ( https://pcsclite.apdu.fr/ )
|
||||
*
|
||||
* Copyright (C) 1999-2002
|
||||
* David Corcoran <corcoran@musclecard.com>
|
||||
|
@ -48,6 +48,7 @@ THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|||
#include <sys/types.h>
|
||||
#include <sys/time.h>
|
||||
#include <time.h>
|
||||
#include <pthread.h>
|
||||
|
||||
#include "pcsclite.h"
|
||||
#include "misc.h"
|
||||
|
@ -139,6 +140,7 @@ static void log_line(const int priority, const char *DebugBuffer)
|
|||
struct timeval new_time = { 0, 0 };
|
||||
struct timeval tmp;
|
||||
int delta;
|
||||
pthread_t thread_id;
|
||||
|
||||
gettimeofday(&new_time, NULL);
|
||||
if (0 == last_time.tv_sec)
|
||||
|
@ -158,6 +160,8 @@ static void log_line(const int priority, const char *DebugBuffer)
|
|||
|
||||
last_time = new_time;
|
||||
|
||||
thread_id = pthread_self();
|
||||
|
||||
if (LogDoColor)
|
||||
{
|
||||
const char *color_pfx = "", *color_sfx = "\33[0m";
|
||||
|
@ -183,7 +187,13 @@ static void log_line(const int priority, const char *DebugBuffer)
|
|||
break;
|
||||
}
|
||||
|
||||
printf("%s%.8d%s %s%s%s\n", time_pfx, delta, time_sfx,
|
||||
#ifdef __APPLE__
|
||||
#define THREAD_FORMAT "%p"
|
||||
#else
|
||||
#define THREAD_FORMAT "%ld"
|
||||
#endif
|
||||
printf("%s%.8d%s [" THREAD_FORMAT "] %s%s%s\n",
|
||||
time_pfx, delta, time_sfx, thread_id,
|
||||
color_pfx, DebugBuffer, color_sfx);
|
||||
}
|
||||
else
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* MUSCLE SmartCard Development ( http://pcsclite.alioth.debian.org/pcsclite.html )
|
||||
* MUSCLE SmartCard Development ( https://pcsclite.apdu.fr/ )
|
||||
*
|
||||
* Copyright (C) 1999
|
||||
* David Corcoran <corcoran@musclecard.com>
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* MUSCLE SmartCard Development ( http://pcsclite.alioth.debian.org/pcsclite.html )
|
||||
* MUSCLE SmartCard Development ( https://pcsclite.apdu.fr/ )
|
||||
*
|
||||
* Copyright (C) 2001
|
||||
* David Corcoran <corcoran@musclecard.com>
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* MUSCLE SmartCard Development ( http://pcsclite.alioth.debian.org/pcsclite.html )
|
||||
* MUSCLE SmartCard Development ( https://pcsclite.apdu.fr/ )
|
||||
*
|
||||
* Copyright (C) 2000
|
||||
* David Corcoran <corcoran@musclecard.com>
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* MUSCLE SmartCard Development ( http://pcsclite.alioth.debian.org/pcsclite.html )
|
||||
* MUSCLE SmartCard Development ( https://pcsclite.apdu.fr/ )
|
||||
*
|
||||
* Copyright (C) 1999-2002
|
||||
* David Corcoran <corcoran@musclecard.com>
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* MUSCLE SmartCard Development ( http://pcsclite.alioth.debian.org/pcsclite.html )
|
||||
* MUSCLE SmartCard Development ( https://pcsclite.apdu.fr/ )
|
||||
*
|
||||
* Copyright (C) 1999-2002
|
||||
* David Corcoran <corcoran@musclecard.com>
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* MUSCLE SmartCard Development ( http://pcsclite.alioth.debian.org/pcsclite.html )
|
||||
* MUSCLE SmartCard Development ( https://pcsclite.apdu.fr/ )
|
||||
*
|
||||
* Copyright (C) 2000-2002
|
||||
* David Corcoran <corcoran@musclecard.com>
|
||||
|
@ -61,7 +61,7 @@ THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|||
static list_t ClientsWaitingForEvent; /**< list of client file descriptors */
|
||||
pthread_mutex_t ClientsWaitingForEvent_lock; /**< lock for the above list */
|
||||
|
||||
static void EHStatusHandlerThread(READER_CONTEXT *);
|
||||
static void * EHStatusHandlerThread(READER_CONTEXT *);
|
||||
|
||||
LONG EHRegisterClientForEvent(int32_t filedes)
|
||||
{
|
||||
|
@ -69,6 +69,8 @@ LONG EHRegisterClientForEvent(int32_t filedes)
|
|||
|
||||
(void)list_append(&ClientsWaitingForEvent, &filedes);
|
||||
|
||||
(void)MSGSendReaderStates(filedes);
|
||||
|
||||
(void)pthread_mutex_unlock(&ClientsWaitingForEvent_lock);
|
||||
|
||||
return SCARD_S_SUCCESS;
|
||||
|
@ -239,7 +241,7 @@ LONG EHSpawnEventHandler(READER_CONTEXT * rContext)
|
|||
return SCARD_S_SUCCESS;
|
||||
}
|
||||
|
||||
static void EHStatusHandlerThread(READER_CONTEXT * rContext)
|
||||
static void * EHStatusHandlerThread(READER_CONTEXT * rContext)
|
||||
{
|
||||
LONG rv;
|
||||
#ifndef NO_LOG
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* MUSCLE SmartCard Development ( http://pcsclite.alioth.debian.org/pcsclite.html )
|
||||
* MUSCLE SmartCard Development ( https://pcsclite.apdu.fr/ )
|
||||
*
|
||||
* Copyright (C) 1999-2002
|
||||
* David Corcoran <corcoran@musclecard.com>
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* MUSCLE SmartCard Development ( http://pcsclite.alioth.debian.org/pcsclite.html )
|
||||
* MUSCLE SmartCard Development ( https://pcsclite.apdu.fr/ )
|
||||
*
|
||||
* Copyright (C) 2000-2003
|
||||
* David Corcoran <corcoran@musclecard.com>
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* MUSCLE SmartCard Development ( http://pcsclite.alioth.debian.org/pcsclite.html )
|
||||
* MUSCLE SmartCard Development ( https://pcsclite.apdu.fr/ )
|
||||
*
|
||||
* Copyright (C) 2000-2003
|
||||
* David Corcoran <corcoran@musclecard.com>
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* MUSCLE SmartCard Development ( http://pcsclite.alioth.debian.org/pcsclite.html )
|
||||
* MUSCLE SmartCard Development ( https://pcsclite.apdu.fr/ )
|
||||
*
|
||||
* Copyright (C) 2011
|
||||
* Ludovic Rousseau <ludovic.rousseau@free.fr>
|
||||
|
@ -593,7 +593,7 @@ static void HPScanUSB(struct udev *udev)
|
|||
}
|
||||
|
||||
|
||||
static void HPEstablishUSBNotifications(void *arg)
|
||||
static void * HPEstablishUSBNotifications(void *arg)
|
||||
{
|
||||
struct udev_monitor *udev_monitor = arg;
|
||||
int r;
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* MUSCLE SmartCard Development ( http://pcsclite.alioth.debian.org/pcsclite.html )
|
||||
* MUSCLE SmartCard Development ( https://pcsclite.apdu.fr/ )
|
||||
*
|
||||
* Copyright (C) 2001-2004
|
||||
* David Corcoran <corcoran@musclecard.com>
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* MUSCLE SmartCard Development ( http://pcsclite.alioth.debian.org/pcsclite.html )
|
||||
* MUSCLE SmartCard Development ( https://pcsclite.apdu.fr/ )
|
||||
*
|
||||
* Copyright (C) 2001-2003
|
||||
* David Corcoran <corcoran@musclecard.com>
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* MUSCLE SmartCard Development ( http://pcsclite.alioth.debian.org/pcsclite.html )
|
||||
* MUSCLE SmartCard Development ( https://pcsclite.apdu.fr/ )
|
||||
*
|
||||
* Copyright (C) 2002-2004
|
||||
* Stephen M. Webb <stephenw@cryptocard.com>
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* MUSCLE SmartCard Development ( http://pcsclite.alioth.debian.org/pcsclite.html )
|
||||
* MUSCLE SmartCard Development ( https://pcsclite.apdu.fr/ )
|
||||
*
|
||||
* Copyright (C) 1999-2004
|
||||
* David Corcoran <corcoran@musclecard.com>
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* MUSCLE SmartCard Development ( http://pcsclite.alioth.debian.org/pcsclite.html )
|
||||
* MUSCLE SmartCard Development ( https://pcsclite.apdu.fr/ )
|
||||
*
|
||||
* Copyright (C) 1999-2004
|
||||
* David Corcoran <corcoran@musclecard.com>
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
/*
|
||||
* This handles GCC attributes
|
||||
*
|
||||
* MUSCLE SmartCard Development ( http://pcsclite.alioth.debian.org/pcsclite.html )
|
||||
* MUSCLE SmartCard Development ( https://pcsclite.apdu.fr/ )
|
||||
*
|
||||
* Copyright (C) 2005-2010
|
||||
* Ludovic Rousseau <ludovic.rousseau@free.fr>
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* MUSCLE SmartCard Development ( http://pcsclite.alioth.debian.org/pcsclite.html )
|
||||
* MUSCLE SmartCard Development ( https://pcsclite.apdu.fr/ )
|
||||
*
|
||||
* Copyright (C) 2003
|
||||
* Toni Andjelkovic <toni@soth.at>
|
||||
|
|
|
@ -18,7 +18,7 @@ int pcsc_assert_wire_constants(void)
|
|||
|
||||
LASSERTF(PROTOCOL_VERSION_MAJOR == 4," found %lld\n",
|
||||
(long long)PROTOCOL_VERSION_MAJOR);
|
||||
LASSERTF(PROTOCOL_VERSION_MINOR == 3," found %lld\n",
|
||||
LASSERTF(PROTOCOL_VERSION_MINOR == 4," found %lld\n",
|
||||
(long long)PROTOCOL_VERSION_MINOR);
|
||||
|
||||
LASSERTF(MAX_READERNAME == 128," found %lld\n",
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* MUSCLE SmartCard Development ( http://pcsclite.alioth.debian.org/pcsclite.html )
|
||||
* MUSCLE SmartCard Development ( https://pcsclite.apdu.fr/ )
|
||||
*
|
||||
* Copyright (C) 2006-2011
|
||||
* Ludovic Rousseau <ludovic.rousseau@free.fr>
|
||||
|
@ -49,7 +49,7 @@
|
|||
|
||||
#define PCSCLITE_CSOCK_NAME PCSCLITE_IPC_DIR "/pcscd.comm"
|
||||
|
||||
#define PCSCLITE_VERSION_NUMBER "1.8.23" /**< Current version */
|
||||
#define PCSCLITE_VERSION_NUMBER "1.8.24" /**< Current version */
|
||||
#define PCSCLITE_STATUS_POLL_RATE 400000 /**< Status polling rate */
|
||||
#define PCSCLITE_LOCK_POLL_RATE 100000 /**< Lock polling rate */
|
||||
|
||||
|
@ -66,7 +66,7 @@ enum
|
|||
POWER_STATE_UNPOWERED, /**< auto power off */
|
||||
POWER_STATE_POWERED, /**< powered */
|
||||
POWER_STATE_GRACE_PERIOD, /**< card was in use */
|
||||
POWER_STATE_INUSE /**< card is used */
|
||||
POWER_STATE_IN_USE /**< card is used */
|
||||
};
|
||||
|
||||
/** time to wait before powering down an unused card */
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* MUSCLE SmartCard Development ( http://pcsclite.alioth.debian.org/pcsclite.html )
|
||||
* MUSCLE SmartCard Development ( https://pcsclite.apdu.fr/ )
|
||||
*
|
||||
* Copyright (C) 2006-2011
|
||||
* Ludovic Rousseau <ludovic.rousseau@free.fr>
|
||||
|
@ -66,7 +66,7 @@ enum
|
|||
POWER_STATE_UNPOWERED, /**< auto power off */
|
||||
POWER_STATE_POWERED, /**< powered */
|
||||
POWER_STATE_GRACE_PERIOD, /**< card was in use */
|
||||
POWER_STATE_INUSE /**< card is used */
|
||||
POWER_STATE_IN_USE /**< card is used */
|
||||
};
|
||||
|
||||
/** time to wait before powering down an unused card */
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* MUSCLE SmartCard Development ( http://pcsclite.alioth.debian.org/pcsclite.html )
|
||||
* MUSCLE SmartCard Development ( https://pcsclite.apdu.fr/ )
|
||||
*
|
||||
* Copyright (C) 1999-2002
|
||||
* David Corcoran <corcoran@musclecard.com>
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* MUSCLE SmartCard Development ( http://pcsclite.alioth.debian.org/pcsclite.html )
|
||||
* MUSCLE SmartCard Development ( https://pcsclite.apdu.fr/ )
|
||||
*
|
||||
* Copyright (C) 1999
|
||||
* David Corcoran <corcoran@musclecard.com>
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* MUSCLE SmartCard Development ( http://pcsclite.alioth.debian.org/pcsclite.html )
|
||||
* MUSCLE SmartCard Development ( https://pcsclite.apdu.fr/ )
|
||||
*
|
||||
* Copyright (C) 1999
|
||||
* David Corcoran <corcoran@musclecard.com>
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* MUSCLE SmartCard Development ( http://pcsclite.alioth.debian.org/pcsclite.html )
|
||||
* MUSCLE SmartCard Development ( https://pcsclite.apdu.fr/ )
|
||||
*
|
||||
* Copyright (C) 1999-2004
|
||||
* David Corcoran <corcoran@musclecard.com>
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* MUSCLE SmartCard Development ( http://pcsclite.alioth.debian.org/pcsclite.html )
|
||||
* MUSCLE SmartCard Development ( https://pcsclite.apdu.fr/ )
|
||||
*
|
||||
* Copyright (C) 1999
|
||||
* David Corcoran <corcoran@musclecard.com>
|
||||
|
|
|
@ -449,7 +449,10 @@ static inline struct list_entry_s *list_findpos(const list_t *restrict l, int po
|
|||
/* accept 1 slot overflow for fetching head and tail sentinels */
|
||||
if (posstart < -1 || posstart > (int)l->numels) return NULL;
|
||||
|
||||
x = (float)(posstart+1) / l->numels;
|
||||
if( l->numels != 0 )
|
||||
x = (float)(posstart+1) / l->numels;
|
||||
else
|
||||
x = 1;
|
||||
if (x <= 0.25) {
|
||||
/* first quarter: get to posstart from head */
|
||||
for (i = -1, ptr = l->head_sentinel; i < posstart; ptr = ptr->next, i++);
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
# Makefile.in generated by automake 1.15 from Makefile.am.
|
||||
# Makefile.in generated by automake 1.16.1 from Makefile.am.
|
||||
# @configure_input@
|
||||
|
||||
# Copyright (C) 1994-2014 Free Software Foundation, Inc.
|
||||
# Copyright (C) 1994-2018 Free Software Foundation, Inc.
|
||||
|
||||
# This Makefile.in is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
|
@ -156,7 +156,8 @@ am__v_at_0 = @
|
|||
am__v_at_1 =
|
||||
DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
|
||||
depcomp = $(SHELL) $(top_srcdir)/depcomp
|
||||
am__depfiles_maybe = depfiles
|
||||
am__maybe_remake_depfiles = depfiles
|
||||
am__depfiles_remade = ./$(DEPDIR)/libpcscspy.Plo
|
||||
am__mv = mv -f
|
||||
COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
|
||||
$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
|
||||
|
@ -389,8 +390,8 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
|
|||
*config.status*) \
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
|
||||
*) \
|
||||
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
|
||||
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
|
||||
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \
|
||||
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \
|
||||
esac;
|
||||
|
||||
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
|
||||
|
@ -481,7 +482,13 @@ mostlyclean-compile:
|
|||
distclean-compile:
|
||||
-rm -f *.tab.c
|
||||
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libpcscspy.Plo@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libpcscspy.Plo@am__quote@ # am--include-marker
|
||||
|
||||
$(am__depfiles_remade):
|
||||
@$(MKDIR_P) $(@D)
|
||||
@echo '# dummy' >$@-t && $(am__mv) $@-t $@
|
||||
|
||||
am--depfiles: $(am__depfiles_remade)
|
||||
|
||||
.c.o:
|
||||
@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
|
||||
|
@ -605,7 +612,10 @@ cscopelist-am: $(am__tagged_files)
|
|||
distclean-tags:
|
||||
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
|
||||
|
||||
distdir: $(DISTFILES)
|
||||
distdir: $(BUILT_SOURCES)
|
||||
$(MAKE) $(AM_MAKEFLAGS) distdir-am
|
||||
|
||||
distdir-am: $(DISTFILES)
|
||||
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
||||
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
||||
list='$(DISTFILES)'; \
|
||||
|
@ -679,7 +689,7 @@ clean-am: clean-generic clean-libLTLIBRARIES clean-libtool \
|
|||
mostlyclean-am
|
||||
|
||||
distclean: distclean-am
|
||||
-rm -rf ./$(DEPDIR)
|
||||
-rm -f ./$(DEPDIR)/libpcscspy.Plo
|
||||
-rm -f Makefile
|
||||
distclean-am: clean-am distclean-compile distclean-generic \
|
||||
distclean-tags
|
||||
|
@ -725,7 +735,7 @@ install-ps-am:
|
|||
installcheck-am:
|
||||
|
||||
maintainer-clean: maintainer-clean-am
|
||||
-rm -rf ./$(DEPDIR)
|
||||
-rm -f ./$(DEPDIR)/libpcscspy.Plo
|
||||
-rm -f Makefile
|
||||
maintainer-clean-am: distclean-am maintainer-clean-generic
|
||||
|
||||
|
@ -749,9 +759,9 @@ uninstall-man: uninstall-man1
|
|||
|
||||
.MAKE: install-am install-strip
|
||||
|
||||
.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
|
||||
clean-libLTLIBRARIES clean-libtool cscopelist-am ctags \
|
||||
ctags-am distclean distclean-compile distclean-generic \
|
||||
.PHONY: CTAGS GTAGS TAGS all all-am am--depfiles check check-am clean \
|
||||
clean-generic clean-libLTLIBRARIES clean-libtool cscopelist-am \
|
||||
ctags ctags-am distclean distclean-compile distclean-generic \
|
||||
distclean-libtool distclean-tags distdir dvi dvi-am html \
|
||||
html-am info info-am install install-am install-data \
|
||||
install-data-am install-dist_binSCRIPTS install-dvi \
|
||||
|
|
|
@ -889,9 +889,13 @@ class PCSCdemultiplexer(object):
|
|||
for thread in threads:
|
||||
threads[thread].join()
|
||||
|
||||
(code, rv, sec, usec) = _parse_rv(tail)
|
||||
end_time = sec + usec / 1000000.
|
||||
total_time = end_time - start_time
|
||||
try:
|
||||
(code, rv, sec, usec) = _parse_rv(tail)
|
||||
end_time = sec + usec / 1000000.
|
||||
total_time = end_time - start_time
|
||||
except ValueError:
|
||||
# we have no return value of the latest PC/SC call
|
||||
total_time = -1
|
||||
|
||||
# compute some statistics
|
||||
thread_n = 1
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* MUSCLE SmartCard Development ( http://pcsclite.alioth.debian.org/pcsclite.html )
|
||||
* MUSCLE SmartCard Development ( https://pcsclite.apdu.fr/ )
|
||||
*
|
||||
* Copyright (C) 1999
|
||||
* David Corcoran <corcoran@musclecard.com>
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
/*
|
||||
* This handles abstract system level calls.
|
||||
*
|
||||
* MUSCLE SmartCard Development ( http://pcsclite.alioth.debian.org/pcsclite.html )
|
||||
* MUSCLE SmartCard Development ( https://pcsclite.apdu.fr/ )
|
||||
*
|
||||
* Copyright (C) 1999
|
||||
* David Corcoran <corcoran@musclecard.com>
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* MUSCLE SmartCard Development ( http://pcsclite.alioth.debian.org/pcsclite.html )
|
||||
* MUSCLE SmartCard Development ( https://pcsclite.apdu.fr/ )
|
||||
*
|
||||
* Copyright (C) 1999
|
||||
* David Corcoran <corcoran@musclecard.com>
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -1,7 +1,7 @@
|
|||
/*
|
||||
* Reads lexical config files and updates database.
|
||||
*
|
||||
* MUSCLE SmartCard Development ( http://pcsclite.alioth.debian.org/pcsclite.html )
|
||||
* MUSCLE SmartCard Development ( https://pcsclite.apdu.fr/ )
|
||||
*
|
||||
* Copyright (C) 2001-2003
|
||||
* David Corcoran <corcoran@musclecard.com>
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* MUSCLE SmartCard Development ( http://pcsclite.alioth.debian.org/pcsclite.html )
|
||||
* MUSCLE SmartCard Development ( https://pcsclite.apdu.fr/ )
|
||||
*
|
||||
* Copyright (C) 2006-2011
|
||||
* Ludovic Rousseau <ludovic.rousseau@free.fr>
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* MUSCLE SmartCard Development ( http://pcsclite.alioth.debian.org/pcsclite.html )
|
||||
* MUSCLE SmartCard Development ( https://pcsclite.apdu.fr/ )
|
||||
*
|
||||
* Copyright (C) 2006-2009
|
||||
* Ludovic Rousseau <ludovic.rousseau@free.fr>
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* MUSCLE SmartCard Development ( http://pcsclite.alioth.debian.org/pcsclite.html )
|
||||
* MUSCLE SmartCard Development ( https://pcsclite.apdu.fr/ )
|
||||
*
|
||||
* Copyright (C) 1999-2004
|
||||
* David Corcoran <corcoran@musclecard.com>
|
||||
|
@ -348,8 +348,8 @@ LONG SCardConnect(/*@unused@*/ SCARDCONTEXT hContext, LPCSTR szReader,
|
|||
}
|
||||
|
||||
/* the card is now in use */
|
||||
rContext->powerState = POWER_STATE_INUSE;
|
||||
Log1(PCSC_LOG_DEBUG, "powerState: POWER_STATE_INUSE");
|
||||
rContext->powerState = POWER_STATE_IN_USE;
|
||||
Log1(PCSC_LOG_DEBUG, "powerState: POWER_STATE_IN_USE");
|
||||
(void)pthread_mutex_unlock(&rContext->powerState_lock);
|
||||
}
|
||||
|
||||
|
@ -716,6 +716,12 @@ LONG SCardReconnect(SCARDHANDLE hCard, DWORD dwShareMode,
|
|||
goto exit;
|
||||
}
|
||||
}
|
||||
|
||||
/* the card is now in use */
|
||||
(void)pthread_mutex_lock(&rContext->powerState_lock);
|
||||
rContext->powerState = POWER_STATE_IN_USE;
|
||||
Log1(PCSC_LOG_DEBUG, "powerState: POWER_STATE_IN_USE");
|
||||
(void)pthread_mutex_unlock(&rContext->powerState_lock);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* MUSCLE SmartCard Development ( http://pcsclite.alioth.debian.org/pcsclite.html )
|
||||
* MUSCLE SmartCard Development ( https://pcsclite.apdu.fr/ )
|
||||
*
|
||||
* Copyright (C) 1999-2004
|
||||
* David Corcoran <corcoran@musclecard.com>
|
||||
|
@ -388,6 +388,8 @@ static LONG SCardGetSetAttrib(SCARDHANDLE hCard, int command, DWORD dwAttrId,
|
|||
LPBYTE pbAttr, LPDWORD pcbAttrLen);
|
||||
|
||||
static LONG getReaderStates(SCONTEXTMAP * currentContextMap);
|
||||
static LONG getReaderStatesAndRegisterForEvents(SCONTEXTMAP * currentContextMap);
|
||||
static LONG unregisterFromEvents(SCONTEXTMAP * currentContextMap);
|
||||
|
||||
/*
|
||||
* Thread safety functions
|
||||
|
@ -1736,7 +1738,7 @@ LONG SCardGetStatusChange(SCARDCONTEXT hContext, DWORD dwTimeout,
|
|||
}
|
||||
|
||||
/* synchronize reader states with daemon */
|
||||
rv = getReaderStates(currentContextMap);
|
||||
rv = getReaderStatesAndRegisterForEvents(currentContextMap);
|
||||
if (rv != SCARD_S_SUCCESS)
|
||||
goto end;
|
||||
|
||||
|
@ -2056,24 +2058,16 @@ LONG SCardGetStatusChange(SCARDCONTEXT hContext, DWORD dwTimeout,
|
|||
|
||||
/* Only sleep once for each cycle of reader checks. */
|
||||
{
|
||||
struct wait_reader_state_change waitStatusStruct;
|
||||
struct wait_reader_state_change waitStatusStruct = {0};
|
||||
struct timeval before, after;
|
||||
|
||||
gettimeofday(&before, NULL);
|
||||
|
||||
waitStatusStruct.timeOut = dwTime;
|
||||
waitStatusStruct.rv = SCARD_S_SUCCESS;
|
||||
|
||||
/* another thread can do SCardCancel() */
|
||||
currentContextMap->cancellable = TRUE;
|
||||
|
||||
rv = MessageSendWithHeader(CMD_WAIT_READER_STATE_CHANGE,
|
||||
currentContextMap->dwClientID,
|
||||
sizeof(waitStatusStruct), &waitStatusStruct);
|
||||
|
||||
if (rv != SCARD_S_SUCCESS)
|
||||
goto end;
|
||||
|
||||
/*
|
||||
* Read a message from the server
|
||||
*/
|
||||
|
@ -2089,20 +2083,7 @@ LONG SCardGetStatusChange(SCARDCONTEXT hContext, DWORD dwTimeout,
|
|||
if (SCARD_E_TIMEOUT == rv)
|
||||
{
|
||||
/* ask server to remove us from the event list */
|
||||
rv = MessageSendWithHeader(CMD_STOP_WAITING_READER_STATE_CHANGE,
|
||||
currentContextMap->dwClientID,
|
||||
sizeof(waitStatusStruct), &waitStatusStruct);
|
||||
|
||||
if (rv != SCARD_S_SUCCESS)
|
||||
goto end;
|
||||
|
||||
/* Read a message from the server */
|
||||
rv = MessageReceive(&waitStatusStruct,
|
||||
sizeof(waitStatusStruct),
|
||||
currentContextMap->dwClientID);
|
||||
|
||||
if (rv != SCARD_S_SUCCESS)
|
||||
goto end;
|
||||
rv = unregisterFromEvents(currentContextMap);
|
||||
}
|
||||
|
||||
if (rv != SCARD_S_SUCCESS)
|
||||
|
@ -2116,7 +2097,7 @@ LONG SCardGetStatusChange(SCARDCONTEXT hContext, DWORD dwTimeout,
|
|||
}
|
||||
|
||||
/* synchronize reader states with daemon */
|
||||
rv = getReaderStates(currentContextMap);
|
||||
rv = getReaderStatesAndRegisterForEvents(currentContextMap);
|
||||
if (rv != SCARD_S_SUCCESS)
|
||||
goto end;
|
||||
|
||||
|
@ -2148,6 +2129,11 @@ LONG SCardGetStatusChange(SCARDCONTEXT hContext, DWORD dwTimeout,
|
|||
end:
|
||||
Log1(PCSC_LOG_DEBUG, "Event Loop End");
|
||||
|
||||
/* if SCardCancel() has been used then the client is already
|
||||
* unregistered */
|
||||
if (SCARD_E_CANCELLED != rv)
|
||||
(void)unregisterFromEvents(currentContextMap);
|
||||
|
||||
(void)pthread_mutex_unlock(¤tContextMap->mMutex);
|
||||
|
||||
error:
|
||||
|
@ -3549,3 +3535,49 @@ static LONG getReaderStates(SCONTEXTMAP * currentContextMap)
|
|||
return SCARD_S_SUCCESS;
|
||||
}
|
||||
|
||||
static LONG getReaderStatesAndRegisterForEvents(SCONTEXTMAP * currentContextMap)
|
||||
{
|
||||
int32_t dwClientID = currentContextMap->dwClientID;
|
||||
LONG rv;
|
||||
|
||||
/* Get current reader states from server and register on event list */
|
||||
rv = MessageSendWithHeader(CMD_WAIT_READER_STATE_CHANGE, dwClientID,
|
||||
0, NULL);
|
||||
if (rv != SCARD_S_SUCCESS)
|
||||
return rv;
|
||||
|
||||
/* Read a message from the server */
|
||||
rv = MessageReceive(&readerStates, sizeof(readerStates), dwClientID);
|
||||
return rv;
|
||||
}
|
||||
|
||||
static LONG unregisterFromEvents(SCONTEXTMAP * currentContextMap)
|
||||
{
|
||||
int32_t dwClientID = currentContextMap->dwClientID;
|
||||
LONG rv;
|
||||
struct wait_reader_state_change waitStatusStruct = {0};
|
||||
|
||||
/* ask server to remove us from the event list */
|
||||
rv = MessageSendWithHeader(CMD_STOP_WAITING_READER_STATE_CHANGE,
|
||||
dwClientID, 0, NULL);
|
||||
if (rv != SCARD_S_SUCCESS)
|
||||
return rv;
|
||||
|
||||
/* This message can be the response to
|
||||
* CMD_STOP_WAITING_READER_STATE_CHANGE, an event notification or a
|
||||
* cancel notification.
|
||||
* The server side ensures, that no more messages will be sent to
|
||||
* the client. */
|
||||
|
||||
rv = MessageReceive(&waitStatusStruct, sizeof(waitStatusStruct),
|
||||
dwClientID);
|
||||
if (rv != SCARD_S_SUCCESS)
|
||||
return rv;
|
||||
|
||||
/* if we received a cancel event the return value will be set
|
||||
* accordingly */
|
||||
rv = waitStatusStruct.rv;
|
||||
|
||||
return rv;
|
||||
}
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* MUSCLE SmartCard Development ( http://pcsclite.alioth.debian.org/pcsclite.html )
|
||||
* MUSCLE SmartCard Development ( https://pcsclite.apdu.fr/ )
|
||||
*
|
||||
* Copyright (C) 2001-2004
|
||||
* David Corcoran <corcoran@musclecard.com>
|
||||
|
@ -79,9 +79,11 @@ THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|||
#define SOCK_CLOEXEC 0
|
||||
#endif
|
||||
|
||||
#define member_size(type, member) sizeof(((type *)0)->member)
|
||||
|
||||
char *getSocketName(void)
|
||||
{
|
||||
static char socketName[sizeof(struct sockaddr_un)];
|
||||
static char socketName[member_size(struct sockaddr_un, sun_path)];
|
||||
|
||||
if ('\0' == socketName[0])
|
||||
{
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* MUSCLE SmartCard Development ( http://pcsclite.alioth.debian.org/pcsclite.html )
|
||||
* MUSCLE SmartCard Development ( https://pcsclite.apdu.fr/ )
|
||||
*
|
||||
* Copyright (C) 2001-2004
|
||||
* David Corcoran <corcoran@musclecard.com>
|
||||
|
@ -46,7 +46,7 @@ THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|||
/** Major version of the current message protocol */
|
||||
#define PROTOCOL_VERSION_MAJOR 4
|
||||
/** Minor version of the current message protocol */
|
||||
#define PROTOCOL_VERSION_MINOR 3
|
||||
#define PROTOCOL_VERSION_MINOR 4
|
||||
|
||||
/**
|
||||
* @brief Information transmitted in \ref CMD_VERSION Messages.
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* MUSCLE SmartCard Development ( http://pcsclite.alioth.debian.org/pcsclite.html )
|
||||
* MUSCLE SmartCard Development ( https://pcsclite.apdu.fr/ )
|
||||
*
|
||||
* Copyright (C) 2001-2004
|
||||
* David Corcoran <corcoran@musclecard.com>
|
||||
|
@ -164,6 +164,7 @@ INTERNAL int32_t InitializeSocket(void)
|
|||
return 0;
|
||||
}
|
||||
|
||||
#ifdef USE_LIBSYSTEMD
|
||||
/**
|
||||
* @brief Acquires a socket passed in from systemd.
|
||||
*
|
||||
|
@ -176,7 +177,6 @@ INTERNAL int32_t InitializeSocket(void)
|
|||
* @retval 0 Success
|
||||
* @retval -1 Passed FD is not an UNIX socket.
|
||||
*/
|
||||
#ifdef USE_LIBSYSTEMD
|
||||
INTERNAL int32_t ListenExistingSocket(int fd)
|
||||
{
|
||||
if (!sd_is_socket(fd, AF_UNIX, SOCK_STREAM, -1))
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* MUSCLE SmartCard Development ( http://pcsclite.alioth.debian.org/pcsclite.html )
|
||||
* MUSCLE SmartCard Development ( https://pcsclite.apdu.fr/ )
|
||||
*
|
||||
* Copyright (C) 2001-2004
|
||||
* David Corcoran <corcoran@musclecard.com>
|
||||
|
@ -95,7 +95,7 @@ static LONG MSGAddHandle(SCARDCONTEXT, SCARDHANDLE, SCONTEXT *);
|
|||
static LONG MSGRemoveHandle(SCARDHANDLE, SCONTEXT *);
|
||||
static void MSGCleanupClient(SCONTEXT *);
|
||||
|
||||
static void ContextThread(LPVOID pdwIndex);
|
||||
static void * ContextThread(LPVOID pdwIndex);
|
||||
|
||||
extern READER_STATE readerStates[PCSCLITE_MAX_READERS_CONTEXTS];
|
||||
|
||||
|
@ -325,7 +325,7 @@ static const char *CommandsText[] = {
|
|||
ret = MessageSend(&v, sizeof(v), filedes); \
|
||||
} while (0)
|
||||
|
||||
static void ContextThread(LPVOID newContext)
|
||||
static void * ContextThread(LPVOID newContext)
|
||||
{
|
||||
SCONTEXT * threadContext = (SCONTEXT *) newContext;
|
||||
int32_t filedes = threadContext->dwClientID;
|
||||
|
@ -411,24 +411,25 @@ static void ContextThread(LPVOID newContext)
|
|||
|
||||
case CMD_WAIT_READER_STATE_CHANGE:
|
||||
{
|
||||
struct wait_reader_state_change waStr;
|
||||
/* nothing to read */
|
||||
|
||||
READ_BODY(waStr);
|
||||
#ifdef USE_USB
|
||||
/* wait until all readers are ready */
|
||||
RFWaitForReaderInit();
|
||||
#endif
|
||||
|
||||
/* add the client fd to the list */
|
||||
/* add the client fd to the list and dump the readers state */
|
||||
EHRegisterClientForEvent(filedes);
|
||||
|
||||
/* We do not send anything here.
|
||||
* Either the client will timeout or the server will
|
||||
* answer if an event occurs */
|
||||
}
|
||||
break;
|
||||
|
||||
case CMD_STOP_WAITING_READER_STATE_CHANGE:
|
||||
{
|
||||
struct wait_reader_state_change waStr;
|
||||
|
||||
READ_BODY(waStr);
|
||||
struct wait_reader_state_change waStr =
|
||||
{
|
||||
.timeOut = 0,
|
||||
.rv = 0
|
||||
};
|
||||
|
||||
/* remove the client fd from the list */
|
||||
waStr.rv = EHUnregisterClientForEvent(filedes);
|
||||
|
@ -810,7 +811,11 @@ exit:
|
|||
LONG MSGSignalClient(uint32_t filedes, LONG rv)
|
||||
{
|
||||
uint32_t ret;
|
||||
struct wait_reader_state_change waStr;
|
||||
struct wait_reader_state_change waStr =
|
||||
{
|
||||
.timeOut = 0,
|
||||
.rv = 0
|
||||
};
|
||||
|
||||
Log2(PCSC_LOG_DEBUG, "Signal client: %d", filedes);
|
||||
|
||||
|
@ -820,6 +825,18 @@ LONG MSGSignalClient(uint32_t filedes, LONG rv)
|
|||
return ret;
|
||||
} /* MSGSignalClient */
|
||||
|
||||
LONG MSGSendReaderStates(uint32_t filedes)
|
||||
{
|
||||
uint32_t ret;
|
||||
|
||||
Log2(PCSC_LOG_DEBUG, "Send reader states: %d", filedes);
|
||||
|
||||
/* dump the readers state */
|
||||
ret = MessageSend(readerStates, sizeof(readerStates), filedes);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
static LONG MSGAddContext(SCARDCONTEXT hContext, SCONTEXT * threadContext)
|
||||
{
|
||||
threadContext->hContext = hContext;
|
||||
|
@ -844,7 +861,7 @@ static LONG MSGRemoveContext(SCARDCONTEXT hContext, SCONTEXT * threadContext)
|
|||
while (list_size(&threadContext->cardsList) != 0)
|
||||
{
|
||||
READER_CONTEXT * rContext = NULL;
|
||||
SCARDHANDLE hCard, hLockId;
|
||||
SCARDHANDLE hCard;
|
||||
void *ptr;
|
||||
|
||||
/*
|
||||
|
@ -868,31 +885,42 @@ static LONG MSGRemoveContext(SCARDCONTEXT hContext, SCONTEXT * threadContext)
|
|||
return rv;
|
||||
}
|
||||
|
||||
hLockId = rContext->hLockId;
|
||||
rContext->hLockId = 0;
|
||||
|
||||
if (hCard != hLockId)
|
||||
if (0 == rContext->hLockId)
|
||||
{
|
||||
/*
|
||||
* if the card is locked by someone else we do not reset it
|
||||
* and simulate a card removal
|
||||
*/
|
||||
rv = SCARD_W_REMOVED_CARD;
|
||||
}
|
||||
else
|
||||
{
|
||||
/*
|
||||
* We will use SCardStatus to see if the card has been
|
||||
* reset there is no need to reset each time
|
||||
* Disconnect is called
|
||||
*/
|
||||
rv = SCardStatus(hCard, NULL, NULL, NULL, NULL, NULL, NULL);
|
||||
}
|
||||
|
||||
if (rv == SCARD_W_RESET_CARD || rv == SCARD_W_REMOVED_CARD)
|
||||
/* no lock. Just leave the card */
|
||||
(void)SCardDisconnect(hCard, SCARD_LEAVE_CARD);
|
||||
}
|
||||
else
|
||||
(void)SCardDisconnect(hCard, SCARD_RESET_CARD);
|
||||
{
|
||||
if (hCard != rContext->hLockId)
|
||||
{
|
||||
/*
|
||||
* if the card is locked by someone else we do not reset it
|
||||
* and simulate a card removal
|
||||
*/
|
||||
rv = SCARD_W_REMOVED_CARD;
|
||||
|
||||
/* decrement card use */
|
||||
(void)SCardDisconnect(hCard, SCARD_LEAVE_CARD);
|
||||
}
|
||||
else
|
||||
{
|
||||
/* release the lock */
|
||||
rContext->hLockId = 0;
|
||||
|
||||
/*
|
||||
* We will use SCardStatus to see if the card has been
|
||||
* reset there is no need to reset each time
|
||||
* Disconnect is called
|
||||
*/
|
||||
rv = SCardStatus(hCard, NULL, NULL, NULL, NULL, NULL, NULL);
|
||||
|
||||
if (rv == SCARD_W_RESET_CARD || rv == SCARD_W_REMOVED_CARD)
|
||||
(void)SCardDisconnect(hCard, SCARD_LEAVE_CARD);
|
||||
else
|
||||
(void)SCardDisconnect(hCard, SCARD_RESET_CARD);
|
||||
}
|
||||
}
|
||||
|
||||
/* Remove entry from the list */
|
||||
lrv = list_delete_at(&threadContext->cardsList, 0);
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* MUSCLE SmartCard Development ( http://pcsclite.alioth.debian.org/pcsclite.html )
|
||||
* MUSCLE SmartCard Development ( https://pcsclite.apdu.fr/ )
|
||||
*
|
||||
* Copyright (C) 2001-2004
|
||||
* David Corcoran <corcoran@musclecard.com>
|
||||
|
@ -45,5 +45,6 @@ THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|||
void ContextsDeinitialize(void);
|
||||
LONG CreateContextThread(uint32_t *);
|
||||
LONG MSGSignalClient(uint32_t filedes, LONG rv);
|
||||
LONG MSGSendReaderStates(uint32_t filedes);
|
||||
|
||||
#endif
|
||||
|
|
6
ylwrap
6
ylwrap
|
@ -1,9 +1,9 @@
|
|||
#! /bin/sh
|
||||
# ylwrap - wrapper for lex/yacc invocations.
|
||||
|
||||
scriptversion=2013-01-12.17; # UTC
|
||||
scriptversion=2016-01-11.22; # UTC
|
||||
|
||||
# Copyright (C) 1996-2013 Free Software Foundation, Inc.
|
||||
# Copyright (C) 1996-2017 Free Software Foundation, Inc.
|
||||
#
|
||||
# Written by Tom Tromey <tromey@cygnus.com>.
|
||||
#
|
||||
|
@ -242,6 +242,6 @@ exit $ret
|
|||
# eval: (add-hook 'write-file-hooks 'time-stamp)
|
||||
# time-stamp-start: "scriptversion="
|
||||
# time-stamp-format: "%:y-%02m-%02d.%02H"
|
||||
# time-stamp-time-zone: "UTC"
|
||||
# time-stamp-time-zone: "UTC0"
|
||||
# time-stamp-end: "; # UTC"
|
||||
# End:
|
||||
|
|
Loading…
Reference in New Issue