Show
Ignore:
Timestamp:
03/06/08 16:06:59 (10 months ago)
Author:
alonbl
Message:

Complete rewrite of OpenSC build system.

1. Build system now supports MinGW (Windows) compilation using msys and cross compilation.
2. Ability to explicitly disable and enable dependencies of the package.
3. openct, pcsc and nsplugins features are disabled by default.
4. Modified pcsc driver to use pcsc dynamically, no compile time dependency is required.
5. --enable-pcsc-lite configuration option renamed to --enable-pcsc.
6. Install opensc.conf file (as opensc.conf.new if opensc.conf exists).
7. Add--enable-doc configuration option, allow installing documentation into target.
8. Add --disable-man configuration option, allow msys mingw32 users to

build from svn without extra dependencies.

9. Add export files to each library in order to export only required symbols.

Windows native build may use these files instead of scanning objects' symbols.

10. Add opensc-tool --info to display some general information about the build.
11. Create compatibility library to be linked against library instread of recompiling the

same source files in different places.

12. Add different win32 version resource to each class of outputs.
13. Make xsl-stylesheets location selectable.
14. Some win32 fixups.
15. Some warning fixups.
16. Many other autoconf/automake cleanups.

Alon Bar-Lev

svn diff -r 3315:3399 https://www.opensc-project.org/svn/opensc/branches/alonbl/mingw

_M .
D configure.in
_M src
_M src/openssh
M src/openssh/Makefile.am
_M src/tools
M src/tools/rutoken-tool.c
M src/tools/opensc-tool.c
M src/tools/cardos-info.c
M src/tools/pkcs15-crypt.c
M src/tools/pkcs15-init.c
M src/tools/piv-tool.c
M src/tools/netkey-tool.c
M src/tools/eidenv.c
M src/tools/cryptoflex-tool.c
M src/tools/util.c
M src/tools/pkcs11-tool.c
M src/tools/pkcs15-tool.c
M src/tools/util.h
M src/tools/opensc-explorer.c
M src/tools/Makefile.am
_M src/pkcs11
M src/pkcs11/pkcs11-global.c
M src/pkcs11/framework-pkcs15.c
M src/pkcs11/mechanism.c
M src/pkcs11/pkcs11-display.c
M src/pkcs11/pkcs11-object.c
A src/pkcs11/opensc-pkcs11.exports
M src/pkcs11/sc-pkcs11.h
M src/pkcs11/pkcs11-spy.c
M src/pkcs11/openssl.c
M src/pkcs11/Makefile.am
A src/pkcs11/pkcs11-spy.exports
_M src/tests
_M src/tests/regression
M src/tests/regression/Makefile.am
M src/tests/sc-test.c
M src/tests/pintest.c
M src/tests/Makefile.am
_M src/include
_M src/include/opensc
M src/include/opensc/Makefile.am
A src/include/opensc/svnignore
M src/include/Makefile.am
_M src/signer
_M src/signer/npinclude
M src/signer/npinclude/Makefile.am
M src/signer/Makefile.am
A src/signer/signer.exports
_M src/common
A src/common/compat_dummy.c
D src/common/getopt.txt
D src/common/strlcpy.c
D src/common/LICENSE
A src/common/compat_getopt.txt
A src/common/compat_strlcpy.c
A src/common/LICENSE.compat_getopt
A src/common/compat_getopt.c
D src/common/strlcpy.h
D src/common/ChangeLog
D src/common/getpass.c
D src/common/my_getopt.c
A src/common/compat_strlcpy.h
A src/common/compat_getpass.c
A src/common/compat_getopt.h
A src/common/ChangeLog.compat_getopt
D src/common/README.strlcpy
D src/common/my_getopt.h
A src/common/compat_getpass.h
A src/common/README.compat_strlcpy
D src/common/strlcpy.3
A src/common/README.compat_getopt
D src/common/getopt.3
D src/common/README.my_getopt
A src/common/compat_strlcpy.3
A src/common/compat_getopt.3
M src/common/Makefile.am
M src/Makefile.am
_M src/pkcs15init
M src/pkcs15init/pkcs15-oberthur.c
M src/pkcs15init/profile.c
M src/pkcs15init/pkcs15-lib.c
M src/pkcs15init/pkcs15-rutoken.c
A src/pkcs15init/pkcs15init.exports
M src/pkcs15init/pkcs15-gpk.c
M src/pkcs15init/Makefile.am
_M src/scconf
M src/scconf/Makefile.am
M src/scconf/parse.c
A src/scconf/scconf.exports
_M src/libopensc
M src/libopensc/card-rutoken.c
M src/libopensc/compression.c
M src/libopensc/sc.c
M src/libopensc/card-piv.c
M src/libopensc/pkcs15-openpgp.c
M src/libopensc/pkcs15-postecert.c
M src/libopensc/pkcs15-tcos.c
M src/libopensc/opensc-config.in
M src/libopensc/reader-pcsc.c
A src/libopensc/internal-winscard.h
M src/libopensc/ctx.c
A src/libopensc/libopensc.exports
M src/libopensc/pkcs15-piv.c
M src/libopensc/pkcs15-infocamere.c
M src/libopensc/internal.h
M src/libopensc/pkcs15-actalis.c
M src/libopensc/pkcs15-starcert.c
M src/libopensc/card-oberthur.c
M src/libopensc/pkcs15-atrust-acos.c
M src/libopensc/p15card-helper.c
D src/libopensc/part10.h
M src/libopensc/ui.c
M src/libopensc/card-gpk.c
M src/libopensc/pkcs15-wrap.c
M src/libopensc/pkcs15-gemsafeGPK.c
M src/libopensc/log.c
M src/libopensc/pkcs15-esteid.c
M src/libopensc/pkcs15-prkey-rutoken.c
M src/libopensc/log.h
M src/libopensc/Makefile.am
M src/libopensc/reader-openct.c
_M aclocal
M aclocal/Makefile.am
_M win32
M win32/Makefile.am
A win32/versioninfo.rc.in
A win32/ltrc.inc
A configure.ac
_M doc
_M doc/tools
M doc/tools/pkcs15-profile.xml
D doc/changelog.sh
D doc/export-wiki.xsl
_M doc/api
_M doc/api/file
M doc/api/man.xsl
_M doc/api/asn1
_M doc/api/apps
_M doc/api/init
_M doc/api/types
_M doc/api/card
M doc/api/html.xsl
_M doc/api/misc
_M doc/api/util
M doc/Makefile.am
D doc/export-wiki.sh
AM doc/nonpersistent
A doc/nonpersistent/export-wiki.xsl
A doc/nonpersistent/Makefile.am
A doc/nonpersistent/export-wiki.sh
A doc/nonpersistent/svn2cl.xsl
D doc/generate-man.sh
D doc/svn2cl.xsl
M Makefile.am
A svnignore
_M etc
M etc/opensc.conf.in
M etc/Makefile.am
D man
_M solaris
M solaris/Makefile

