| # Building & Running on macOS <!-- omit in toc --> |
| |
| These instructions cover building 32blit on macOS. |
| |
| - [Prerequisites](#prerequisites) |
| - [Python3](#python3) |
| - [Installing python3](#installing-python3) |
| - [Installing pip3 dependecies](#installing-pip3-dependecies) |
| - [Installing `gcc-arm-none-eabi`](#installing-gcc-arm-none-eabi) |
| - [Building & Running on 32Blit](#building--running-on-32blit) |
| - [Building & Running Locally](#building--running-locally) |
| - [Build Everything](#build-everything) |
| - [Troubleshooting](#troubleshooting) |
| |
| ## Prerequisites |
| |
| You will need build tools and CMake. Assuming you have [homebrew](https://docs.brew.sh/Installation) installed: |
| |
| ``` shell |
| xcode-select --install |
| brew install cmake |
| ``` |
| |
| ### Python3 |
| |
| Before trying to install python3, it's worth checking if you already have it installed (and if so, which version), by jumping to 'Verifying install', below. If you do already have it installed, skip this section. |
| |
| #### Installing python3 |
| |
| Installing `python3` can be done with homebrew with a simple `brew install python` which installs both `python3` and `pip3`. |
| |
| #### Installing pip3 dependecies |
| |
| before installing 32blit tools, some binary requirements are needed: |
| |
| ``` |
| brew install libjpeg |
| brew install freetype |
| ```` |
| |
| Then install 32blit tools itself. |
| |
| ``` |
| pip3 install 32blit |
| ``` |
| |
| TODO: Document install of `construct` and `bitstring` for Python 3 (probably need a requirements.txt for the tools directory) |
| |
| |
| #### Verifying install |
| |
| ``` shell |
| python3 --version |
| ``` |
| (expected output `Python 3.7.x`) |
| |
| and |
| ``` shell |
| pip3 --version |
| ``` |
| (expected output `pip x.x.x from /usr/local/lib/python3.7/site-packages/pip (python 3.7)` or similar) |
| |
| <a name="gcc"/></a> |
| ### Installing `gcc-arm-none-eabi` |
| |
| Once this is done, you'll need to install `gcc-arm-none-eabi`. The easiest way to install this tool is via homebrew with the following source: |
| |
| ``` shell |
| brew tap ArmMbed/homebrew-formulae |
| brew install arm-none-eabi-gcc |
| ``` |
| |
| Note: |
| If you do not want to/ are unable to use homebrew to do this, you should be able to find the manual install instruction in the `arm-none-eabi-gcc.rb` file in [this repository](https://github.com/ARMmbed/homebrew-formulae). |
| |
| ______ |
| |
| ## Building & Running on 32Blit |
| |
| If you want to run code on 32Blit, you should now refer to [Building & Running On 32Blit](32blit.md). |
| |
| ## Building & Running Locally |
| |
| You'll need to install `SDL2`, `SDL2 Image` and `SDL2 Net` |
| |
| ``` shell |
| brew install sdl2 sdl2_image sdl2_net |
| ``` |
| |
| Then, set up the 32Blit Makefile from the root of the repository with the following commands: |
| |
| ```shell |
| mkdir build |
| cd build |
| cmake .. |
| ``` |
| |
| Now to make any example, type: |
| |
| ```shell |
| make example-name |
| ``` |
| |
| For example: |
| |
| ```shell |
| make raycaster |
| ``` |
| |
| This will produce `examples/raycaster/raycaster` which you should run with: |
| |
| ```shell |
| ./examples/raycaster/raycaster |
| ``` |
| |
| ### Build Everything |
| |
| Alternatively you can build everything by just typing: |
| |
| ```shell |
| make |
| ``` |
| |
| When the build completes you should be able to run any example. |
| |
| ## Troubleshooting |
| |
| If you see `cannot create target because another target with the same name already exists` you've probably run `cmake ..` in the wrong directory (the project directory rather than the build directory), you should remove all but your project files and `cmake ..` again from the build directory. |