📄 ming.mak
字号:
# defines
.SUFFIXES: .asm .x .exe
MAKEFILE=ming.mak
# uncomment the next line to rebuild everything if this makefile changes
#MAKEDEP=$(MAKEFILE)
# chose ELF, COFF, or PE in the next two lines
AFLAGS =-f win32 -dUNDERBARS=1
LSCRIPT =ldscript/pekrnl.ld
INCDIR =inc
CFLAGS =-g -Wall -W -O2 -I$(INCDIR) -fno-builtin -nostdinc
LFLAGS =-g -T$(LSCRIPT) --image-base 0
LIBC =tinylib/libc.a
OBJS =startup.o main.o video.o kbd.o loader.o time.o paging.o \
syscalls.o debug.o
# targets
#all: load.com krnl.dsk
all: krnl.dsk
clean:
for %f in (*.dsk *.lst *.sym *.x *.com *.o krnl\*.o util\*.exe) do del %f
install: krnl.dsk
make -C boot install
copy /y krnl.dsk a:
realclean:
make -f $(MAKEFILE) clean
make -C tinylib -f $(MAKEFILE) clean
make -C apps -f $(MAKEFILE) clean
# implicit rules
.c.exe:
gcc -s -O2 -o$@ $<
.c.o:
gcc $(CFLAGS) -c -o$@ $<
.asm.o:
nasm $(AFLAGS) -o$@ $<
# dependencies
util/rdsk.exe: util/rdsk.c
startup.o: startup.asm
main.o: main.c inc/krnl.h $(MAKEDEP)
video.o: video.c inc/krnl.h $(MAKEDEP)
kbd.o: kbd.c inc/krnl.h $(MAKEDEP)
loader.o: loader.c inc/krnl.h $(MAKEDEP)
time.o: time.c inc/krnl.h $(MAKEDEP)
paging.o: paging.c inc/krnl.h $(MAKEDEP)
# explicit rules
#load.com: load.asm $(MAKEDEP)
# nasm -f bin -o$@ $<
$(LIBC): tinylib/$(MAKEFILE)
make -C tinylib -f $(MAKEFILE)
krnl.x: $(OBJS) $(LIBC) $(LSCRIPT) $(MAKEDEP)
# ld $(LFLAGS) -o$@ $(OBJS) $(LIBC)
ld $(LFLAGS) -o$@ *.o $(LIBC)
# objdump --line-numbers --source $@ >krnl.lst
# nm --line-numbers $@ | sort >krnl.sym
strip $@
#krnl.dsk: util/rdsk.exe krnl.x apps/memtest.x apps/time.x \
# apps/tetris.x apps/echo.x $(MAKEDEP)
krnl.dsk: util/rdsk.exe krnl.x $(MAKEDEP)
# this could be done better, I think
make -C apps -f $(MAKEFILE)
echo krnl.x >x
echo apps/hello.x >>x
echo apps/echo.x >>x
echo apps/time.x >>x
echo apps/tetris.x >>x
echo apps/tetris.x >>x
echo apps/protect.x >>x
echo apps/protect.x >>x
echo apps/protect.x >>x
echo apps/protect.x >>x
echo apps/protect.x >>x
echo apps/protect.x >>x
util\rdsk.exe -o $@ @x
del x
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -