linux make makefile 内置变量 默认变量

在看uboot的Makefile的时候,发现CURDIR这个变量没有定义就直接用了,于是百度了一下,原来CURDIR是Makefile的一个内置变量,在这里顺便把其他的变量也记录一下。

打印变量值使用命令:

make -p > xx

-p, --print-data-base Print make’s internal database。即打印makefile 的执行规矩等。从而查看到相应的makefile中的各个变量的值。xx 把这些数据都重定向到xx这个文件中。

变量分为了环境变量、内置变量和自动变量。

环境变量:

PAPERSIZE = letter
DESKTOP_SESSION = ubuntu
XDG_SESSION_TYPE = x11
XAUTHORITY = /home/zht/.Xauthority
_ = /usr/bin/make
......

内置变量:

CURDIR := /home/zht # 记录当前路径
SHELL = /bin/sh
MAKEFILE_LIST :=  Makefile
.DEFAULT_GOAL := all
MAKEFLAGS = p
HOSTARCH := x86_64
CC = cc 		# C语言编译器的名称
CPP = $(CC) -E  # C语言预处理器的名称 $(CC) -E
CXX = g++       # C++语言的编译器名称
RM = rm -f		# 删除文件程序的名称
CFLAGS			# C语言编译器的编译选项,无默认值
CPPFLAGS  		# C语言预处理器的编译选项,无默认值
CXXFLAGS		# C++语言编译器的编译选项,无默认值
......

自动变量:

$@:表示目标文件的名称,包含扩展名
$^:表示所有的依赖文件,以空格隔开,不重复
$<:表示第一个依赖文件的名称
$+:表示所有的依赖文件,空格隔开,可以重复
$*:表示目标文件的名称,不包含扩展名
$?:依赖项中,所有比目标文件新的依赖文件

make -p 输出实例:

# GNU Make 4.1
# Built for x86_64-pc-linux-gnu
# Copyright (C) 1988-2014 Free Software Foundation, Inc.
# License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
# This is free software: you are free to change and redistribute it.
# There is NO WARRANTY, to the extent permitted by law.

# make 数据基础,打印在 Thu May 24 10:05:39 2018

# 变量

# 自动
<D = $(patsubst %/,%,$(dir $<))
# 自动
?F = $(notdir $?)
# 环境
DESKTOP_SESSION = ubuntu
# 默认
.SHELLFLAGS := -c
# 环境
XDG_SESSION_TYPE = x11
# 环境
UPSTART_INSTANCE = 
# 默认
CWEAVE = cweave
# 自动
?D = $(patsubst %/,%,$(dir $?))
# 自动
@D = $(patsubst %/,%,$(dir $@))
# 环境
XAUTHORITY = /home/xxw/.Xauthority
# 环境
GDMSESSION = ubuntu
# 环境
XMODIFIERS = @im=fcitx
# makefile
CURDIR := /home/xxw/workspace/gitlab/iotx-sdk-c
# makefile
SHELL = /bin/sh
# 默认
RM = rm -f
# 环境
GDM_LANG = zh_CN
# 环境
VTE_VERSION = 4205
# 环境
_ = /usr/bin/make
# 默认
PREPROCESS.F = $(FC) $(FFLAGS) $(CPPFLAGS) $(TARGET_ARCH) -F
# 默认
LINK.m = $(OBJC) $(OBJCFLAGS) $(CPPFLAGS) $(LDFLAGS) $(TARGET_ARCH)
# 环境
XDG_CONFIG_DIRS = /etc/xdg/xdg-ubuntu:/usr/share/upstart/xdg:/etc/xdg
# 默认
OUTPUT_OPTION = -o $@
# 默认
COMPILE.cpp = $(COMPILE.cc)
# makefile (from '/dev/null', line 1)
MAKEFILE_LIST :=  /dev/null
# 自动
@F = $(notdir $@)
# 环境
IM_CONFIG_PHASE = 1
# 'override' directive
GNUMAKEFLAGS := 
# 环境
SESSIONTYPE = gnome-session
# 环境
MANDATORY_PATH = /usr/share/gconf/ubuntu.mandatory.path
# 环境
XDG_DATA_DIRS = /usr/share/ubuntu:/usr/share/gnome:/usr/local/share:/usr/share:/var/lib/snapd/desktop
# 环境
DBUS_SESSION_BUS_ADDRESS = unix:abstract=/tmp/dbus-hwt3NXzBjQ
# 默认
CC = cc
# 默认
CHECKOUT,v = +$(if $(wildcard $@),,$(CO) $(COFLAGS) $< $@)
# 环境
CLUTTER_IM_MODULE = xim
# 环境
LESSOPEN = | /usr/bin/lesspipe %s
# 默认
CPP = $(CC) -E
# 默认
LINK.cc = $(CXX) $(CXXFLAGS) $(CPPFLAGS) $(LDFLAGS) $(TARGET_ARCH)
# 环境
XDG_SESSION_PATH = /org/freedesktop/DisplayManager/Session0
# 默认
LEX = lex
# 默认
MAKE_HOST := x86_64-pc-linux-gnu
# 环境
PATH = /home/xxw/bin:/home/xxw/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/opt/node-v8.11.1-linux-x64/bin:/home/xxw/esp/xtensa-esp32-elf/bin
# 默认
LD = ld
# 默认
TEXI2DVI = texi2dvi
# 环境
GPG_AGENT_INFO = /home/xxw/.gnupg/S.gpg-agent:0:1
# 默认
YACC = yacc
# 环境
UPSTART_JOB = unity-settings-daemon
# 默认
COMPILE.mod = $(M2C) $(M2FLAGS) $(MODFLAGS) $(TARGET_ARCH)
# 环境
XDG_RUNTIME_DIR = /run/user/1000
# 默认
ARFLAGS = rv
# 默认
LINK.r = $(FC) $(FFLAGS) $(RFLAGS) $(LDFLAGS) $(TARGET_ARCH)
# 环境
WINDOWID = 73422050
# 默认
COMPILE.f = $(FC) $(FFLAGS) $(TARGET_ARCH) -c
# 默认
LINT.c = $(LINT) $(LINTFLAGS) $(CPPFLAGS) $(TARGET_ARCH)
# 默认
YACC.m = $(YACC) $(YFLAGS)
# 默认
LINT = lint
# 默认
LINK.p = $(PC) $(PFLAGS) $(CPPFLAGS) $(LDFLAGS) $(TARGET_ARCH)
# 默认
YACC.y = $(YACC) $(YFLAGS)
# 默认
AR = ar
# 默认
.FEATURES := target-specific order-only second-expansion else-if shortest-stem undefine oneshell archives jobserver output-sync check-symlink load
# 默认
TANGLE = tangle
# 环境
XDG_GREETER_DATA_DIR = /var/lib/lightdm-data/xxw
# 环境
LS_COLORS = no=00:fi=00:di=34:ow=34;40:ln=35:pi=30;44:so=35;44:do=35;44:bd=33;44:cd=37;44:or=05;37;41:mi=05;37;41:ex=01;31:*.cmd=01;31:*.exe=01;31:*.com=01;31:*.bat=01;31:*.reg=01;31:*.app=01;31:*.txt=32:*.org=32:*.md=32:*.mkd=32:*.h=32:*.hpp=32:*.c=32:*.C=32:*.cc=32:*.cpp=32:*.cxx=32:*.objc=32:*.cl=32:*.sh=32:*.bash=32:*.csh=32:*.zsh=32:*.el=32:*.vim=32:*.java=32:*.pl=32:*.pm=32:*.py=32:*.rb=32:*.hs=32:*.php=32:*.htm=32:*.html=32:*.shtml=32:*.erb=32:*.haml=32:*.xml=32:*.rdf=32:*.css=32:*.sass=32:*.scss=32:*.less=32:*.js=32:*.coffee=32:*.man=32:*.0=32:*.1=32:*.2=32:*.3=32:*.4=32:*.5=32:*.6=32:*.7=32:*.8=32:*.9=32:*.l=32:*.n=32:*.p=32:*.pod=32:*.tex=32:*.go=32:*.sql=32:*.csv=32:*.sv=32:*.svh=32:*.v=32:*.vh=32:*.vhd=32:*.bmp=33:*.cgm=33:*.dl=33:*.dvi=33:*.emf=33:*.eps=33:*.gif=33:*.jpeg=33:*.jpg=33:*.JPG=33:*.mng=33:*.pbm=33:*.pcx=33:*.pdf=33:*.pgm=33:*.png=33:*.PNG=33:*.ppm=33:*.pps=33:*.ppsx=33:*.ps=33:*.svg=33:*.svgz=33:*.tga=33:*.tif=33:*.tiff=33:*.xbm=33:*.xcf=33:*.xpm=33:*.xwd=33:*.xwd=33:*.yuv=33:*.aac=33:*.au=33:*.flac=33:*.m4a=33:*.mid=33:*.midi=33:*.mka=33:*.mp3=33:*.mpa=33:*.mpeg=33:*.mpg=33:*.ogg=33:*.opus=33:*.ra=33:*.wav=33:*.anx=33:*.asf=33:*.avi=33:*.axv=33:*.flc=33:*.fli=33:*.flv=33:*.gl=33:*.m2v=33:*.m4v=33:*.mkv=33:*.mov=33:*.MOV=33:*.mp4=33:*.mp4v=33:*.mpeg=33:*.mpg=33:*.nuv=33:*.ogm=33:*.ogv=33:*.ogx=33:*.qt=33:*.rm=33:*.rmvb=33:*.swf=33:*.vob=33:*.webm=33:*.wmv=33:*.doc=31:*.docx=31:*.rtf=31:*.odt=31:*.dot=31:*.dotx=31:*.ott=31:*.xls=31:*.xlsx=31:*.ods=31:*.ots=31:*.ppt=31:*.pptx=31:*.odp=31:*.otp=31:*.fla=31:*.psd=31:*.7z=1;35:*.apk=1;35:*.arj=1;35:*.bin=1;35:*.bz=1;35:*.bz2=1;35:*.cab=1;35:*.deb=1;35:*.dmg=1;35:*.gem=1;35:*.gz=1;35:*.iso=1;35:*.jar=1;35:*.msi=1;35:*.rar=1;35:*.rpm=1;35:*.tar=1;35:*.tbz=1;35:*.tbz2=1;35:*.tgz=1;35:*.tx=1;35:*.war=1;35:*.xpi=1;35:*.xz=1;35:*.z=1;35:*.Z=1;35:*.zip=1;35:*.ANSI-30-black=30:*.ANSI-01;30-brblack=01;30:*.ANSI-31-red=31:*.ANSI-01;31-brred=01;31:*.ANSI-32-green=32:*.ANSI-01;32-brgreen=01;32:*.ANSI-33-yellow=33:*.ANSI-01;33-bryellow=01;33:*.ANSI-34-blue=34:*.ANSI-01;34-brblue=01;34:*.ANSI-35-magenta=35:*.ANSI-01;35-brmagenta=01;35:*.ANSI-36-cyan=36:*.ANSI-01;36-brcyan=01;36:*.ANSI-37-white=37:*.ANSI-01;37-brwhite=01;37:*.log=01;32:*~=01;32:*#=01;32:*.bak=01;33:*.BAK=01;33:*.old=01;33:*.OLD=01;33:*.org_archive=01;33:*.off=01;33:*.OFF=01;33:*.dist=01;33:*.DIST=01;33:*.orig=01;33:*.ORIG=01;33:*.swp=01;33:*.swo=01;33:*,v=01;33:*.gpg=34:*.gpg=34:*.pgp=34:*.asc=34:*.3des=34:*.aes=34:*.enc=34:*.sqlite=34:
# 环境
JOB = gnome-session
# 环境
XDG_SESSION_DESKTOP = ubuntu
# 环境
SSH_AUTH_SOCK = /run/user/1000/keyring/ssh
# 默认
GET = get
# 自动
%F = $(notdir $%)
# 环境
DISPLAY = :0
# 默认
COMPILE.F = $(FC) $(FFLAGS) $(CPPFLAGS) $(TARGET_ARCH) -c
# 默认
CTANGLE = ctangle
# 环境
GTK_IM_MODULE = fcitx
# 默认
.LIBPATTERNS = lib%.so lib%.a
# 默认
LINK.C = $(LINK.cc)
# 环境
PWD = /home/xxw/workspace/gitlab/iotx-sdk-c
# 环境
QT_QPA_PLATFORMTHEME = appmenu-qt5
# 默认
LINK.S = $(CC) $(ASFLAGS) $(CPPFLAGS) $(LDFLAGS) $(TARGET_MACH)
# 环境
XDG_SEAT = seat0
# 默认
PREPROCESS.r = $(FC) $(FFLAGS) $(RFLAGS) $(TARGET_ARCH) -F
# 默认
LINK.c = $(CC) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) $(TARGET_ARCH)
# 环境
GTK_MODULES = gail:atk-bridge:unity-gtk-module
# 默认
LINK.s = $(CC) $(ASFLAGS) $(LDFLAGS) $(TARGET_MACH)
# 环境
HOME = /home/xxw
# 环境
LESSCLOSE = /usr/bin/lesspipe %s %s
# 环境
LOGNAME = xxw
# 环境
QT_LINUX_ACCESSIBILITY_ALWAYS_ON = 1
# 默认
M2C = m2c
# 默认
CO = co
# 默认
MAKE_VERSION := 4.1
# 环境
GNOME_DESKTOP_SESSION_ID = this-is-deprecated
# 自动
^D = $(patsubst %/,%,$(dir $^))
# 环境
XDG_VTNR = 7
# 环境
MAKELEVEL := 0
# 默认
COMPILE.m = $(OBJC) $(OBJCFLAGS) $(CPPFLAGS) $(TARGET_ARCH) -c
# 默认
MAKE = $(MAKE_COMMAND)
# 环境
QT_IM_MODULE = fcitx
# 环境
SHLVL = 1
# 默认
AS = as
# 默认
PREPROCESS.S = $(CC) -E $(CPPFLAGS)
# 环境
COMPIZ_CONFIG_PROFILE = ubuntu
# 默认
COMPILE.p = $(PC) $(PFLAGS) $(CPPFLAGS) $(TARGET_ARCH) -c
# 环境
XDG_SESSION_ID = c2
# 环境
USER = xxw
# 默认
FC = f77
# makefile
.DEFAULT_GOAL := 
# 环境
XDG_CURRENT_DESKTOP = Unity
# 环境
UPSTART_EVENTS = started starting
# 自动
%D = $(patsubst %/,%,$(dir $%))
# 环境
GNOME_KEYRING_PID = 
# 默认
WEAVE = weave
# 默认
MAKE_COMMAND := make
# 默认
LINK.cpp = $(LINK.cc)
# 默认
F77 = $(FC)
# 环境
OLDPWD = /home/xxw/workspace/gitlab
# 默认
.VARIABLES := 
# 默认
PC = pc
# 自动
*F = $(notdir $*)
# 环境
LANGUAGE = zh_CN:zh
# 环境
XDG_SEAT_PATH = /org/freedesktop/DisplayManager/Seat0
# 默认
COMPILE.def = $(M2C) $(M2FLAGS) $(DEFFLAGS) $(TARGET_ARCH)
# 环境
GNOME_KEYRING_CONTROL = 
# makefile
MAKEFLAGS = p
# 环境
MFLAGS = -p
# 自动
*D = $(patsubst %/,%,$(dir $*))
# 默认
LEX.l = $(LEX) $(LFLAGS) -t
# 默认
LEX.m = $(LEX) $(LFLAGS) -t
# 自动
+D = $(patsubst %/,%,$(dir $+))
# 默认
COMPILE.r = $(FC) $(FFLAGS) $(RFLAGS) $(TARGET_ARCH) -c
# 自动
+F = $(notdir $+)
# 环境
GTK2_MODULES = overlay-scrollbar
# 环境
QT_ACCESSIBILITY = 1
# 环境
DEFAULTS_PATH = /usr/share/gconf/ubuntu.default.path
# 默认
MAKEFILES := 
# 环境
UPSTART_SESSION = unix:abstract=/com/ubuntu/upstart-session/1000/1344
# 默认
COMPILE.cc = $(CXX) $(CXXFLAGS) $(CPPFLAGS) $(TARGET_ARCH) -c
# 自动
<F = $(notdir $<)
# 默认
CXX = g++
# 环境
INSTANCE = Unity
# 默认
COFLAGS = 
# 默认
COMPILE.C = $(COMPILE.cc)
# 环境
QT4_IM_MODULE = fcitx
# 自动
^F = $(notdir $^)
# 默认
COMPILE.S = $(CC) $(ASFLAGS) $(CPPFLAGS) $(TARGET_MACH) -c
# 默认
LINK.F = $(FC) $(FFLAGS) $(CPPFLAGS) $(LDFLAGS) $(TARGET_ARCH)
# 默认
SUFFIXES := .out .a .ln .o .c .cc .C .cpp .p .f .F .m .r .y .l .ym .yl .s .S .mod .sym .def .h .info .dvi .tex .texinfo .texi .txinfo .w .ch .web .sh .elc .el
# 默认
COMPILE.c = $(CC) $(CFLAGS) $(CPPFLAGS) $(TARGET_ARCH) -c
# 默认
COMPILE.s = $(AS) $(ASFLAGS) $(TARGET_MACH)
# 默认
.INCLUDE_DIRS = /usr/include /usr/local/include /usr/include
# 默认
.RECIPEPREFIX := 
# 默认
MAKEINFO = makeinfo
# 默认
MAKE_TERMERR := /dev/pts/19
# 默认
OBJC = cc
# 默认
LINK.f = $(FC) $(FFLAGS) $(LDFLAGS) $(TARGET_ARCH)
# 默认
TEX = tex
# 环境
LANG = zh_CN.UTF-8
# 环境
TERM = xterm-256color
# 默认
F77FLAGS = $(FFLAGS)
# 默认
LINK.o = $(CC) $(LDFLAGS) $(TARGET_ARCH)
# 变量的杂凑表状态:
# 负载=157/1024=15%, 重新杂凑=0, 碰撞=21/182=12%

