EasyLicenser Multiplatform C/C++ Runtime Library SDK: Specifications


Preface

Platform Checklist

32-bit i86 Windows

64-bit x64 Windows

32-bit i86 Red Hat Linux

64-bit x64 Red Hat Linux

32-bit i86 SuSE Linux

64-bit x64 SuSE Linux

32-bit i86 Ubuntu Linux

64-bit x64 Ubuntu Linux

32-bit i86 Solaris

64-bit x64 Solaris

32-bit SPARC Solaris

64-bit SPARC Solaris

Mac OS X Universal Binary

32-bit i86 Windows

Hardware

Operating System Versions

C/C++ Compiler

Platform subdirectory name

Agilis build and test environments

DLL installation and access

Manifest files

Microsoft C runtime library usage and distribution

64-bit x64 Windows

Hardware

Operating System Versions

C/C++ Compiler

Platform subdirectory name

Agilis build and test environments

DLL installation and access

Manifest files

Microsoft C runtime library usage and distribution

32-bit i86 Red Hat Linux

Hardware

Operating System Versions

C/C++ Compiler

Platform subdirectory name

Agilis build and test environments

Shared library installation and access

64-bit x64 Red Hat Linux

Hardware

Operating System Versions

C/C++ Compiler

Platform subdirectory name

Agilis build and test environments

Shared library installation and access

32-bit i86 SuSE Linux

Hardware

Operating System Versions

C/C++ Compiler

Platform subdirectory name

Agilis build and test environments

Shared library installation and access

64-bit x64 SuSE Linux

Hardware

Operating System Versions

C/C++ Compiler

Platform subdirectory name

Agilis build and test environments

Shared library installation and access

32-bit i86 Ubuntu Linux

Hardware

Operating System Versions

C/C++ Compiler

Platform subdirectory name

Agilis build and test environments

Shared library installation and access

64-bit x64 Ubuntu Linux

Hardware

Operating System Versions

C/C++ Compiler

Platform subdirectory name

Agilis build and test environments

Shared library installation and access

32-bit i86 Solaris

Hardware

Operating System Versions

C/C++ Compiler

Platform subdirectory name

Agilis build and test environments

Shared library installation and access

64-bit x64 Solaris

Hardware

Operating System Versions

C/C++ Compiler

Platform subdirectory name

Agilis build and test environments

Shared library installation and access

32-bit SPARC Solaris

Hardware

Operating System Versions

C/C++ Compiler

Platform subdirectory name

Agilis build and test environments

Shared library installation and access

64-bit SPARC Solaris

Hardware

Operating System Versions

C/C++ Compiler

Platform subdirectory name

Agilis build and test environments

Shared library installation and access

Mac OS X Universal Binary

Hardware

Operating system

C/C++ compiler

Platform subdirectory name

Agilis build and test environments

Shared library installation and access


Preface

This document specifies the supported platforms, hardware and compilers that may be used with the SDK, and the hardware and operating system platforms to which the runtime libraries may be deployed. A specification of the platform, hardware and compilers that were used to build and test the runtime libraries is also provided.

Platform Checklist

32-bit i86 Windows

64-bit x64 Windows

32-bit i86 Red Hat Linux

64-bit x64 Red Hat Linux

32-bit i86 SuSE Linux

64-bit x64 SuSE Linux

32-bit i86 Ubuntu Linux

64-bit x64 Ubuntu Linux

32-bit i86 Solaris

64-bit x64 Solaris

32-bit SPARC Solaris

64-bit SPARC Solaris

Mac OS X Universal Binary

32-bit i86 Windows

Hardware

32-bit Intel (i86) or 64-bit Intel (x64, amd64)

Operating System Versions

32-bit: Windows 2000 or later (Windows 9x and Windows NT are not supported).

64-bit: all 64-bit Windows version Windows XP or later.

C/C++ Compiler

Microsoft Visual C++ 6.0 and above.

Platform subdirectory name

win32

Agilis build and test environments

Intel Core 2 Duo, Windows XP x64, Visual Studio 2005.

DLL installation and access

Install the DLLs in c:\windows or c:\winnt, or set the PATH system environment variable to also reference the directory in which the DLLs are installed, or install the DLL's in a directory that is referenced by the PATH system environment variable.

Note that the EasyLicenser runtime library DLLs are not managed DLLs, and they are not registered with Windows the way an ActiveX DLL is.

Manifest files

Manifest files (a concept that Microsoft introduced since Visual Studio 2003 to solve the "DLL hell" problem) are not supported, and the EasyLicenser runtime library DLL's are intended to be installed directly in the C:\Windows or equivalent directory as usual. There is therefore no change in the way applications use the EasyLicenser runtime library DLL's.

The consequence is that multiple different versions of the EasyLicenser runtime library cannot be used concurrently. This is not an issue since new versions of the EasyLicenser runtime library are backward compatible with older versions of EasyLicenser keys, and provide backward compatible API's up to two major revisions.

Microsoft C runtime library usage and distribution

The EasyLicenser runtime libraries are statically linked with the Microsoft C Runtime Libraries that are part of the Microsoft Visual Studio 5 IDE. Therefore, there are no logistic consequences to you of distributing or embedding manifest files etc. Since the EasyLicenser runtime library has a small footprint, and EasyLicenser's use of the Microsoft C runtime library is minimal and tightly controlled for multiplatform portability, the usual down side of static linking (binary code bloat, and inability to automatically adapt to updates from Microsoft) does not apply to you.

There is one caveat: if you are statically linking your application with the static library version of the EasyLicenser runtime library, then your compiler flags should include the /MT flag and your link command should not refer to msvcrt.lib, so that the static library of the C runtime library that is already linked into the EasyLicenser static library is used. If you need to use the dynamic library version of the C runtime library, use the DLL version of the EasyLicenser runtime library instead.

64-bit x64 Windows

Hardware

64-bit Intel (x64, amd64)

Operating System Versions

All 64-bit Windows version Windows XP or later.

C/C++ Compiler

Microsoft Visual C++ 2005 and above.

Platform subdirectory name

win64

Agilis build and test environments

Intel Core 2 Duo, Windows XP x64, Visual Studio 2005.

DLL installation and access

Install the DLLs in c:\windows, or set the PATH system environment variable to also reference the directory in which the DLLs are installed, or install the DLL's in a directory that is referenced by the PATH system environment variable.

Note that the EasyLicenser runtime library DLLs are not managed DLLs, and they are not registered with Windows the way an ActiveX DLL is.

Manifest files

Manifest files (a concept that Microsoft introduced since Visual Studio 2003 to solve the "DLL hell" problem) are not supported, and the EasyLicenser runtime library DLL's are intended to be installed directly in the C:\Windows or equivalent directory as usual. There is therefore no change in the way applications use the EasyLicenser runtime library DLL's.

The consequence is that multiple different versions of the EasyLicenser runtime library cannot be used concurrently. This is not an issue since new versions of the EasyLicenser runtime library are backward compatible with older versions of EasyLicenser keys, and provide backward compatible API's up to two major revisions.

Microsoft C runtime library usage and distribution

The EasyLicenser runtime libraries are statically linked with the Microsoft C Runtime Libraries that are part of the Microsoft Visual Studio 5 IDE. Therefore, there are no logistic consequences to you of distributing or embedding manifest files etc. Since the EasyLicenser runtime library has a small footprint, and EasyLicenser's use of the Microsoft C runtime library is minimal and tightly controlled for multiplatform portability, the usual down side of static linking (binary code bloat, and inability to automatically adapt to updates from Microsoft) does not apply to you.

There is one caveat: if you are statically linking your application with the static library version of the EasyLicenser runtime library, then your compiler flags should include the /MT flag and your link command should not refer to msvcrt.lib, so that the static library of the C runtime library that is already linked into the EasyLicenser static library is used. If you need to use the dynamic library version of the C runtime library, use the DLL version of the EasyLicenser runtime library instead.

32-bit i86 Red Hat Linux

Hardware

32-bit Intel (i86) or 64-bit Intel (x64, amd64)

Operating System Versions

All 32-bit and 64-bit Linux distributions based on Red Hat Enterprise Linux Version 3 or later (including CentOS Version 3 or later, and Fedora Core Version 3 or later).

C/C++ Compiler

Gnu gcc / g++ versions 3.2 and above.

Platform subdirectory name

linux-intel-redhat

Agilis build and test environments

Intel Core 2 Duo, CentOS 3.9 64-bit (Linux Kernel 2.4.21-50.EL), gnu gcc/g++ 3.2.3 -m32 native-mode.

Shared library installation and access

Include the directories where the shared libraries are installed in the LD_LIBRARY_PATH environment variable, or install the shared libraries in the same relative path that was used in the application build environment, or install the shared libraries in a directory that is currently referenced in the LD_LIBRARY_PATH environment variable.

64-bit x64 Red Hat Linux

Hardware

64-bit Intel (x64, amd64)

Operating System Versions

All 64-bit Linux distributions based on Red Hat Enterprise Linux Version 3 or later (including CentOS Version 3 or later, and Fedora Core Version 3 or later)..

C/C++ Compiler

Gnu gcc / g++ versions 3.2 and above.

Platform subdirectory name

linux-intel64-redhat

Agilis build and test environments

Intel Core 2 Duo, CentOS 3.9 64-bit (Linux Kernel 2.4.21-50.EL), gnu gcc/g++ 3.2.3 -m64 native-mode.

Shared library installation and access

Include the directories where the shared libraries are installed in the LD_LIBRARY_PATH environment variable, or install the shared libraries in the same relative path that was used in the application build environment, or install the shared libraries in a directory that is currently referenced in the LD_LIBRARY_PATH environment variable.

32-bit i86 SuSE Linux

Hardware

32-bit Intel (i86) or 64-bit Intel (x64, amd64)

Operating System Versions

All 32-bit and 64-bit Linux distributions based on SuSE Linux Version 10 or later (including OpenSuSE Version 10 or later, and Novell SLES/SLED Version 10 or later).

C/C++ Compiler

Gnu gcc / g++ versions 4.1 and above.

Platform subdirectory name

linux-intel-suse

Agilis build and test environments

Intel Core 2 Duo, OpenSuSE 10.2 32-bit (Linux Kernel 2.6.18.2-34-default), gnu gcc/g++ 4.1.2 -m32 native-mode.

Shared library installation and access

Include the directories where the shared libraries are installed in the LD_LIBRARY_PATH environment variable, or install the shared libraries in the same relative path that was used in the application build environment, or install the shared libraries in a directory that is currently referenced in the LD_LIBRARY_PATH environment variable.

64-bit x64 SuSE Linux

Hardware

64-bit Intel (x64, amd64)

Operating System Versions

All 64-bit Linux distributions based on SuSE Linux Version 10 or later (including OpenSuSE Version 10 or later, and Novell SLES/SLED Version 10 or later).

C/C++ Compiler

Gnu gcc / g++ versions 4.1 and above.

Platform subdirectory name

linux-intel64-suse

Agilis build and test environments

Intel Core 2 Duo, OpenSuSE 10.2 64-bit (Linux Kernel 2.6.18.2-34-default), gnu gcc/g++ 4.1.2 -m64 native-mode.

Shared library installation and access

Include the directories where the shared libraries are installed in the LD_LIBRARY_PATH environment variable, or install the shared libraries in the same relative path that was used in the application build environment, or install the shared libraries in a directory that is currently referenced in the LD_LIBRARY_PATH environment variable.

32-bit i86 Ubuntu Linux

Hardware

32-bit Intel (i86) or 64-bit Intel (x64, amd64)

Operating System Versions

All 32-bit and 64-bit Ubuntu Linux Version 7.10 or later.

C/C++ Compiler

Gnu gcc / g++ versions 4.1.3 and above.

Platform subdirectory name

linux-intel-ubuntu

Agilis build and test environments

Intel Core 2 Duo, Ubuntu 7.10 32-bit (Linux Kernel 2.6.22-15-generic), gnu gcc/g++ 4.1.3 -m32 native-mode.

Shared library installation and access

Include the directories where the shared libraries are installed in the LD_LIBRARY_PATH environment variable, or install the shared libraries in the same relative path that was used in the application build environment, or install the shared libraries in a directory that is currently referenced in the LD_LIBRARY_PATH environment variable.

64-bit x64 Ubuntu Linux

Hardware

64-bit Intel (x64, amd64)

Operating System Versions

All 64-bit Ubuntu Linux Version 7.10 or later.

C/C++ Compiler

Gnu gcc / g++ versions 4.1.3 and above.

Platform subdirectory name

linux-intel64-ubuntu

Agilis build and test environments

Intel Core 2 Duo, Ubuntu 7.10 64-bit (Linux Kernel 2.6.22-15-generic), gnu gcc/g++ 4.1.3 -m64 native-mode.

Shared library installation and access

Include the directories where the shared libraries are installed in the LD_LIBRARY_PATH environment variable, or install the shared libraries in the same relative path that was used in the application build environment, or install the shared libraries in a directory that is currently referenced in the LD_LIBRARY_PATH environment variable.

32-bit i86 Solaris

Hardware

32-bit Intel (i86) or 64-bit Intel (x64, amd64)

Operating System Versions

Solaris / OpenSolaris version 10 or above, i86 or i86_x64.

C/C++ Compiler

Gnu gcc / g++ versions 3.4 and above.

Platform subdirectory name

sun-intel-gnu

Agilis build and test environments

