Skip to content

dogtagpki/coolkey

Repository files navigation

How to build on various platforms.
A more up to date version of this may be found at 
https://directory.fedora.redhat.com/wiki/BuildCoolKey


Linux/Unix
---------------------------------------------------------------------------
Prerequisites

You will need the following packages installed (or equivalent for your OS):

    * pcsc-lite-devel
    * xlib-devel
    * glibc
    * gcc
    * autoconf 

Building

In the root directory run the following commands:

autoconf
./configure
make

If you need to modify the Makefiles, automake 1.9.6 was used. Makefile.am is 
included in the source.

Installing

In the root directory run:

make install

or

make install DEST=/my/destination/tree



Mac OS X
---------------------------------------------------------------------------

CoolKey can be compiled as a universal binary on the Mac.

Prerequisites

    * Intel or PPC Mac
    * OS X Tiger
    * Version 2.59 of autoconf
    * XCode 2.2 and later
    * Make sure the framework "/Developer/SDKs/MacOSX10.4u.sdk" is present 

Building

   1. checkout coolkey source
   2. proceed to the coolkey directory
   3. Type the following: 

autoconf
./configure --disable-dependency-tracking
make

If the autoconf step fails, an outdated version of autoconf may be installed. 
Perform "autoconf --version" to make sure 2.59 is the version present.

As of right now, the above will build CoolKey dynamic libraries as only the 
native binary of the build machine. For instance, performing this build on an 
Intel Mac will build universal object files but leave the dynamic libraries as 
Intel only. Until this problem can be resolved, the following can be done to 
complete an actual universal binary build of everything.

After the configure step and prior to the actual Make, do the following:

   1. edit the file "libtool". Be sure to back up the original copy.
   2. search for lines with instances of the strings "archive_cmds" and 
      "module_expsym_cmds".
   3. Between the strings "\$deplibs" and "\$compiler_flags", 
      place the following: 

    -isysroot /Developer/SDKs/MacOSX10.4u.sdk -arch ppc -arch i386

Example:

#Commands used to build and install a shared archive.
archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs 
-isysroot /Developer/SDKs/MacOSX10.4u.sdk  -arch ppc -arch i386 
\$compiler_flags -install_name \$rpath/\$soname \$verstring"


    * At this point, performing a "make" will result in universal binary 
    versions of each dynamic library associated with CoolKey. 

It is also possible to build the utility "pk11install" on the Mac. This 
utility can be used to automatically install CoolKey into Mozilla browsers on 
the user's system.

    * Building "pk11install" will requre the configure script to be launched 
with the following two environment variables: 

NSS_CFLAGS=
NSS_LIBS=

    * NSS_CFLAGS has to be set to the include paths of NSS and NSPR currently 
installed on the system.
    * NSS_LIBS has to be set to the search path of the NSS and NSPR shared 
libraries.
    * Example invocation: 

./configure --disable-dependency-tracking NSS_CFLAGS="-I /usr/local/include/nspr -I /usr/local/include/nss" NSS_LIBS="-L/usr/local/lib/nss" --enable-pkinstall
 make

Installing

    * After a successful build of CoolKey, the Makefile can be used to perform 
   a simple install of the software on the system if desired. 

   1. Within the build directory perform the following: 

make  install

    * By default, everything will be placed in "/usr/local/lib" and 
    "/usr/local/lib/pkcs11".
    * An alternate prefix directory, instead of "/usr/local" can be selected 
    at configure time as demonstrated below: 

./configure --prefix=/usr/local/CoolKey --disable-dependency-tracking

    * In the above example the install will result in everything being located 
    in "/usr/local/CoolKey/lib" and "/usr/local/CoolKey/lib/pkcs11". 

    * If desired the following example demonstartes how to install everything 
    in an alternate base location: 

make DESTDIR=/build/staging-area install

    * The above will install the previous example in 
    "/build/staging/usr/local/CoolKey". 



Windows
---------------------------------------------------------------------------

Prerequisites

    * Microsoft Visual C++ and Platform SDK: Install as normal. 
    Make sure INCLUDE and LIB are set appropriately. These are available at 
    (https://msdn.microsoft.com/visualc/)
    * Cygwin: Install as normal. You'll need base, the shell, autoconf-2.5x, 
    make, cvs*... This can be downloaded at (https://www.cygwin.com) 

* This may not be a full list. If you discover additional packages which are 
needed please let us know, or update the wiki 
(https://directory/fedora.redhat.com/wiki/BuildCoolKey).

    * ZLib Download ZLib source an binaries from here (https://www.zlib.org)
         1. Unzip into a known directory (like c:/zlib)
         2. Set ZLIB_INCLUDE to the location of the include files 
            (e.g. c:/zlib/include)
         3. Set ZLIB_LIB to the location of the export libraries 
            (e.g. c:/zlib/lib) 
	 4. Make sure both zdll.lib and zlib1.dll are in the ZLIB_LIB directory

Building

Once everything is installed, start a cygwin shell.

   1. checkout the coolkey source
   2. Make sure the environment variables INCLUDE, LIB, ZLIB_INCLUDE, and 
   ZLIB_LIB are defined as described above in Prerequisites.
   3. Make sure the Visual C++ tools are in your path.
   4. In the root directory type: 

autoconf-2.5x
./configure
make

Installing

To build a distribution:

make install DESTDIR=C:/build/staging-area libdir=/libraries prefix=/sdk

To install on your local machine:

make install