mirror of
				https://e.coding.net/weidongshan/01_all_series_quickstart.git
				synced 2025-11-04 13:05:59 +08:00 
			
		
		
		
	é发布u-boot: make技巧
This commit is contained in:
		
							
								
								
									
										
											BIN
										
									
								
								09_u-boot完全分析与移植/doc_pic/03.2_u-boot的Makefile分析.tif
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								09_u-boot完全分析与移植/doc_pic/03.2_u-boot的Makefile分析.tif
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							@@ -70,3 +70,44 @@
 | 
			
		||||
 | 
			
		||||
## 2. Makefile分析
 | 
			
		||||
 | 
			
		||||
### 2.1 基础知识
 | 
			
		||||
 | 
			
		||||
文档:本Git仓库`01_all_series_quickstart\04_嵌入式Linux应用开发基础知识\doc_pic\04.2018_Makefile`
 | 
			
		||||
 | 
			
		||||
视频:
 | 
			
		||||
 | 
			
		||||

 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
### 2.2 make的技巧
 | 
			
		||||
 | 
			
		||||
打印Makefile的规则和变量:`make -p`
 | 
			
		||||
 | 
			
		||||
可以把make命令规则和变量存入文件:`make -p > 1.txt`
 | 
			
		||||
 | 
			
		||||
然后执行`vi 1.txt`,使用vi命令删除注释:`:g/^#/d`
 | 
			
		||||
 | 
			
		||||
### 2.3 u-boot的默认配置
 | 
			
		||||
 | 
			
		||||
IMX6ULL: `make mx6ull_14x14_evk_defconfig`
 | 
			
		||||
 | 
			
		||||
STM32MP157: `make stm32mp15_trusted_defconfig `
 | 
			
		||||
 | 
			
		||||
分析过程:
 | 
			
		||||
 | 
			
		||||
```shell
 | 
			
		||||
%_defconfig: scripts/kconfig/conf
 | 
			
		||||
	$(Q)$< $(silent) --defconfig=arch/$(SRCARCH)/configs/$@ $(Kconfig)
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
就是:
 | 
			
		||||
 | 
			
		||||
```shell
 | 
			
		||||
UBOOTVERSION = 2017.03; scripts/kconfig/conf --defconfig=arch/../configs/mx6ull_14x14_evk_defconfig Kconfig
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										
											BIN
										
									
								
								09_u-boot完全分析与移植/doc_pic/pic/03_gcc_make_videos.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								09_u-boot完全分析与移植/doc_pic/pic/03_gcc_make_videos.png
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| 
		 After Width: | Height: | Size: 68 KiB  | 
							
								
								
									
										2071
									
								
								09_u-boot完全分析与移植/source/03.1_u-boot源码结构/config.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										2071
									
								
								09_u-boot完全分析与移植/source/03.1_u-boot源码结构/config.txt
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										606
									
								
								09_u-boot完全分析与移植/source/03.2_u-boot的Makefile/01_make技巧/1.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										606
									
								
								09_u-boot完全分析与移植/source/03.2_u-boot的Makefile/01_make技巧/1.txt
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,606 @@
 | 
			
		||||
A=1
 | 
			
		||||
B=2
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
<D = $(patsubst %/,%,$(dir $<))
 | 
			
		||||
?F = $(notdir $?)
 | 
			
		||||
.SHELLFLAGS := -c
 | 
			
		||||
CWEAVE = cweave
 | 
			
		||||
?D = $(patsubst %/,%,$(dir $?))
 | 
			
		||||
A = 1
 | 
			
		||||
B = 2
 | 
			
		||||
@D = $(patsubst %/,%,$(dir $@))
 | 
			
		||||
@F = $(notdir $@)
 | 
			
		||||
MAKE_VERSION := 4.1
 | 
			
		||||
CURDIR := /home/book/100ask_imx6ull-sdk/test_make
 | 
			
		||||
SHELL = /bin/sh
 | 
			
		||||
RM = rm -f
 | 
			
		||||
CO = co
 | 
			
		||||
COMPILE.mod = $(M2C) $(M2FLAGS) $(MODFLAGS) $(TARGET_ARCH)
 | 
			
		||||
_ = /usr/bin/make
 | 
			
		||||
PREPROCESS.F = $(FC) $(FFLAGS) $(CPPFLAGS) $(TARGET_ARCH) -F
 | 
			
		||||
