⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 makefrag

📁 jos lab3代码
💻
字号:
## Makefile fragment for JOS kernel.# This is NOT a complete makefile;# you must run GNU make in the top-level directory# where the GNUmakefile is located.#OBJDIRS += kernKERN_LDFLAGS := $(LDFLAGS) -T kern/kernel.ld -nostdlib# entry.S must be first, so that it's the first code in the text segment!!!## We also snatch the use of a couple handy source files# from the lib directory, to avoid gratuitous code duplication.KERN_SRCFILES :=	kern/entry.S \			kern/init.c \			kern/console.c \			kern/monitor.c \			kern/pmap.c \			kern/env.c \			kern/kclock.c \			kern/picirq.c \			kern/printf.c \			kern/trap.c \			kern/trapentry.S \			kern/sched.c \			kern/syscall.c \			kern/kdebug.c \			lib/printfmt.c \			lib/readline.c \			lib/string.c# Only build files if they exist.KERN_SRCFILES := $(wildcard $(KERN_SRCFILES))KERN_BINFILES :=	user/hello \			user/buggyhello \			user/evilhello \			user/testbss \			user/divzero \			user/breakpoint \			user/softint \			user/badsegment \			user/faultread \			user/faultreadkernel \			user/faultwrite \			user/faultwritekernelKERN_OBJFILES := $(patsubst %.c, $(OBJDIR)/%.o, $(KERN_SRCFILES))KERN_OBJFILES := $(patsubst %.S, $(OBJDIR)/%.o, $(KERN_OBJFILES))KERN_OBJFILES := $(patsubst $(OBJDIR)/lib/%, $(OBJDIR)/kern/%, $(KERN_OBJFILES))KERN_BINFILES := $(patsubst %, $(OBJDIR)/%, $(KERN_BINFILES))# How to build kernel object files$(OBJDIR)/kern/%.o: kern/%.c	@echo + cc $<	@mkdir -p $(@D)	$(V)$(CC) -nostdinc $(KERN_CFLAGS) -c -o $@ $<$(OBJDIR)/kern/%.o: kern/%.S	@echo + as $<	@mkdir -p $(@D)	$(V)$(CC) -nostdinc $(KERN_CFLAGS) -c -o $@ $<$(OBJDIR)/kern/%.o: lib/%.c	@echo + cc $<	@mkdir -p $(@D)	$(V)$(CC) -nostdinc $(KERN_CFLAGS) -c -o $@ $<# How to build the kernel itself$(OBJDIR)/kern/kernel: $(KERN_OBJFILES) $(KERN_BINFILES) kern/kernel.ld	@echo + ld $@	$(V)$(LD) -o $@ $(KERN_LDFLAGS) $(KERN_OBJFILES) $(GCC_LIB) -b binary $(KERN_BINFILES)	$(V)$(OBJDUMP) -S $@ > $@.asm	$(V)$(NM) -n $@ > $@.sym# How to build the Bochs disk image$(OBJDIR)/kern/bochs.img: $(OBJDIR)/kern/kernel $(OBJDIR)/boot/boot	@echo + mk $@	$(V)dd if=/dev/zero of=$(OBJDIR)/kern/bochs.img~ count=10000 2>/dev/null	$(V)dd if=$(OBJDIR)/boot/boot of=$(OBJDIR)/kern/bochs.img~ conv=notrunc 2>/dev/null	$(V)dd if=$(OBJDIR)/kern/kernel of=$(OBJDIR)/kern/bochs.img~ seek=1 conv=notrunc 2>/dev/null	$(V)mv $(OBJDIR)/kern/bochs.img~ $(OBJDIR)/kern/bochs.imgall: $(OBJDIR)/kern/bochs.imggrub: $(OBJDIR)/jos-grub$(OBJDIR)/jos-grub: $(OBJDIR)/kern/kernel	@echo + oc $@	$(V)$(OBJCOPY) --adjust-vma=0x10000000 $^ $@

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -