# Build CuraEngine on Raspbian or Ubuntu [CuraEngine](https://github.com/Ultimaker/CuraEngine) requires [libArcus](https://github.com/Ultimaker/libArcus) which requires [protobuf](https://github.com/google/protobuf). Let's build them in turn. Make sure `python3` is Python 3.4 or higher. Install utilities used by the build process: ``` sudo apt-get update && sudo apt-get install -y dh-autoreconf cmake git ``` Additionally, protobuf requires `python3-setuptools` and libArcus requires `python3-sip-dev`. Install them: ``` sudo apt-get install -y python3-setuptools python3-sip-dev ``` I download everything to home directory and start from there. You may adapt to your preferred location. ## protobuf Download protobuf's [latest release](https://github.com/google/protobuf/releases). Choose the one with Python. The filename should be like `protobuf-python-N.N.N.tar.gz`, where `N.N.N` is the version number. I use `3.1.0` as an example. You should use the latest version. ``` cd ~ wget https://github.com/google/protobuf/releases/download/v3.5.1/protobuf-python-3.5.1.tar.gz tar zxf protobuf-python-3.5.1.tar.gz ``` Build and install for C++: ``` cd protobuf-3.5.1 ./autogen.sh ./configure make sudo make install ``` Build and install for Python: ``` cd python python3 setup.py build sudo python3 setup.py install ``` Make sure shared libraries can be found: ``` sudo ldconfig ``` ## libArcus Clone repository: ``` cd ~ git clone https://github.com/Ultimaker/libArcus.git ``` Build and install: ``` cd libArcus mkdir build cd build cmake .. make sudo make install ``` Make sure shared libraries can be found: ``` sudo ldconfig ``` ## CuraEngine, finally Clone repository: ``` cd ~ git clone https://github.com/Ultimaker/CuraEngine.git ``` Build: ``` cd CuraEngine mkdir build cd build cmake .. make ``` Copy executable to opt folder ``` mkdir /opt/curaengine && cp -a --no-preserve=owner ~/CuraEngine/build/CuraEngine /opt/curaengine/ ``` Create a symlink to make it global executable ``` ln -s /opt/curaengine/CuraEngine /usr/local/bin/CuraEngine ``` Download default settings JSON files [downloading a definition file](https://github.com/Ultimaker/Cura/issues/798), ``` cd /opt/curaengine/ wget https://raw.githubusercontent.com/Ultimaker/Cura/master/resources/definitions/fdmprinter.def.json wget https://raw.githubusercontent.com/Ultimaker/Cura/master/resources/definitions/fdmextruder.def.json ``` try it: ``` CuraEngine slice -v -p -j /opt/curaengine/fdmprinter.def.json -o example.gcode -l example.stl --next ```