Compileren van HAProxy met Cygwin
Gebruikte Tools
HAProxy - The Reliable, High-Performance TCP/HTTP Load Balancer
Cygwin - A Large collection of GNU and Open Source tools which provide functionality similar to a Linux distribution on Windows.
Resource Hacker - A Freeware resource compiler & decompiler for Windows® applications
GoRC (Go Resouce Compiler) - The Go tools for Windows + Assembler
Cygwin Installatie
Bij de installatie van Cygwin, zorg ervoor dat volgende modules zijn geselecteerd:
gcc-core
gcc-g++
gcc-objc++
glib2.0-openssl
glib2.0-openssl-debuginfo
libcrypt-devel
libpcre2-devel
libpcre2-doc
libpcre2-posix2
libxmlsec1-openssl-devel
libxmlsec1-openssl1
make
mingw64-i686-pcre2
mingw64-i686-pcre2-debuginfo
mingw64-x86_64-gcc-g++
mingw64-x86_64-openssl
mingw64-x86_64-openssl-debuginfo
mingw64-x86_64-pcre2
mingw64-x86_64-debuginfo
openssl-debuginfo
pcre2
pcre2-debuginfo
wget
Zorg ervoor dat Cygwin volledig up-to-date is alvorens HAProxy te compileren..
Compileren van HAProxy
Stap 1
In Cygwin, download HAProxy en pak de bestanden uit met de volgende commando's (De versie nrs zijn uiteraard slechts een voorbeeld):
wget https://www.haproxy.org/download/3.0/src/haproxy-3.0.0.tar.gz
tar zxf haproxy-3.0.0.tar.gz
Voor de laatste versie en download URL, consulteer de HAProxy website.
Stap 2
Voer de volgende commando's uit in een Cygwin prompt om de HAProxy executable te bouwen/compileren (versie nummers enkel als voorbeeld):
cd haproxy-3.0.0
make clean
make TARGET=cygwin USE_LIBCRYPT=1 USE_OPENSSL=1 USE_PCRE2=1
exit
Binnenin de HAProxy folder, vind je nu een file met de naam haproxy.exe
Alhoewel deze file reeds bruikbaar is, vervolledig ik deze meestal nog met een deftig file icoon en versie informatie.
Stap 3 (Optioneel)
Eerst creëren we een resource file die gebruikt wordt om met Resource Hacker versie informatie in de exe file toe te voegen. Daarvoor creëer je een tekstfile met de naam haproxy.rc
Hieronder een voorbeeld van de inhoud van deze file:
1 VERSIONINFO
FILEVERSION 1,0,0,0
PRODUCTVERSION 3,0,0,0
FILEOS 0x0
FILETYPE 0x0
{
BLOCK "StringFileInfo"
{
BLOCK "040904E4"
{
VALUE "FileDescription", "HAProxy - The Reliable, High Performance TCP/HTTP Load Balancer."
VALUE "FileVersion", "3.0.0"
VALUE "ProductName", "HAProxy"
VALUE "ProductVersion", "3.0.0"
VALUE "LegalCopyright", "\xA9 2024 haproxy.org - Built with Cygwin by w8ff.be"
}
}
BLOCK "VarFileInfo"
{
VALUE "Translation", 0x0409 0x04E4
}
}
Pas de inhoud aan naar eigen goeddunken en met de correcte versie informatie. Zorg wel dat de referentie naar haproxy.org erin blijft omdat zij wel degelijk de credits verdienen voor hun schitterende werk!
In een command prompt venster, ga naar de folder waar je haproxy.rc file zich bevindt en run het volgende commando:
GoRC.exe /r haproxy.rc
Dit maakt de eigenlijke resource file (haproxy.res) aan die gebruikt wordt door Resource Hacker.
Run Resource Hacker en open de nieuw gebouwde haproxy.exe.
klik "Action" => "Add from a Resource file".
Open de haproxy.res file die je eerder hebt aangemaakt.
Select All
klik "Action" => "Add using Script Template".
Selecteer "ICON" en klik "Add".
Zet filename naar de HAProxy icoon file (volledig pad).
Klik op het icoon met de groene pijl (Compile script).
klik Save
Je zou nu een werkende haproxy.exe moeten hebben met een HAProxy icoon en de correcte versie informatie als je de eigenschappen van de file opvraagt.
Finaal ...
Om haproxy.exe te kunnen gebruiken, heb je een aantal van de Cygwin DLL's nodig. Deze DLL's moeten ofwel in dezelfde folder zitten als de haproxy.exe of in een folder die gekend is door het OS.
In totaal heb je volgende files nodig:
cygcrypt-2.dll
cygcrypto-3.dll
cygpcre2-8-0.dll
cygssl-3.dll
cygwin1.dll
cygz.dll
haproxy.exe
(Laatst gewijzigd op 05 juni 2024 voor HAProxy v3.0.0)