LINK.m = $(OBJC) $(OBJCFLAGS) $(CPPFLAGS) $(LDFLAGS) $(TARGET_ARCH)
 | 
			
		||||
LINK.o = $(CC) $(LDFLAGS) $(TARGET_ARCH)
 | 
			
		||||
OUTPUT_OPTION = -o $@
 | 
			
		||||
COMPILE.cpp = $(COMPILE.cc)
 | 
			
		||||
MAKEFILE_LIST :=  Makefile b_makefile
 | 
			
		||||
GNUMAKEFLAGS := 
 | 
			
		||||
LINK.p = $(PC) $(PFLAGS) $(CPPFLAGS) $(LDFLAGS) $(TARGET_ARCH)
 | 
			
		||||
XDG_DATA_DIRS = /usr/local/share:/usr/share:/var/lib/snapd/desktop
 | 
			
		||||
DBUS_SESSION_BUS_ADDRESS = unix:path=/run/user/1001/bus
 | 
			
		||||
CC = cc
 | 
			
		||||
CHECKOUT,v = +$(if $(wildcard $@),,$(CO) $(COFLAGS) $< $@)
 | 
			
		||||
LESSOPEN = | /usr/bin/lesspipe %s
 | 
			
		||||
CPP = $(CC) -E
 | 
			
		||||
LINK.cc = $(CXX) $(CXXFLAGS) $(CPPFLAGS) $(LDFLAGS) $(TARGET_ARCH)
 | 
			
		||||
SSH_CONNECTION = 192.168.37.1 57533 192.168.37.134 22
 | 
			
		||||
PATH = /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/home/book/100ask_imx6ull-sdk/ToolChain/arm-buildroot-linux-gnueabihf_sdk-buildroot/bin
 | 
			
		||||
LD = ld
 | 
			
		||||
TEXI2DVI = texi2dvi
 | 
			
		||||
YACC = yacc
 | 
			
		||||
SSH_TTY = /dev/pts/1
 | 
			
		||||
XDG_RUNTIME_DIR = /run/user/1001
 | 
			
		||||
ARFLAGS = rv
 | 
			
		||||
LINK.r = $(FC) $(FFLAGS) $(RFLAGS) $(LDFLAGS) $(TARGET_ARCH)
 | 
			
		||||
LINT = lint
 | 
			
		||||
COMPILE.f = $(FC) $(FFLAGS) $(TARGET_ARCH) -c
 | 
			
		||||
LINT.c = $(LINT) $(LINTFLAGS) $(CPPFLAGS) $(TARGET_ARCH)
 | 
			
		||||
YACC.m = $(YACC) $(YFLAGS)
 | 
			
		||||
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
 | 
			
		||||
LS_COLORS = rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=00:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.zst=01;31:*.tzst=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:*.wim=01;31:*.swm=01;31:*.dwm=01;31:*.esd=01;31:*.jpg=01;35:*.jpeg=01;35:*.mjpg=01;35:*.mjpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.m4a=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.oga=00;36:*.opus=00;36:*.spx=00;36:*.xspf=00;36:
 | 
			
		||||
GET = get
 | 
			
		||||
%F = $(notdir $%)
 | 
			
		||||
DISPLAY = localhost:10.0
 | 
			
		||||
COMPILE.F = $(FC) $(FFLAGS) $(CPPFLAGS) $(TARGET_ARCH) -c
 | 
			
		||||
CTANGLE = ctangle
 | 
			
		||||
.LIBPATTERNS = lib%.so lib%.a
 | 
			
		||||
LINK.C = $(LINK.cc)
 | 
			
		||||
PWD = /home/book/100ask_imx6ull-sdk/test_make
 | 
			
		||||
LINK.S = $(CC) $(ASFLAGS) $(CPPFLAGS) $(LDFLAGS) $(TARGET_MACH)
 | 
			
		||||
PREPROCESS.r = $(FC) $(FFLAGS) $(RFLAGS) $(TARGET_ARCH) -F
 | 
			
		||||
*D = $(patsubst %/,%,$(dir $*))
 | 
			
		||||
LINK.c = $(CC) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) $(TARGET_ARCH)
 | 
			
		||||
LINK.s = $(CC) $(ASFLAGS) $(LDFLAGS) $(TARGET_MACH)
 | 
			
		||||
HOME = /home/book
 | 
			
		||||
