📄 makefile
字号:
.SUFFIXES:
# Programs
AS = as
CC = gcc
LD = ld
# Directories
INCPATH = ../../../../include
LIBPATH = ../../../../lib
# Flags
CCFLAGS = -I$(INCPATH) -I.. -Wall -Wno-main -fleading-underscore -fpack-struct -ffreestanding
ASFLAGS =
LDFLAGS = -m i386go32 --oformat binary --entry _start -Ttext 0 -L$(LIBPATH)
# Macros
ifdef DEBUG
LOADER = startup.o main.o dbg0.o
CCFLAGS += -D__DEBUG__
ASFLAGS += -D --defsym __DEBUG__=1
else
LOADER = startup.o main.o
endif
BOOTSECT = bootsect.o
# Implicit rules
.SUFFIXES: .c .S .o
.c.o:
$(CC) $(CCFLAGS) -c -o $@ $<
.S.o:
$(AS) $(ASFLAGS) -o $@ $<
# Dependencies
all: bootsect.bin loader.bin
bootsect.bin: $(BOOTSECT)
$(LD) $(LDFLAGS) -o $@ $^
loader.bin: $(LOADER)
$(LD) $(LDFLAGS) -o $@ $^ -lknl16
bootsect.o: bootsect.S Makefile
startup.o: startup.S Makefile
main.o: main.c Makefile
dbg0.o: dbg0.c Makefile
clean:
rm -f $(BOOTSECT) $(LOADER)
clean_all: clean
rm -f bootsect.bin loader.bin
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -