Друзья. У меня вопрос по программированию. Точнее по обработке makefile.
Среда - Win XP, компилятор - gcc для QNX.
Есть makefile. В нем такая строка:
CCBLD = @echo compile $(notdir $@);$(CC) $(CFLAGS) $(INCLUDE) $< -o $@
notdir $@ - тут подставляется имя файла без пути.
$(CC) - компилятор
$(CFLAGS) - подставляются флаги для компилятора
$(INCLUDE) - пути ко внешним хидерам
Ок. На одном компе запускаю, все работает. Т.е. как это происходит.
echo выводит надпись "compile main.o", например, а то, что после точки с запятой - не выводится, оно как раз выполняется.
$(CC) $(CFLAGS) $(INCLUDE) $< -o $@ - сюда подставляются пути, файлы, и это все компилируется.
Запускаю на другом компьютере.
На экран выводится:
compile main.o;C:/...../qcc.exe -V3.3.5,gcc_ntox86 -O3 ....... -DNDEBUG -I./INC -IC:/..../usr/include F:/Sources/.../main.cpp -o O:/..../main.o
Я часть путей точками забил, т.к. они в данном случае не информативны.
Ну, т.е. echo выводит все, что идет после него.
Получается, в одном случае echo выводит на экран все, что находится между ней и точкой с запятой, а после точки с запятой - просто выполняется команда.
Во втором случае echo выводит на экран все до конца строки.
Вопрос. Где надо покопаться в настройках ОС, чтобы все работало однотипно - до разделителя выводилось на экран, после - просто выполнялось?
Я, конечно, уже переписал makefile на втором компе, но хочется, чтобы они были одинаковы, чтобы при изменении можно было с компа на комп копировать.