diff --git a/COMPILE b/COMPILE
new file mode 100644
index 0000000000000000000000000000000000000000..8823bd3a87d40e5fecaa2ce481dfd67cea30b89d
--- /dev/null
+++ b/COMPILE
@@ -0,0 +1,25 @@
+Libsharp is configured, compiled and installed using GNU autotools.
+The most complicated step for the user is selecting the appropriate compiler
+flags (and in some cases the compiler).
+
+Here are a few (hopefully helpful) examples:
+
+GCC, OpenMP, portable executable:
+CFLAGS="-std=c99 -O3 -ffast-math -flto -fopenmp" ./configure
+
+GCC, OpenMP, specific optimization for the target CPU:
+CFLAGS="-std=c99 -O3 -march=native -ffast-math -flto -fopenmp" ./configure
+
+GCC, no OpenMP, specific optimization for the target CPU:
+CFLAGS="-std=c99 -O3 -march=native -ffast-math -flto" ./configure
+
+Clang:
+CC=clang CFLAGS="-std=c99 -O3 -march=native -ffast-math -flto -fopenmp" ./configure
+
+MPI support:
+CC=mpicc CFLAGS="-DUSE_MPI -std=c99 -O3 -march=native -ffast-math -flto" ./configure
+
+Additional GCC flags for pedantic warning and debugging:
+
+-Wall -Wextra -Wshadow -Wmissing-prototypes -Wfatal-errors -pedantic -g
+-fsanitize=address