ServBay ile İkinci Derleme Nasıl Yapılır
ServBay, macOS ve Windows kullanıcılarına güçlü ve kapsamlı bir yerel web geliştirme ortamı sunar; bu ortam, zengin yazılım paketleri ve araçlar içerir. ServBay’in önceden kurulu paket sürümlerinin yanı sıra geliştiriciler zaman zaman özel ihtiyaçları doğrultusunda ikinci kez derleme yapmak isteyebilir. Örneğin:
- Bir pakette özel derleme seçeneklerini etkinleştirmek.
- ServBay’in varsayılan olarak içermediği modül veya eklentileri eklemek (örn. yeni bir PHP uzantısı ya da PostgreSQL modülü).
- ServBay’in varsayılan sürümünden farklı bir kütüphaneyle derleme yapmak.
- ServBay tarafından sunulan paketlerde özelleştirme yapmak.
ServBay, bu ikinci derleme işlemlerini kolayca gerçekleştirebilmeniz için gerekli derleme ortamı ve araç zincirini sağlar.
Sorunsuz bir ikinci derleme için, kullanıcının mevcut işletim sistemi altında yazılım derleme sürecinin temelini bilmesi gerekir:
- macOS/Linux:
configure
,make
,make install
gibi Unix/Linux derleme araç zinciri - Windows: Visual Studio derleme sistemi, MSBuild, cmake gibi derleme ortamları
Ön Koşullar
İkinci derlemeye başlamadan önce aşağıdaki adımların tamamlandığından emin olun:
ServBay Development Library'i yükleyin: Bu, ikinci derlemelerin temel bağımlılığını oluşturur. Paket, ServBay ortamında derleme için gerekli tüm kütüphane dosyalarını, başlık dosyalarını ve diğer geliştirme kaynaklarını içerir. ServBay uygulamasındakiPaketler panelinden kolayca kurabilirsiniz.
Geliştirme araçlarını kurun:
macOS
Xcode Command Line Tools'u yükleyin: macOS işletim sisteminin sunduğu temel geliştirme araçlarıdır; derleyici (Clang), bağlayıcı gibi yardımcıları içerir. Terminali açıp aşağıdaki komutu girerek kurabilirsiniz:
bashxcode-select --install
1Eğer zaten kuruluysa sistem sizi bilgilendirir.
Ek Derleme Araçlarını Kurun: Çoğu açık kaynak yazılımın derlenmesi için
autoconf
,automake
,libtool
gibi araçlara da ihtiyacınız olabilir. Genellikle Homebrew paket yöneticisi ile yüklenir:bashbrew install autoconf automake libtool cmake
1Homebrew yüklü değilse, önce resmi web sitesindeki talimatları izleyerek kurun.
Windows
Visual Studio Build Tools veya Visual Studio Community'i yükleyin: Windows platformunda Microsoft Visual C++ derleyicisi ve derleme araçları gereklidir. İki seçeneğiniz var:
Seçenek 1: Visual Studio Build Tools (Önerilen, daha hafif hacim)
- Visual Studio Build Tools indirip yükleyin.
- Kurulum sırasında "C++ build tools" iş yükünü seçin.
- Şu bileşenlerin dahil olduğundan emin olun:
- MSVC v143 - VS 2022 C++ x64/x86 makine derleyici araçları
- Windows 11 SDK (en güncel haliyle)
- CMake aracı
Seçenek 2: Visual Studio Community
- Visual Studio Community indirip yükleyin.
- Kurulumda "Masaüstü geliştirme ve C++ ile" iş yükünü seçin.
- CMake aracı ve Windows SDK'nın dahil edildiğinden emin olun.
Ekstra Araçlar: Bazı açık kaynak projelerde ayrıca şunlar gerekebilir:
- Git for Windows: Kaynak kodu indirmek için
- MSYS2 veya vcpkg: C/C++ kütüphane bağımlılıklarını yönetmek için
- Python: Bazı derleme betikleri Python isteyebilir
powershell# chocolatey ile ekstra araçları (isteğe bağlı) yükleyin choco install git cmake python msys2
1
2
Derleme Ortamını Hazırlama
ServBay Development Library ve diğer gerekli araçları kurduktan sonra derleme ortamını başlatmanız gerekir. Bu adımda, derleyici ve derleme sistemine ServBay’in kütüphanelerinin, başlık dosyalarının ve ikili dosyalarının nerede olduğunu bildiren bir dizi ortam değişkenini ayarlarsınız. Böylece bağımlılıklar doğru şekilde bulunur ve bağlantı sağlanır.
İşletim sistemine ve mimariye göre ortam yapılandırmaları farklılık gösterir:
macOS
ServBay ortamı, Mac’inizin CPU mimarisine göre Intel (x86_64) ya da Apple Silicon (Arm64) olarak ayrılır. ServBay Runtime’ın mevcut mimarisine göre uygun ortam başlatma komutunu seçin.
Windows
Windows için ServBay, x64 mimariyi destekler ve C:\ServBay
dizinine kurulur.
ServBay Runtime CPU Mimarisini Kontrol Etme
macOS
ServBay’in bin
dizinindeki herhangi bir çalıştırılabilir dosyanın mimarisini kontrol ederek öğrenebilirsiniz. Örneğin, bison
aracını inceleyin:
bash
# Terminalde aşağıdaki komutu çalıştırarak kontrol edin
$ file /Applications/ServBay/bin/bison
/Applications/ServBay/bin/bison: Mach-O 64-bit executable arm64
1
2
3
2
3
bash
# Terminalde aşağıdaki komutu çalıştırarak kontrol edin
$ file /Applications/ServBay/bin/bison
/Applications/ServBay/bin/bison: Mach-O 64-bit executable x86_64
1
2
3
2
3
Windows
ServBay’in Windows sürümü şu an x64 mimariyi destekler. PowerShell ile çalıştırılabilir dosyayı kontrol edebilirsiniz:
powershell
# PowerShell'de aşağıdaki komutu çalıştırarak kontrol edin
PS> Get-Command "C:\ServBay\bin\bison.exe" | Select-Object -ExpandProperty FileVersionInfo | Select-Object ProductName, FileDescription
1
2
2
Alternatif olarak dosya özelliklerinden de mimariyi öğrenebilirsiniz.
Mimariyi doğruladıktan sonra, uygun ortam başlatma betiğini seçin.
Ortam Değişkenlerini Başlatma
İşletim sistemi ve mimarinize göre uygun ortam başlatma betiğini kullanın:
macOS
Yeni bir terminal penceresi açıp, CPU mimarinize uygun aşağıdaki betiği kopyalayıp çalıştırın. Betikler, ServBay’in derleme ortamı için gerekli tüm yol ve bayrakları ayarlayacak.
bash
# Paralel derleme için CPU çekirdek sayısını ayarla
CPU_NUMBER=$(sysctl -n hw.ncpu)
# ServBay kurulumunun ana yolu
SERVBAY_BASE_FULL_PATH="/Applications/ServBay"
# Paket klasörü adı
SERVBAY_PACKAGE_DIR_NAME="package"
# Paket ana dizini
SERVBAY_PACKAGE_FULL_PATH="${SERVBAY_BASE_FULL_PATH}/${SERVBAY_PACKAGE_DIR_NAME}"
# ServBay çalıştırılabilir dosya yolu
SERVBAY_BIN_PATH="${SERVBAY_PACKAGE_FULL_PATH}/bin"
SERVBAY_SBIN_PATH="${SERVBAY_PACKAGE_FULL_PATH}/sbin"
# ServBay yapılandırma dosyası yolu
SERVBAY_ETC_PATH="${SERVBAY_PACKAGE_FULL_PATH}/etc"
# ServBay değişken veri yolu
SERVBAY_VAR_PATH="${SERVBAY_PACKAGE_FULL_PATH}/var"
# ServBay Development Library kurulum yolu
SERVBAY_COMMON_PATH="${SERVBAY_PACKAGE_FULL_PATH}/common"
# ServBay Development Library başlık dosya yolu
SERVBAY_COMMON_INCLUDE_PATH="${SERVBAY_COMMON_PATH}/include"
# ServBay Development Library kütüphane yolu
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"
# Mevcut derleme dizini
SERVBAY_BUILD_DIR=$(pwd)
SERVBAY_BUILD_SRC_DIR=${SERVBAY_BUILD_DIR}/src
# OpenSSL sürümü bilgisi
OPENSSL_SELECTED_VERSION="3.2"
OPENSSL_VERSION="3.2.1"
# Derleme hedef işletim sistemi minimum sürümü
BUILD_OS_MIN_VERSION="12.00" # macOS Monterey veya üzeri
# Derleme CPU mimari bayrağı
BUILD_CPU_ARCH="-arch arm64"
BUILD_CPU_ARCH_CMAKE="arm64"
BUILD_MACOS_TARGET="" # Arm64 genellikle -target bayrağı gerektirmez
# C derleyici bayraklarını ayarla: optimizasyon, minimum macOS sürümü, mimari
export CFLAGS="-Qunused-arguments -O3 -mmacosx-version-min=${BUILD_OS_MIN_VERSION} ${BUILD_CPU_ARCH} ${BUILD_MACOS_TARGET}"
# Bağlayıcı bayraklarını ayarla: çalışma zamanı kütüphane arama yolu (rpath), kütüphane arama yolu (-L), minimum macOS sürümü, mimari
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}"
# C ön işlemci ve CXX derleyici bayrakları: başlık dosya arama yolu (-I)
export CPPFLAGS="-I${SERVBAY_COMMON_INCLUDE_PATH}"
# C++ derleyici bayrakları
export CXXFLAGS="-Qunused-arguments -O3 -mmacosx-version-min=${BUILD_OS_MIN_VERSION} ${BUILD_CPU_ARCH} ${BUILD_MACOS_TARGET}"
# PATH: ServBay’in bin/sbin dizini öncelikli olsun
export PATH="${SERVBAY_BIN_PATH}:${SERVBAY_SBIN_PATH}:/usr/bin:/bin:/usr/sbin:/sbin:/Library/Apple/usr/bin"
# pkg-config arama yolları: kütüphane derleme bilgileri için
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"
# Sistemin ve Homebrew’un bin/sbin yollarını PATH’a ekle
export PATH=$PATH:"/usr/local/bin:/usr/local/sbin"
export PATH=$PATH:"/opt/homebrew/bin/" # Homebrew’un varsayılan yolu
# OpenSSL kütüphane ve başlık yollarını LDFLAGS ve CPPFLAGS’a ekle
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’in pkgconfig yolunu ekle
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"
# Ortam değişkenleri ayarlandıktan sonra bu terminalde derleme yapabilirsiniz
echo "ServBay Arm64 derleme ortamı hazır."
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
bash
# Paralel derleme için CPU çekirdek sayısını ayarla
CPU_NUMBER=$(sysctl -n hw.ncpu)
# ServBay kurulumunun ana yolu
SERVBAY_BASE_FULL_PATH="/Applications/ServBay"
# Paket klasörü adı
SERVBAY_PACKAGE_DIR_NAME="package"
# Paket ana dizini
SERVBAY_PACKAGE_FULL_PATH="${SERVBAY_BASE_FULL_PATH}/${SERVBAY_PACKAGE_DIR_NAME}"
# ServBay çalıştırılabilir dosya yolu
SERVBAY_BIN_PATH="${SERVBAY_PACKAGE_FULL_PATH}/bin"
SERVBAY_SBIN_PATH="${SERVBAY_PACKAGE_FULL_PATH}/sbin"
# ServBay yapılandırma dosyası yolu
SERVBAY_ETC_PATH="${SERVBAY_PACKAGE_FULL_PATH}/etc"
# ServBay değişken veri yolu
SERVBAY_VAR_PATH="${SERVBAY_PACKAGE_FULL_PATH}/var"
# ServBay Development Library kurulum yolu
SERVBAY_COMMON_PATH="${SERVBAY_PACKAGE_FULL_PATH}/common"
# ServBay Development Library başlık dosya yolu
SERVBAY_COMMON_INCLUDE_PATH="${SERVBAY_COMMON_PATH}/include"
# ServBay Development Library kütüphane yolu
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"
# Mevcut derleme dizini
SERVBAY_BUILD_DIR=$(pwd)
SERVBAY_BUILD_SRC_DIR=${SERVBAY_BUILD_DIR}/src
# OpenSSL sürümü bilgisi
OPENSSL_SELECTED_VERSION="1.1.1u"
OPENSSL_VERSION="1.1.1u"
# Derleme hedef işletim sistemi minimum sürümü
BUILD_OS_MIN_VERSION="12.00" # macOS Monterey veya üzeri
# Derleme CPU mimari bayrağı
BUILD_CPU_ARCH="-arch x86_64"
BUILD_CPU_ARCH_CMAKE="x86_64"
# Hedef platform bayrağı (Intel genellikle gerektirir)
BUILD_MACOS_TARGET="-target x86_64-apple-macos${BUILD_OS_MIN_VERSION}"
# C derleyici bayraklarını ayarla
export CFLAGS="-Qunused-arguments -O3 -mmacosx-version-min=${BUILD_OS_MIN_VERSION} ${BUILD_CPU_ARCH} ${BUILD_MACOS_TARGET}"
# Bağlayıcı bayraklarını ayarla
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}"
# C ön işlemci ve CXX derleyici bayrakları
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}"
# PATH: ServBay’in bin/sbin dizini öncelikli olsun
export PATH="${SERVBAY_BIN_PATH}:${SERVBAY_SBIN_PATH}:/usr/bin:/bin:/usr/sbin:/sbin:/Library/Apple/usr/bin"
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"
export PATH=$PATH:"/usr/local/bin:/usr/local/sbin"
export PATH=$PATH:"/opt/homebrew/bin/" # Homebrew’un varsayılan yolu
# OpenSSL yollarını ekle
export LDFLAGS="-L${SERVBAY_COMMON_PATH}/openssl/${OPENSSL_SELECTED_VERSION}/lib ${LDFLAGS}"
export CPPFLAGS="-I${SERVBAY_COMMON_PATH}/openssl/${OPENSSL_SELECTED_VERSION}/include ${CPPFLAGS}"
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"
# Ortam değişkenleri ayarlandıktan sonra bu terminalde derleme yapabilirsiniz
echo "ServBay x86_64 derleme ortamı hazır."
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
Windows
Windows platformu için ortam değişkenleri PowerShell veya Developer Command Prompt’ta ayarlanmalıdır. Aşağıdaki betik x64 mimari için uygundur:
powershell
# Paralel derleme için CPU çekirdek sayısını ayarla
$CPU_NUMBER = (Get-WmiObject -Class Win32_Processor).NumberOfLogicalProcessors
# ServBay kurulumunun ana yolu
$SERVBAY_BASE_FULL_PATH = "C:\ServBay"
# Paket klasörü adı
$SERVBAY_PACKAGE_DIR_NAME = "package"
# Paket ana dizini
$SERVBAY_PACKAGE_FULL_PATH = "${SERVBAY_BASE_FULL_PATH}\${SERVBAY_PACKAGE_DIR_NAME}"
# ServBay çalıştırılabilir dosya yolu
$SERVBAY_BIN_PATH = "${SERVBAY_PACKAGE_FULL_PATH}\bin"
$SERVBAY_SBIN_PATH = "${SERVBAY_PACKAGE_FULL_PATH}\sbin"
# ServBay yapılandırma dosyası yolu
$SERVBAY_ETC_PATH = "${SERVBAY_PACKAGE_FULL_PATH}\etc"
# ServBay değişken veri yolu
$SERVBAY_VAR_PATH = "${SERVBAY_PACKAGE_FULL_PATH}\var"
# ServBay Development Library kurulum yolu
$SERVBAY_COMMON_PATH = "${SERVBAY_PACKAGE_FULL_PATH}\common"
# ServBay Development Library başlık yolu
$SERVBAY_COMMON_INCLUDE_PATH = "${SERVBAY_COMMON_PATH}\include"
# ServBay Development Library kütüphane yolu
$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"
# Mevcut derleme dizini
$SERVBAY_BUILD_DIR = Get-Location
$SERVBAY_BUILD_SRC_DIR = "${SERVBAY_BUILD_DIR}\src"
# OpenSSL sürümü bilgisi
$OPENSSL_SELECTED_VERSION = "3.2"
$OPENSSL_VERSION = "3.2.1"
# Windows derleme ayarları
$BUILD_PLATFORM = "x64"
$BUILD_CONFIG = "Release"
# Ortam değişkenlerini ayarla
$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’in bin/sbin dizini öncelikli olsun
$env:PATH = "${SERVBAY_BIN_PATH};${SERVBAY_SBIN_PATH};$env:PATH"
# Derleyici için ortam değişkenleri
$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 değişkeni (varsa)
$env:PKG_CONFIG_PATH = "${SERVBAY_COMMON_LIB_PATH}\pkgconfig"
# OpenSSL yollarını ekle
$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 ile ilgili ortam değişkenleri
$env:CMAKE_PREFIX_PATH = $SERVBAY_COMMON_PATH
$env:CMAKE_INSTALL_PREFIX = $SERVBAY_COMMON_PATH
# Ayar tamamlandığında
Write-Host "ServBay Windows x64 derleme ortamı hazır."
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
Developer Command Prompt kullananlar için toplu komut dosyası:
batch
@echo off
REM ServBay Windows derleme ortamı ayarlama
REM ServBay ana kurulum yolu
set SERVBAY_BASE_FULL_PATH=C:\ServBay
set SERVBAY_PACKAGE_FULL_PATH=%SERVBAY_BASE_FULL_PATH%\package
REM ServBay yol ayarları
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 sürümü
set OPENSSL_SELECTED_VERSION=3.2
REM Ortam değişkenlerini ayarla
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 derleme ortamı hazır!
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
Önemli: Bu ortam değişkenleri yalnızca mevcut terminal oturumunda geçerli olur. Terminali kapatıp tekrar açtığınızda ortamı yeniden başlatmanız gerekir.
Derleme Örnekleri
Derleme ortamı ayarlandıktan sonra, kaynak kodları indirip derleme işlemine başlayabilirsiniz. Aşağıda tipik çapraz platform derleme örnekleri verilmiştir.
ImageMagick Derleme
ImageMagick güçlü bir görsel işleme kütüphanesidir ve PHP imagick
uzantısı için bir bağımlılıktır. ServBay varsayılan olarak ImageMagick’i içerir; genellikle ayrı derlemenize gerek yoktur. Aşağıdaki örnek, ServBay ortamında bir projeyi nasıl derleyeceğinizi göstermektedir.
macOS / Linux
ImageMagick kaynak kodunu indirin ve arşivden çıkarın:
bash# Lütfen en güncel sürümü kullanarak değiştirin 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
betiğini çalıştırın: Önceki adımda ayarladığınız ortam değişkenleriyle configure betiğini çalıştırın.--prefix
,--libdir
,--includedir
gibi seçeneklerle kurulum yollarını ServBay Development Library’nin paylaşım klasörlerine ve alt dizinlerine yönlendirin. Böylece derlenen kütüphaneler ve başlık dosyaları, ServBay ortamındaki diğer yazılımlar (örn. PHPimagick
uzantısı) tarafından bulunabilir. Diğer seçenekler ImageMagick’in kendi gereksinimleriyle ilgilidir.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
vemake install
komutlarını çalıştırın:make
, yapılandırmaya göre derlenen çalıştırılabilir dosyalar ve kütüphaneleri üretir.-j ${CPU_NUMBER}
ile çok çekirdekli işlemciden tam performans alırsınız.make install
, derlenen dosyaları belirtilen--prefix
dizinine, yani ServBay Development Library’ye kurar.bashmake -j ${CPU_NUMBER} make install
1
2
Windows
ImageMagick’i Windows’ta derlemek için genellikle Visual Studio veya CMake gerekir. Derleme oldukça karışıksa, CMake yöntemi önerilir:
ImageMagick kaynak kodunu indirin:
powershell# curl ile indirin veya doğrudan tarayıcıyla curl -O https://imagemagick.org/archive/releases/ImageMagick-7.1.1-33.tar.gz # Arşivden çıkarmak için 7zip veya benzeri bir araç gerekir tar -xzf ImageMagick-7.1.1-33.tar.gz cd ImageMagick-7.1.1-33
1
2
3
4
5CMake ile proje yapılandırın (Developer Command Prompt veya PowerShell):
powershell# Yapı dizini oluştur mkdir builddir cd builddir # Projeyi CMake ile ayarla 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
18Derleyin ve kurun:
powershell# Derleme işlemi cmake --build . --config Release --parallel $CPU_NUMBER # Kurulum cmake --install . --config Release
1
2
3
4
cmake ile Yazılım Paketlerini Derlemek
cmake
ile inşa edilen paketler için süreç farklı platformlarda oldukça benzerdir. Aşağıda protobuf
(Protocol Buffers) örneği anlatılmaktadır.
- protobuf kaynak kodunu indirin ve dizine girin.
macOS / Linux
cmake
ile projeyi yapılandırın:-S .
kaynak kodu dizininin bulunduğu yerdir,-B builddir
ise oluşturulacak yapılandırma dizinidir.-DCMAKE_INSTALL_PREFIX
ve benzeri seçeneklerle kurulum yollarını ServBay Development Library’ye yönlendirin. Diğer-D
seçenekleri protobuf’a özel derleme ayarlarıdır.-DCMAKE_MACOSX_RPATH=1
ve-DCMAKE_INSTALL_RPATH
ile derlenen kütüphaneler ServBay ortamında doğru şekilde bulunur.bash# protobuf kaynak kodu dizinindesiniz 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
21Derleyin ve kurun:
bashcmake --build builddir -j ${CPU_NUMBER} cmake --install builddir
1
2
Windows
cmake
ile projeyi yapılandırın (PowerShell veya Developer Command Prompt):powershell# protobuf kaynak kodu dizinindesiniz 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
12Derleyin ve kurun:
powershell# Derleme işlemi cmake --build builddir --config Release --parallel $CPU_NUMBER # Kurulum işlemi cmake --install builddir --config Release
1
2
3
4
PHP Modülü Derleme
ServBay’deki bir PHP sürümü için ek uzantı modülleri derlemek (örn. swoole
, redis
, mongodb
vb.) istiyorsanız aşağıdaki belgeye başvurunuz:
PostgreSQL Modülü Derleme
ServBay’deki PostgreSQL için yeni modüller derlemek istiyorsanız aşağıdaki belgeye başvurun:
PostgreSQL Modülü Nasıl Derlenir
Sonuç
ServBay’in Development Library’si ve gelişmiş ortam değişkeni ayarları sayesinde yazılım paketlerini macOS ve Windows üzerinde ikinci kez derlemek, özelleştirmek ve güncel kütüphane gereksinimlerine uyarlamak artık çok daha kolay. Bu yöntem, özel proje gereksinimlerinizi veya en güncel paketleri kullanmanızı sağlar.
Temel Noktalar
- Çapraz Platform Desteği: ServBay artık hem macOS hem de Windows derleme ortamlarını destekliyor
- Yol Farklılıkları: Kurulum yolunuza dikkat edin (macOS:
/Applications/ServBay
, Windows:C:\ServBay
) - Araç Zinciri Farkları: macOS, Xcode Command Line Tools kullanır; Windows, Visual Studio Build Tools
- Ortam Yapılandırması: Kendi platformunuza uygun ortam başlatma betiğini seçin
Dikkat Edilecek Hususlar
- Her zaman yazılım paketinin resmi derleme kılavuzunu dikkatle okuyun
- Hedef platforma ve gereksinimlere göre yapılandırma ve adımları ayarlayın
- Windows için CMake derleme sistemi önerilir
- Bazı açık kaynak paketlerin platformlara özel derleme gereksinimleri ve bağımlılıkları olabilir
Bu belgeyi takip ederek hem macOS hem de Windows’ta ServBay ortamında yazılım paketlerinizi başarıyla derleyebilirsiniz.