# Pattern-specific 变量值

# 没有 pattern-specific 变量的值。

# 目录

# SCCS:无法对其进行 stat 操作。
# /dev (设备 6,i-节点 2): 198 文件, 19 不可能.
# /dev/SCCS:无法对其进行 stat 操作。
# /dev/RCS:无法对其进行 stat 操作。
# RCS:无法对其进行 stat 操作。

# 198 文件, 19 不可能在 5 目录中。

# 隐含规则

%.out:

%.a:

%.ln:

%.o:

%: %.o
#  recipe to execute (内置):
	$(LINK.o) $^ $(LOADLIBES) $(LDLIBS) -o $@

%.c:

%: %.c
#  recipe to execute (内置):
	$(LINK.c) $^ $(LOADLIBES) $(LDLIBS) -o $@

%.ln: %.c
#  recipe to execute (内置):
	$(LINT.c) -C$* $<

%.o: %.c
#  recipe to execute (内置):
	$(COMPILE.c) $(OUTPUT_OPTION) $<

%.cc:

%: %.cc
#  recipe to execute (内置):
	$(LINK.cc) $^ $(LOADLIBES) $(LDLIBS) -o $@

%.o: %.cc
#  recipe to execute (内置):
	$(COMPILE.cc) $(OUTPUT_OPTION) $<

