dts/Makefile: simplify dtc invocation
The invocation of dtc is significantly more complex that it could be, in order to work around an issue on old versions of dtc, which print a message to stdout every time they run. Remove this workaround, on the assumption that people have or will upgrade to a newer version of dtc. This simplifies the build rule significantly. Related, split the invocation of cpp and dtc into separate commands rather than a pipeline, so that if either fail, it is detected. This has the nice benefit of saving off the result of the pre-processing step, allowing it to be easily inspected. Assuming a new enough dtc (which an earlier patch enforces), dtc will parse #line directives in its input file, and generate correct file and line numbers in error messages, even though cpp is unconditionally applied to its input file. Signed-off-by: Stephen Warren <swarren@nvidia.com> Acked-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
		
							parent
							
								
									6697d55862
								
							
						
					
					
						commit
						cc4f427bbd
					
				|  | @ -16,6 +16,7 @@ | ||||||
| *.patch | *.patch | ||||||
| *.bin | *.bin | ||||||
| *.cfgtmp | *.cfgtmp | ||||||
|  | *.dts.tmp | ||||||
| 
 | 
 | ||||||
| # Build tree | # Build tree | ||||||
| /build-* | /build-* | ||||||
|  |  | ||||||
|  | @ -35,13 +35,8 @@ all:	$(obj).depend $(LIB) | ||||||
| DT_BIN	:= $(obj)dt.dtb | DT_BIN	:= $(obj)dt.dtb | ||||||
| 
 | 
 | ||||||
| $(DT_BIN): $(TOPDIR)/board/$(VENDOR)/dts/$(DEVICE_TREE).dts | $(DT_BIN): $(TOPDIR)/board/$(VENDOR)/dts/$(DEVICE_TREE).dts | ||||||
| 	rc=$$( \
 | 	$(CPP) -P $(DTS_CPPFLAGS) $< -o $(DT_BIN).dts.tmp | ||||||
| 		cat $< | $(CPP) -P $(DTS_CPPFLAGS) - | \
 | 	$(DTC) -R 4 -p 0x1000 -O dtb -o ${DT_BIN} $(DT_BIN).dts.tmp | ||||||
| 		{ { $(DTC) -R 4 -p 0x1000 -O dtb -o ${DT_BIN} - 2>&1 ; \
 |  | ||||||
| 		    echo $$? >&3 ; } | \
 |  | ||||||
| 		  grep -v '^DTC: dts->dtb  on file' ; \
 |  | ||||||
| 	        } 3>&1 1>&2 ) ; \
 |  | ||||||
| 	exit $$rc |  | ||||||
| 
 | 
 | ||||||
| process_lds = \
 | process_lds = \
 | ||||||
| 	$(1) | sed -r -n 's/^OUTPUT_$(2)[ ("]*([^")]*).*/\1/p' | 	$(1) | sed -r -n 's/^OUTPUT_$(2)[ ("]*([^")]*).*/\1/p' | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue