============================================
System Requirements for PDFlib GmbH Products
============================================

Latest change: 2019-01-30

This document describes the requirements for using PDFlib GmbH binaries on
various platforms. This list covers all platforms on which at least one
product is supported. It should not be construed as a commitment regarding
the availability of product/platform combinations.

To find out whether a PDFlib GmbH product is supported at all on a particular
platform please check the downloadable binary packages which are available
at www.pdflib.com.


================================
Note on 64-bit Intel platforms
================================
Intel uses the term "Intel 64" for a processor architecture which is
known by several other names:
- Intel formerly called it EM64T (after using IA-32e)
- Microsoft and Oracle call it x64
- AMD calls it AMD64 (after using x86-64)
- Linux systems often refer to x86_64

PDFlib GmbH binaries for Intel 64 work on all architectures listed above.
They do not work on Intel Itanium (formerly called IA-64) which is
a separate architecture.
Because of the vendor-specific conventions we continue to use the term "x64"
instead of "Intel 64" in the context of Oracle and Microsoft operating systems. 


================================
Windows
================================

Requirements:
Windows 7/8/10 on x86 or x64
Windows Server 2008 and above on x86 or x64

C and C++ bindings
------------------
Project files for the programming samples are available for Visual Studio 2010.
Newer versions of Visual Studio can convert these automatically.


================================
.NET Core and .NET Framework
================================

We offer two variants of the .NET binding:

Classic .NET binding 
--------------------
The document PDFlib-in-.NET-HowTo.pdf discusses configuration details for
the classic .NET binding such as required runtime DLLs.
 
The classic .NET binding is implemented as C++/CLI assembly using C++ Interop.
It supports the following target environments:

- Windows x86 and x64
- .NET Framework 2.x - 4.x

With ASP.NET 2.0 and above the .NET editions of PDFlib GmbH products require
Full Trust level. They do not work with any other trust level, such as
High or Medium Trust.


.NET Core binding
-----------------
The .NET Core binding is implemented as C# assembly using C# Interop with
unmanaged code in an auxiliary DLL. It supports the following target
environments:

- Windows x64, Linux x64, macOS
- .NET Standard 2.0
- .NET Framework 4.6.1 and above


================================
Java
================================
Java 1.5 or above is required for the Java binding.


================================
Linux
================================
Requirements: GLIBC 2.3 (or later) based system on x86
              SSE2 support is required for x86-compatible CPUs
              GLIBC 2.4 (or later) based system on Intel 64

C and C++ bindings
------------------
Compiler:
x86: g++ 3.4 or above (g++ 4.0 or above recommended)
Intel 64: g++ 4.0 or above


Java, Perl, PHP, Python, Ruby, Tcl bindings
-------------------------------------------
x86 and Intel 64: libstdc++.so.6


================================
Alpine Linux
================================
Requirements: Alpine Linux 3.4 and above

Dedicated binaries are required for Alpine Linux since the system is based
on musl libc (instead of glibc).


================================
macOS
================================
Requirements: macOS 10.9 and above on x86/x64

Since macOS 10.8 the Gatekeeper protection feature blocks unsigned
applications. This applies to all PDFlib GmbH command line tools.
If you want to use these tools you must inform the system that it is a
safe application. Override Gatekeeper by Control-clicking the application
icon and select "Open" from the top of the context menu.
This must be done only once per user account.


C, C++, and Objective-C bindings
--------------------------------
Compiler: Xcode 6 or above


PHP language binding
--------------------
PHP 7 requires macOS 10.9 or above.


================================
FreeBSD
================================
Requirements:
x86: FreeBSD 10/11 and compatible systems
Intel 64: FreeBSD 10/11 and compatible systems


================================
AIX
================================
Requirements: AIX 5.2 and compatible systems; currently AIX 6/7

C and C++ bindings
------------------
Compiler: XLC 8.0 or above: you must use a thread-safe variant of the compiler
(such as xlC_r).

g++ is unsupported, but may work with the following options:
CFLAGS/CXXFLAGS: -mxl-compat -pthread
LDFLAGS: -lC -pthread


================================
iOS
================================
Requirements:
- Runtime requirements: iOS 8 or above on 32-bit or 64-bit
- development requirements: Xcode 6.3 or above
- supported language bindings: Objective-C, C, C++


================================
Android
================================
Requirements:
supported architectures: arm, arm64, x86
runtime requirements for arm and x86: API level 16 and above
runtime requirements for arm64: API level 21 and above
supported language bindings: Java and C/C++ for NDK


================================
Solaris
================================
Requirements: Solaris 8 and above on x86, x64, or sparc

C and C++ bindings
------------------
Compiler: Oracle Solaris Studio
CFLAGS/CXXFLAGS/LDFLAGS: "-mt -lpthread"

g++ is unsupported, but may work with the following options:
CFLAGS/CXXFLAGS: -pthread
LDFLAGS: -lCstd -lCrun -pthread


================================
i5/iSeries
================================
Note that not all products are available for i5/iSeries. Please refer to
www.pdflib.com regarding the use of AIX 32-bit binaries on i5 systems
with PASE.

General requirements: OS V5 R3 M0 and compatible systems

Requirements for using PDFlib GmbH products with PHP:
- Zend Server for IBM i or Zend Server Community Edition (CE) for IBM i
  (requires PASE for i, which is a no-charge option of IBM i)
- PHP 5.3
- The binaries from the AIX 32-bit package must be used (not from the
  i5/iSeries package)


================================
zSeries
================================
Requirements:
z/OS 1.6 and compatible systems with USS (32-bit/64-bit) or MVS (32-bit)
(MVS versions of PDFlib GmbH products are not thread-safe)

or

zLinux 32-bit or 64-bit (s390/s390x)
GLIBC 2.3 (or later) based system (e.g. SLES 10 or above, RHEL 5 or above).


C/C++ binding
-------------
CFLAGS/CXXFLAGS: -W "c,float(ieee)"