diff options
Diffstat (limited to 'archived/projt-launcher/docs/handbook/bzip2-compiling.md')
| -rw-r--r-- | archived/projt-launcher/docs/handbook/bzip2-compiling.md | 163 |
1 files changed, 163 insertions, 0 deletions
diff --git a/archived/projt-launcher/docs/handbook/bzip2-compiling.md b/archived/projt-launcher/docs/handbook/bzip2-compiling.md new file mode 100644 index 0000000000..7b3afb5c51 --- /dev/null +++ b/archived/projt-launcher/docs/handbook/bzip2-compiling.md @@ -0,0 +1,163 @@ +# Compiling Bzip2 + +> **Directory**: `bzip2/` +> **Build Systems**: Meson (preferred), CMake +> **Latest Version**: 0.0.5-1 + +--- + +## Overview + +Bzip2 supports two build systems. **Meson** is preferred for Unix-like systems, while **CMake** provides cross-platform support. + +--- + +## Build Systems Comparison + +| Feature | Meson | CMake | +|---------|-------|-------| +| Unix Support | ✅ Excellent | ✅ Good | +| Windows Support | ✅ Good | ✅ Excellent | +| Preferred For | Unix-like | Cross-platform | + +--- + +## Prerequisites + +### All Platforms + +- Python 3.6+ +- C compiler (GCC, Clang, or MSVC) + +### Meson Builds + +- Meson 0.56+ +- Ninja +- pkg-config + +### CMake Builds + +- CMake 3.12+ + +--- + +## Meson Build + +### Linux/macOS + +```bash +cd bzip2 + +# Configure +meson setup builddir --prefix=/usr + +# Build +ninja -C builddir + +# Test +meson test -C builddir --print-errorlogs + +# Install (optional) +sudo ninja -C builddir install +``` + +### Windows (MSVC) + +```cmd +cd bzip2 + +REM From VS Developer Command Prompt +meson setup builddir +ninja -C builddir +meson test -C builddir --print-errorlogs +``` + +### Meson Options + +| Option | Default | Description | +|--------|---------|-------------| +| `default_library` | `shared` | `static`, `shared`, or `both` | +| `--backend` | `ninja` | Use `vs` for MSBuild | +| `--unity` | off | Enable unity build | +| `buildtype` | `debug` | `release`, `debug`, etc. | + +--- + +## CMake Build + +### Linux/macOS + +```bash +cd bzip2 +mkdir build && cd build + +# Configure +cmake .. -DCMAKE_BUILD_TYPE=Release + +# Build +cmake --build . + +# Test +ctest -V + +# Install (optional) +cmake --install . +``` + +### Windows + +```powershell +cd bzip2 +mkdir build; cd build + +# Configure +cmake .. + +# Build (Release) +cmake --build . --config Release + +# Test +ctest -C Release -V +``` + +### CMake Options + +| Option | Default | Description | +|--------|---------|-------------| +| `ENABLE_APP` | `ON` | Build bzip2 program | +| `ENABLE_LIB_ONLY` | `OFF` | Only build library | +| `ENABLE_STATIC_LIB` | `OFF` | Build static library | +| `ENABLE_SHARED_LIB` | `ON` | Build shared library | +| `ENABLE_TESTS` | `ON` | Build tests | +| `ENABLE_DOCS` | `OFF` | Generate documentation | +| `ENABLE_EXAMPLES` | `OFF` | Build examples | +| `USE_OLD_SONAME` | `OFF` | Use old SONAME (distro compat) | + +--- + +## SONAME Compatibility (Linux) + +The SONAME changed from `libbz2.so.1.0` to `libbz2.so.1` in version 1.1. + +For distro compatibility: + +```bash +# Option 1: CMake flag +cmake .. -DUSE_OLD_SONAME=ON + +# Option 2: Manual patchelf +patchelf --set-soname libbz2.so.1.0 libbz2.so.1.0.9 +``` + +Check SONAME: +```bash +objdump -p libbz2.so.1.0.9 | grep SONAME +``` + +--- + +## Related Documentation + +- [Bzip2 Overview](./bzip2.md) — Main documentation +- [Bzip2 Tests](./bzip2-tests.md) — Test suite +- [Bzip2 Test Files](./bzip2-testfiles.md) — Test file collection |
