summaryrefslogtreecommitdiff
path: root/archived/projt-launcher/docs/handbook/bzip2-compiling.md
diff options
context:
space:
mode:
Diffstat (limited to 'archived/projt-launcher/docs/handbook/bzip2-compiling.md')
-rw-r--r--archived/projt-launcher/docs/handbook/bzip2-compiling.md163
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