In #8, we elaborate some details about the costly high build times at present. This PR solves the problem by re-writing the Makefile with some help from StackOverflow so that:
1) Each individual file produces a build artifact
2) Artifacts are only recompiled when their dependencies change
3) Dependencies are automatically generated via some Makefile/Clang tricks.
This PR also does some other stuff to make the above more manageable:
include/ directories have been removed; code/headers are now colocated per canonical directory structure
function definitions (minus static ones) have been removed from header files and shouldn't be placed in them anymore
Generic files are moved to the engine/ folder
3rd party libraries are compiled and provided as binaries in the 3rdparty/ folder along with the required headers; these are not committed to the repo, and need to be built locally for the engine to build.
In #8, we elaborate some details about the costly high build times at present. This PR solves the problem by re-writing the Makefile with some help from StackOverflow so that: 1) Each individual file produces a build artifact 2) Artifacts are only recompiled when their dependencies change 3) Dependencies are automatically generated via some Makefile/Clang tricks.
This PR also does some other stuff to make the above more manageable:
include/
directories have been removed; code/headers are now colocated per canonical directory structureengine/
folder3rdparty/
folder along with the required headers; these are not committed to the repo, and need to be built locally for the engine to build.