Это не имеет ничего общего с 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, вам необходимо изменить Make-файл в каталоге «build», на который ссылается ваш make-файл, и добавить «-std = c99» в строку «gcc», компилируя исходный файл.