diff --git a/BUILD.md b/BUILD.md index b096c5b..36f6a23 100644 --- a/BUILD.md +++ b/BUILD.md @@ -2,30 +2,29 @@ Instructions for building this repository on Linux. -## Table Of Contents +## Table of Contents - [Build Instructions](#build-instructions) - - [Table Of Contents](#table-of-contents) + - [Table of Contents](#table-of-contents) - [Contributing to the Repository](#contributing-to-the-repository) - - [Building On Linux](#building-on-linux) + - [Repository Content](#repository-content) + - [Building on Linux](#building-on-linux) - [Linux Development Environment Requirements](#linux-development-environment-requirements) - [Required Package List](#required-package-list) - - [Install and prepare required Rust version](#install-and-prepare-required-rust-version) - - [Required MacOSX Sdk](required-macosx-sdk) - - [Build and use MacOS Sdk from XCode](build-and-use-macos-sdk-from-xcode) + - [Install and Prepare Required Rust Version](#install-and-prepare-required-rust-version) + - [Required macOS SDK](#required-macos-sdk) + - [Build and Use macOS SDK from Xcode](#build-and-use-macos-sdk-from-xcode) - [Build the Project](#build-the-project) ## Contributing to the Repository -If you intend to contribute, the preferred work flow is for you to develop -your contribution in a fork of this repository in your GitHub account and then -submit a pull request. +If you intend to contribute, the preferred workflow is for you to develop your contribution in a fork of this repository in your GitHub account and then submit a pull request. ## Repository Content -This repository contains the source code necessary to build warp-packer for different platforms and architecture. +This repository contains the source code necessary to build warp-packer for different platforms and architectures. -## Building On Linux +## Building on Linux ### Linux Development Environment Requirements @@ -33,58 +32,81 @@ This repository has been built and tested on Debian 12.5 (Bookworm) on an AMD64 #### Required Package List -`apt install curl maven clang cmake libssl-dev zlib1g-dev liblzma-dev libbz2-dev gcc-aarch64-linux-gnu gcc-mingw-w64-x86-64-win32` +```bash +apt install curl maven clang cmake libssl-dev zlib1g-dev liblzma-dev libbz2-dev gcc-aarch64-linux-gnu gcc-mingw-w64-x86-64-win32 +``` -#### Install and prepare required Rust version +#### Install and Prepare Required Rust Version -This repository has been built and tested with rust version 1.78. +This repository has been built and tested with Rust version 1.78. To install the newest version, run the following command: -`curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh` +```bash +curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh +``` -If newer version won't work, a specific version can be used with the following command: -`$ curl --proto '=https' --tls1.2 -sSf https://sh.rustup.rs/ | sh -s --default-toolchain=1.78.0` +If a newer version doesn't work, a specific version can be installed with the following command: +```bash +$ curl --proto '=https' --tls1.2 -sSf https://sh.rustup.rs/ | sh -s --default-toolchain=1.78.0 +``` -For more information see this [Github Issue](https://github.com/rust-lang/rustup/issues/2882). +For more information see this [GitHub Issue](https://github.com/rust-lang/rustup/issues/2882). -After install run the following commands to get the necessary targets: -`rustup target add x86_64-apple-darwin` -`rustup target add aarch64-unknown-linux-gnu` -`rustup target add x86_64-pc-windows-gnu` +After installing, run the following commands to get the necessary targets: +```bash +rustup target add x86_64-apple-darwin +rustup target add aarch64-unknown-linux-gnu +rustup target add x86_64-pc-windows-gnu +``` -#### Required MacOSX Sdk +#### Required macOS SDK -To build the warp-packer for the target x86_64-apple-darwin a MacOSX Sdk is needed. The repository has been build and tested with MacOSX10.12 Sdk. -There are seveal Github repository available that contains different Sdk versions but they all seems to miss the header files. So it is recommend to download it from apples websites. -The MacOS Sdk is integrated in XCode and this repository has been build and tested with Xcode version 8.3.3. +To build warp-packer for the target x86_64-apple-darwin, a macOS SDK is needed. The repository has been built and tested with MacOSX10.12 SDK. +There are several GitHub repositories available that contain different SDK versions, but they all seem to miss the header files. So it is recommended to download it from Apple's website. +The macOS SDK is integrated into Xcode, and this repository has been built and tested with Xcode version 8.3.3. -##### Build and use MacOS Sdk from XCode +##### Build and Use macOS SDK from Xcode -To build and use the MacOS Sdk from XCode [osxcross](https://github.com/tpoechtrager/osxcross) will be used. +To build and use the macOS SDK from Xcode, [osxcross](https://github.com/tpoechtrager/osxcross) will be used. Download osxcross: -`git clone https://github.com/tpoechtrager/osxcross.git` +```bash +git clone https://github.com/tpoechtrager/osxcross.git +``` -Extract MacOS Sdk from XCode (see [here](https://github.com/tpoechtrager/osxcross?tab=readme-ov-file#packing-the-sdk-on-linux---method-1-xcode--80): -`/osxcross/tools/gen_sdk_package_pbzx.sh /Xcode_8.3.3.xip` -Hint: This method may require up to 45 GB of free disk space. -An SSD is recommended for this method. +Extract macOS SDK from Xcode (see [here](https://github.com/tpoechtrager/osxcross?tab=readme-ov-file#packing-the-sdk-on-linux---method-1-xcode--80)): +```bash +/osxcross/tools/gen_sdk_package_pbzx.sh /Xcode_8.3.3.xip +``` + +Hint: This method may require up to 45 GB of free disk space. An SSD is recommended for this method. Copy or move the SDK into the `/osxcross/tarballs/` directory. Run: -`UNATTENDED=yes OSX_VERSION_MIN=10.12 ./build.sh` to create macOS cross toolchain. +```bash +UNATTENDED=yes OSX_VERSION_MIN=10.12 ./build.sh +``` +to create the macOS cross toolchain. Add the target/bin folder to your PATH environment variable: -`PATH="/osxcross/target/bin:$PATH"` +```bash +PATH="/osxcross/target/bin:$PATH" +``` #### Build the Project -Clone the project and within the project run -`make` +Clone the project and within the project directory, run: +```bash +make +``` to start the build. The compiled warp-packer files are in the folder: -`warp/target//release/warp-packer` +```bash +/warp/target//release/warp-packer +``` e.g. -`warp/target/aarch64-unknown-linux-gnu/release/warp-packer` \ No newline at end of file +```bash +warp/target/aarch64-unknown-linux-gnu/release/warp-packer +``` \ No newline at end of file diff --git a/INSTALL.md b/INSTALL.md new file mode 100644 index 0000000..66ab8e5 --- /dev/null +++ b/INSTALL.md @@ -0,0 +1,83 @@ +# Installation Instructions + +Instructions for installing the warp-packer executable on Linux, Mac, and Windows. + +## Table of Contents + +- [Installation Instructions](#installation-instructions) + - [Table of Contents](#table-of-contents) + - [Linux](#linux) + - [Mac](#mac) + - [Windows](#windows) + +## Linux + +1. **Copy the warp-packer executable to a directory in your PATH:** + + For example, you can copy it to `/usr/local/bin`: + ```sh + sudo cp /path/to/warp-packer /usr/local/bin/ + ``` + +2. **Ensure the warp-packer executable has the correct permissions:** + + Make the file executable: + ```sh + sudo chmod +x /usr/local/bin/warp-packer + ``` + +3. **Verify the installation:** + + Check that the executable is in your PATH and works correctly: + ```sh + warp-packer --version + ``` + +## Mac + +1. **Copy the warp-packer executable to a directory in your PATH:** + + For example, you can copy it to `/usr/local/bin`: + ```sh + sudo cp /path/to/warp-packer /usr/local/bin/ + ``` + +2. **Ensure the warp-packer executable has the correct permissions:** + + Make the file executable: + ```sh + sudo chmod +x /usr/local/bin/warp-packer + ``` + +3. **Verify the installation:** + + Check that the executable is in your PATH and works correctly: + ```sh + warp-packer --version + ``` + +## Windows + +1. **Copy the warp-packer executable to a directory in your PATH:** + + For example, you can copy it to `C:\Program Files\warp-packer`: + ```powershell + Copy-Item -Path "C:\path\to\warp-packer.exe" -Destination "C:\Program Files\warp-packer\" + ``` + +2. **Add the directory to your PATH environment variable:** + + - Open the Start Search, type in "env", and select "Edit the system environment variables". + - In the System Properties window, click on the "Environment Variables..." button. + - In the Environment Variables window, under "System variables", find the `Path` variable, select it, and click "Edit...". + - In the Edit Environment Variable window, click "New" and add the path to the directory where you copied the warp-packer executable (`C:\Program Files\warp-packer\`). + - Click "OK" to close all windows. + +3. **Verify the installation:** + + Open a new Command Prompt and check that the executable is in your PATH and works correctly: + ```cmd + warp-packer --version + ``` + +By following these steps, you will have the warp-packer executable installed and ready to use on Linux, Mac, and Windows. \ No newline at end of file