%.C:

%: %.C
#  recipe to execute (内置):
	$(LINK.C) $^ $(LOADLIBES) $(LDLIBS) -o $@

%.o: %.C
#  recipe to execute (内置):
	$(COMPILE.C) $(OUTPUT_OPTION) $<

%.cpp:

%: %.cpp
#  recipe to execute (内置):
	$(LINK.cpp) $^ $(LOADLIBES) $(LDLIBS) -o $@

%.o: %.cpp
#  recipe to execute (内置):
	$(COMPILE.cpp) $(OUTPUT_OPTION) $<

%.p:

%: %.p
#  recipe to execute (内置):
	$(LINK.p) $^ $(LOADLIBES) $(LDLIBS) -o $@

%.o: %.p
#  recipe to execute (内置):
	$(COMPILE.p) $(OUTPUT_OPTION) $<

%.f:

%: %.f
#  recipe to execute (内置):
	$(LINK.f) $^ $(LOADLIBES) $(LDLIBS) -o $@

%.o: %.f
#  recipe to execute (内置):
	$(COMPILE.f) $(OUTPUT_OPTION) $<

%.F:

%: %.F
#  recipe to execute (内置):
	$(LINK.F) $^ $(LOADLIBES) $(LDLIBS) -o $@

%.o: %.F
#  recipe to execute (内置):
	$(COMPILE.F) $(OUTPUT_OPTION) $<

%.f: %.F
#  recipe to execute (内置):
	$(PREPROCESS.F) $(OUTPUT_OPTION) $<

%.m:

%: %.m
#  recipe to execute (内置):
	$(LINK.m) $^ $(LOADLIBES) $(LDLIBS) -o $@

%.o: %.m
#  recipe to execute (内置):
	$(COMPILE.m) $(OUTPUT_OPTION) $<

%.r:

%: %.r
#  recipe to execute (内置):
	$(LINK.r) $^ $(LOADLIBES) $(LDLIBS) -o $@

%.o: %.r
#  recipe to execute (内置):
	$(COMPILE.r) $(OUTPUT_OPTION) $<

%.f: %.r
#  recipe to execute (内置):
	$(PREPROCESS.r) $(OUTPUT_OPTION) $<

%.y:

%.ln: %.y
#  recipe to execute (内置):
	$(YACC.y) $< 
	 $(LINT.c) -C$* y.tab.c 
	 $(RM) y.tab.c

%.c: %.y
#  recipe to execute (内置):
	$(YACC.y) $< 
	 mv -f y.tab.c $@

%.l:

%.ln: %.l
#  recipe to execute (内置):
	@$(RM) $*.c
	 $(LEX.l) $< > $*.c
	$(LINT.c) -i $*.c -o $@
	 $(RM) $*.c

