首页 > 代码库 > zBoot/Makefile
zBoot/Makefile
#上层makefile调用执行make命令,执行的应该是第一个目标all
HEAD = head.o
SYSTEM = ../tools/zSystem
#LD = gcc
#TEST = -DTEST_DRIVER
zOBJECTS = $(HEAD) inflate.o unzip.o misc.o
CFLAGS = -O2 -DSTDC_HEADERS $(TEST)
#.c文件编译为.s文件
.c.s:
$(CC) $(CFLAGS) -S -o $*.s $<
#.s文件编译为.o文件
.s.o:
$(AS) -c -o $*.o $<
#.c文件编译为.o文件
.c.o:
$(CC) $(CFLAGS) -c -o $*.o $<
#执行的第一个目标,依赖于zSystem
all: zSystem
#目标zSystem,依赖于piggy.o 和变量zOBJECTS定义的目标
zSystem: piggy.o $(zOBJECTS)
$(LD) $(LDFLAGS) -o zSystem -Ttext 1000 $(zOBJECTS) piggy.o
#head.s文件编译为head.o文件
head.o: head.s
#head.S ../include/linux/tasks.h编译为head.s文件
head.s: head.S ../include/linux/tasks.h
$(CPP) -traditional head.S -o head.s
#目标piggy.o,依赖于SYSTEM定义的变量 xtract 和 piggyback
#./xtract--可执行程序一个参数是xtract $(SYSTEM)--输入的参数,是内核程序
#gzip -9压缩文件,系统中要有gzip这个程序
#./piggyback > piggy.o
piggy.o: $(SYSTEM) xtract piggyback
./xtract $(SYSTEM) | gzip -9 | ./piggyback > piggy.o
#执行另一个目录下的make文件生成zsystem
$(SYSTEM):
$(MAKE) -C .. tools/zSystem