Intel Core 2 Duo, Solaris 10 i86_x64 Developer Express Edition, gnu gcc/g++ 3.4.3 -m32 native-mode.

Shared library installation and access

Include the directories where the shared libraries are installed in LD_LIBRARY_PATH environment variable, or install the shared libraries in the same relative path that was used in the application build environment, or install the shared libraries in a directory that is currently referenced in the LD_LIBRARY_PATH environment variable.

64-bit x64 Solaris

Hardware

64-bit Intel (x64, amd64)

Operating System Versions

Solaris / OpenSolaris version 10 or above, i86_x64.

C/C++ Compiler

Gnu gcc / g++ versions 3.4 and above.

Platform subdirectory name

sun-intel64-gnu

Agilis build and test environments

Intel Core 2 Duo, Solaris 10 i86_x64 Developer Express Edition, gnu gcc/g++ 3.4.3 -m64 native-mode.

Shared library installation and access

Include the directories where the shared libraries are installed in LD_LIBRARY_PATH environment variable, or install the shared libraries in the same relative path that was used in the application build environment, or install the shared libraries in a directory that is currently referenced in the LD_LIBRARY_PATH environment variable.

Depending on the specific Solaris version / build, it may be necessary to reference /usr/sfw/lib/`isainfo -k` and remove any other reference to /usr/sfw/lib in the LD_LIBRARY_PATH environment variable, in order for 64-bit applications to reference the 64-bit versions of the C and other runtime libraries.

32-bit SPARC Solaris

Hardware

All SPARC based hardware, including CPU's versions older than SPARC V9.

Operating System Versions

Solaris / OpenSolaris version 10 or above, 32/64-bit SPARC.

C/C++ Compiler

Gnu gcc / g++ versions 3.4 and above.

Platform subdirectory name

sun-gnu

Agilis build and test environments

UltraSPARC III, Solaris 10 64-bit SPARC, gnu gcc/g++ 3.4.3 -m32 native-mode.

Shared library installation and access

Include the directories where the shared libraries are installed in LD_LIBRARY_PATH environment variable, or install the shared libraries in the same relative path that was used in the application build environment, or install the shared libraries in a directory that is currently referenced in the LD_LIBRARY_PATH environment variable.

64-bit SPARC Solaris

Hardware

64-bit SPARC (SPARC V9 or later)

Operating System Versions

Solaris / OpenSolaris version 10 or above, 64-bit SPARC.

C/C++ Compiler

Gnu gcc / g++ versions 3.4 and above.

Platform subdirectory name

sun64-gnu

Agilis build and test environments

UltraSPARC III, Solaris 10 64-bit SPARC, gnu gcc/g++ 3.4.3 -m64 native-mode.

Shared library installation and access

Include the directories where the shared libraries are installed in LD_LIBRARY_PATH environment variable, or install the shared libraries in the same relative path that was used in the application build environment, or install the shared libraries in a directory that is currently referenced in the LD_LIBRARY_PATH environment variable.

Depending on the specific Solaris version / build, it may be necessary to reference /usr/sfw/lib/`isainfo -k` and remove any other reference to /usr/sfw/lib in the LD_LIBRARY_PATH environment variable, in order for 64-bit applications to reference the 64-bit versions of the C and other runtime libraries.

Mac OS X Universal Binary

Hardware

32-bit Intel (i86), 64-bit Intel (x64, amd64), 32-bit PowerPC, 64-bit PowerPC

Operating system

Mac OS X 10.4 (Tiger) or later.

C/C++ compiler

gnu gcc / g++ 4.0 or later.

Platform subdirectory name

macosx-ubi

Agilis build and test environments

Intel Core 2 Duo, Mac OS X 10.5 (Leopard), gnu gcc/g++ 4.0.1 -mmacosx-min-version=10.4 -arch ppc -arch i386 -arch ppc64 -arch x86_64

(ie. universal binaries, compatible with Tiger)

Shared library installation and access

Include shared library directories in the DYLD_LIBRARY_PATH environment variable, or install the shared libraries in a directory that is currently referenced in the DYLD_LIBRARY_PATH environment variable. Unlike Linux and Solaris platforms, referencing a shared library at the same relative location to the application build directory will not work.

Note that shared libraries are built as Unix-style .so files (as opposed to the Mac OS X native-style .dylib), and their installation directories require a reference from the Mac OS X native-style DYLD_LIBRARY_PATH environment variable for access (as opposed to the Unix-style LD_LIBRARY_PATH).

Note also that the JNI library is built as the Mac OSX native ".jnilib".


Copyright © 2003++ Agilis Software LLC, Santa Clara, CA, USA. All rights reserved.