makefile

来自「一个操作系统,用C语言实现开发的,我在一个浙江大学的操作系统实验网站找到.大家学」· 代码 · 共 56 行

TXT
56
字号
.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 + =
减小字号Ctrl + -
显示快捷键?