Recompiler avec ServBay
ServBay propose aux utilisateurs macOS et Windows un environnement de développement Web local complet et performant, incluant de nombreux paquets et outils. Bien que ServBay installe par défaut bon nombre de paquets, il arrive que les développeurs aient des besoins particuliers de recompilation, tels que :
- Activer des options spécifiques de compilation pour un paquet donné.
- Ajouter des modules ou extensions non inclus par défaut dans ServBay (ex: une nouvelle extension PHP ou un module PostgreSQL).
- Compiler avec une bibliothèque différente de celle incluse par défaut.
- Personnaliser ou modifier les paquets fournis par ServBay.
ServBay offre ainsi l'environnement et la chaîne d'outils nécessaires pour réaliser facilement ces recompilations.
Pour réussir une recompilation, il est important d'avoir quelques bases sur le processus de compilation selon le système :
- macOS/Linux : outils de compilation Unix/Linux comme
configure
,make
,make install
- Windows : système de build Visual Studio, MSBuild, cmake, etc.
Prérequis
Avant de commencer la recompilation, veuillez vérifier ces points :
Installer la ServBay Development Library : Il s’agit de la dépendance principale pour la recompilation, contenant toutes les bibliothèques, en-têtes et autres ressources nécessaires. Trouvez et installez-la via le panneau Paquets de l'application ServBay.
Installer les outils de développement :
macOS
Installer les Outils en Ligne de Commande Xcode : Ce sont les outils essentiels fournis par macOS — compilateur (Clang), éditeur de liens, etc. Ouvrez le Terminal et lancez :
bashxcode-select --install
1Si l'installation est déjà faite, le système vous l'indiquera.
Installer des outils de compilation additionnels : Pour compiler la plupart des projets open source, installez aussi
autoconf
,automake
,libtool
via Homebrew :bashbrew install autoconf automake libtool cmake
1Si Homebrew n'est pas installé, reportez-vous au site officiel pour la procédure.
Windows
Installer Visual Studio Build Tools ou Visual Studio Community : Windows nécessite le compilateur MSVC et les outils de build. Deux options :
Option 1 : Visual Studio Build Tools (recommandé, plus léger)
- Téléchargez et installez Visual Studio Build Tools
- Pendant l'installation, sélectionnez la charge de travail "Outils de build C++"
- Veillez à inclure :
- MSVC v143 - Outils de build C++ pour VS 2022 x64/x86
- Windows 11 SDK (version la plus récente)
- Outils CMake
Option 2 : Visual Studio Community
- Téléchargez et installez Visual Studio Community
- Sélectionnez la charge de travail "Développement Desktop avec C++"
- Vérifiez l’installation de CMake et Windows SDK
Installer des outils additionnels : Pour certains projets open source, il peut être utile d'installer :
- Git for Windows : pour récupérer les sources
- MSYS2 ou vcpkg : gestion des dépendances C/C++
- Python : parfois requis pour des scripts de build
powershell# Installer des outils supplémentaires avec chocolatey (optionnel) choco install git cmake python msys2
1
2
Préparer l'environnement de compilation
Une fois la ServBay Development Library et les outils installés, il faut initialiser l'environnement. Cela implique de définir certaines variables d'environnement, afin que le compilateur et le système de build sachent où chercher les binaires, en-têtes et bibliothèques de ServBay pour le linkage.
La configuration diffère selon le système et l’architecture :
macOS
Le runtime ServBay dépend de l’architecture du CPU : puce Intel (x86_64) ou Apple Silicon (Arm64). Sélectionnez le script d’initialisation approprié selon votre cas.
Windows
Sous Windows, ServBay prend en charge l’architecture x64 et s'installe dans le dossier C:\ServBay
.
Vérifier l'architecture CPU du runtime ServBay
macOS
Pour connaître l'architecture, examinez un exécutable du dossier bin
de ServBay. Par exemple, avec bison
:
bash
# Tapez la commande suivante dans le terminal
$ file /Applications/ServBay/bin/bison
/Applications/ServBay/bin/bison: Mach-O 64-bit executable arm64
1
2
3
2
3
bash
# Tapez la commande suivante dans le terminal
$ file /Applications/ServBay/bin/bison
/Applications/ServBay/bin/bison: Mach-O 64-bit executable x86_64
1
2
3
2
3
Windows
Sur Windows, seule l’architecture x64 est prise en charge pour ServBay. Vérifiez un fichier exécutable dans PowerShell :
powershell
# Vérification dans PowerShell
PS> Get-Command "C:\ServBay\bin\bison.exe" | Select-Object -ExpandProperty FileVersionInfo | Select-Object ProductName, FileDescription
1
2
2
Ou consultez les propriétés du fichier.
Une fois l’architecture identifiée, choisissez le script d’initialisation de variables correspondant.
Initialiser les variables d'environnement de compilation
Selon le système et l'architecture, sélectionnez le bon script :
macOS
Ouvrez un nouveau terminal et exécutez le script ci-dessous correspondant à votre CPU. Ces scripts configurent les chemins et les flags nécessaires à ServBay pour la compilation.
bash
# Définit le nombre de cœurs CPU pour compilation parallèle
CPU_NUMBER=$(sysctl -n hw.ncpu)
# Chemin d'installation de ServBay
SERVBAY_BASE_FULL_PATH="/Applications/ServBay"
# Nom du dossier des paquets
SERVBAY_PACKAGE_DIR_NAME="package"
# Chemin complet du dossier des paquets
SERVBAY_PACKAGE_FULL_PATH="${SERVBAY_BASE_FULL_PATH}/${SERVBAY_PACKAGE_DIR_NAME}"
# Chemin des binaires ServBay
SERVBAY_BIN_PATH="${SERVBAY_PACKAGE_FULL_PATH}/bin"
SERVBAY_SBIN_PATH="${SERVBAY_PACKAGE_FULL_PATH}/sbin"
# Chemin des fichiers de configuration ServBay
SERVBAY_ETC_PATH="${SERVBAY_PACKAGE_FULL_PATH}/etc"
# Chemin des fichiers variables ServBay
SERVBAY_VAR_PATH="${SERVBAY_PACKAGE_FULL_PATH}/var"
# Chemin d'installation de la ServBay Development Library
SERVBAY_COMMON_PATH="${SERVBAY_PACKAGE_FULL_PATH}/common"
# Chemin des en-têtes (includes)
SERVBAY_COMMON_INCLUDE_PATH="${SERVBAY_COMMON_PATH}/include"
# Chemin des bibliothèques
SERVBAY_COMMON_LIB_PATH="${SERVBAY_COMMON_PATH}/lib"
SERVBAY_COMMON_LIBEXEC_PATH="${SERVBAY_COMMON_PATH}/libexec"
SERVBAY_COMMON_SHARE_PATH="${SERVBAY_COMMON_PATH}/share"
SERVBAY_COMMON_MAN_PATH="${SERVBAY_COMMON_PATH}/man"
SERVBAY_COMMON_DOC_PATH="${SERVBAY_COMMON_PATH}/doc"
# Dossier de build courant
SERVBAY_BUILD_DIR=$(pwd)
SERVBAY_BUILD_SRC_DIR=${SERVBAY_BUILD_DIR}/src
# Version d'OpenSSL
OPENSSL_SELECTED_VERSION="3.2"
OPENSSL_VERSION="3.2.1"
# Version minimale OS de build
BUILD_OS_MIN_VERSION="12.00" # macOS Monterey ou plus récent
# Flag d’architecture CPU
BUILD_CPU_ARCH="-arch arm64"
BUILD_CPU_ARCH_CMAKE="arm64"
BUILD_MACOS_TARGET="" # Pas besoin du flag -target en Arm64
# Flags du compilateur C : optimisation, version min de macOS, architecture
export CFLAGS="-Qunused-arguments -O3 -mmacosx-version-min=${BUILD_OS_MIN_VERSION} ${BUILD_CPU_ARCH} ${BUILD_MACOS_TARGET}"
# Flags du linker : chemin rpath, chemin librairies, version min de macOS, architecture
export LDFLAGS="-Wl,-rpath -Wl,${SERVBAY_COMMON_LIB_PATH} -L${SERVBAY_COMMON_LIB_PATH} -L${SERVBAY_PACKAGE_FULL_PATH} -mmacosx-version-min=${BUILD_OS_MIN_VERSION} ${BUILD_CPU_ARCH} ${BUILD_MACOS_TARGET}"
# Flags du préprocesseur C et CXX : chemin includes
export CPPFLAGS="-I${SERVBAY_COMMON_INCLUDE_PATH}"
# Flags C++ : identiques à CFLAGS
export CXXFLAGS="-Qunused-arguments -O3 -mmacosx-version-min=${BUILD_OS_MIN_VERSION} ${BUILD_CPU_ARCH} ${BUILD_MACOS_TARGET}"
# Chemin pour la recherche d'exécutables : priorité aux binaires ServBay
export PATH="${SERVBAY_BIN_PATH}:${SERVBAY_SBIN_PATH}:/usr/bin:/bin:/usr/sbin:/sbin:/Library/Apple/usr/bin"
# Chemin pkg-config : infos de compilation librairies
export PKG_CONFIG_PATH="${SERVBAY_COMMON_LIB_PATH}/pkgconfig"
# Chemin vers l’outil pkg-config
export PKG_CONFIG="${SERVBAY_BIN_PATH}/pkg-config"
# Librairies pkg-config
export PKG_CONFIG_LIBDIR="${SERVBAY_COMMON_LIB_PATH}/pkgconfig"
# Ajout des chemins bin/sbin système et Homebrew à la fin du PATH
export PATH=$PATH:"/usr/local/bin:/usr/local/sbin"
export PATH=$PATH:"/opt/homebrew/bin/" # Chemin par défaut Homebrew
# Ajoute au LDFLAGS/CPPFLAGS les chemins OpenSSL
export LDFLAGS="-L${SERVBAY_COMMON_PATH}/openssl/${OPENSSL_SELECTED_VERSION}/lib ${LDFLAGS}"
export CPPFLAGS="-I${SERVBAY_COMMON_PATH}/openssl/${OPENSSL_SELECTED_VERSION}/include ${CPPFLAGS}"
# Ajoute le chemin des pkg-config OpenSSL
export PKG_CONFIG_PATH="${PKG_CONFIG_PATH}:${SERVBAY_COMMON_PATH}/openssl/${OPENSSL_SELECTED_VERSION}/lib/pkgconfig"
export PKG_CONFIG_LIBDIR="${PKG_CONFIG_LIBDIR}:${SERVBAY_COMMON_PATH}/openssl/${OPENSSL_SELECTED_VERSION}/lib/pkgconfig"
# Maintenant, vous pouvez builder dans ce terminal
echo "Environnement ServBay Arm64 prêt pour la compilation."
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
bash
# Définit le nombre de cœurs CPU pour compilation parallèle
CPU_NUMBER=$(sysctl -n hw.ncpu)
# Chemin d'installation de ServBay
SERVBAY_BASE_FULL_PATH="/Applications/ServBay"
# Nom du dossier des paquets
SERVBAY_PACKAGE_DIR_NAME="package"
# Chemin complet du dossier des paquets
SERVBAY_PACKAGE_FULL_PATH="${SERVBAY_BASE_FULL_PATH}/${SERVBAY_PACKAGE_DIR_NAME}"
# Chemin des binaires ServBay
SERVBAY_BIN_PATH="${SERVBAY_PACKAGE_FULL_PATH}/bin"
SERVBAY_SBIN_PATH="${SERVBAY_PACKAGE_FULL_PATH}/sbin"
# Chemin des fichiers de configuration ServBay
SERVBAY_ETC_PATH="${SERVBAY_PACKAGE_FULL_PATH}/etc"
# Chemin des fichiers variables ServBay
SERVBAY_VAR_PATH="${SERVBAY_PACKAGE_FULL_PATH}/var"
# Chemin d'installation de la ServBay Development Library
SERVBAY_COMMON_PATH="${SERVBAY_PACKAGE_FULL_PATH}/common"
# Chemin des en-têtes (includes)
SERVBAY_COMMON_INCLUDE_PATH="${SERVBAY_COMMON_PATH}/include"
# Chemin des bibliothèques
SERVBAY_COMMON_LIB_PATH="${SERVBAY_COMMON_PATH}/lib"
SERVBAY_COMMON_LIBEXEC_PATH="${SERVBAY_COMMON_PATH}/libexec"
SERVBAY_COMMON_SHARE_PATH="${SERVBAY_COMMON_PATH}/share"
SERVBAY_COMMON_MAN_PATH="${SERVBAY_COMMON_PATH}/man"
SERVBAY_COMMON_DOC_PATH="${SERVBAY_COMMON_PATH}/doc"
# Dossier de build courant
SERVBAY_BUILD_DIR=$(pwd)
SERVBAY_BUILD_SRC_DIR=${SERVBAY_BUILD_DIR}/src
# Version d'OpenSSL
OPENSSL_SELECTED_VERSION="1.1.1u"
OPENSSL_VERSION="1.1.1u"
# Version minimale OS de build
BUILD_OS_MIN_VERSION="12.00" # macOS Monterey ou plus récent
# Flag d’architecture CPU
BUILD_CPU_ARCH="-arch x86_64"
BUILD_CPU_ARCH_CMAKE="x86_64"
# Flag cible plateforme (nécessaire pour Intel)
BUILD_MACOS_TARGET="-target x86_64-apple-macos${BUILD_OS_MIN_VERSION}"
# Flags du compilateur C : optimisation, version min de macOS, architecture, plateforme
export CFLAGS="-Qunused-arguments -O3 -mmacosx-version-min=${BUILD_OS_MIN_VERSION} ${BUILD_CPU_ARCH} ${BUILD_MACOS_TARGET}"
# Flags du linker : chemin rpath, chemin librairies, version min de macOS, architecture, plateforme
export LDFLAGS="-Wl,-rpath -Wl,${SERVBAY_COMMON_LIB_PATH} -L${SERVBAY_COMMON_LIB_PATH} -L${SERVBAY_PACKAGE_FULL_PATH} -mmacosx-version-min=${BUILD_OS_MIN_VERSION} ${BUILD_CPU_ARCH} ${BUILD_MACOS_TARGET}"
# Flags du préprocesseur C et CXX : chemin includes
export CPPFLAGS="-I${SERVBAY_COMMON_INCLUDE_PATH}"
# Flags C++ : identiques à CFLAGS
export CXXFLAGS="-Qunused-arguments -O3 -mmacosx-version-min=${BUILD_OS_MIN_VERSION} ${BUILD_CPU_ARCH} ${BUILD_MACOS_TARGET}"
# Chemin pour la recherche d'exécutables : priorité aux binaires ServBay
export PATH="${SERVBAY_BIN_PATH}:${SERVBAY_SBIN_PATH}:/usr/bin:/bin:/usr/sbin:/sbin:/Library/Apple/usr/bin"
# Chemin pkg-config : infos de compilation librairies
export PKG_CONFIG_PATH="${SERVBAY_COMMON_LIB_PATH}/pkgconfig"
# Chemin vers l’outil pkg-config
export PKG_CONFIG="${SERVBAY_BIN_PATH}/pkg-config"
# Librairies pkg-config
export PKG_CONFIG_LIBDIR="${SERVBAY_COMMON_LIB_PATH}/pkgconfig"
# Ajout des chemins bin/sbin système et Homebrew à la fin du PATH
export PATH=$PATH:"/usr/local/bin:/usr/local/sbin"
export PATH=$PATH:"/opt/homebrew/bin/" # Chemin par défaut Homebrew
# Ajoute au LDFLAGS/CPPFLAGS les chemins OpenSSL
export LDFLAGS="-L${SERVBAY_COMMON_PATH}/openssl/${OPENSSL_SELECTED_VERSION}/lib ${LDFLAGS}"
export CPPFLAGS="-I${SERVBAY_COMMON_PATH}/openssl/${OPENSSL_SELECTED_VERSION}/include ${CPPFLAGS}"
# Ajoute le chemin des pkg-config OpenSSL
export PKG_CONFIG_PATH="${PKG_CONFIG_PATH}:${SERVBAY_COMMON_PATH}/openssl/${OPENSSL_SELECTED_VERSION}/lib/pkgconfig"
export PKG_CONFIG_LIBDIR="${PKG_CONFIG_LIBDIR}:${SERVBAY_COMMON_PATH}/openssl/${OPENSSL_SELECTED_VERSION}/lib/pkgconfig"
# Maintenant, vous pouvez builder dans ce terminal
echo "Environnement ServBay x86_64 prêt pour la compilation."
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
Windows
Sous Windows, il faut configurer les variables dans PowerShell ou dans l’Invite de commandes développeur. Script type pour x64 :
powershell
# Définit le nombre de cœurs CPU pour compilation parallèle
$CPU_NUMBER = (Get-WmiObject -Class Win32_Processor).NumberOfLogicalProcessors
# Chemin d'installation ServBay (Windows)
$SERVBAY_BASE_FULL_PATH = "C:\ServBay"
# Nom et chemin du dossier paquets
$SERVBAY_PACKAGE_DIR_NAME = "package"
$SERVBAY_PACKAGE_FULL_PATH = "${SERVBAY_BASE_FULL_PATH}\${SERVBAY_PACKAGE_DIR_NAME}"
# Chemins binaires, sbin, etc. ServBay
$SERVBAY_BIN_PATH = "${SERVBAY_PACKAGE_FULL_PATH}\bin"
$SERVBAY_SBIN_PATH = "${SERVBAY_PACKAGE_FULL_PATH}\sbin"
$SERVBAY_ETC_PATH = "${SERVBAY_PACKAGE_FULL_PATH}\etc"
$SERVBAY_VAR_PATH = "${SERVBAY_PACKAGE_FULL_PATH}\var"
# Chemins de la Development Library
$SERVBAY_COMMON_PATH = "${SERVBAY_PACKAGE_FULL_PATH}\common"
$SERVBAY_COMMON_INCLUDE_PATH = "${SERVBAY_COMMON_PATH}\include"
$SERVBAY_COMMON_LIB_PATH = "${SERVBAY_COMMON_PATH}\lib"
$SERVBAY_COMMON_LIBEXEC_PATH = "${SERVBAY_COMMON_PATH}\libexec"
$SERVBAY_COMMON_SHARE_PATH = "${SERVBAY_COMMON_PATH}\share"
$SERVBAY_COMMON_DOC_PATH = "${SERVBAY_COMMON_PATH}\doc"
# Dossier build courant
$SERVBAY_BUILD_DIR = Get-Location
$SERVBAY_BUILD_SRC_DIR = "${SERVBAY_BUILD_DIR}\src"
# Version OpenSSL (Windows)
$OPENSSL_SELECTED_VERSION = "3.2"
$OPENSSL_VERSION = "3.2.1"
# Config build Windows
$BUILD_PLATFORM = "x64"
$BUILD_CONFIG = "Release"
# Variables d'environnement
$env:SERVBAY_BASE_FULL_PATH = $SERVBAY_BASE_FULL_PATH
$env:SERVBAY_COMMON_PATH = $SERVBAY_COMMON_PATH
$env:SERVBAY_COMMON_INCLUDE_PATH = $SERVBAY_COMMON_INCLUDE_PATH
$env:SERVBAY_COMMON_LIB_PATH = $SERVBAY_COMMON_LIB_PATH
# Modifie le PATH : priorité aux binaires ServBay
$env:PATH = "${SERVBAY_BIN_PATH};${SERVBAY_SBIN_PATH};$env:PATH"
# Variables pour le compilateur
$env:INCLUDE = "${SERVBAY_COMMON_INCLUDE_PATH};$env:INCLUDE"
$env:LIB = "${SERVBAY_COMMON_LIB_PATH};$env:LIB"
$env:LIBPATH = "${SERVBAY_COMMON_LIB_PATH};$env:LIBPATH"
# Variables pkg-config (si disponible)
$env:PKG_CONFIG_PATH = "${SERVBAY_COMMON_LIB_PATH}\pkgconfig"
# Ajoute les chemins OpenSSL
$env:INCLUDE = "${SERVBAY_COMMON_PATH}\openssl\${OPENSSL_SELECTED_VERSION}\include;$env:INCLUDE"
$env:LIB = "${SERVBAY_COMMON_PATH}\openssl\${OPENSSL_SELECTED_VERSION}\lib;$env:LIB"
# Variables pour CMAKE
$env:CMAKE_PREFIX_PATH = $SERVBAY_COMMON_PATH
$env:CMAKE_INSTALL_PREFIX = $SERVBAY_COMMON_PATH
# Fin de configuration :
Write-Host "Environnement de compilation ServBay Windows x64 prêt."
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
Pour l’Invite de commandes développeur, vous pouvez aussi utiliser un script batch :
batch
@echo off
REM Préparer l’environnement de compilation ServBay Windows
REM Dossier d'installation ServBay
set SERVBAY_BASE_FULL_PATH=C:\ServBay
set SERVBAY_PACKAGE_FULL_PATH=%SERVBAY_BASE_FULL_PATH%\package
REM Configuration des chemins
set SERVBAY_BIN_PATH=%SERVBAY_PACKAGE_FULL_PATH%\bin
set SERVBAY_COMMON_PATH=%SERVBAY_PACKAGE_FULL_PATH%\common
set SERVBAY_COMMON_INCLUDE_PATH=%SERVBAY_COMMON_PATH%\include
set SERVBAY_COMMON_LIB_PATH=%SERVBAY_COMMON_PATH%\lib
REM Version OpenSSL
set OPENSSL_SELECTED_VERSION=3.2
REM Variables d'environnement
set PATH=%SERVBAY_BIN_PATH%;%PATH%
set INCLUDE=%SERVBAY_COMMON_INCLUDE_PATH%;%SERVBAY_COMMON_PATH%\openssl\%OPENSSL_SELECTED_VERSION%\include;%INCLUDE%
set LIB=%SERVBAY_COMMON_LIB_PATH%;%SERVBAY_COMMON_PATH%\openssl\%OPENSSL_SELECTED_VERSION%\lib;%LIB%
set CMAKE_PREFIX_PATH=%SERVBAY_COMMON_PATH%
echo Préparation de l’environnement de compilation ServBay Windows terminée.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
Important : Ces variables ne sont effectives que dans la session de terminal actuelle ! Si vous fermez la fenêtre, il faudra relancer le script pour réinitialiser l’environnement.
Exemple de compilation
Dans votre terminal configuré, téléchargez les sources et lancez la compilation. Voici quelques exemples :
Compiler ImageMagick
ImageMagick est une librairie puissante de traitement d’image, dépendance pour l’extension PHP imagick
. ServBay inclut ImageMagick par défaut, il n’est donc généralement pas nécessaire de la compiler soi-même. Cet exemple est indicatif pour illustrer le workflow dans ServBay.
macOS / Linux
Téléchargez et décompressez les sources :
bash# Remplacez la version selon le besoin wget https://imagemagick.org/archive/releases/ImageMagick-7.1.1-33.tar.gz tar zxvf ImageMagick-7.1.1-33.tar.gz cd ImageMagick-7.1.1-33
1
2
3
4Exécutez le script
./configure
: Utilisez les variables d’environnement précédemment définies, et réglez--prefix
,--libdir
,--includedir
sur les chemins de la ServBay Development Library. Les autres options sont adaptées aux besoins d’ImageMagick.bash./configure \ --prefix=${SERVBAY_COMMON_PATH} \ --libdir=${SERVBAY_COMMON_LIB_PATH} \ --includedir=${SERVBAY_COMMON_INCLUDE_PATH} \ --oldincludedir=${SERVBAY_COMMON_INCLUDE_PATH} \ --bindir=${SERVBAY_BIN_PATH} \ --sbindir=${SERVBAY_SBIN_PATH} \ --sysconfdir=${SERVBAY_ETC_PATH} \ --datarootdir=${SERVBAY_COMMON_SHARE_PATH} \ --enable-osx-universal-binary=no \ --disable-silent-rules \ --disable-opencl \ --enable-shared \ --enable-static \ --with-freetype=yes \ --with-gvc=no \ --with-modules \ --with-webp=yes \ --with-heic=no \ --without-gslib \ --with-fpx=no \ --without-openexexr \ --with-raw=yes \ --without-lqr \ --without-djvu \ --without-fftw \ --without-pango \ --without-wmf \ --without-x \ --with-gs-font-dir=${SERVBAY_COMMON_SHARE_PATH}/ghostscript/10.02.1/Resource/Font
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30Lancez
make
etmake install
: Utilisezmake -j ${CPU_NUMBER}
pour compiler via plusieurs cœurs.make install
place les fichiers dans la ServBay Development Library.bashmake -j ${CPU_NUMBER} make install
1
2
Windows
Sous Windows, la compilation d'ImageMagick est plus complexe et passe généralement par Visual Studio ou CMake :
Téléchargez les sources :
powershell# Utilisez curl ou le navigateur curl -O https://imagemagick.org/archive/releases/ImageMagick-7.1.1-33.tar.gz # Décompresser (nécessite 7zip ou équivalent) tar -xzf ImageMagick-7.1.1-33.tar.gz cd ImageMagick-7.1.1-33
1
2
3
4
5Configurez avec CMake :
powershell# Créez un dossier build mkdir builddir cd builddir # Configurez le projet cmake .. ` -DCMAKE_INSTALL_PREFIX="$env:SERVBAY_COMMON_PATH" ` -DCMAKE_BUILD_TYPE=Release ` -DBUILD_SHARED_LIBS=ON ` -DMAGICKCORE_QUANTUM_DEPTH=16 ` -DMAGICKCORE_HDRI_ENABLE=OFF ` -DWITH_BZLIB=ON ` -DWITH_ZLIB=ON ` -DWITH_PNG=ON ` -DWITH_JPEG=ON ` -DWITH_TIFF=ON ` -DWITH_FREETYPE=ON ` -DWITH_WEBP=ON
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18Compilez et installez :
powershell# Compilation cmake --build . --config Release --parallel $CPU_NUMBER # Installation cmake --install . --config Release
1
2
3
4
Compiler avec cmake
Pour les projets basés sur cmake
, le workflow est similaire sur toutes plateformes. Exemple avec protobuf
(Protocol Buffers).
- Téléchargez et placez-vous dans le dossier des sources.
macOS / Linux
Configurez le projet cmake : Utilisez
-S .
pour le dossier source et-B builddir
pour le dossier de build. Redirigez l'installation vers la ServBay Development Library, et utilisez les options spécifiques àprotobuf
.bash# Vous êtes dans le dossier des sources protobuf cmake -S . -B builddir \ -DCMAKE_INSTALL_PREFIX=${SERVBAY_COMMON_PATH} \ -DCMAKE_INSTALL_LIBDIR=${SERVBAY_COMMON_LIB_PATH} \ -DCMAKE_INSTALL_INCLUDEDIR=${SERVBAY_COMMON_INCLUDE_PATH} \ -DCMAKE_INSTALL_BINDIR=${SERVBAY_BIN_PATH} \ -DCMAKE_INSTALL_SBINDIR=${SERVBAY_SBIN_PATH} \ -DCMAKE_INSTALL_SYSCONFDIR=${SERVBAY_ETC_PATH} \ -DCMAKE_INSTALL_DATAROOTDIR=${SERVBAY_COMMON_SHARE_PATH} \ -DCMAKE_MACOSX_RPATH=1 \ -DCMAKE_INSTALL_RPATH=${SERVBAY_COMMON_LIB_PATH} \ -DCMAKE_BUILD_WITH_INSTALL_RPATH=TRUE \ -DCMAKE_PREFIX_PATH=${SERVBAY_COMMON_PATH} \ -DBUILD_SHARED_LIBS=ON \ -Dprotobuf_BUILD_LIBPROTOC=ON \ -Dprotobuf_BUILD_SHARED_LIBS=ON \ -Dprotobuf_INSTALL_EXAMPLES=OFF \ -Dprotobuf_BUILD_TESTS=OFF \ -Dprotobuf_ABSL_PROVIDER=package \ -Dprotobuf_JSONCPP_PROVIDER=module \ -DCMAKE_CXX_STANDARD=17
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21Compilez et installez :
bashcmake --build builddir -j ${CPU_NUMBER} cmake --install builddir
1
2
Windows
Configurez le projet cmake :
powershell# Vous êtes dans le dossier des sources protobuf cmake -S . -B builddir ` -DCMAKE_INSTALL_PREFIX="$env:SERVBAY_COMMON_PATH" ` -DCMAKE_BUILD_TYPE=Release ` -DCMAKE_PREFIX_PATH="$env:SERVBAY_COMMON_PATH" ` -DBUILD_SHARED_LIBS=ON ` -Dprotobuf_BUILD_LIBPROTOC=ON ` -Dprotobuf_BUILD_SHARED_LIBS=ON ` -Dprotobuf_INSTALL_EXAMPLES=OFF ` -Dprotobuf_BUILD_TESTS=OFF ` -Dprotobuf_MSVC_STATIC_RUNTIME=OFF ` -DCMAKE_CXX_STANDARD=17
1
2
3
4
5
6
7
8
9
10
11
12Compilez et installez :
powershell# Compilation cmake --build builddir --config Release --parallel $CPU_NUMBER # Installation cmake --install builddir --config Release
1
2
3
4
Compiler un module PHP
Pour compiler une extension PHP supplémentaire dans ServBay (swoole
, redis
, mongodb
, etc.), consultez la documentation :
Comment compiler un module PHP
Compiler un module PostgreSQL
Pour ajouter un module PostgreSQL dans ServBay, reportez-vous à :
Comment compiler un module PostgreSQL
Résumé
La ServBay Development Library et la configuration environnementale facilitent la recompilation et la personnalisation de paquets sous macOS et Windows, offrant une grande flexibilité pour adapter vos projets ou utiliser des versions récentes de bibliothèques.
Points clés
- Support multiplateforme : ServBay propose un environnement de compilation aussi bien sous macOS que Windows
- Différences de chemin : Attention aux chemins d’installation (macOS :
/Applications/ServBay
, Windows :C:\ServBay
) - Différences d'outils : macOS : Xcode Command Line Tools ; Windows : Visual Studio Build Tools
- Configuration environnementale : Utilisez le script adapté à votre plateforme pour initialiser l’environnement
Précautions
- Lisez toujours la documentation officielle du paquet avant la compilation
- Adaptez les options pour chaque plateforme
- Sous Windows, privilégiez le système de build CMake
- Certains logiciels open source ont des exigences ou dépendances différentes selon la plateforme
En suivant ce guide, vous pourrez compiler avec succès vos paquets dans l'environnement ServBay, sur macOS comme sur Windows.