diff --git a/doc/compile.md b/doc/compile.md
index 8eda26e582f04b6fb768532ef66bc26b9212140c..9d00afe4b649cb9f2a3e1a3563394a47424e41cd 100644
--- a/doc/compile.md
+++ b/doc/compile.md
@@ -1,10 +1,48 @@
 # Compile instructions
 
-- The code does not have many dependencies. It essentially requires GMSH, Eigen, Lua and SILO. On Debian they are installed with `apt install libeigen3-dev libsilo-dev libsiloh5-0 liblua5.3-dev`. GMSH is usually installed from sources, and the build system expects to find it in `/opt/uliege/gmsh`. The GMSH from Debian should also be detected by the build system and work.
+## Supported systems
+This code is developed under Linux and Mac OS. GPU support is available
+only under Linux. A Windows port should be possible, but for the moment
+is not in the plans.
 
-- The code uses CMake to handle the builds.
+## Code dependencies
+The code is designed to keep the number of dependencies at the minimum, however it
+is not totally self-contained. In order to run the code, you need to provide the
+following dependencies:
+
+- **GMSH**: Debian and Homebrew packages should work fine, however for completely
+  hassle-free experience it is suggested either to install GMSH from source
+  and put it in `/opt/uliege/gmsh` or grab a binary build [here](http://gmsh.info/)
+  and decompress it in `/opt/uliege/gmsh`.
+- **Eigen**: again, Debian and Homebrew packages should work fine. If not, install the
+  latest version of Eigen from their site and configure `gmsh_gpu_dg` with
+  
+```
+ccmake .. -DEigen3_DIR=/your/eigen/install/path/eigen/cmake/
+```
+
+- **Lua**: All the simulation configurations are written in Lua.
+- **SILO/VisIt**: SILO is a scientific database used to store simulation results,
+  VisIt is a scientific data visualization tool
+- **CUDA**: if you want GPU support
+- **OpenMPI**: if you want parallel processing
+
+### Package installation on Debian
+
+```
+apt install libeigen3-dev libsilo-dev libsiloh5-0 liblua5.3-dev
+```
+
+### Package installation on Mac OS
+```
+brew install eigen lua
+brew tap datafl4sh/code
+brew install datafl4sh/code/silo
+```
+
+## Compilation
+The code uses CMake to handle the builds. The whole procedure should be
 
-The whole procedure should be
 ```
 git clone --recursive https://gitlab.onelab.info/mcicuttin/gmsh_gpu_dg.git
 cd gmsh_gpu_dg
@@ -14,11 +52,8 @@ ccmake ..
 make
 ```
 
-If Eigen gives you compilation errors, install the last version from their site and configure the project with
-```
-ccmake .. -DEigen3_DIR=/your/eigen/install/path/eigen/cmake/
-```
-
-If you don't compile tests, you will get an executable called `maxwell_solver`. It takes a single parameter, the path of the Lua configuration script (see in `share` for some examples).
+If you don't compile tests, you will get an executable called `maxwell_solver`.
+It takes a single parameter, the path of the Lua configuration script (see in
+`share` for some examples).
 
-To visualize the results you need VisIt (https://wci.llnl.gov/simulation/computer-codes/visit).
\ No newline at end of file
+To visualize the results you need VisIt from [here](https://wci.llnl.gov/simulation/computer-codes/visit).