%.c: %.l
#  recipe to execute (内置):
	@$(RM) $@ 
	 $(LEX.l) $< > $@

%.r: %.l
#  recipe to execute (内置):
	$(LEX.l) $< > $@ 
	 mv -f lex.yy.r $@

%.ym:

%.m: %.ym
#  recipe to execute (内置):
	$(YACC.m) $< 
	 mv -f y.tab.c $@

%.yl:

%.s:

%: %.s
#  recipe to execute (内置):
	$(LINK.s) $^ $(LOADLIBES) $(LDLIBS) -o $@

%.o: %.s
#  recipe to execute (内置):
	$(COMPILE.s) -o $@ $<

%.S:

%: %.S
#  recipe to execute (内置):
	$(LINK.S) $^ $(LOADLIBES) $(LDLIBS) -o $@

%.o: %.S
#  recipe to execute (内置):
	$(COMPILE.S) -o $@ $<

%.s: %.S
#  recipe to execute (内置):
	$(PREPROCESS.S) $< > $@

%.mod:

%: %.mod
#  recipe to execute (内置):
	$(COMPILE.mod) -o $@ -e $@ $^

%.o: %.mod
#  recipe to execute (内置):
	$(COMPILE.mod) -o $@ $<

%.sym:

%.def:

%.sym: %.def
#  recipe to execute (内置):
	$(COMPILE.def) -o $@ $<

%.h:

%.info:

%.dvi:

%.tex:

%.dvi: %.tex
#  recipe to execute (内置):
	$(TEX) $<

%.texinfo:

%.info: %.texinfo
#  recipe to execute (内置):
	$(MAKEINFO) $(MAKEINFO_FLAGS) $< -o $@

%.dvi: %.texinfo
#  recipe to execute (内置):
	$(TEXI2DVI) $(TEXI2DVI_FLAGS) $<

%.texi:

%.info: %.texi
#  recipe to execute (内置):
	$(MAKEINFO) $(MAKEINFO_FLAGS) $< -o $@

%.dvi: %.texi
#  recipe to execute (内置):
	$(TEXI2DVI) $(TEXI2DVI_FLAGS) $<

%.txinfo:

%.info: %.txinfo
#  recipe to execute (内置):
	$(MAKEINFO) $(MAKEINFO_FLAGS) $< -o $@

%.dvi: %.txinfo
#  recipe to execute (内置):
	$(TEXI2DVI) $(TEXI2DVI_FLAGS) $<

%.w:

%.c: %.w
#  recipe to execute (内置):
	$(CTANGLE) $< - $@

%.tex: %.w
#  recipe to execute (内置):
	$(CWEAVE) $< - $@

%.ch:

%.web:

%.p: %.web
#  recipe to execute (内置):
	$(TANGLE) $<

%.tex: %.web
#  recipe to execute (内置):
	$(WEAVE) $<

%.sh:

%: %.sh
#  recipe to execute (内置):
	cat $< >$@ 
	 chmod a+x $@

%.elc:

%.el:

(%): %
#  recipe to execute (内置):
	$(AR) $(ARFLAGS) $@ $<

%.out: %
#  recipe to execute (内置):
	@rm -f $@ 
	 cp $< $@

%.c: %.w %.ch
#  recipe to execute (内置):
	$(CTANGLE) $^ $@

%.tex: %.w %.ch
#  recipe to execute (内置):
	$(CWEAVE) $^ $@

%:: %,v
#  recipe to execute (内置):
	$(CHECKOUT,v)

%:: RCS/%,v
#  recipe to execute (内置):
	$(CHECKOUT,v)

%:: RCS/%
#  recipe to execute (内置):
	$(CHECKOUT,v)

%:: s.%
#  recipe to execute (内置):
	$(GET) $(GFLAGS) $(SCCS_OUTPUT_OPTION) $<

%:: SCCS/s.%
#  recipe to execute (内置):
	$(GET) $(GFLAGS) $(SCCS_OUTPUT_OPTION) $<

# 92 条隐含规则,5 (5.4%) 终端。

# 文件

# 不是一个目标:
.web.p:
#  Builtin rule
#  对隐含规则的搜索尚未完成。
#  从不检查修改时间。
#  文件尚未被更新。
#  recipe to execute (内置):
	$(TANGLE) $<

# 不是一个目标:
.l.r:
#  Builtin rule
#  对隐含规则的搜索尚未完成。
#  从不检查修改时间。
#  文件尚未被更新。
#  recipe to execute (内置):
	$(LEX.l) $< > $@ 
	 mv -f lex.yy.r $@

# 不是一个目标:
.dvi:
#  Builtin rule
#  对隐含规则的搜索尚未完成。
#  从不检查修改时间。
#  文件尚未被更新。

# 不是一个目标:
.ym:
#  Builtin rule
#  对隐含规则的搜索尚未完成。
#  从不检查修改时间。
#  文件尚未被更新。

# 不是一个目标:
.f.o:
#  Builtin rule
#  对隐含规则的搜索尚未完成。
#  从不检查修改时间。
#  文件尚未被更新。
#  recipe to execute (内置):
	$(COMPILE.f) $(OUTPUT_OPTION) $<

# 不是一个目标:
.l:
#  Builtin rule
#  对隐含规则的搜索尚未完成。
#  从不检查修改时间。
#  文件尚未被更新。

# 不是一个目标:
.m:
#  Builtin rule
#  对隐含规则的搜索尚未完成。
#  从不检查修改时间。
#  文件尚未被更新。
#  recipe to execute (内置):
	$(LINK.m) $^ $(LOADLIBES) $(LDLIBS) -o $@

