私はメイクファイルを書くことについて基本的な考えを持っています。しかし、このメイクファイルを理解するのは難しいと感じています。
SOURCES=boot.o main.o
CFLAGS=-nostdlib -nostdinc -fno-builtin -fno-stack-protector
LDFLAGS=-Tlink.ld
ASFLAGS=-felf
all: $(SOURCES) link
clean:
-rm *.o kernel
link:
ld $(LDFLAGS) -o kernel $(SOURCES)
.s.o:
nasm $(ASFLAGS) $<
私のフォルダには、、、ファイルが含まれていmain.c
ます。boot.asm
link.ld
Q1. とmain.o
から生成するコマンドが書かれていないのはなぜですか?main.c
boot.o
boot.asm
Q2. 最後の行は何を意味しますか?
.so:
nasm $(ASFLAGS) $<
Q3 CFLAGS
はトップで定義されているが、どこにも使用されていない!? それらはコンパイル時に自動的に考慮されますか?
Q4ソースコードから.o
ファイルに変換するコマンドがどこにも書かれていません。ただし、メイクファイルは正常に機能し、必要な実行可能ファイルを生成しますか?