Makefile

やっぱりmake環境を整える事が重要だと思うのですよ。快適コンパイルの第一歩です。

sorce/Makefile

boxnosDir = ../
binDir = $(boxnosDir)binary/

asm = as
ld = ld
strip = strip
qemu = qemu.bat

all: $(binDir)boot.bin $(MAKEFILE_LIST)
	$(qemu) $<

$(binDir)%.bin : $(binDir)%.obj
	$(ld) -Ttext 7c00 $< -o $@
	$(strip) -O binary $@

$(binDir)%.obj : %.S
	$(asm) $< -o $@

info:
	find -type f -exec wc {} \; | awk -f info.awk

clean:
	rm $(binDir)*

スッキリ!includeの構成はまた後で見直すとして。

Makefile解説

  • MONAMakefileをを見たら、stripが使ってあったのでまねっこしてみました。違いはよくわかってません(汗
  • ポイントは$(MAKEFILE_LIST)日本語訳のマニュアルに載ってないけど、includeしたファイルと自分自身のMekefeleのリストが入ります。Makefile更新→再コンパイルとなるので、make clean→makeとやる必要がなくなります。
  • ディレクトリ構成が変わりました。バイナリファイルとソースファイルを分離して、ファイル削除リスクを減らしてます。よくわからなくなったらディレクトリごと削除すれば良いので。
/boxnos
 /binary コンパイル時に出来る一時ファイル
 /source ソース色々

changelog書いてみたいなぁ・・・(周辺から攻める人)