include ../make_opt.txt

TOOLPATH = ../../z_tools/
INCPATH  = ../../z_tools/haribote/
APILIBPATH   = ../apilib/
HARIBOTEPATH = ../kernel/

MAKE       = $(TOOLPATH)make.exe -r
NASK       = $(TOOLPATH)nask.exe
CC1        = $(TOOLPATH)cc1.exe -I$(INCPATH) -I../ -Os -Wall -quiet
GAS2NASK   = $(TOOLPATH)gas2nask.exe -a
OBJ2BIM    = $(TOOLPATH)obj2bim.exe
MAKEFONT   = $(TOOLPATH)makefont.exe
BIN2OBJ    = $(TOOLPATH)bin2obj.exe
BIM2$(EXT) = $(TOOLPATH)bim2$(EXT).exe
BIM2BIN    = $(TOOLPATH)bim2bin.exe
RULEFILE   = ../tuos.rul
EDIMG      = $(TOOLPATH)edimg.exe
IMGTOL     = $(TOOLPATH)imgtol.com
GOLIB      = $(TOOLPATH)golib00.exe 
SJISCONV   = $(TOOLPATH)sjisconv.exe -s
COPY       = copy
DEL        = del

# デフォルト動作

default :
	$(MAKE) $(APP).$(EXT)

# ファイル生成規則

$(APP).bim : $(APP).obj $(APILIBPATH)apilib.lib Makefile ../app_make.txt
	$(OBJ2BIM) @$(RULEFILE) out:$(APP).bim map:$(APP).map stack:$(STACK) \
		$(APP).obj $(APILIBPATH)apilib.lib

tuos.img : ../kernel/$(IPLNAME).bin ../kernel/tuos.sys $(APP).$(EXT) \
		Makefile ../app_make.txt
	$(EDIMG)   imgin:../../z_tools/fdimg0at.tek \
		wbinimg src:../kernel/$(IPLNAME).bin len:512 from:0 to:0 \
		copy from:../kernel/tuos.sys to:@: \
		copy from:$(APP).$(EXT) to:@: \
		copy from:../nihongo/nihongo.fnt to:@: \
		imgout:tuos.img

# 一般規則

%.ca : %.c Makefile
	$(SJISCONV) $*.c $*.ca

%.gas : %.ca Makefile
	$(CC1) -o $*.gas $*.ca

%.nas : %.gas Makefile ../app_make.txt
	$(GAS2NASK) $*.gas $*.nas

%.obj : %.nas Makefile ../app_make.txt
	$(NASK) $*.nas $*.obj $*.lst

%.org : %.bim Makefile ../app_make.txt
	$(BIM2$(EXT)) $*.bim $*.org $(MALLOC)

%.$(EXT) : %.org Makefile ../app_make.txt
	$(BIM2BIN) -osacmp in:$*.org out:$*.$(EXT)

# コマンド

run :
	$(MAKE) tuos.img
	$(COPY) tuos.img ..\..\z_tools\qemu\fdimage0.bin
	$(MAKE) -C ../../z_tools/qemu

full :
	$(MAKE) -C $(APILIBPATH)
	$(MAKE) $(APP).$(EXT)

run_full :
	$(MAKE) -C $(APILIBPATH)
	$(MAKE) -C ../tuos
	$(MAKE) run

clean :
	-$(DEL) *.lst
	-$(DEL) *.obj
	-$(DEL) *.map
	-$(DEL) *.bim
	-$(DEL) *.org
	-$(DEL) tuos.img

src_only :
	$(MAKE) clean
	-$(DEL) $(APP).$(EXT)