LESSCLOSE = /usr/bin/lesspipe %s %s
 | 
			
		||||
LOGNAME = book
 | 
			
		||||
^D = $(patsubst %/,%,$(dir $^))
 | 
			
		||||
MAKELEVEL := 0
 | 
			
		||||
COMPILE.m = $(OBJC) $(OBJCFLAGS) $(CPPFLAGS) $(TARGET_ARCH) -c
 | 
			
		||||
MAKE = $(MAKE_COMMAND)
 | 
			
		||||
SHLVL = 1
 | 
			
		||||
AS = as
 | 
			
		||||
PREPROCESS.S = $(CC) -E $(CPPFLAGS)
 | 
			
		||||
COMPILE.p = $(PC) $(PFLAGS) $(CPPFLAGS) $(TARGET_ARCH) -c
 | 
			
		||||
XDG_SESSION_ID = 64
 | 
			
		||||
USER = book
 | 
			
		||||
FC = f77
 | 
			
		||||
.DEFAULT_GOAL := all
 | 
			
		||||
%D = $(patsubst %/,%,$(dir $%))
 | 
			
		||||
WEAVE = weave
 | 
			
		||||
MAKE_COMMAND := make
 | 
			
		||||
LINK.cpp = $(LINK.cc)
 | 
			
		||||
F77 = $(FC)
 | 
			
		||||
OLDPWD = /home/book/100ask_imx6ull-sdk/Uboot-2017.03
 | 
			
		||||
.VARIABLES := 
 | 
			
		||||
PC = pc
 | 
			
		||||
*F = $(notdir $*)
 | 
			
		||||
COMPILE.def = $(M2C) $(M2FLAGS) $(DEFFLAGS) $(TARGET_ARCH)
 | 
			
		||||
LEX = lex
 | 
			
		||||
ARCH = arm
 | 
			
		||||
MAKEFLAGS = p
 | 
			
		||||
MFLAGS = -p
 | 
			
		||||
SSH_CLIENT = 192.168.37.1 57533 22
 | 
			
		||||
MAIL = /var/mail/book
 | 
			
		||||
LEX.l = $(LEX) $(LFLAGS) -t
 | 
			
		||||
LEX.m = $(LEX) $(LFLAGS) -t
 | 
			
		||||
+D = $(patsubst %/,%,$(dir $+))
 | 
			
		||||
COMPILE.r = $(FC) $(FFLAGS) $(RFLAGS) $(TARGET_ARCH) -c
 | 
			
		||||
+F = $(notdir $+)
 | 
			
		||||
M2C = m2c
 | 
			
		||||
CROSS_COMPILE = arm-buildroot-linux-gnueabihf-
 | 
			
		||||
MAKEFILES := 
 | 
			
		||||
COMPILE.cc = $(CXX) $(CXXFLAGS) $(CPPFLAGS) $(TARGET_ARCH) -c
 | 
			
		||||
<F = $(notdir $<)
 | 
			
		||||
CXX = g++
 | 
			
		||||
COFLAGS = 
 | 
			
		||||
COMPILE.C = $(COMPILE.cc)
 | 
			
		||||
^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/1
 | 
			
		||||
OBJC = cc
 | 
			
		||||
MAKE_HOST := x86_64-pc-linux-gnu
 | 
			
		||||
TEX = tex
 | 
			
		||||
LANG = en_US.UTF-8
 | 
			
		||||
TERM = xterm
 | 
			
		||||
F77FLAGS = $(FFLAGS)
 | 
			
		||||
LINK.f = $(FC) $(FFLAGS) $(LDFLAGS) $(TARGET_ARCH)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
%.out:
 | 
			
		||||
 | 
			
		||||
%.a:
 | 
			
		||||
 | 
			
		||||
%.ln:
 | 
			
		||||
 | 
			
		||||
%.o:
 | 
			
		||||
 | 
			
		||||
%: %.o
 | 
			
		||||
	$(LINK.o) $^ $(LOADLIBES) $(LDLIBS) -o $@
 | 
			
		||||
 | 
			
		||||
%.c:
 | 
			
		||||
 | 
			
		||||
%: %.c
 | 
			
		||||
	$(LINK.c) $^ $(LOADLIBES) $(LDLIBS) -o $@
 | 
			
		||||
 | 
			
		||||
