Skip to content

Instantly share code, notes, and snippets.

@Cryptkeeper
Last active November 29, 2023 20:21
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Cryptkeeper/77c03e9ae7b7c8bfbb757cf8cc3d7b8f to your computer and use it in GitHub Desktop.
Save Cryptkeeper/77c03e9ae7b7c8bfbb757cf8cc3d7b8f to your computer and use it in GitHub Desktop.

fsequtils macOS Compile Guide

This guide uses Homebrew for installation of dependencies. You may instead manually install them if you wish. Experience with the CLI is expected and that common development tools (make, git, a C++ compiler) are pre-installed (they may also be installed through Homebrew).

  1. Install zstd, jsoncpp and sha1sum dependencies using brew install zstd jsoncpp md5sha1sum
  2. Get the current jsoncpp version using brew info jsoncpp | head -n 1
  3. jsoncpp will be installed with a different path to /usr/local/include than the fpp source code is importing. Create a symlink using ln -s /usr/local/Cellar/jsoncpp/CURRENT_JSONCPP_VERSION/include/ /usr/local/include/jsoncpp/
  4. Test the symlink was successfully created using ls /usr/local/include/ | grep jsoncpp
  5. Clone the FalconChristmas/fpp repository with git clone https://github.com/FalconChristmas/fpp
  6. Move into the cloned source code directory with cd fpp/src/
  7. Build the fppversion.c and fppversion_defines.h files by executing the fppversion.sh script with sh fppversion.sh .
  8. Validate the files were generated using cat fppversion.c && cat fppversion_defines.h

fpp uses a common precompiled header (fpp-pch.h) which includes more dependencies than necessary. Edit fpp-pch.h and comment out all includes except for the following:

  • unistd.h
  • fppversion.h
  • log.h
  • Warnings.h

Execute make fsequtils in the src/ directory to compile the binary. If successful, it will produce a fsequtils executable. Libraries are dynamically linked so you must keep the zstd and jsoncpp dependencies installed while you intend to use the fsequtils binary. md5sha1sum is only required for compiling and may be removed.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment