1. 根目录下的Makefiel
all: build-all
build-all: $(DOCS) $(TOOLS) recurse-all
recurse-all: $(SUBDIR_RULES) $(ROMSUBDIR_RULES)
SUBDIR_RULES=$(patsubst %,subdir-%, $(TARGET_DIRS))
其中这个 TARGET_DIRS 在 config-host.mak中定义,这个是./configure时候生成的。
TARGET_DIRS=i386-softmmu
ROMSUBDIR_RULES=$(patsubst %,romsubdir-%, $(ROMS))
这个ROMS也是在config-host.mak中定义的, 在./configure中生成。
ROMS=optionrom
下面是subdir和romsubdir的隐式规则。
subdir-%: $(GENERATED_HEADERS)
$(call quiet-command,$(MAKE) $(SUBDIR_MAKEFLAGS) -C $* V="$(V)" TARGET_DIR="$*/" all,)
romsubdir-%:
$(call quiet-command,$(MAKE) $(SUBDIR_MAKEFLAGS) -C pc-bios/$* V="$(V)" TARGET_DIR="$*/",)
那就表示了,主要是这两个目录的内容。
打开相应的quiet-command, 结果如下,比我想的要多一些。
# @make --no-print-directory BUILD_DIR=/home/richard/git/qemu -C libhw64 V="" TARGET_DIR="libhw64/" all
make --no-print-directory BUILD_DIR=/home/richard/git/qemu -C libhw64 V="" TARGET_DIR="libhw64/" all
# @make --no-print-directory BUILD_DIR=/home/richard/git/qemu -C libdis V="" TARGET_DIR="libdis/"