PPL6-Icon Patrick's Programming Library Version 6.4.21 - Dokumentation
Download und Installation

Download

Die aktuelle Version und Dokumentation der Library ist hier zu finden:

http://www.pfp.de/ppl

Die Sourcen sind dort im Format ".tar.bz2" zu finden. Unter Unix kann dieses Archiv mit tar oder gtar ausgepackt werden (tar -xjf ppl*.tar.bz2), unter Windows eignet sich zum Beispiel 7-Zip.

CVS

Der Quellcode der Library wird bei SourceForge.net gehostet und kann wie nachfolgend beschrieben als anonymous aus dem CVS-Repository ausgecheckt werden. Bei der Frage nach dem Passwort für anonymous einfach Return drücken:

cvs -d:pserver:anonymous@pplib.cvs.sourceforge.net:/cvsroot/pplib login
cvs -z3 -d:pserver:anonymous@pplib.cvs.sourceforge.net:/cvsroot/pplib co -P lib

Installation unter UNIX

Die Library wird mit einem configure-script ausgeliefert, in dem alle optionalen Features ausgewählt werden können. Um eine Basisversion zu erhalten reicht oftmals ein einfaches configure ohne Parameter aus:

./configure
make
make install

Für das "make install" sind ggfs. Root-Rechte erforderlich.

Das Configure untersucht das System und setzt entsprechende Defines für den Kompiler. Optionale Features werden zum Teil automatisch eingebunden, wenn sie gefunden werden.

Wird eine Library nicht gefunden oder nicht automatisch eingebunden, kann über Parameter beim Aufruf des configure-Scripts nachgeholfen werden. Beispiel:

./configure --with-mysql=/usr/local/mysql

Soll eine bestimmte Library explizit nicht eingebunden werden, kann man dies mit "--without-xxx" festlegen, wobei xxx für den Namen der Library steht:

./configure --without-mysql

Alle weiteren Details sind im configure zu finden, wenn man es mit "./configure --help" aufruft.

Installation unter Windows

Die PPL6-Library wird mit einem Projekt-File für Visual Studio .NET 2008 ausgeliefert, jedoch sind manuelle Einstellungen erforderlich, um sie auf die eigenen Bedürfnisse anzupassen. Dazu sind insbesondere Pfade zu den gewünschten Libraries und Header-Dateien zu setzen, sowie die Defines in der Datei "include/ppl6-config.h" anzupassen.

/*
* Windows-Spezifische Konfiguration
* Wird unter UNIX nicht verwendet!
*/
#ifndef _PPL6_CONFIG
#define _PPL6_CONFIG
#define HAVE_LIBZ
#define HAVE_BZIP2
#define HAVE_MYSQL
#define HAVE_PNG
#define HAVE_JPEG
#define HAVE_FREETYPE2
#define HAVE_LAME
#define HAVE_LIBMAD
#define HAVE_DX9
#define HAVE_PCRE
#define HAVE_ICONV
#define ICONV_CONST const
#define HAVE_OPENSSL
#define HAVE_LIBCURL
#define HAVE_SDL
#define HAVE_X86_ASSEMBLER
...

Alles was nicht vorhanden oder verwendet werden soll, muss an dieser Stelle auskommentiert werden. Zwingend benötigt werden jedoch LIBZ, PCRE und ICONV.

Beim Kompilieren ist darauf zu achten, dass alle Libraries mit den gleichen Einstellungen für die Runtime-Library und die Verwendung der Common Language Runtime kompiliert werden.

win32-vc9-clr.png
win32-vc9-rl.png

Mischt man die Einstellungen, kommt es zu Warnungen und Fehlern beim Linken.

Nutzung von Assembler mit Visual Studio

Um den Assembler-Code zu kompilieren, benötigt man zum einen NASM ab Version 2.0, sowie folgendes Regel-File für Visual Studio:

<?xml version="1.0" encoding="utf-8"?>
<VisualStudioToolFile
Name="Nasm"
Version="8.00"
>
<Rules>
<CustomBuildRule
Name="NASM"
DisplayName="Nasm Assembler"
CommandLine="nasm -f win32 [AllOptions] [AdditionalOptions] [Inputs]"
Outputs="[$ObjectFileName]"
FileExtensions="*.asm"
ExecutionDescription="Assembling $(InputFileName)"
ShowOnlyRuleProperties="false"
>
<Properties>
<StringProperty
Name="Defines"
DisplayName="Definitions"
Category="Pre-Defined Symbols"
Description="Specify pre-defined symbols (&apos;symbol&apos; or &apos;symbol = value&apos;) "
Switch="-D [value]"
Delimited="true"
Inheritable="true"
/>
<StringProperty
Name="IncludePaths"
DisplayName="Include Paths"
Category="Configuration"
Description="Set the paths for any additional include files"
Switch="-I &quot;[value]&quot;"
Delimited="true"
Inheritable="true"
/>
<StringProperty
Name="UnDefines"
DisplayName="Remove Definitions"
Category="Pre-Defined Symbols"
Description="Remove pre-defined symbols "
Switch="-U [value]"
Delimited="true"
Inheritable="true"
/>
<StringProperty
Name="ObjectFileName"
DisplayName="Object File Name"
Category="Output"
Description="Select the output file name"
Switch="-o &quot;[value]&quot;"
DefaultValue="&quot;$(IntDir)\$(InputName).obj&quot;"
/>
<StringProperty
Name="ListFileName"
DisplayName="List File Name"
Category="Output"
Description="Select an output listing by setting its file name"
Switch="-l &quot;[value]&quot;"
/>
<StringProperty
Name="PreIncludeFile"
DisplayName="Pre Include File"
Category="Configuration"
Description="Select a pre-included file by setting its name"
Switch="-P &quot;[value]&quot;"
/>
<BooleanProperty
Name="Debug"
DisplayName="Debug Information"
Category="Output"
Description="Generate debugging information"
Switch="-g "
/>
</Properties>
</CustomBuildRule>
</Rules>
</VisualStudioToolFile>