我的学习之旅(29)Makefile

来源:互联网 发布:海颐软件 编辑:程序博客网 时间:2024/05/22 17:43

调整好目录后还要补充增加最外边的Makefile,主要功能是进入到boot、init、schedule、tools、drivers目录编译并做连接后用build_image工具打包成一个image

整个image分布应该是这样:

0~0x200:boot.s

0x200~0x600: setup.s

0x600~0x10000 kernel (setup.s 中加载kernel方法限制了当前kernel文件最大64K,现在够用,不够再改)

Makefile:

--------

INCLUDE=./include

CC = gcc -march=i386
LD = ld

ASFLAG = -f elf
LDFLAGS = -melf_i386 -Ttext 0x0 -e startup_32
CCFLG = -O2 -c -nostdinc -fno-builtin -I$(INCLUDE) -I.


OBJ_DIR=./obj/
BOOT_DIR=./boot/
TOOLS_DIR = ./tools/
SCHED_DIR = ./schedule/
DIRIVER_DIR = ./drivers/

OBJS = $(OBJ_DIR)main.o

LIBS = $(OBJ_DIR)traps.o $(OBJ_DIR)printk.o $(OBJ_DIR)vsprintf.o

all: Image

Image: boot_partition kernel $(TOOLS_DIR)build_image
 @echo
 @echo create Image
 @cat $(BOOT_DIR)boot_partition  kernel > ./Image
 @echo build image...
 @$(TOOLS_DIR)build_image Image
 @rm -rf Image.img
 @cp Image Image.img

 

0 0