Revert "Removed Makefile"

This reverts commit 4e53c742a8eb21ec31cb1862d83b4db63e59e5a0.
Many changes