3 ms·
It builds a Android APK with one line of comand line on a fresh install linux to begin with (Thanks to Felix) thats pretty cool. Id say the main use case is to
by quelsolaar 3y ago
It builds a Android APK with one line of comand line on a fresh install linux to begin with (Thanks to Felix) thats pretty cool.
Id say the main use case is to move dependencies from a project file to the actiual C files that have the dependencies, This way if the dependencies change all projects that use the file have their build process automaticaly updated. It also removes the need to list the files included in a project since this is information that already exists in the .c files.
Any time you have to define the same thing in two places, you have the risk of them not beeing in sync. This way there is only one canoical ground truth. Source and build process can never be out of sync.
- ReleaseCandidat 3y agoI'm sorry, but that doesn't really answer my question. I'll try another one: does it correctly set preprocessor directives before parsing the includes? E.g. does it correctly parse stuff like #ifdef FOO #include <bar> #else #include <baz> #endif
- quelsolaar 3y agoNo, Bercause MakeMake cant know what defines are made by the compiler on the system. MakeMake may not even run on the same system as the resulting makefile will be used on. This means that all source code files has to be compilable on all platforms, and thats good practice anyways, so thats not a problem for me. The makemake pragma lets you define platform specific build options.
- bregma 3y ago> This means that all source code files has to be compilable on all platforms And then it hits the real world and you need to switch to a tool that handles it.
- quelsolaar 3y agoI have no problem putting ifdefs around my platform specific code.