Kompilasi Ulang dengan ServBay
ServBay menyediakan lingkungan pengembangan Web lokal yang kuat dan lengkap untuk pengguna macOS, lengkap dengan berbagai paket perangkat lunak dan alat. Selain versi paket perangkat lunak yang sudah terinstal oleh ServBay, kadang-kadang pengembang mungkin perlu melakukan kompilasi ulang untuk kebutuhan khusus, seperti:
- Mengaktifkan opsi kompilasi tertentu pada suatu paket perangkat lunak.
- Menambahkan modul atau ekstensi yang belum termasuk secara default oleh ServBay (misalnya ekstensi PHP baru atau modul PostgreSQL tambahan).
- Menggunakan pustaka versi tertentu yang berbeda dari versi default yang disertakan oleh ServBay.
- Melakukan modifikasi dan kustomisasi pada paket perangkat lunak yang disediakan oleh ServBay.
ServBay menyediakan seluruh lingkungan kompilasi dan toolchain yang diperlukan, sehingga pengguna dapat dengan mudah menyelesaikan tugas kompilasi ulang ini.
Agar proses kompilasi ulang berjalan lancar, pengguna diharapkan memahami dasar-dasar proses kompilasi perangkat lunak di lingkungan Unix/Linux (seperti configure
, make
, make install
).
Prasyarat
Sebelum memulai kompilasi ulang, pastikan Anda telah memenuhi syarat berikut:
Instal ServBay Development Library: Ini adalah dependensi inti untuk proses kompilasi ulang. Paket ini sudah mencakup semua file pustaka (
.so
,.a
), file header (.h
), dan sumber daya pengembangan lain yang diperlukan untuk kompilasi di lingkungan ServBay. Anda bisa menemukannya dan menginstalnya melalui panel Paket di aplikasi ServBay.Instal Xcode Command Line Tools: Ini adalah set alat pengembangan dasar yang disediakan macOS, berisi compiler (Clang), linker, dan alat penting lainnya. Buka Terminal, lalu jalankan perintah berikut:
bashxcode-select --install
1Jika sudah terinstal, Anda akan mendapatkan notifikasi dari sistem.
Instal alat bantu kompilasi tambahan: Untuk membangun sebagian besar perangkat lunak open source, Anda juga perlu menginstal
autoconf
,automake
,libtool
, dan alat lain. Biasanya dapat diinstal menggunakan package manager Homebrew:bashbrew install autoconf automake libtool cmake
1Jika Anda belum memasang Homebrew, silakan ikuti panduan resmi di situs web Homebrew untuk instalasinya.
Mengatur Lingkungan Kompilasi
Setelah ServBay Development Library dan alat bantu lain telah terinstal, Anda perlu menginisialisasi lingkungan kompilasi pada Terminal. Langkah ini mencakup mengatur beberapa variabel lingkungan (seperti PATH
, CFLAGS
, LDFLAGS
, CPPFLAGS
) untuk memberitahu compiler dan sistem build letak pustaka, file header, dan file biner milik ServBay, sehingga dependensi dapat ditemukan dan dilink dengan benar.
Lingkungan runtime ServBay dibedakan berdasarkan arsitektur CPU Mac Anda: chip Intel (x86_64) dan Apple Silicon (Arm64). Pilih skrip inisialisasi lingkungan sesuai dengan arsitektur runtime ServBay pada komputer Anda.
Cek Arsitektur CPU ServBay Runtime
Anda dapat memeriksa arsitektur dengan melihat salah satu file executable di direktori bin
ServBay. Contohnya, cek file bison
:
bash
# Jalankan perintah berikut di Terminal untuk memeriksa
$ file /Applications/ServBay/bin/bison
/Applications/ServBay/bin/bison: Mach-O 64-bit executable arm64
1
2
3
2
3
bash
# Jalankan perintah berikut di Terminal untuk memeriksa
$ file /Applications/ServBay/bin/bison
/Applications/ServBay/bin/bison: Mach-O 64-bit executable x86_64
1
2
3
2
3
Setelah mengetahui arsitektur, pilih skrip inisialisasi lingkungan yang sesuai berdasarkan hasil pemeriksaan Anda.
Inisialisasi Variabel Lingkungan Kompilasi
Buka jendela terminal baru, lalu salin dan tempel skrip sesuai arsitektur CPU yang Anda gunakan ke Terminal untuk dijalankan. Skrip ini akan mengatur berbagai path dan flag yang diperlukan untuk lingkungan kompilasi ServBay.
bash
# Atur jumlah inti CPU untuk kompilasi paralel
CPU_NUMBER=$(sysctl -n hw.ncpu)
# Path dasar instalasi ServBay
SERVBAY_BASE_FULL_PATH="/Applications/ServBay"
# Nama direktori paket
SERVBAY_PACKAGE_DIR_NAME="package"
# Path lengkap paket
SERVBAY_PACKAGE_FULL_PATH="${SERVBAY_BASE_FULL_PATH}/${SERVBAY_PACKAGE_DIR_NAME}"
# Path file biner ServBay
SERVBAY_BIN_PATH="${SERVBAY_PACKAGE_FULL_PATH}/bin"
SERVBAY_SBIN_PATH="${SERVBAY_PACKAGE_FULL_PATH}/sbin"
# Path file konfigurasi ServBay
SERVBAY_ETC_PATH="${SERVBAY_PACKAGE_FULL_PATH}/etc"
# Path data variabel ServBay
SERVBAY_VAR_PATH="${SERVBAY_PACKAGE_FULL_PATH}/var"
# Path instalasi ServBay Development Library
SERVBAY_COMMON_PATH="${SERVBAY_PACKAGE_FULL_PATH}/common"
# Path file header ServBay Development Library
SERVBAY_COMMON_INCLUDE_PATH="${SERVBAY_COMMON_PATH}/include"
# Path file pustaka 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"
# Direktori build saat ini
SERVBAY_BUILD_DIR=$(pwd)
SERVBAY_BUILD_SRC_DIR=${SERVBAY_BUILD_DIR}/src
# Informasi versi OpenSSL
OPENSSL_SELECTED_VERSION="3.2"
OPENSSL_VERSION="3.2.1"
# Minimal versi macOS target build
BUILD_OS_MIN_VERSION="12.00" # macOS Monterey atau lebih baru
# Flag arsitektur CPU untuk build
BUILD_CPU_ARCH="-arch arm64"
BUILD_CPU_ARCH_CMAKE="arm64"
BUILD_MACOS_TARGET="" # Arm64 biasanya tidak butuh flag -target
# Atur flag compiler C: tingkat optimasi, minimal versi macOS, arsitektur
export CFLAGS="-Qunused-arguments -O3 -mmacosx-version-min=${BUILD_OS_MIN_VERSION} ${BUILD_CPU_ARCH} ${BUILD_MACOS_TARGET}"
# Atur flag linker: rpath, search path pustaka (-L), minimal versi macOS, arsitektur
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}"
# Atur flag preprocessor C dan compiler CXX: search path header (-I)
export CPPFLAGS="-I${SERVBAY_COMMON_INCLUDE_PATH}"
# Atur flag compiler C++: sama dengan CFLAGS
export CXXFLAGS="-Qunused-arguments -O3 -mmacosx-version-min=${BUILD_OS_MIN_VERSION} ${BUILD_CPU_ARCH} ${BUILD_MACOS_TARGET}"
# Atur PATH untuk file executable: prioritaskan direktori bin/sbin ServBay
export PATH="${SERVBAY_BIN_PATH}:${SERVBAY_SBIN_PATH}:/usr/bin:/bin:/usr/sbin:/sbin:/Library/Apple/usr/bin"
# Atur path pencarian pkg-config: untuk mencari info build pustaka
export PKG_CONFIG_PATH="${SERVBAY_COMMON_LIB_PATH}/pkgconfig"
# Tentukan path alat pkg-config
export PKG_CONFIG="${SERVBAY_BIN_PATH}/pkg-config"
# Atur direktori pustaka pkg-config
export PKG_CONFIG_LIBDIR="${SERVBAY_COMMON_LIB_PATH}/pkgconfig"
# Tambahkan PATH bin/sbin sistem & Homebrew sebagai cadangan
export PATH=$PATH:"/usr/local/bin:/usr/local/sbin"
export PATH=$PATH:"/opt/homebrew/bin/" # Path default Homebrew
# Tambahkan path pustaka dan header OpenSSL ke LDFLAGS dan CPPFLAGS
export LDFLAGS="-L${SERVBAY_COMMON_PATH}/openssl/${OPENSSL_SELECTED_VERSION}/lib ${LDFLAGS}"
export CPPFLAGS="-I${SERVBAY_COMMON_PATH}/openssl/${OPENSSL_SELECTED_VERSION}/include ${CPPFLAGS}"
# Tambahkan path pkgconfig 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"
# Setelah variabel lingkungan diatur, Anda bisa langsung melakukan proses kompilasi di jendela terminal ini
echo "Lingkungan kompilasi ServBay Arm64 telah diatur."
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
# Atur jumlah inti CPU untuk kompilasi paralel
CPU_NUMBER=$(sysctl -n hw.ncpu)
# Path dasar instalasi ServBay
SERVBAY_BASE_FULL_PATH="/Applications/ServBay"
# Nama direktori paket
SERVBAY_PACKAGE_DIR_NAME="package"
# Path lengkap paket
SERVBAY_PACKAGE_FULL_PATH="${SERVBAY_BASE_FULL_PATH}/${SERVBAY_PACKAGE_DIR_NAME}"
# Path file biner ServBay
SERVBAY_BIN_PATH="${SERVBAY_PACKAGE_FULL_PATH}/bin"
SERVBAY_SBIN_PATH="${SERVBAY_PACKAGE_FULL_PATH}/sbin"
# Path file konfigurasi ServBay
SERVBAY_ETC_PATH="${SERVBAY_PACKAGE_FULL_PATH}/etc"
# Path data variabel ServBay
SERVBAY_VAR_PATH="${SERVBAY_PACKAGE_FULL_PATH}/var"
# Path instalasi ServBay Development Library
SERVBAY_COMMON_PATH="${SERVBAY_PACKAGE_FULL_PATH}/common"
# Path file header ServBay Development Library
SERVBAY_COMMON_INCLUDE_PATH="${SERVBAY_COMMON_PATH}/include"
# Path file pustaka 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"
# Direktori build saat ini
SERVBAY_BUILD_DIR=$(pwd)
SERVBAY_BUILD_SRC_DIR=${SERVBAY_BUILD_DIR}/src
# Informasi versi OpenSSL
OPENSSL_SELECTED_VERSION="1.1.1u"
OPENSSL_VERSION="1.1.1u"
# Minimal versi macOS target build
BUILD_OS_MIN_VERSION="12.00" # macOS Monterey atau lebih baru
# Flag arsitektur CPU untuk build
BUILD_CPU_ARCH="-arch x86_64"
BUILD_CPU_ARCH_CMAKE="x86_64"
# Flag target platform untuk build (biasanya perlu untuk Intel)
BUILD_MACOS_TARGET="-target x86_64-apple-macos${BUILD_OS_MIN_VERSION}"
# Atur flag compiler C: tingkat optimasi, minimal versi macOS, arsitektur, platform target
export CFLAGS="-Qunused-arguments -O3 -mmacosx-version-min=${BUILD_OS_MIN_VERSION} ${BUILD_CPU_ARCH} ${BUILD_MACOS_TARGET}"
# Atur flag linker: rpath, search path pustaka (-L), minimal versi macOS, arsitektur/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}"
# Atur flag preprocessor C dan compiler CXX: search path header (-I)
export CPPFLAGS="-I${SERVBAY_COMMON_INCLUDE_PATH}"
# Atur flag compiler C++: sama dengan CFLAGS
export CXXFLAGS="-Qunused-arguments -O3 -mmacosx-version-min=${BUILD_OS_MIN_VERSION} ${BUILD_CPU_ARCH} ${BUILD_MACOS_TARGET}"
# Atur PATH untuk file executable: prioritaskan direktori bin/sbin ServBay
export PATH="${SERVBAY_BIN_PATH}:${SERVBAY_SBIN_PATH}:/usr/bin:/bin:/usr/sbin:/sbin:/Library/Apple/usr/bin"
# Atur path pencarian pkg-config: untuk mencari info build pustaka
export PKG_CONFIG_PATH="${SERVBAY_COMMON_LIB_PATH}/pkgconfig"
# Tentukan path alat pkg-config
export PKG_CONFIG="${SERVBAY_BIN_PATH}/pkg-config"
# Atur direktori pustaka pkg-config
export PKG_CONFIG_LIBDIR="${SERVBAY_COMMON_LIB_PATH}/pkgconfig"
# Tambahkan PATH bin/sbin sistem & Homebrew sebagai cadangan
export PATH=$PATH:"/usr/local/bin:/usr/local/sbin"
export PATH=$PATH:"/opt/homebrew/bin/" # Path default Homebrew
# Tambahkan path pustaka dan header OpenSSL ke LDFLAGS dan CPPFLAGS
export LDFLAGS="-L${SERVBAY_COMMON_PATH}/openssl/${OPENSSL_SELECTED_VERSION}/lib ${LDFLAGS}"
export CPPFLAGS="-I${SERVBAY_COMMON_PATH}/openssl/${OPENSSL_SELECTED_VERSION}/include ${CPPFLAGS}"
# Tambahkan path pkgconfig 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"
# Setelah variabel lingkungan diatur, Anda bisa langsung melakukan proses kompilasi di jendela terminal ini
echo "Lingkungan kompilasi ServBay x86_64 telah diatur."
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
Catatan Penting: Variabel lingkungan di atas hanya berlaku di sesi terminal saat ini. Jika Anda menutup Terminal atau membuka jendela Terminal baru, Anda perlu menjalankan kembali skrip yang sesuai untuk mengatur ulang lingkungan kompilasi.
Contoh Kompilasi
Setelah lingkungan kompilasi diatur di Terminal, Anda dapat mengunduh source code dan memulai proses kompilasi. Berikut beberapa contoh umum proses kompilasi.
Kompilasi ImageMagick
ImageMagick adalah pustaka pengolahan gambar yang sangat kuat dan menjadi dependensi utama ekstensi PHP imagick
. ServBay sudah menyertakan ImageMagick secara default, sehingga biasanya Anda tidak perlu melakukan kompilasi sendiri. Contoh di bawah digunakan sebagai demonstrasi proses kompilasi proyek berbasis Autotools (configure/make) menggunakan lingkungan ServBay.
Unduh kode sumber ImageMagick dan ekstrak:
bash# Silakan sesuaikan ke versi terbaru jika perlu 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
4Jalankan skrip
./configure
: Gunakan variabel lingkungan yang telah diatur sebelumnya. Opsi seperti--prefix
,--libdir
,--includedir
menentukan jalur instalasi, yang diarahkan ke direktori umum ServBay Development Library${SERVBAY_COMMON_PATH}
serta subdirektorinya. Dengan begitu, pustaka dan header yang dihasilkan dapat dikenali oleh perangkat lunak lain di lingkungan ServBay, seperti ekstensi PHPimagick
. Opsi lain dapat diatur sesuai kebutuhan konfigurasi 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
30Jalankan
make
danmake install
: Perintahmake
akan mulai proses kompilasi sesuai konfigurasi. Parameter-j ${CPU_NUMBER}
digunakan agar kompilasi dapat berjalan paralel pada CPU multi-core. Perintahmake install
akan menginstal file hasil build ke direktori yang ditentukan lewat opsi--prefix
.bashmake -j ${CPU_NUMBER} make install
1
2
Kompilasi Paket Menggunakan cmake
Untuk paket perangkat lunak berbasis sistem build cmake
, prosesnya sedikit berbeda. Berikut contoh untuk membangun protobuf
(Protocol Buffers).
Unduh dan masuk ke direktori sumber kode protobuf.
Konfigurasi proyek menggunakan
cmake
: Opsi-S .
menunjuk ke source code di direktori saat ini, sedangkan-B builddir
menentukan output build ke direktoribuilddir
. Opsi-DCMAKE_INSTALL_PREFIX
dan seterusnya fungsinya sama seperti--prefix
pada Autotools, mengarahkan output hasil instalasi ke direktori ServBay Development Library. Berbagai opsi-D
bisa diatur sesuai kebutuhan buildprotobuf
.-DCMAKE_MACOSX_RPATH=1
dan-DCMAKE_INSTALL_RPATH
memastikan pustaka hasil build dapat menemukan dependensi lain di lingkungan ServBay.bash# Asumsikan Anda sudah masuk ke direktori source code 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
21Jalankan
cmake --build
dancmake --install
: Perintahcmake --build builddir
akan membangun kode di direktoribuilddir
.cmake --install builddir
akan menginstal hasil build ke lokasi yang ditentukan oleh-DCMAKE_INSTALL_PREFIX
.bashcmake --build builddir -j ${CPU_NUMBER} cmake --install builddir
1
2
Kompilasi Modul PHP
Jika Anda ingin mengkompilasi modul ekstensi tambahan untuk versi PHP yang terinstal di ServBay (misalnya swoole
, redis
, mongodb
, dsb), silakan pelajari dokumentasi khusus berikut:
Bagaimana Mengkompilasi Modul PHP
Kompilasi Modul PostgreSQL
Jika Anda ingin mengkompilasi modul tambahan untuk versi PostgreSQL yang berjalan di ServBay, silakan pelajari dokumentasi khusus berikut:
Bagaimana Mengkompilasi Modul PostgreSQL
Ringkasan
Dengan memanfaatkan ServBay Development Library dan pengaturan variabel lingkungan yang lengkap, pengembang dapat melakukan kompilasi ulang dan kustomisasi paket perangkat lunak di macOS dengan mudah. Ini memberikan fleksibilitas tinggi untuk memenuhi kebutuhan proyek tertentu atau menggunakan versi pustaka terbaru. Pastikan untuk selalu membaca panduan kompilasi resmi dari paket perangkat lunak yang ingin Anda bangun, dan sesuaikan konfigurasi serta langkah build sesuai persyaratan resminya.