Location:
trunk
Files:
4 modified

Legend:

Unmodified
Added
Removed
  • trunk

    • Property svn:ignore
      •  

        old new  
         1Makefile 
         2Makefile.in 
         3core 
         4archive 
         5acinclude.m4 
         6aclocal.m4 
         7autom4te.cache 
         8compile 
         9confdefs.h 
         10config.* 
         11configure 
         12conftest 
         13conftest.c 
         14depcomp 
         15install-sh 
         16libtool 
         17libtool.m4 
         18ltmain.sh 
         19missing 
         20mkinstalldirs 
         21so_locations 
         22stamp-h* 
         23 
        124.deps 
        225.libs 
         
        1942*.rej 
        2043*.u 
         44*.rc 
         45*.pc 
        2146*~ 
        22 Makefile 
        23 Makefile.in 
        24 core 
        25 gmon.out 
        26 archive 
        27 acinclude.m4 
        28 aclocal.m4 
        29 autom4te.cache 
        30 compile 
        31 confdefs.h 
        32 config.cache 
        33 config.guess 
        34 config.h 
        35 config.h.in 
        36 config.log 
        37 config.status 
        38 config.sub 
        39 configure 
        40 conftest 
        41 conftest.c 
        42 depcomp 
        43 install-sh 
        44 libtool 
        45 libtool.m4 
        46 ltmain.sh 
        47 missing 
        48 mkinstalldirs 
        49 so_locations 
        50 stamp-h* 
         47*.gz 
         48*.bz2 
         49*.[0-9] 
         50*.html 
         51*.gif 
         52*.css 
         53*.out 
         54 
         55ChangeLog 
         56opensc.conf 
         57xsl-stylesheets 
         58opensc-config 
         59test-conf 
         60pkcs15-tool 
         61pkcs15-crypt 
         62pkcs15-init 
         63piv-tool 
         64eidenv 
         65opensc-explorer 
         66opensc-tool 
         67rutoken-tool 
         68cardos-info 
         69cryptoflex-tool 
         70netkey-tool 
         71pkcs11-tool 
         72pintest 
         73p15dump 
         74prngtest 
         75base64 
         76lottery 
         77 
  • trunk/src

    • Property svn:ignore
      •  

        old new  
         1Makefile 
         2Makefile.in 
         3core 
         4archive 
         5acinclude.m4 
         6aclocal.m4 
         7autom4te.cache 
         8compile 
         9confdefs.h 
         10config.* 
         11configure 
         12conftest 
         13conftest.c 
         14depcomp 
         15install-sh 
         16libtool 
         17libtool.m4 
         18ltmain.sh 
         19missing 
         20mkinstalldirs 
         21so_locations 
         22stamp-h* 
         23 
        124.deps 
        225.libs 
         
        1942*.rej 
        2043*.u 
         44*.rc 
         45*.pc 
        2146*~ 
        22 Makefile 
        23 Makefile.in 
        24 core 
        25 gmon.out 
         47*.gz 
         48*.bz2 
         49*.[0-9] 
         50*.html 
         51*.gif 
         52*.css 
         53*.out 
         54 
         55ChangeLog 
         56opensc.conf 
         57xsl-stylesheets 
         58opensc-config 
         59test-conf 
         60pkcs15-tool 
         61pkcs15-crypt 
         62pkcs15-init 
         63piv-tool 
         64eidenv 
         65opensc-explorer 
         66opensc-tool 
         67rutoken-tool 
         68cardos-info 
         69cryptoflex-tool 
         70netkey-tool 
         71pkcs11-tool 
         72pintest 
         73p15dump 
         74prngtest 
         75base64 
         76lottery 
         77 
  • trunk/src/pkcs11

    • Property svn:ignore
      •  

        old new  
         1Makefile 
         2Makefile.in 
         3core 
         4archive 
         5acinclude.m4 
         6aclocal.m4 
         7autom4te.cache 
         8compile 
         9confdefs.h 
         10config.* 
         11configure 
         12conftest 
         13conftest.c 
         14depcomp 
         15install-sh 
         16libtool 
         17libtool.m4 
         18ltmain.sh 
         19missing 
         20mkinstalldirs 
         21so_locations 
         22stamp-h* 
         23 
        124.deps 
        225.libs 
         
        1942*.rej 
        2043*.u 
         44*.rc 
         45*.pc 
        2146*~ 
        22 Makefile 
        23 Makefile.in 
        24 core 
        25 gmon.out 
         47*.gz 
         48*.bz2 
         49*.[0-9] 
         50*.html 
         51*.gif 
         52*.css 
         53*.out 
         54 
         55ChangeLog 
         56opensc.conf 
         57xsl-stylesheets 
         58opensc-config 
         59test-conf 
         60pkcs15-tool 
         61pkcs15-crypt 
         62pkcs15-init 
         63piv-tool 
         64eidenv 
         65opensc-explorer 
         66opensc-tool 
         67rutoken-tool 
         68cardos-info 
         69cryptoflex-tool 
         70netkey-tool 
         71pkcs11-tool 
         72pintest 
         73p15dump 
         74prngtest 
         75base64 
         76lottery 
         77 
  • trunk/src/pkcs11/pkcs11-global.c

    r3404 r3405  
    115115#endif 
    116116 
    117 static CK_C_INITIALIZE_ARGS_PTR _locking; 
    118 static void *                   _lock = NULL; 
     117static CK_C_INITIALIZE_ARGS_PTR global_locking; 
     118static void *                   global_lock = NULL; 
    119119#if (defined(HAVE_PTHREAD) || defined(_WIN32)) && defined(PKCS11_THREAD_LOCKING) 
    120120#define HAVE_OS_LOCKING 
     
    127127static int sc_create_mutex(void **m) 
    128128{ 
    129         if (_locking == NULL) 
     129        if (global_locking == NULL) 
    130130                return SC_SUCCESS; 
    131         if (_locking->CreateMutex(m) == CKR_OK) 
     131        if (global_locking->CreateMutex(m) == CKR_OK) 
    132132                return SC_SUCCESS; 
    133133        else 
     
    137137static int sc_lock_mutex(void *m) 
    138138{ 
    139         if (_locking == NULL) 
     139        if (global_locking == NULL) 
    140140                return SC_SUCCESS; 
    141         if (_locking->LockMutex(m) == CKR_OK) 
     141        if (global_locking->LockMutex(m) == CKR_OK) 
    142142                return SC_SUCCESS; 
    143143        else 
     
    147147static int sc_unlock_mutex(void *m) 
    148148{ 
    149         if (_locking == NULL) 
     149        if (global_locking == NULL) 
    150150                return SC_SUCCESS; 
    151         if (_locking->UnlockMutex(m) == CKR_OK) 
     151        if (global_locking->UnlockMutex(m) == CKR_OK) 
    152152                return SC_SUCCESS; 
    153153        else 
     
    158158static int sc_destroy_mutex(void *m) 
    159159{ 
    160         if (_locking == NULL) 
     160        if (global_locking == NULL) 
    161161                return SC_SUCCESS; 
    162         if (_locking->DestroyMutex(m) == CKR_OK) 
     162        if (global_locking->DestroyMutex(m) == CKR_OK) 
    163163                return SC_SUCCESS; 
    164164        else 
     
    373373static sc_timestamp_t get_current_time(void) 
    374374{ 
    375 #ifndef _WIN32 
     375#if HAVE_GETTIMEOFDAY 
    376376        struct timeval tv; 
    377377        struct timezone tz; 
     
    633633        int applock = 0; 
    634634        int oslock = 0; 
    635         if (_lock) 
     635        if (global_lock) 
    636636                return CKR_OK; 
    637637 
     
    646646         * use that. Otherwise use the supplied functions. 
    647647         */ 
    648         _locking = NULL; 
     648        global_locking = NULL; 
    649649        if (args->CreateMutex && args->DestroyMutex && 
    650650                   args->LockMutex   && args->UnlockMutex) { 
     
    658658        if (applock && oslock) { 
    659659                /* Shall be used in threaded environment, prefer app provided locking */ 
    660                 _locking = args; 
     660                global_locking = args; 
    661661        } else if (!applock && oslock) { 
    662662                /* Shall be used in threaded environment, must use operating system locking */ 
    663                 _locking = default_mutex_funcs; 
     663                global_locking = default_mutex_funcs; 
    664664        } else if (applock && !oslock) { 
    665665                /* Shall be used in threaded envirnoment, must use app provided locking */ 
    666                 _locking = args; 
     666                global_locking = args; 
    667667        } else if (!applock && !oslock) { 
    668668                /* Shall not be used in threaded environemtn, use operating system locking */ 
    669                 _locking = default_mutex_funcs; 
    670         } 
    671  
    672         if (_locking != NULL) { 
     669                global_locking = default_mutex_funcs; 
     670        } 
     671 
     672        if (global_locking != NULL) { 
    673673                /* create mutex */ 
    674                 rv = _locking->CreateMutex(&_lock); 
     674                rv = global_locking->CreateMutex(&global_lock); 
    675675        } 
    676676 
     
    683683                return CKR_CRYPTOKI_NOT_INITIALIZED; 
    684684 
    685         if (!_lock) 
     685        if (!global_lock) 
    686686                return CKR_OK; 
    687         if (_locking)  { 
    688                 while (_locking->LockMutex(_lock) != CKR_OK) 
     687        if (global_locking)  { 
     688                while (global_locking->LockMutex(global_lock) != CKR_OK) 
    689689                        ; 
    690690        }  
     
    698698        if (!lock) 
    699699                return; 
    700         if (_locking) { 
    701                 while (_locking->UnlockMutex(lock) != CKR_OK) 
     700        if (global_locking) { 
     701                while (global_locking->UnlockMutex(lock) != CKR_OK) 
    702702                        ; 
    703703        }  
     
    706706void sc_pkcs11_unlock(void) 
    707707{ 
    708         __sc_pkcs11_unlock(_lock); 
     708        __sc_pkcs11_unlock(global_lock); 
    709709} 
    710710 
     
    717717        void    *tempLock; 
    718718 
    719         if (!(tempLock = _lock)) 
     719        if (!(tempLock = global_lock)) 
    720720                return; 
    721721 
    722722        /* Clear the global lock pointer - once we've 
    723723         * unlocked the mutex it's as good as gone */ 
    724         _lock = NULL; 
     724        global_lock = NULL; 
    725725 
    726726        /* Now unlock. On SMP machines the synchronization 
     
    729729        __sc_pkcs11_unlock(tempLock); 
    730730 
    731         if (_locking) 
    732                 _locking->DestroyMutex(tempLock); 
    733         _locking = NULL; 
     731        if (global_locking) 
     732                global_locking->DestroyMutex(tempLock); 
     733        global_locking = NULL; 
    734734} 
    735735