diff --git a/README.md b/README.md index f1748c1..c9e8c20 100644 --- a/README.md +++ b/README.md @@ -22,12 +22,13 @@ System Requirements The SlunkCrypt library and the command-line application currently run on the following platforms: -* **Microsoft Windows** (Windows XP SP-3, or later) — 32-Bit (i686) and 64-Bit (AMD64) -* **Linux** (kernel version 3.17, or later) — 32-Bit (i686) and 64-Bit (AMD64) -* **Various BSD flavors** (tested on NetBSD 9.2, FreeBSD 13.0 and OpenBSD 7.0) — 32-Bit (i686) and 64-Bit (AMD64) -* **Solaris** (tested on Solaris 11.4 and OmniOS/illumos) — 32-Bit (i686) and 64-Bit (AMD64) +* **Microsoft Windows** (Windows XP SP-3, or later) — 32-Bit (i686) and 64-Bit (x86-64) +* **Linux** (kernel version 3.17, or later) — 32-Bit (i686) and 64-Bit (x86-64) +* **Various BSD flavors** (tested on NetBSD 9.2, FreeBSD 13.0 and OpenBSD 7.0) — 32-Bit (i686) and 64-Bit (x86-64) +* **Solaris** (tested on Solaris 11.4 and OmniOS/illumos) — 32-Bit (i686) and 64-Bit (x86-64) * **GNU/Hurd** (tested on Debian GNU/Hurd 0.9) — 32-Bit (i686) -* **Mac OS X** (tested on macOS 11 “Big Sur”) — Intel x86-64 (AMD64) and Apple Silicon (AArch64) +* **Haiku** (tested on Haiku R1/b3) — 32-Bit (i686) and 64-Bit (x86-64) +* **Mac OS X** (tested on “Big Sur”) — Intel-based (x86-64) and Apple Silicon (AArch64) The SlunkCrypt GUI application currently runs on the following platforms: @@ -888,6 +889,38 @@ The latest SlunkCrypt source code is available from the official Git mirrors at: * +Build Instructions +================== + +SlunkCrypt can be built from the sources on Microsoft Windows or any POSIX-compatible platform, using a C-compiler that supports the C99 standard. + +* **Microsoft Windows:** + Project/solution files for [Visual Studio](https://visualstudio.microsoft.com/) are provided. These should work “out of the box” with Visual Studio 2017 or any later version. + Just open the solution, select the “Release” configuration, choose the “x86” or “x64” platform, and finally press `F5`. + Visual Studio also is the only way to build the SlunkCrypt GUI, which is based on Microsoft.NET and Windows Presentation Foundation (WPF). + + Alternatively, SlunkCrypt can built using [Mingw-w64](https://www.mingw-w64.org/) (available via [MSYS2](https://www.msys2.org/)) or even [Cygwin](https://www.cygwin.com/) – see Linux instructions for details! + +* **Linux:** + Please make sure that the *C compiler* (GCC or Clang) as well as *Make* are installed. Then simply run **`make -B`** from the project's base directory! + + If not already installed, the required build tools can usually be installed via your distribution's package manager. + For example, on Debian-based distributions, the command **`sudo apt install build-essential`** installs all the required build tools at once. + + In order to create a *fully-static* binary of SlunkCrypt that runs on ***any*** Linux distribution from the last decade, you can use [musl libc](https://musl.libc.org/): + `make -B CC=musl-gcc STATIC=1` + +* **BSD and Solaris:** + SlunkCrypt can be built on various BSD flavors and Solaris, but the command **`gmake -B`** needs to be used here, since the native `make` doesn't work! + GNU Make can be installed from the package manager. For example, use **`pkg install gmake`** on FreeBSD or **`pkg_add gmake`** on OpenBSD. + +* **Mac OS X:** + Once you have managed to find a terminal (or even better, connect via SSH), Mac OS X almost works like a proper operating system. + The Xcode command-line tools can be installed with the command **`xcode-select --install`**, if not present yet. Then just type **`make -B`** to build! + + *Hint:* If you want to build with GCC, which produces faster code than Apple's Xcode compiler, you may install it on Mac OS X via [Homebrew](https://formulae.brew.sh/formula/gcc). + + License ======= diff --git a/frontend/src/platform.h b/frontend/src/platform.h index 501ceaf..af497ae 100644 --- a/frontend/src/platform.h +++ b/frontend/src/platform.h @@ -18,11 +18,11 @@ /* Detect operating system type */ #if defined(__MINGW32__) -# define OS_TYPE_NAME "MinGW32" -#elif defined(_WIN32) -# define OS_TYPE_NAME "Windows" +# define OS_TYPE_NAME "MinGW" #elif defined(__CYGWIN__) # define OS_TYPE_NAME "Cygwin" +#elif defined(_WIN32) +# define OS_TYPE_NAME "Windows" #elif defined(__linux__) # define OS_TYPE_NAME "Linux" #elif defined(__gnu_hurd__) @@ -39,6 +39,8 @@ # define OS_TYPE_NAME "Solaris" #elif defined(__QNX__) # define OS_TYPE_NAME "QNX" +#elif defined(__HAIKU__) +# define OS_TYPE_NAME "Haiku" #elif defined(__APPLE__) && defined(__MACH__) # define OS_TYPE_NAME "macOS" #elif defined(__unix__)