chugoku_os @ ウィキ

code_makefile_mouse_hige

# Makefile
 
# この1行をいじるだけ(順番も守ること!)
OBJ	= kakunin.o kakuninOK.o int.o fifo.o nasmfunc.obj
LIB	= $(LIBPATH)w32clibc.lib $(LIBPATH)golibc.lib $(LIBPATH)libmingw.lib
 
# QEMU(QEMU側の設定を忘れずに)
HARI_TOOLS = /cygdrive/C/usr/HariboteOS/tolset/z_tools/
QEMU    = $(HARI_TOOLS)qemu/
INCPATH	= $(HARI_TOOLS)win32/
LIBPATH	= $(INCPATH)
# Bochs
#BOCHS	= /cygdrive/c/Program\ Files/Bochs-2.4.1/
BOCHS	= /cygdrive/c/Program\ Files/Bochs-2.3/
 
# ツール
NASM	= nasm
NDISASM = ndisasm
CC	= gcc
LD	= ld
STRIP	= objcopy
 
# フラグ
NFLAGS  = -f win32 
CFLAGS	= -c -nostdlib -fno-exceptions -ffreestanding -fno-builtin -Wall -c
LFLAGS	= -static --script=ldscript -nostdlib -Map Map.map --section-start .text=0x1200 -e 0x00
SFLAGS  = -O binary --remove-section=.idata --remove-section=.reloc --remove-section=.debug
 
# ファイル・フォルダ名
trash	= $(target) $(FIRST) $(SECOND) $(THIRD) *.o *.obj
F_SRC	= firstboot.asm
FIRST   = firstboot.bin
S_SRC	= secondboot.asm
SECOND  = secondboot.bin
THIRD	= thirdboot.bin
target	= tmp.img
 
# デフォルト動作
all:
	@make --no-print-directory ${target}
	dd if=${target} of=/dev/fd0
	@cp ${target} ${BOCHS}; cd ${BOCHS} && ./bochs.exe -q  ; tail -n50 bochsout.txt
 
# 一般規則
%.o : %.c
	${CC} ${CFLAGS} -o $*.o $*.c
%.obj : %.asm
	${NASM} ${NFLAGS}-o $*.obj $*.asm
 
# 生成規則(ここに書かれていないものは一般規則で実行される)
${target} : ${FIRST} ${SECOND} ${THIRD}
	cat  ${FIRST} ${SECOND} ${THIRD} >$@
 
${FIRST} : ${F_SRC}
	${NASM} ${F_SRC} -o $@
 
${SECOND} : ${S_SRC}
	${NASM} ${S_SRC} -o $@
 
${THIRD}: ${OBJ}
	@${LD} ${LFLAGS} -o $@ ${OBJ} ${LIB}
	@${STRIP} ${SFLAGS} $@
 
 
# コマンド
v: ${target}
	@cp ${target} ${BOCHS}; cd ${BOCHS} && ./bochs.exe -q  ; tail -n50 bochsout.txt
 
run: ${target}
	@cp ${target} $(QEMU); cd $(QEMU) && ./my.bat
 
debug: ${PARTS}
	@${NASM} ${F_SRC} -l ${PARTS}/$(F_SRC:.asm=_list.asm) -o ${FIRST}
	@${NASM} ${S_SRC} -l ${PARTS}/$(S_SRC:.asm=_list.asm) -o ${SECOND}
	@make --no-print-directory ${target}
	@${NDISASM} -u ${THIRD} > ${PARTS}/third_dis.asm
	@cp ${target} ${BOCHS}; cd ${BOCHS} && ./bochsdbg.exe -q  ; tail -n50 bochsout.txt
 
${PARTS}:
	@mkdir $@
 
clean :
	@-rm -f *~ $(PARTS)/* $(trash)
	@-rmdir $(PARTS)
	@ls -l
 
dd : ${target}
	dd if=${target} of=/dev/fd0
 

更新履歴