Makefileの改造。

以下のようにMakefileを改造した。
(利用しているmakeは、GNU makeです。)
コマンドのファイルの指定にmakeの自動変数($@など)を使用。
擬似ターゲットの指定に.PHONYターゲットの使用。

以下は、そのMakefile

TOOLPATH = ../z_tools/

INCPATH  = ../z_tools/haribote/



MAKE     = make -r

NASK     = nask.sh

CC       = $(TOOLPATH)cc1.exe -I$(INCPATH) -Os Wall -quiet

GAS2NASK = $(TOOLPATH)gas2nask.exe -a

OBJ2BIM  = $(TOOLPATH)obj2bim.exe

BIM2HRB  = $(TOOLPATH)bim2hrb.exe

RULEFILE = $(TOOLPATH)haribote/haribote.rul

EDIMG    = $(TOOLPATH)edimg.exe

DEL      = rm

IPL      = ipl10.nas

IPLBIN   = ipl10.bin

IMGNAME  = haribote.img





default :

	make all



$(IPLBIN) : $(IPL)

	nask.sh $< $@ ipl10.lst



asmhead.bin : asmhead.nas Makefile

	nask.sh $< $@ asmhead.lst



bootpack.gas : bootpack.c Makefile

	$(CC) -o $@ $<



bootpack.nas : bootpack.gas Makefile

	$(GAS2NASK) $< $@



bootpack.obj : bootpack.nas Makefile

	nask.sh $< $@ bootpack.lst



naskfunc.obj : naskfunc.nas Makefile

	$(NASK) $< $@ naskfunc.lst



bootpack.bim : bootpack.obj naskfunc.obj

	$(OBJ2BIM) @$(RULEFILE) out:$@ stack:3136k map:bootpack.map $^





bootpack.hrb : bootpack.bim Makefile

	$(BIM2HRB) $< $@ 0



haribote.sys : asmhead.bin bootpack.hrb

	cat $^ > $@



$(IMGNAME) : $(IPLBIN) haribote.sys Makefile

	$(EDIMG)   imgin:$(TOOLPATH)/fdimg0at.tek \

		wbinimg src:$< len:512 from:0 to:0 \

		copy from:haribote.sys to:@: \

		imgout:$@



.PHONY : all clean 



all :

	make -r $(IMGNAME)



clean :

	$(DEL) *.bin

	$(DEL) *.lst

	$(DEL) *.gas

	$(DEL) *.obj

	$(DEL) bootpack.nas

	$(DEL) bootpack.map

	$(DEL) bootpack.bim

	$(DEL) bootpack.hrb

	$(DEL) haribote.sys

GNU Make 第3版

GNU Make 第3版