%.ln: %.c
 | 
			
		||||
	$(LINT.c) -C$* $<
 | 
			
		||||
 | 
			
		||||
%.o: %.c
 | 
			
		||||
	$(COMPILE.c) $(OUTPUT_OPTION) $<
 | 
			
		||||
 | 
			
		||||
%.cc:
 | 
			
		||||
 | 
			
		||||
%: %.cc
 | 
			
		||||
	$(LINK.cc) $^ $(LOADLIBES) $(LDLIBS) -o $@
 | 
			
		||||
 | 
			
		||||
%.o: %.cc
 | 
			
		||||
	$(COMPILE.cc) $(OUTPUT_OPTION) $<
 | 
			
		||||
 | 
			
		||||
%.C:
 | 
			
		||||
 | 
			
		||||
%: %.C
 | 
			
		||||
	$(LINK.C) $^ $(LOADLIBES) $(LDLIBS) -o $@
 | 
			
		||||
 | 
			
		||||
%.o: %.C
 | 
			
		||||
	$(COMPILE.C) $(OUTPUT_OPTION) $<
 | 
			
		||||
 | 
			
		||||
%.cpp:
 | 
			
		||||
 | 
			
		||||
%: %.cpp
 | 
			
		||||
	$(LINK.cpp) $^ $(LOADLIBES) $(LDLIBS) -o $@
 | 
			
		||||
 | 
			
		||||
%.o: %.cpp
 | 
			
		||||
	$(COMPILE.cpp) $(OUTPUT_OPTION) $<
 | 
			
		||||
 | 
			
		||||
%.p:
 | 
			
		||||
 | 
			
		||||
%: %.p
 | 
			
		||||
	$(LINK.p) $^ $(LOADLIBES) $(LDLIBS) -o $@
 | 
			
		||||
 | 
			
		||||
%.o: %.p
 | 
			
		||||
	$(COMPILE.p) $(OUTPUT_OPTION) $<
 | 
			
		||||
 | 
			
		||||
%.f:
 | 
			
		||||
 | 
			
		||||
%: %.f
 | 
			
		||||
	$(LINK.f) $^ $(LOADLIBES) $(LDLIBS) -o $@
 | 
			
		||||
 | 
			
		||||
%.o: %.f
 | 
			
		||||
	$(COMPILE.f) $(OUTPUT_OPTION) $<
 | 
			
		||||
 | 
			
		||||
%.F:
 | 
			
		||||
 | 
			
		||||
%: %.F
 | 
			
		||||
	$(LINK.F) $^ $(LOADLIBES) $(LDLIBS) -o $@
 | 
			
		||||
 | 
			
		||||
%.o: %.F
 | 
			
		||||
	$(COMPILE.F) $(OUTPUT_OPTION) $<
 | 
			
		||||
 | 
			
		||||
%.f: %.F
 | 
			
		||||
	$(PREPROCESS.F) $(OUTPUT_OPTION) $<
 | 
			
		||||
 | 
			
		||||
%.m:
 | 
			
		||||
 | 
			
		||||
%: %.m
 | 
			
		||||
	$(LINK.m) $^ $(LOADLIBES) $(LDLIBS) -o $@
 | 
			
		||||
 | 
			
		||||
%.o: %.m
 | 
			
		||||
	$(COMPILE.m) $(OUTPUT_OPTION) $<
 | 
			
		||||
 | 
			
		||||
%.r:
 | 
			
		||||
 | 
			
		||||
%: %.r
 | 
			
		||||
	$(LINK.r) $^ $(LOADLIBES) $(LDLIBS) -o $@
 | 
			
		||||
 | 
			
		||||
%.o: %.r
 | 
			
		||||
	$(COMPILE.r) $(OUTPUT_OPTION) $<
 | 
			
		||||
 | 
			
		||||
%.f: %.r
 | 
			
		||||
	$(PREPROCESS.r) $(OUTPUT_OPTION) $<
 | 
			
		||||
 | 
			
		||||
%.y:
 | 
			
		||||
 | 
			
		||||
%.ln: %.y
 | 
			
		||||
	$(YACC.y) $< 
 | 
			
		||||
	 $(LINT.c) -C$* y.tab.c 
 | 
			
		||||
	 $(RM) y.tab.c
 | 
			
		||||
 | 
			
		||||
%.c: %.y
 | 
			
		||||
	$(YACC.y) $< 
 | 
			
		||||
	 mv -f y.tab.c $@
 | 
			
		||||
 | 
			
		||||
%.l:
 | 
			
		||||
 | 
			
		||||
%.ln: %.l
 | 
			
		||||
	@$(RM) $*.c
 | 
			
		||||
	 $(LEX.l) $< > $*.c
 | 
			
		||||
	$(LINT.c) -i $*.c -o $@
 | 
			
		||||
	 $(RM) $*.c
 | 
			
		||||
 | 
			
		||||
%.c: %.l
 | 
			
		||||
	@$(RM) $@ 
 | 
			
		||||
	 $(LEX.l) $< > $@
 | 
			
		||||
 | 
			
		||||
%.r: %.l
 | 
			
		||||
	$(LEX.l) $< > $@ 
 | 
			
		||||
	 mv -f lex.yy.r $@
 | 
			
		||||
 | 
			
		||||
%.ym:
 | 
			
		||||
 | 
			
		||||
%.m: %.ym
 | 
			
		||||
	$(YACC.m) $< 
 | 
			
		||||
	 mv -f y.tab.c $@
 | 
			
		||||
 | 
			
		||||
%.yl:
 | 
			
		||||
 | 
			
		||||
%.s:
 | 
			
		||||
 | 
			
		||||
%: %.s
 | 
			
		||||
	$(LINK.s) $^ $(LOADLIBES) $(LDLIBS) -o $@
 | 
			
		||||
 | 
			
		||||
%.o: %.s
 | 
			
		||||
	$(COMPILE.s) -o $@ $<
 | 
			
		||||
 | 
			
		||||
%.S:
 | 
			
		||||
 | 
			
		||||
%: %.S
 | 
			
		||||
	$(LINK.S) $^ $(LOADLIBES) $(LDLIBS) -o $@
 | 
			
		||||
 | 
			
		||||
%.o: %.S
 | 
			
		||||
	$(COMPILE.S) -o $@ $<
 | 
			
		||||
 | 
			
		||||
%.s: %.S
 | 
			
		||||
	$(PREPROCESS.S) $< > $@
 | 
			
		||||
 | 
			
		||||
%.mod:
 | 
			
		||||
 | 
			
		||||
%: %.mod
 | 
			
		||||
	$(COMPILE.mod) -o $@ -e $@ $^
 | 
			
		||||
 | 
			
		||||
%.o: %.mod
 | 
			
		||||
	$(COMPILE.mod) -o $@ $<
 | 
			
		||||
 | 
			
		||||
%.sym:
 | 
			
		||||
 | 
			
		||||
%.def:
 | 
			
		||||
 | 
			
		||||
%.sym: %.def
 | 
			
		||||
	$(COMPILE.def) -o $@ $<
 | 
			
		||||
 | 
			
		||||
%.h:
 | 
			
		||||
 | 
			
		||||
%.info:
 | 
			
		||||
 | 
			
		||||
%.dvi:
 | 
			
		||||
 | 
			
		||||
%.tex:
 | 
			
		||||
 | 
			
		||||
%.dvi: %.tex
 | 
			
		||||
	$(TEX) $<
 | 
			
		||||
 | 
			
		||||
%.texinfo:
 | 
			
		||||
 | 
			
		||||
%.info: %.texinfo
 | 
			
		||||
	$(MAKEINFO) $(MAKEINFO_FLAGS) $< -o $@
 | 
			
		||||
 | 
			
		||||
%.dvi: %.texinfo
 | 
			
		||||
	$(TEXI2DVI) $(TEXI2DVI_FLAGS) $<
 | 
			
		||||
 | 
			
		||||
%.texi:
 | 
			
		||||
 | 
			
		||||
%.info: %.texi
 | 
			
		||||
	$(MAKEINFO) $(MAKEINFO_FLAGS) $< -o $@
 | 
			
		||||
 | 
			
		||||
%.dvi: %.texi
 | 
			
		||||
	$(TEXI2DVI) $(TEXI2DVI_FLAGS) $<
 | 
			
		||||
 | 
			
		||||
%.txinfo:
 | 
			
		||||
 | 
			
		||||
%.info: %.txinfo
 | 
			
		||||
	$(MAKEINFO) $(MAKEINFO_FLAGS) $< -o $@
 | 
			
		||||
 | 
			
		||||
