.s.o:
- это суффиксное правило, которое существует для совместимости со старыми версиями make.Это то же самое, что правило шаблона %.o : %.s
.$*
- это автоматическая переменная make, содержащая базу имени исходного файла (в данном случае имя файла без расширения .o
).
Команда, сгенерированная для обработки от boot.s
до boot.o
, будет иметь следующий вид:
as -32 -Iinclude -a boot.s -o boot.o >boot.map
Опция GNU Assembler (AS) -a
создает файл списка для стандартного вывода.Стандартный вывод перенаправляется оболочкой * nix (через >
) на имя файла, оканчивающееся на .map
.Конечным результатом в этом примере является то, что boot.s
будет собран в объектный файл с именем boot.o
, а стандартный вывод будет записан в файл boot.map
Примечание: Я личноперенаправил бы стандартный вывод на имя файла с расширением .lst
, а не с расширением .map
.