# 不是一个目标:
.ln:
#  Builtin rule
#  对隐含规则的搜索尚未完成。
#  从不检查修改时间。
#  文件尚未被更新。

# 不是一个目标:
.o:
#  Builtin rule
#  对隐含规则的搜索尚未完成。
#  从不检查修改时间。
#  文件尚未被更新。
#  recipe to execute (内置):
	$(LINK.o) $^ $(LOADLIBES) $(LDLIBS) -o $@

# 不是一个目标:
.y:
#  Builtin rule
#  对隐含规则的搜索尚未完成。
#  从不检查修改时间。
#  文件尚未被更新。

# 不是一个目标:
.def.sym:
#  Builtin rule
#  对隐含规则的搜索尚未完成。
#  从不检查修改时间。
#  文件尚未被更新。
#  recipe to execute (内置):
	$(COMPILE.def) -o $@ $<

# 不是一个目标:
.p.o:
#  Builtin rule
#  对隐含规则的搜索尚未完成。
#  从不检查修改时间。
#  文件尚未被更新。
#  recipe to execute (内置):
	$(COMPILE.p) $(OUTPUT_OPTION) $<

# 不是一个目标:
.p:
#  Builtin rule
#  对隐含规则的搜索尚未完成。
#  从不检查修改时间。
#  文件尚未被更新。
#  recipe to execute (内置):
	$(LINK.p) $^ $(LOADLIBES) $(LDLIBS) -o $@

# 不是一个目标:
.txinfo.dvi:
#  Builtin rule
#  对隐含规则的搜索尚未完成。
#  从不检查修改时间。
#  文件尚未被更新。
#  recipe to execute (内置):
	$(TEXI2DVI) $(TEXI2DVI_FLAGS) $<

# 不是一个目标:
.a:
#  Builtin rule
#  对隐含规则的搜索尚未完成。
#  从不检查修改时间。
#  文件尚未被更新。

# 不是一个目标:
.yl:
#  Builtin rule
#  对隐含规则的搜索尚未完成。
#  从不检查修改时间。
#  文件尚未被更新。

# 不是一个目标:
.l.ln:
#  Builtin rule
#  对隐含规则的搜索尚未完成。
#  从不检查修改时间。
#  文件尚未被更新。
#  recipe to execute (内置):
	@$(RM) $*.c
	 $(LEX.l) $< > $*.c
	$(LINT.c) -i $*.c -o $@
	 $(RM) $*.c

# 不是一个目标:
.F.o:
#  Builtin rule
#  对隐含规则的搜索尚未完成。
#  从不检查修改时间。
#  文件尚未被更新。
#  recipe to execute (内置):
	$(COMPILE.F) $(OUTPUT_OPTION) $<

# 不是一个目标:
.texi.info:
#  Builtin rule
#  对隐含规则的搜索尚未完成。
#  从不检查修改时间。
#  文件尚未被更新。
#  recipe to execute (内置):
	$(MAKEINFO) $(MAKEINFO_FLAGS) $< -o $@

# 不是一个目标:
.w.c:
#  Builtin rule
#  对隐含规则的搜索尚未完成。
#  从不检查修改时间。
#  文件尚未被更新。
#  recipe to execute (内置):
	$(CTANGLE) $< - $@

# 不是一个目标:
.texi.dvi:
#  Builtin rule
#  对隐含规则的搜索尚未完成。
#  从不检查修改时间。
#  文件尚未被更新。
#  recipe to execute (内置):
	$(TEXI2DVI) $(TEXI2DVI_FLAGS) $<

# 不是一个目标:
.ch:
#  Builtin rule
#  对隐含规则的搜索尚未完成。
#  从不检查修改时间。
#  文件尚未被更新。

# 不是一个目标:
.m.o:
#  Builtin rule
#  对隐含规则的搜索尚未完成。
#  从不检查修改时间。
#  文件尚未被更新。
#  recipe to execute (内置):
	$(COMPILE.m) $(OUTPUT_OPTION) $<

# 不是一个目标:
.cc:
#  Builtin rule
#  对隐含规则的搜索尚未完成。
#  从不检查修改时间。
#  文件尚未被更新。
#  recipe to execute (内置):
	$(LINK.cc) $^ $(LOADLIBES) $(LDLIBS) -o $@

# 不是一个目标:
.cc.o:
#  Builtin rule
#  对隐含规则的搜索尚未完成。
#  从不检查修改时间。
#  文件尚未被更新。
#  recipe to execute (内置):
	$(COMPILE.cc) $(OUTPUT_OPTION) $<

# 不是一个目标:
.def:
#  Builtin rule
#  对隐含规则的搜索尚未完成。
#  从不检查修改时间。
#  文件尚未被更新。

# 不是一个目标:
.SUFFIXES: .out .a .ln .o .c .cc .C .cpp .p .f .F .m .r .y .l .ym .yl .s .S .mod .sym .def .h .info .dvi .tex .texinfo .texi .txinfo .w .ch .web .sh .elc .el
#  Builtin rule
#  对隐含规则的搜索尚未完成。
#  从不检查修改时间。
#  文件尚未被更新。

# 不是一个目标:
.c.o:
#  Builtin rule
#  对隐含规则的搜索尚未完成。
#  从不检查修改时间。
#  文件尚未被更新。
#  recipe to execute (内置):
	$(COMPILE.c) $(OUTPUT_OPTION) $<

# 不是一个目标:
.r.o:
#  Builtin rule
#  对隐含规则的搜索尚未完成。
#  从不检查修改时间。
#  文件尚未被更新。
#  recipe to execute (内置):
	$(COMPILE.r) $(OUTPUT_OPTION) $<