%.dvi: %.txinfo
 | 
			
		||||
	$(TEXI2DVI) $(TEXI2DVI_FLAGS) $<
 | 
			
		||||
 | 
			
		||||
%.w:
 | 
			
		||||
 | 
			
		||||
%.c: %.w
 | 
			
		||||
	$(CTANGLE) $< - $@
 | 
			
		||||
 | 
			
		||||
%.tex: %.w
 | 
			
		||||
	$(CWEAVE) $< - $@
 | 
			
		||||
 | 
			
		||||
%.ch:
 | 
			
		||||
 | 
			
		||||
%.web:
 | 
			
		||||
 | 
			
		||||
%.p: %.web
 | 
			
		||||
	$(TANGLE) $<
 | 
			
		||||
 | 
			
		||||
%.tex: %.web
 | 
			
		||||
	$(WEAVE) $<
 | 
			
		||||
 | 
			
		||||
%.sh:
 | 
			
		||||
 | 
			
		||||
%: %.sh
 | 
			
		||||
	cat $< >$@ 
 | 
			
		||||
	 chmod a+x $@
 | 
			
		||||
 | 
			
		||||
%.elc:
 | 
			
		||||
 | 
			
		||||
%.el:
 | 
			
		||||
 | 
			
		||||
(%): %
 | 
			
		||||
	$(AR) $(ARFLAGS) $@ $<
 | 
			
		||||
 | 
			
		||||
%.out: %
 | 
			
		||||
	@rm -f $@ 
 | 
			
		||||
	 cp $< $@
 | 
			
		||||
 | 
			
		||||
%.c: %.w %.ch
 | 
			
		||||
	$(CTANGLE) $^ $@
 | 
			
		||||
 | 
			
		||||
%.tex: %.w %.ch
 | 
			
		||||
	$(CWEAVE) $^ $@
 | 
			
		||||
 | 
			
		||||
%:: %,v
 | 
			
		||||
	$(CHECKOUT,v)
 | 
			
		||||
 | 
			
		||||
%:: RCS/%,v
 | 
			
		||||
	$(CHECKOUT,v)
 | 
			
		||||
 | 
			
		||||
%:: RCS/%
 | 
			
		||||
	$(CHECKOUT,v)
 | 
			
		||||
 | 
			
		||||
%:: s.%
 | 
			
		||||
	$(GET) $(GFLAGS) $(SCCS_OUTPUT_OPTION) $<
 | 
			
		||||
 | 
			
		||||
%:: SCCS/s.%
 | 
			
		||||
	$(GET) $(GFLAGS) $(SCCS_OUTPUT_OPTION) $<
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
.web.p:
 | 
			
		||||
	$(TANGLE) $<
 | 
			
		||||
 | 
			
		||||
.l.r:
 | 
			
		||||
	$(LEX.l) $< > $@ 
 | 
			
		||||
	 mv -f lex.yy.r $@
 | 
			
		||||
 | 
			
		||||
.dvi:
 | 
			
		||||
 | 
			
		||||
.ym:
 | 
			
		||||
 | 
			
		||||
.f.o:
 | 
			
		||||
	$(COMPILE.f) $(OUTPUT_OPTION) $<
 | 
			
		||||
 | 
			
		||||
.l:
 | 
			
		||||
 | 
			
		||||
.m:
 | 
			
		||||
	$(LINK.m) $^ $(LOADLIBES) $(LDLIBS) -o $@
 | 
			
		||||
 | 
			
		||||
.ln:
 | 
			
		||||
 | 
			
		||||
.o:
 | 
			
		||||
	$(LINK.o) $^ $(LOADLIBES) $(LDLIBS) -o $@
 | 
			
		||||
 | 
			
		||||
.y:
 | 
			
		||||
 | 
			
		||||
.def.sym:
 | 
			
		||||
	$(COMPILE.def) -o $@ $<
 | 
			
		||||
 | 
			
		||||
.p.o:
 | 
			
		||||
	$(COMPILE.p) $(OUTPUT_OPTION) $<
 | 
			
		||||
 | 
			
		||||
.p:
 | 
			
		||||
	$(LINK.p) $^ $(LOADLIBES) $(LDLIBS) -o $@
 | 
			
		||||
 | 
			
		||||
.txinfo.dvi:
 | 
			
		||||
	$(TEXI2DVI) $(TEXI2DVI_FLAGS) $<
 | 
			
		||||
 | 
			
		||||
.a:
 | 
			
		||||
 | 
			
		||||
.yl:
 | 
			
		||||
 | 
			
		||||
.l.ln:
 | 
			
		||||
	@$(RM) $*.c
 | 
			
		||||
	 $(LEX.l) $< > $*.c
 | 
			
		||||
	$(LINT.c) -i $*.c -o $@
 | 
			
		||||
	 $(RM) $*.c
 | 
			
		||||
 | 
			
		||||
.F.o:
 | 
			
		||||
	$(COMPILE.F) $(OUTPUT_OPTION) $<
 | 
			
		||||
 | 
			
		||||
.texi.info:
 | 
			
		||||
	$(MAKEINFO) $(MAKEINFO_FLAGS) $< -o $@
 | 
			
		||||
 | 
			
		||||
.w.c:
 | 
			
		||||
	$(CTANGLE) $< - $@
 | 
			
		||||
 | 
			
		||||
.texi.dvi:
 | 
			
		||||
	$(TEXI2DVI) $(TEXI2DVI_FLAGS) $<
 | 
			
		||||
 | 
			
		||||
.ch:
 | 
			
		||||
 | 
			
		||||
.m.o:
 | 
			
		||||
	$(COMPILE.m) $(OUTPUT_OPTION) $<
 | 
			
		||||
 | 
			
		||||
.cc:
 | 
			
		||||
	$(LINK.cc) $^ $(LOADLIBES) $(LDLIBS) -o $@
 | 
			
		||||
 | 
			
		||||
.cc.o:
 | 
			
		||||
	$(COMPILE.cc) $(OUTPUT_OPTION) $<
 | 
			
		||||
 | 
			
		||||
.def:
 | 
			
		||||
 | 
			
		||||
.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
 | 
			
		||||
 | 
			
		||||
.c.o:
 | 
			
		||||
	$(COMPILE.c) $(OUTPUT_OPTION) $<
 | 
			
		||||
 | 
			
		||||
Makefile:
 | 
			
		||||
 | 
			
		||||
.r.o:
 | 
			
		||||
	$(COMPILE.r) $(OUTPUT_OPTION) $<
 | 
			
		||||
 | 
			
		||||
.r:
 | 
			
		||||
	$(LINK.r) $^ $(LOADLIBES) $(LDLIBS) -o $@
 | 
			
		||||
 | 
			
		||||
.ym.m:
 | 
			
		||||
	$(YACC.m) $< 
 | 
			
		||||
	 mv -f y.tab.c $@
 | 
			
		||||
 | 
			
		||||
.y.ln:
 | 
			
		||||
	$(YACC.y) $< 
 | 
			
		||||
	 $(LINT.c) -C$* y.tab.c 
 | 
			
		||||
	 $(RM) y.tab.c
 | 
			
		||||
 | 
			
		||||
b_makefile:
 | 
			
		||||
 | 
			
		||||
.elc:
 | 
			
		||||
 | 
			
		||||
.l.c:
 | 
			
		||||
	@$(RM) $@ 
 | 
			
		||||
	 $(LEX.l) $< > $@
 | 
			
		||||
 | 
			
		||||
.out:
 | 
			
		||||
 | 
			
		||||
all:
 | 
			
		||||
	@echo A=${A}
 | 
			
		||||
	@echo B=${B}
 | 
			
		||||
 | 
			
		||||
.C:
 | 
			
		||||
	$(LINK.C) $^ $(LOADLIBES) $(LDLIBS) -o $@
 | 
			
		||||
 | 
			
		||||
.r.f:
 | 
			
		||||
	$(PREPROCESS.r) $(OUTPUT_OPTION) $<
 | 
			
		||||
 | 
			
		||||
.S:
 | 
			
		||||
	$(LINK.S) $^ $(LOADLIBES) $(LDLIBS) -o $@
 | 
			
		||||
 | 
			
		||||
.texinfo.info:
 | 
			
		||||
	$(MAKEINFO) $(MAKEINFO_FLAGS) $< -o $@
 | 
			
		||||
 | 
			
		||||
.c:
 | 
			
		||||
	$(LINK.c) $^ $(LOADLIBES) $(LDLIBS) -o $@
 | 
			
		||||
 | 
			
		||||
.w.tex:
 | 
			
		||||
	$(CWEAVE) $< - $@
 | 
			
		||||
 | 
			
		||||
