Ответ 1
Это не имеет никакого отношения к make файлу. ISO C90 запрещает объявление переменных где угодно, но в начале блока или файла - например,
int main(int argc, char **argv) {
int a; /* Ok */
int b = 3; /* Ok */
printf("Hello, the magic number is %d!\n", b);
int c = 42; /* ERROR! Can only declare variables in the beginning of the block */
printf("I also like %d.. but not as much as %d!\n", c, b);
return 0;
}
Таким образом, это должно быть изменено на это...
int main(int argc, char **argv) {
int a; /* Ok */
int b = 3; /* Ok */
int c = 42; /* Ok! */
printf("Hello, the magic number is %d!\n", b);
printf("I also like %d.. but not as much as %d!\n", c, b);
return 0;
}
Вы можете только "исправить" это в исходном коде, а не в make файле.
Это правило было смягчено на C99, но, на мой взгляд, хорошая идея отделить определения переменных, декларации и инициализации от кода ниже:)
Итак, чтобы изменить ваш make файл, чтобы он скомпилировался с C99, вам необходимо изменить Makefile в каталоге "build", на который ссылается ваш make файл, и добавить "-std = c99" в строку "gcc", компилируя исходный файл.