# 不是一个目标:
.r:
#  Builtin rule
#  对隐含规则的搜索尚未完成。
#  从不检查修改时间。
#  文件尚未被更新。
#  recipe to execute (内置):
	$(LINK.r) $^ $(LOADLIBES) $(LDLIBS) -o $@

# 不是一个目标:
.ym.m:
#  Builtin rule
#  对隐含规则的搜索尚未完成。
#  从不检查修改时间。
#  文件尚未被更新。
#  recipe to execute (内置):
	$(YACC.m) $< 
	 mv -f y.tab.c $@

# 不是一个目标:
.y.ln:
#  Builtin rule
#  对隐含规则的搜索尚未完成。
#  从不检查修改时间。
#  文件尚未被更新。
#  recipe to execute (内置):
	$(YACC.y) $< 
	 $(LINT.c) -C$* y.tab.c 
	 $(RM) y.tab.c

# 不是一个目标:
.elc:
#  Builtin rule
#  对隐含规则的搜索尚未完成。
#  从不检查修改时间。
#  文件尚未被更新。

# 不是一个目标:
.l.c:
#  Builtin rule
#  对隐含规则的搜索尚未完成。
#  从不检查修改时间。
#  文件尚未被更新。
#  recipe to execute (内置):
	@$(RM) $@ 
	 $(LEX.l) $< > $@

# 不是一个目标:
.out:
#  Builtin rule
#  对隐含规则的搜索尚未完成。
#  从不检查修改时间。
#  文件尚未被更新。

# 不是一个目标:
.C:
#  Builtin rule
#  对隐含规则的搜索尚未完成。
#  从不检查修改时间。
#  文件尚未被更新。
#  recipe to execute (内置):
	$(LINK.C) $^ $(LOADLIBES) $(LDLIBS) -o $@

# 不是一个目标:
.r.f:
#  Builtin rule
#  对隐含规则的搜索尚未完成。
#  从不检查修改时间。
#  文件尚未被更新。
#  recipe to execute (内置):
	$(PREPROCESS.r) $(OUTPUT_OPTION) $<

# 不是一个目标:
.S:
#  Builtin rule
#  对隐含规则的搜索尚未完成。
#  从不检查修改时间。
#  文件尚未被更新。
#  recipe to execute (内置):
	$(LINK.S) $^ $(LOADLIBES) $(LDLIBS) -o $@

# 不是一个目标:
.texinfo.info:
#  Builtin rule
#  对隐含规则的搜索尚未完成。
#  从不检查修改时间。
#  文件尚未被更新。
#  recipe to execute (内置):
	$(MAKEINFO) $(MAKEINFO_FLAGS) $< -o $@

# 不是一个目标:
.c:
#  Builtin rule
#  对隐含规则的搜索尚未完成。
#  从不检查修改时间。
#  文件尚未被更新。
#  recipe to execute (内置):
	$(LINK.c) $^ $(LOADLIBES) $(LDLIBS) -o $@

# 不是一个目标:
.w.tex:
#  Builtin rule
#  对隐含规则的搜索尚未完成。
#  从不检查修改时间。
#  文件尚未被更新。
#  recipe to execute (内置):
	$(CWEAVE) $< - $@

# 不是一个目标:
.c.ln:
#  Builtin rule
#  对隐含规则的搜索尚未完成。
#  从不检查修改时间。
#  文件尚未被更新。
#  recipe to execute (内置):
	$(LINT.c) -C$* $<

# 不是一个目标:
.s.o:
#  Builtin rule
#  对隐含规则的搜索尚未完成。
#  从不检查修改时间。
#  文件尚未被更新。
#  recipe to execute (内置):
	$(COMPILE.s) -o $@ $<

# 不是一个目标:
.s:
#  Builtin rule
#  对隐含规则的搜索尚未完成。
#  从不检查修改时间。
#  文件尚未被更新。
#  recipe to execute (内置):
	$(LINK.s) $^ $(LOADLIBES) $(LDLIBS) -o $@

# 不是一个目标:
.texinfo.dvi:
#  Builtin rule
#  对隐含规则的搜索尚未完成。
#  从不检查修改时间。
#  文件尚未被更新。
#  recipe to execute (内置):
	$(TEXI2DVI) $(TEXI2DVI_FLAGS) $<

# 不是一个目标:
.el:
#  Builtin rule
#  对隐含规则的搜索尚未完成。
#  从不检查修改时间。
#  文件尚未被更新。

# 不是一个目标:
.lm.m:
#  Builtin rule
#  对隐含规则的搜索尚未完成。
#  从不检查修改时间。
#  文件尚未被更新。
#  recipe to execute (内置):
	@$(RM) $@ 
	 $(LEX.m) $< > $@

# 不是一个目标:
.y.c:
#  Builtin rule
#  对隐含规则的搜索尚未完成。
#  从不检查修改时间。
#  文件尚未被更新。
#  recipe to execute (内置):
	$(YACC.y) $< 
	 mv -f y.tab.c $@

# 不是一个目标:
.web.tex:
#  Builtin rule
#  对隐含规则的搜索尚未完成。
#  从不检查修改时间。
#  文件尚未被更新。
#  recipe to execute (内置):
	$(WEAVE) $<

# 不是一个目标:
.texinfo:
#  Builtin rule
#  对隐含规则的搜索尚未完成。
#  从不检查修改时间。
#  文件尚未被更新。

# 不是一个目标:
.DEFAULT:
#  对隐含规则的搜索尚未完成。
#  从不检查修改时间。
#  文件尚未被更新。

# 不是一个目标:
.h:
#  Builtin rule
#  对隐含规则的搜索尚未完成。
#  从不检查修改时间。
#  文件尚未被更新。