.c.ln:
 | 
			
		||||
	$(LINT.c) -C$* $<
 | 
			
		||||
 | 
			
		||||
.s.o:
 | 
			
		||||
	$(COMPILE.s) -o $@ $<
 | 
			
		||||
 | 
			
		||||
.s:
 | 
			
		||||
	$(LINK.s) $^ $(LOADLIBES) $(LDLIBS) -o $@
 | 
			
		||||
 | 
			
		||||
.texinfo.dvi:
 | 
			
		||||
	$(TEXI2DVI) $(TEXI2DVI_FLAGS) $<
 | 
			
		||||
 | 
			
		||||
.el:
 | 
			
		||||
 | 
			
		||||
.lm.m:
 | 
			
		||||
	@$(RM) $@ 
 | 
			
		||||
	 $(LEX.m) $< > $@
 | 
			
		||||
 | 
			
		||||
.y.c:
 | 
			
		||||
	$(YACC.y) $< 
 | 
			
		||||
	 mv -f y.tab.c $@
 | 
			
		||||
 | 
			
		||||
.web.tex:
 | 
			
		||||
	$(WEAVE) $<
 | 
			
		||||
 | 
			
		||||
.texinfo:
 | 
			
		||||
 | 
			
		||||
.DEFAULT:
 | 
			
		||||
 | 
			
		||||
.h:
 | 
			
		||||
 | 
			
		||||
.tex.dvi:
 | 
			
		||||
	$(TEX) $<
 | 
			
		||||
 | 
			
		||||
.cpp.o:
 | 
			
		||||
	$(COMPILE.cpp) $(OUTPUT_OPTION) $<
 | 
			
		||||
 | 
			
		||||
.cpp:
 | 
			
		||||
	$(LINK.cpp) $^ $(LOADLIBES) $(LDLIBS) -o $@
 | 
			
		||||
 | 
			
		||||
.C.o:
 | 
			
		||||
	$(COMPILE.C) $(OUTPUT_OPTION) $<
 | 
			
		||||
 | 
			
		||||
.texi:
 | 
			
		||||
 | 
			
		||||
.txinfo:
 | 
			
		||||
 | 
			
		||||
.tex:
 | 
			
		||||
 | 
			
		||||
.txinfo.info:
 | 
			
		||||
	$(MAKEINFO) $(MAKEINFO_FLAGS) $< -o $@
 | 
			
		||||
 | 
			
		||||
.sh:
 | 
			
		||||
	cat $< >$@ 
 | 
			
		||||
	 chmod a+x $@
 | 
			
		||||
 | 
			
		||||
.S.s:
 | 
			
		||||
	$(PREPROCESS.S) $< > $@
 | 
			
		||||
 | 
			
		||||
.mod:
 | 
			
		||||
	$(COMPILE.mod) -o $@ -e $@ $^
 | 
			
		||||
 | 
			
		||||
.mod.o:
 | 
			
		||||
	$(COMPILE.mod) -o $@ $<
 | 
			
		||||
 | 
			
		||||
.F.f:
 | 
			
		||||
	$(PREPROCESS.F) $(OUTPUT_OPTION) $<
 | 
			
		||||
 | 
			
		||||
.w:
 | 
			
		||||
 | 
			
		||||
.S.o:
 | 
			
		||||
	$(COMPILE.S) -o $@ $<
 | 
			
		||||
 | 
			
		||||
.F:
 | 
			
		||||
	$(LINK.F) $^ $(LOADLIBES) $(LDLIBS) -o $@
 | 
			
		||||
 | 
			
		||||
.web:
 | 
			
		||||
 | 
			
		||||
.sym:
 | 
			
		||||
 | 
			
		||||
.f:
 | 
			
		||||
	$(LINK.f) $^ $(LOADLIBES) $(LDLIBS) -o $@
 | 
			
		||||
 | 
			
		||||
.info:
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@@ -0,0 +1,7 @@
 | 
			
		||||
A=1
 | 
			
		||||
include b_makefile
 | 
			
		||||
-include c_makefile
 | 
			
		||||
all:
 | 
			
		||||
	@echo A=${A}
 | 
			
		||||
	@echo B=${B}
 | 
			
		||||
	@echo C=${C}
 | 
			
		||||
@@ -0,0 +1 @@
 | 
			
		||||
B=2
 | 
			
		||||
		Reference in New Issue
	
	Block a user