From 356aa86b49da3b577fce152c456a1cdf1a84fa97 Mon Sep 17 00:00:00 2001 From: Rick van Hattem Date: Thu, 4 Aug 2016 22:32:44 +0200 Subject: [PATCH] Update and rename CompileHowto.txt to CompileHowto.md (#149) * Update and rename CompileHowto.txt to CompileHowto.md * Update CompileHowto.md * Update CompileHowto.md --- CompileHowto.md | 103 +++++++++++++++++++++++++++++++++++++++++++++++ CompileHowto.txt | 58 -------------------------- 2 files changed, 103 insertions(+), 58 deletions(-) create mode 100644 CompileHowto.md delete mode 100644 CompileHowto.txt diff --git a/CompileHowto.md b/CompileHowto.md new file mode 100644 index 00000000..571ff6a9 --- /dev/null +++ b/CompileHowto.md @@ -0,0 +1,103 @@ +# Install the required tools and dependencies + +``` +sudo apt-get update +sudo apt-get install git cmake build-essential qtbase5-dev libqt5serialport5-dev libusb-1.0-0-dev python-dev libxrender-dev libavahi-core-dev libavahi-compat-libdnssd-dev +``` + +# RPI Only +when you build on the rapberry pi and include the dispmanx grabber (which is the default) +you also need the firmware including headers installed. This downloads the firmware from the raspberrypi github +and copies the required files to the correct place. The firmware directory can be deleted afterwards if desired. + +``` +export FIRMWARE_DIR="raspberrypi-firmware" +git clone --depth 1 https://github.com/raspberrypi/firmware.git "$FIRMWARE_DIR" +sudo cp -R "$FIRMWARE_DIR/hardfp/opt/" /opt +``` + +# Create hyperion directory and checkout the code from github + +You might want to add `--depth 1` to the `git` command if you only want to compile the current source and have no need for the entire git repository + +``` +export HYPERION_DIR="hyperion" +git clone --recursive https://github.com/hyperion-project/hyperion.ng.git "$HYPERION_DIR" +``` + +**Note:** If you forget the --recursive in above statement or you are updating an existing clone you need to clone the protobuf submodule by runnning the follwing two statements: +``` +git submodule init +git submodule update +``` + +# Create and enter the build directory +``` +mkdir "$HYPERION_DIR/build" +cd "$HYPERION_DIR/build" +``` + +# Generate the make files: + +To generate make files on the raspberry pi WITHOUT PWM SUPPORT: +``` +cmake -DPLATFORM=rpi -DCMAKE_BUILD_TYPE=Release .. +``` + +To generate make files on the raspberry pi WITH PWM SUPPORT: +``` +cmake -DPLATFORM=rpi-pwm -DCMAKE_BUILD_TYPE=Release .. +``` + +To generate make files on a regular x86 or amd64 system: +``` +cmake -DPLATFORM=x86 -DCMAKE_BUILD_TYPE=Release .. +``` + +To generate make files on a amlogic system: +``` +cmake -DPLATFORM=aml -DCMAKE_BUILD_TYPE=Release .. +``` + +To use framebuffer instead of dispmanx (for example on the *cubox-i*): +``` +cmake -DENABLE_FB=ON -DCMAKE_BUILD_TYPE=Release .. +``` + +To generate make files on OS X: + +To install on OS X you either need Homebrew or Macport but Homebrew is the recommended way to install the packages. To use Homebrew XCode is required as well, use `brew doctor` to check your install. + +First you need to install the dependencies: +``` +brew install qt5 +brew install cmake +brew install libusb +brew install doxygen +``` + +After which you can run cmake with the correct qt5 path: +``` +cmake -DENABLE_V4L2=OFF -DENABLE_OSX=ON -DCMAKE_PREFIX_PATH=/usr/local/Cellar/qt5/5.6.1-1 .. +``` + +# Run make to build Hyperion +The `-j $(nproc)` specifies the amount of CPU cores to use. +``` +make -j $(nproc) +``` + +#After compile, to remove any stuff not needed for a release version. +``` +strip bin/* +``` +# The binaries are build in "$HYPERION_DIR/build/bin". You could copy those to /usr/bin +``` +sudo cp ./bin/hyperion-remote /usr/bin/ +sudo cp ./bin/hyperiond /usr/bin/ +``` + +# Copy the effect folder (if you did not use the normal installation methode before) +``` +sudo mkdir -p /usr/share/hyperion/effects && sudo cp -R ../effects/ /usr/share/hyperion/ +``` diff --git a/CompileHowto.txt b/CompileHowto.txt deleted file mode 100644 index 7cc6f820..00000000 --- a/CompileHowto.txt +++ /dev/null @@ -1,58 +0,0 @@ -# Install the required tools and dependencies -sudo apt-get update -sudo apt-get install git cmake build-essential qtbase5-dev libqt5serialport5-dev libusb-1.0-0-dev python-dev libxrender-dev libavahi-core-dev libavahi-compat-libdnssd-dev - -# RPI ONLY: when you build on the rapberry pi and include the dispmanx grabber (which is the default) -# you also need the firmware including headers installed. This downloads the firmware from the raspberrypi github -# and copies the required files to the correct place. The firmware directory can be deleted afterwards if desired. -export FIRMWARE_DIR="raspberrypi-firmware" -git clone --depth 1 https://github.com/raspberrypi/firmware.git "$FIRMWARE_DIR" -sudo cp -R "$FIRMWARE_DIR/hardfp/opt/" /opt - -# create hyperion directory and checkout the code from github -# You might want to add "--depth 1" if you only want to recompile the current source or dont want to use git any further -export HYPERION_DIR="hyperion" -git clone --recursive https://github.com/hyperion-project/hyperion.ng.git "$HYPERION_DIR" - -# if you forget the --recursive in above statement or you are updating an existing clone you need -# to clone the protobuf submodule by runnning the follwing two statements: -git submodule init -git submodule update - -# create and enter the build directory -mkdir "$HYPERION_DIR/build" -cd "$HYPERION_DIR/build" - -# run cmake to generate make files on the raspberry pi WITHOUT PWM SUPPORT -cmake -DPLATFORM=rpi -DCMAKE_BUILD_TYPE=Release .. -# run cmake to generate make files on the raspberry pi WITH PWM SUPPORT -cmake -DPLATFORM=rpi-pwm -DCMAKE_BUILD_TYPE=Release .. -# or if you want to compile on x86x64 -cmake -DPLATFORM=x86 -DCMAKE_BUILD_TYPE=Release .. -# on amlogic platforms -cmake -DPLATFORM=aml -DCMAKE_BUILD_TYPE=Release .. -# as an alternative for the dispmanx grabber on non-rpi devices (e.g. cubox-i) you could try the framebuffer grabber -cmake -DENABLE_FB=ON -DCMAKE_BUILD_TYPE=Release .. -# ToDo: QT5 libs!! for OSX build you need XCode, qt4 libraries and cmake (maybe libusb too). You can use macport or homebrew(recommended) to install them: -#for port: -sudo port install qt4-mac -sudo port install cmake -#sudo port install libusb -#for brew: -sudo brew install qt4-mac -sudo brew install cmake -#sudo brew install libusb -cmake -DENABLE_V4L2=OFF -DENABLE_OSX=ON .. - -# run make to build Hyperion (all available cpu cores are used) -make -j $(nproc) - -#after compile, to remove any stuff not needed for a release version. -strip bin/* - -# The binaries are build in "$HYPERION_DIR/build/bin". You could copy those to /usr/bin -sudo cp ./bin/hyperion-remote /usr/bin/ -sudo cp ./bin/hyperiond /usr/bin/ - -# Copy the effect folder (if you did not use the normal installation methode before) -sudo mkdir -p /usr/share/hyperion/effects && sudo cp -R ../effects/ /usr/share/hyperion/