Makefile 使用方法

Makefile

常用命令

make -d : 会显示debug信息便于调试

  1. make会把每一个命令都建一个subprocess。
-$(MKDIR) $(CONF_PATH)

->

E:\Develop\Taego\BuildTools\Python\3.11.6.S1\python.exe E:\Develop\Taego\BuildTools\Scripts\shell.py MKDIR E:\Develop\Taego\Build\Conf
CreateProcess(E:\Develop\Taego\BuildTools\Python\3.11.6.S1\python.exe,E:\Develop\Taego\BuildTools\Python\3.11.6.S1\python.exe E:\Develop\Taego\BuildTools\Scripts\shell.py NORMPATH E:\Develop\Taego\BuildTools\MSVC\14.37.32822/,...)
CreateProcess(E:\Develop\Taego\BuildTools\Python\3.11.6.S1\python.exe,E:\Develop\Taego\BuildTools\Python\3.11.6.S1\python.exe E:\Develop\Taego\BuildTools\Scripts\shell.py MKDIR E:\Develop\Taego\Build\Conf,...)
Putting child 02a85428 (folder-init) PID 44809944 on the chain.
Live child 02a85428 (folder-init) PID 44809944 
A subdirectory or file E:\Develop\Taego\Build\Conf already exists.
Reaping winning child 02a85428 PID 44809944 
  1. make 会把所有的target都扫描
file1: 
folder-init ::
    -$(MKDIR) $(CONF_PATH)
file2: 
folder-init ::
	-$(MKDIR) $(SMMSUPV_OUTPUT_DIRECTORY_ABS)
	-$(MKDIR) $(SMMSUPERVISOR_BUILD_BINARY_PATH)
	-$(MKDIR) $(SMMSUPERVISOR_BIN_EFI_PATH)

->会不断的retarget 直到搜完所有的makefile中的folder-init这个target

    Considering target file 'folder-init'.
     File 'folder-init' does not exist.
     Finished prerequisites of target file 'folder-init'.
    Target 'folder-init' is double-colon and has no prerequisites.
    Must remake target 'folder-init'.
E:\Develop\Taego\BuildTools\Python\3.11.6.S1\python.exe E:\Develop\Taego\BuildTools\Scripts\shell.py MKDIR E:\Develop\Taego\Build\Conf
CreateProcess(E:\Develop\Taego\BuildTools\Python\3.11.6.S1\python.exe,E:\Develop\Taego\BuildTools\Python\3.11.6.S1\python.exe E:\Develop\Taego\BuildTools\Scripts\shell.py NORMPATH E:\Develop\Taego\BuildTools\MSVC\14.37.32822/,...)
CreateProcess(E:\Develop\Taego\BuildTools\Python\3.11.6.S1\python.exe,E:\Develop\Taego\BuildTools\Python\3.11.6.S1\python.exe E:\Develop\Taego\BuildTools\Scripts\shell.py MKDIR E:\Develop\Taego\Build\Conf,...)
Putting child 02a85428 (folder-init) PID 44809944 on the chain.
Live child 02a85428 (folder-init) PID 44809944 
A subdirectory or file E:\Develop\Taego\Build\Conf already exists.
Reaping winning child 02a85428 PID 44809944 
E:\Develop\Taego\BuildTools\Python\3.11.6.S1\python.exe E:\Develop\Taego\BuildTools\Scripts\shell.py MKDIR E:\Develop\Taego\Build\BoulderGulchBoardPkg_BOULDERGULCH_INTERNAL\DEBUG_VS2022
CreateProcess(E:\Develop\Taego\BuildTools\Python\3.11.6.S1\python.exe,E:\Develop\Taego\BuildTools\Python\3.11.6.S1\python.exe E:\Develop\Taego\BuildTools\Scripts\shell.py MKDIR E:\Develop\Taego\Build\BoulderGulchBoardPkg_BOULDERGULCH_INTERNAL\DEBUG_VS2022,...)
Live child 02a85428 (folder-init) PID 44809704 
A subdirectory or file E:\Develop\Taego\Build\BoulderGulchBoardPkg_BOULDERGULCH_INTERNAL\DEBUG_VS2022 already exists.
Reaping winning child 02a85428 PID 44809704 
Removing child 02a85428 PID 44809704 from chain.
    Successfully remade target file 'folder-init'.
    Considering target file 'folder-init'.
     File 'folder-init' does not exist.
     Finished prerequisites of target file 'folder-init'.
    Target 'folder-init' is double-colon and has no prerequisites.
    Must remake target 'folder-init'.
    Successfully remade target file 'folder-init'.
    Considering target file 'folder-init'.
     File 'folder-init' does not exist.
     Finished prerequisites of target file 'folder-init'.
    Target 'folder-init' is double-colon and has no prerequisites.
    Must remake target 'folder-init'.
posted @ 2024-11-15 17:54  nipper  阅读(16)  评论(0编辑  收藏  举报