# 不是一个目标:
.tex.dvi:
#  Builtin rule
#  对隐含规则的搜索尚未完成。
#  从不检查修改时间。
#  文件尚未被更新。
#  recipe to execute (内置):
	$(TEX) $<

# 不是一个目标:
.cpp.o:
#  Builtin rule
#  对隐含规则的搜索尚未完成。
#  从不检查修改时间。
#  文件尚未被更新。
#  recipe to execute (内置):
	$(COMPILE.cpp) $(OUTPUT_OPTION) $<

# 不是一个目标:
.cpp:
#  Builtin rule
#  对隐含规则的搜索尚未完成。
#  从不检查修改时间。
#  文件尚未被更新。
#  recipe to execute (内置):
	$(LINK.cpp) $^ $(LOADLIBES) $(LDLIBS) -o $@

# 不是一个目标:
.C.o:
#  Builtin rule
#  对隐含规则的搜索尚未完成。
#  从不检查修改时间。
#  文件尚未被更新。
#  recipe to execute (内置):
	$(COMPILE.C) $(OUTPUT_OPTION) $<

# 不是一个目标:
.texi:
#  Builtin rule
#  对隐含规则的搜索尚未完成。
#  从不检查修改时间。
#  文件尚未被更新。

# 不是一个目标:
.txinfo:
#  Builtin rule
#  对隐含规则的搜索尚未完成。
#  从不检查修改时间。
#  文件尚未被更新。

# 不是一个目标:
.tex:
#  Builtin rule
#  对隐含规则的搜索尚未完成。
#  从不检查修改时间。
#  文件尚未被更新。

# 不是一个目标:
/dev/null:
#  对隐含规则的搜索已完成。
#  最近更新 2018-05-22 21:37:57.328841653
#  文件已经被更新。
#  更新成功。

# 不是一个目标:
.txinfo.info:
#  Builtin rule
#  对隐含规则的搜索尚未完成。
#  从不检查修改时间。
#  文件尚未被更新。
#  recipe to execute (内置):
	$(MAKEINFO) $(MAKEINFO_FLAGS) $< -o $@

# 不是一个目标:
.sh:
#  Builtin rule
#  对隐含规则的搜索尚未完成。
#  从不检查修改时间。
#  文件尚未被更新。
#  recipe to execute (内置):
	cat $< >$@ 
	 chmod a+x $@

# 不是一个目标:
.S.s:
#  Builtin rule
#  对隐含规则的搜索尚未完成。
#  从不检查修改时间。
#  文件尚未被更新。
#  recipe to execute (内置):
	$(PREPROCESS.S) $< > $@

# 不是一个目标:
.mod:
#  Builtin rule
#  对隐含规则的搜索尚未完成。
#  从不检查修改时间。
#  文件尚未被更新。
#  recipe to execute (内置):
	$(COMPILE.mod) -o $@ -e $@ $^

# 不是一个目标:
.mod.o:
#  Builtin rule
#  对隐含规则的搜索尚未完成。
#  从不检查修改时间。
#  文件尚未被更新。
#  recipe to execute (内置):
	$(COMPILE.mod) -o $@ $<

# 不是一个目标:
.F.f:
#  Builtin rule
#  对隐含规则的搜索尚未完成。
#  从不检查修改时间。
#  文件尚未被更新。
#  recipe to execute (内置):
	$(PREPROCESS.F) $(OUTPUT_OPTION) $<

# 不是一个目标:
.w:
#  Builtin rule
#  对隐含规则的搜索尚未完成。
#  从不检查修改时间。
#  文件尚未被更新。

# 不是一个目标:
.S.o:
#  Builtin rule
#  对隐含规则的搜索尚未完成。
#  从不检查修改时间。
#  文件尚未被更新。
#  recipe to execute (内置):
	$(COMPILE.S) -o $@ $<

# 不是一个目标:
.F:
#  Builtin rule
#  对隐含规则的搜索尚未完成。
#  从不检查修改时间。
#  文件尚未被更新。
#  recipe to execute (内置):
	$(LINK.F) $^ $(LOADLIBES) $(LDLIBS) -o $@

# 不是一个目标:
.web:
#  Builtin rule
#  对隐含规则的搜索尚未完成。
#  从不检查修改时间。
#  文件尚未被更新。

# 不是一个目标:
.sym:
#  Builtin rule
#  对隐含规则的搜索尚未完成。
#  从不检查修改时间。
#  文件尚未被更新。

# 不是一个目标:
.f:
#  Builtin rule
#  对隐含规则的搜索尚未完成。
#  从不检查修改时间。
#  文件尚未被更新。
#  recipe to execute (内置):
	$(LINK.f) $^ $(LOADLIBES) $(LDLIBS) -o $@

# 不是一个目标:
.info:
#  Builtin rule
#  对隐含规则的搜索尚未完成。
#  从不检查修改时间。
#  文件尚未被更新。

# 文件杂凑表状态:
# 负载=73/1024=7%, 重新杂凑=0, 碰撞=396/1476=27%
# VPATH 搜索路径

# No 'vpath' search paths.

# No general ('VPATH' variable) search path.

# strcache buffers: 1 (0) / strings = 457 / storage = 3974 B / avg = 8 B
# current buf: size = 8162 B / used = 3974 B / count = 457 / avg = 8 B

# strcache performance: lookups = 626 / hit rate = 26%
# hash-table stats:
# 负载=457/8192=6%, 重新杂凑=0, 碰撞=168/626=27%
# 在 Thu May 24 10:05:39 2018
 上完成 make 数据基础

 

 

 

 

 

  • 9
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值