115 lines
2.8 KiB
Markdown
115 lines
2.8 KiB
Markdown
# Docker Build System for Palladium Core
|
|
|
|
## System Requirements
|
|
|
|
- **Host System**: Ubuntu 20.04+ on x86_64 architecture
|
|
- **Docker**: Installed and running ([installation guide](https://docs.docker.com/get-docker/))
|
|
- **Disk Space**: At least 15 GB free
|
|
|
|
## Unified Build Menu (Recommended)
|
|
|
|
The easiest way to build binaries for one or multiple platforms is using the interactive menu script.
|
|
|
|
### Usage
|
|
|
|
```bash
|
|
cd docker-build
|
|
./build-menu.sh
|
|
```
|
|
|
|
You will be prompted to select the target platforms:
|
|
- `1`: Linux x86_64
|
|
- `2`: Linux aarch64
|
|
- `3`: Linux ARMv7l
|
|
- `4`: Windows x86_64
|
|
- `5`: Build ALL targets
|
|
|
|
You can also select multiple targets by separating them with spaces (e.g., `1 4`).
|
|
|
|
## Linux x86_64
|
|
|
|
Creates native Linux 64-bit binaries using a Docker container based on Ubuntu 20.04.
|
|
|
|
### Commands
|
|
|
|
```bash
|
|
cd docker-build # Navigate to the docker-build directory
|
|
./build-linux-x86_64.sh # Run the build script
|
|
```
|
|
|
|
### Output
|
|
|
|
Binaries will be available in `../build/linux-x86_64/`:
|
|
- `palladiumd` - Main daemon
|
|
- `palladium-cli` - Command-line client
|
|
- `palladium-tx` - Transaction utility
|
|
- `palladium-wallet` - Wallet utility
|
|
- `palladium-qt` - GUI application
|
|
|
|
## Linux aarch64 (ARM64)
|
|
|
|
Creates ARM64 binaries for devices like Raspberry Pi 4+ through cross-compilation.
|
|
|
|
### Commands
|
|
|
|
```bash
|
|
cd docker-build # Navigate to the docker-build directory
|
|
./build-linux-aarch64.sh # Run the cross-compilation build script
|
|
```
|
|
|
|
### Output
|
|
|
|
Binaries will be available in `../build/linux-aarch64/`:
|
|
- `palladiumd` - Main daemon
|
|
- `palladium-cli` - Command-line client
|
|
- `palladium-tx` - Transaction utility
|
|
- `palladium-wallet` - Wallet utility
|
|
- `palladium-qt` - GUI application
|
|
|
|
## Linux ARMv7l (ARM 32-bit)
|
|
|
|
Creates ARM 32-bit binaries for older devices like Raspberry Pi 2/3 and Pi Zero.
|
|
|
|
### Commands
|
|
|
|
```bash
|
|
cd docker-build # Navigate to the docker-build directory
|
|
./build-linux-armv7l.sh # Run the ARMv7l cross-compilation build script
|
|
```
|
|
|
|
### Output
|
|
|
|
Binaries will be available in `../build/armv7l/`:
|
|
- `palladiumd` - Main daemon
|
|
- `palladium-cli` - Command-line client
|
|
- `palladium-tx` - Transaction utility
|
|
- `palladium-wallet` - Wallet utility
|
|
- `palladium-qt` - GUI application
|
|
|
|
## Windows x86_64
|
|
|
|
Creates Windows executables through cross-compilation with MinGW-w64.
|
|
|
|
### Commands
|
|
|
|
```bash
|
|
cd docker-build # Navigate to the docker-build directory
|
|
./build-windows.sh # Run the Windows cross-compilation build script
|
|
```
|
|
|
|
### Output
|
|
|
|
Executables will be available in `../build/windows/`:
|
|
- `palladiumd.exe` - Main daemon
|
|
- `palladium-cli.exe` - Command-line client
|
|
- `palladium-tx.exe` - Transaction utility
|
|
- `palladium-wallet.exe` - Wallet utility
|
|
- `palladium-qt.exe` - GUI application
|
|
|
|
### Troubleshooting
|
|
|
|
```bash
|
|
cd docker-build
|
|
chmod +x *.sh
|
|
```
|