ServBayによる再コンパイルの手順
ServBayはmacOSとWindowsのユーザー向けに、豊富なソフトウェアパッケージとツールが揃ったパワフルなローカルWeb開発環境を提供します。ServBayに標準搭載されたパッケージ以外にも、開発者自身のニーズに合わせて以下のような再コンパイルが行えます。
- パッケージを特定のコンパイルオプションで構築したい場合
- ServBay標準では搭載していないモジュールや拡張(例:新しいPHP拡張やPostgreSQLモジュール)の追加
- ServBay標準ライブラリと違うバージョンのライブラリでコンパイルしたい場合
- ServBay提供パッケージのカスタマイズ
こうした再コンパイルを快適に行えるよう、ServBayは必要なコンパイル環境とツールチェーンを備えています。
再コンパイルを円滑に行うには、各OSごとのビルドの基礎知識が必要です。
- macOS/Linux:
configure
,make
,make install
などのUnix/Linux系ビルドツール - Windows: Visual Studioビルドシステム、MSBuild、cmake等
前提条件
再コンパイル作業を始めるにあたり、以下の条件を満たしておく必要があります:
ServBay Development Libraryのインストール:
ServBay環境で各種再コンパイルを行うための主要な開発リソース(ライブラリ・ヘッダファイルなど)が揃っています。ServBayアプリのソフトウェアパッケージ画面からインストールできます。開発ツールセットの導入:
macOS
Xcode Command Line Toolsのインストール:
基本的なコンパイラ(Clang)やリンカ等が含まれるApple公式の開発ツールです。ターミナルで以下を実行してインストールします:bashxcode-select --install
1すでに入っていれば、インストール済みと表示されます。
追加コンパイルツール:
多くのOSSをビルドするために、autoconf
、automake
、libtool
なども必要です。これらはHomebrewで簡単に導入できます:bashbrew install autoconf automake libtool cmake
1Homebrewが未導入の場合は公式サイトのガイドを参照してください。
Windows
Visual Studio Build ToolsまたはVisual Studio Communityのインストール:
WindowsではMicrosoft Visual C++コンパイラやビルドツールが必要です。以下いずれかを選択できます。方法1: Visual Studio Build Tools(推奨・容量が軽い)
- Visual Studio Build Toolsをダウンロード&インストール
- インストール時に「C++ build tools」ワークロードを選択
- 次のコンポーネントも選ぶこと:
- MSVC v143 - VS 2022 C++ x64/x86ビルドツール
- Windows 11 SDK(最新)
- CMakeツール
方法2: Visual Studio Community
- Visual Studio Communityをダウンロード&インストール
- インストール時に「C++によるデスクトップ開発」ワークロードを選択
- CMakeツール&Windows SDKも含める
追加ツール: 一部OSSは以下も必要です:
- Git for Windows: ソースコード取得用
- MSYS2またはvcpkg: C/C++ライブラリ依存管理
- Python: 一部のビルドスクリプト
powershell# chocolateyでまとめて導入(任意) choco install git cmake python msys2
1
2
コンパイル環境のセットアップ
ServBay Development Library・必要ツール導入後は、コンパイル環境を初期化します。これは主に環境変数を設定し、ビルドツール群にServBay内のライブラリやヘッダ、バイナリの場所を正しく認識させるための作業です。
OSやアーキテクチャに応じて設定内容が異なります:
macOS
MacのCPUアーキテクチャ(Intel x86_64 / Apple Silicon Arm64)ごとに、使う初期化コマンドが変わります。現在のServBay Runtimeのアーキテクチャに合わせて選択してください。
Windows
Windows版ServBayはx64アーキテクチャで、C:\ServBay
にインストールされます。
ServBay RuntimeのCPUアーキテクチャ確認
macOS
ServBayのbin
ディレクトリ配下の実行ファイルでチェック可能です。例:bison
を調べる場合
bash
# ターミナルで以下を実行して確認
$ file /Applications/ServBay/bin/bison
/Applications/ServBay/bin/bison: Mach-O 64-bit executable arm64
1
2
3
2
3
bash
# ターミナルで以下を実行して確認
$ file /Applications/ServBay/bin/bison
/Applications/ServBay/bin/bison: Mach-O 64-bit executable x86_64
1
2
3
2
3
Windows
Windows版ServBayは現在x64のみ対応。PowerShellでも確認できます:
powershell
# PowerShellで以下を使い実行ファイル情報を取得
PS> Get-Command "C:\ServBay\bin\bison.exe" | Select-Object -ExpandProperty FileVersionInfo | Select-Object ProductName, FileDescription
1
2
2
またはファイルのプロパティからも確認可能です。
確認後、アーキテクチャ別の環境初期化スクリプトを選んでください。
コンパイル環境変数の初期化
OS・アーキテクチャごとに、以下のスクリプトを新規ターミナルで実行してください。必要なパスやフラグ一式が設定されます。
macOS
CPUアーキテクチャに合わせて下記スクリプトを使用してください。
bash
# CPUコア数設定(並列コンパイル用)
CPU_NUMBER=$(sysctl -n hw.ncpu)
# ServBayインストール基準パス
SERVBAY_BASE_FULL_PATH="/Applications/ServBay"
# パッケージディレクトリ名
SERVBAY_PACKAGE_DIR_NAME="package"
# パッケージフルパス
SERVBAY_PACKAGE_FULL_PATH="${SERVBAY_BASE_FULL_PATH}/${SERVBAY_PACKAGE_DIR_NAME}"
# ServBayバイナリパス
SERVBAY_BIN_PATH="${SERVBAY_PACKAGE_FULL_PATH}/bin"
SERVBAY_SBIN_PATH="${SERVBAY_PACKAGE_FULL_PATH}/sbin"
# ServBay設定ファイルパス
SERVBAY_ETC_PATH="${SERVBAY_PACKAGE_FULL_PATH}/etc"
# ServBay変数データパス
SERVBAY_VAR_PATH="${SERVBAY_PACKAGE_FULL_PATH}/var"
# ServBay Development Libraryインストールパス
SERVBAY_COMMON_PATH="${SERVBAY_PACKAGE_FULL_PATH}/common"
# ServBay Development Libraryヘッダパス
SERVBAY_COMMON_INCLUDE_PATH="${SERVBAY_COMMON_PATH}/include"
# ServBay Development Libraryライブラリパス
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"
# ビルドディレクトリ
SERVBAY_BUILD_DIR=$(pwd)
SERVBAY_BUILD_SRC_DIR=${SERVBAY_BUILD_DIR}/src
# OpenSSLバージョン
OPENSSL_SELECTED_VERSION="3.2"
OPENSSL_VERSION="3.2.1"
# ビルド対象OS最小バージョン
BUILD_OS_MIN_VERSION="12.00" # macOS Monterey以降
# CPUアーキテクチャフラグ
BUILD_CPU_ARCH="-arch arm64"
BUILD_CPU_ARCH_CMAKE="arm64"
BUILD_MACOS_TARGET="" # Arm64は通常-target不要
# Cコンパイラ フラグ
export CFLAGS="-Qunused-arguments -O3 -mmacosx-version-min=${BUILD_OS_MIN_VERSION} ${BUILD_CPU_ARCH} ${BUILD_MACOS_TARGET}"
# リンカ フラグ
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}"
# プリプロセッサ&CXX フラグ
export CPPFLAGS="-I${SERVBAY_COMMON_INCLUDE_PATH}"
export CXXFLAGS="-Qunused-arguments -O3 -mmacosx-version-min=${BUILD_OS_MIN_VERSION} ${BUILD_CPU_ARCH} ${BUILD_MACOS_TARGET}"
# 実行ファイル検索パス
export PATH="${SERVBAY_BIN_PATH}:${SERVBAY_SBIN_PATH}:/usr/bin:/bin:/usr/sbin:/sbin:/Library/Apple/usr/bin"
# pkg-config検索パス
export PKG_CONFIG_PATH="${SERVBAY_COMMON_LIB_PATH}/pkgconfig"
export PKG_CONFIG="${SERVBAY_BIN_PATH}/pkg-config"
export PKG_CONFIG_LIBDIR="${SERVBAY_COMMON_LIB_PATH}/pkgconfig"
# Homebrewのパスも一応追加
export PATH=$PATH:"/usr/local/bin:/usr/local/sbin"
export PATH=$PATH:"/opt/homebrew/bin/"
# 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}"
# OpenSSLのpkgconfigパス追加
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"
# 環境変数の設定完了。以後、このターミナルでビルド可
echo "ServBay Arm64のビルド環境設定完了。"
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
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
bash
# CPUコア数設定(並列コンパイル用)
CPU_NUMBER=$(sysctl -n hw.ncpu)
# ServBayインストール基準パス
SERVBAY_BASE_FULL_PATH="/Applications/ServBay"
# パッケージディレクトリ名
SERVBAY_PACKAGE_DIR_NAME="package"
# パッケージフルパス
SERVBAY_PACKAGE_FULL_PATH="${SERVBAY_BASE_FULL_PATH}/${SERVBAY_PACKAGE_DIR_NAME}"
# ServBayバイナリパス
SERVBAY_BIN_PATH="${SERVBAY_PACKAGE_FULL_PATH}/bin"
SERVBAY_SBIN_PATH="${SERVBAY_PACKAGE_FULL_PATH}/sbin"
# ServBay設定ファイルパス
SERVBAY_ETC_PATH="${SERVBAY_PACKAGE_FULL_PATH}/etc"
# ServBay変数データパス
SERVBAY_VAR_PATH="${SERVBAY_PACKAGE_FULL_PATH}/var"
# ServBay Development Libraryインストールパス
SERVBAY_COMMON_PATH="${SERVBAY_PACKAGE_FULL_PATH}/common"
# ServBay Development Libraryヘッダパス
SERVBAY_COMMON_INCLUDE_PATH="${SERVBAY_COMMON_PATH}/include"
# ServBay Development Libraryライブラリパス
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"
# ビルドディレクトリ
SERVBAY_BUILD_DIR=$(pwd)
SERVBAY_BUILD_SRC_DIR=${SERVBAY_BUILD_DIR}/src
# OpenSSLバージョン
OPENSSL_SELECTED_VERSION="1.1.1u"
OPENSSL_VERSION="1.1.1u"
# ビルド対象OS最小バージョン
BUILD_OS_MIN_VERSION="12.00" # macOS Monterey以降
# CPUアーキテクチャフラグ
BUILD_CPU_ARCH="-arch x86_64"
BUILD_CPU_ARCH_CMAKE="x86_64"
# Intel用プラットフォームターゲット(通常指定要)
BUILD_MACOS_TARGET="-target x86_64-apple-macos${BUILD_OS_MIN_VERSION}"
# Cコンパイラ フラグ
export CFLAGS="-Qunused-arguments -O3 -mmacosx-version-min=${BUILD_OS_MIN_VERSION} ${BUILD_CPU_ARCH} ${BUILD_MACOS_TARGET}"
# リンカ フラグ
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}"
# プリプロセッサ&CXX フラグ
export CPPFLAGS="-I${SERVBAY_COMMON_INCLUDE_PATH}"
export CXXFLAGS="-Qunused-arguments -O3 -mmacosx-version-min=${BUILD_OS_MIN_VERSION} ${BUILD_CPU_ARCH} ${BUILD_MACOS_TARGET}"
# 実行ファイル検索パス
export PATH="${SERVBAY_BIN_PATH}:${SERVBAY_SBIN_PATH}:/usr/bin:/bin:/usr/sbin:/sbin:/Library/Apple/usr/bin"
# pkg-config検索パス
export PKG_CONFIG_PATH="${SERVBAY_COMMON_LIB_PATH}/pkgconfig"
export PKG_CONFIG="${SERVBAY_BIN_PATH}/pkg-config"
export PKG_CONFIG_LIBDIR="${SERVBAY_COMMON_LIB_PATH}/pkgconfig"
# Homebrewのパスも一応追加
export PATH=$PATH:"/usr/local/bin:/usr/local/sbin"
export PATH=$PATH:"/opt/homebrew/bin/"
# 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}"
# OpenSSLのpkgconfigパス追加
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"
# 環境変数の設定完了。以後、このターミナルでビルド可
echo "ServBay x86_64のビルド環境設定完了。"
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
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
Windows
WindowsではPowerShellまたはDeveloper Command Promptで以下を使用します(x64向け):
powershell
# CPUコア数取得(並列コンパイル用)
$CPU_NUMBER = (Get-WmiObject -Class Win32_Processor).NumberOfLogicalProcessors
# ServBayインストール基準パス
$SERVBAY_BASE_FULL_PATH = "C:\ServBay"
$SERVBAY_PACKAGE_DIR_NAME = "package"
$SERVBAY_PACKAGE_FULL_PATH = "${SERVBAY_BASE_FULL_PATH}\${SERVBAY_PACKAGE_DIR_NAME}"
# バイナリ/設定/データパス
$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"
# 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"
# ビルドディレクトリ
$SERVBAY_BUILD_DIR = Get-Location
$SERVBAY_BUILD_SRC_DIR = "${SERVBAY_BUILD_DIR}\src"
# OpenSSLバージョン
$OPENSSL_SELECTED_VERSION = "3.2"
$OPENSSL_VERSION = "3.2.1"
# Windowsビルド構成
$BUILD_PLATFORM = "x64"
$BUILD_CONFIG = "Release"
# 環境変数登録
$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
# PATH設定(ServBayバイナリ優先)
$env:PATH = "${SERVBAY_BIN_PATH};${SERVBAY_SBIN_PATH};$env:PATH"
# C/C++ビルド関連
$env:INCLUDE = "${SERVBAY_COMMON_INCLUDE_PATH};$env:INCLUDE"
$env:LIB = "${SERVBAY_COMMON_LIB_PATH};$env:LIB"
$env:LIBPATH = "${SERVBAY_COMMON_LIB_PATH};$env:LIBPATH"
# pkg-config変数(利用時のみ)
$env:PKG_CONFIG_PATH = "${SERVBAY_COMMON_LIB_PATH}\pkgconfig"
# 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"
# CMAKE関連
$env:CMAKE_PREFIX_PATH = $SERVBAY_COMMON_PATH
$env:CMAKE_INSTALL_PREFIX = $SERVBAY_COMMON_PATH
# 設定完了メッセージ
Write-Host "ServBay Windows x64のビルド環境を設定しました。"
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
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
Developer Command Prompt利用の場合はバッチファイル例:
batch
@echo off
REM ServBay Windowsビルド環境のセットアップ
REM インストール基準パス
set SERVBAY_BASE_FULL_PATH=C:\ServBay
set SERVBAY_PACKAGE_FULL_PATH=%SERVBAY_BASE_FULL_PATH%\package
REM パス設定
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 OpenSSLバージョン
set OPENSSL_SELECTED_VERSION=3.2
REM 環境変数登録
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 ServBay Windowsビルド環境の設定完了。
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
注意: これら環境変数は現行ターミナルでのみ有効です。ターミナルを閉じたり新たに開いた時は、再度設定が必要です。
コンパイル事例
上記の環境セットアップ後は、各種ソースコードを取得して任意のコンパイル作業が可能です。以下は主要パッケージの事例です。
ImageMagickのコンパイル
ImageMagickはPHPのimagick
拡張が依存する高機能な画像処理ライブラリです。ServBayには標準搭載されていますが、ここでは手順の参考例としてご紹介します。
macOS / Linux
ソース取得・展開
bash# バージョンは必要に応じて変更 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
4./configure
実行: 事前設定済みの環境変数に従い、インストールパスをServBay Development Library配下に指定します。--prefix
・--libdir
・--includedir
などがその例です。その他オプションは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
30make
&make install
:make -j ${CPU_NUMBER}
で並列コンパイル、make install
でビルド成果物をServBay Development Library配下に展開します。bashmake -j ${CPU_NUMBER} make install
1
2
Windows
WindowsではVisual StudioやCMakeを使うビルドが一般的。ここではCMakeでの例を紹介します。
ソース取得・展開
powershell# curlまたはブラウザでダウンロード curl -O https://imagemagick.org/archive/releases/ImageMagick-7.1.1-33.tar.gz # 解凍(7zip等が必要) tar -xzf ImageMagick-7.1.1-33.tar.gz cd ImageMagick-7.1.1-33
1
2
3
4
5CMakeコンフィグ(Developer Command PromptまたはPowerShell)
powershell# ビルドディレクトリ作成 mkdir builddir cd builddir # CMake実行 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
18ビルド・インストール
powershell# ビルド cmake --build . --config Release --parallel $CPU_NUMBER # インストール cmake --install . --config Release
1
2
3
4
cmakeでのパッケージビルド
cmake
を使うパッケージの共通手順。ここではprotobuf
(Protocol Buffers)のビルド例です。
- protobufソース取得&ディレクトリ移動
macOS / Linux
CMakeによるプロジェクト構成
-S .
は現ディレクトリをソースに、-B builddir
でビルド用ディレクトリ指定。-DCMAKE_INSTALL_PREFIX
等でServBay Development Library配下を指定します。-DCMAKE_MACOSX_RPATH=1
等で他ライブラリの参照も確実に。bash# 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
21cmake --build
&cmake --install
cmake --build builddir
でビルド、cmake --install builddir
でインストール。bashcmake --build builddir -j ${CPU_NUMBER} cmake --install builddir
1
2
Windows
CMake構成(PowerShellまたはDeveloper Command Prompt)
powershell# 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
12ビルドとインストール
powershell# ビルド cmake --build builddir --config Release --parallel $CPU_NUMBER # インストール cmake --install builddir --config Release
1
2
3
4
PHPモジュールのコンパイル
ServBay内のPHPバージョンへの拡張モジュール追加(例:swoole
, redis
, mongodb
など)は、下記ドキュメント参照:
PostgreSQLモジュールのコンパイル
ServBay内のPostgreSQLへのモジュール追加は、下記ドキュメント参照:
まとめ
ServBayのDevelopment Libraryと適切な環境変数設定により、macOSとWindowsでパッケージ再コンパイルやカスタマイズが容易になります。プロジェクトごとの柔軟な対応や最新ライブラリ活用にも最適です。
チェックポイント
- クロスプラットフォーム対応: ServBayはmacOS/Windows両対応
- パスの違い: macOSは
/Applications/ServBay
、WindowsはC:\ServBay
- ツールチェーン: macOSはXcode Command Line Tools、WindowsはVisual Studio Build Tools
- 環境構成: OSごとの初期化スクリプトで環境設定
注意事項
- 必ず公式のビルドガイドも確認しましょう
- ターゲットOSごとに設定・手順調整を
- WindowsではCMake推奨
- OSSはOSごとに要件や依存が異なる場合あり
本ガイドの通り手順を踏めば、両環境でServBay向けパッケージコンパイルが問題なく行えます。