Compile with -Wall -Werror -O2