首页 > 代码库 > 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