Added flag to support C99 standard and reorganized the Makefile

Reorganized makefile & added relevant flag in support of C99 standard. However, this will require to run the make commands (e.g. make clean) with root privileges.
Since we are using GCC versions lower than 5, we should use extended_identifiers flag, as mentioned in https://gcc.gnu.org/c99status.html.