build: image: use printf for ModelNameLimit16
Fix syntax error on macos, for substr is undefined results according to the POSIX standard. From expr on macos: According to the POSIX standard, the use of string arguments length, substr, index, or match produces undefined results. In this version of expr, these arguments are treated just as their respective string values. By a simple test Makefile: define ModelNameLimit16 $(shell expr substr "$(word 2, $(subst _, ,$(1)))" 1 16) endef define ModelNameLimit16_2 $(shell printf %.16s "$(word 2, $(subst _, ,$(1)))") endef hello: echo $(call ModelNameLimit16, technicolor_tg582n-telecom-italia) echo $(call ModelNameLimit16_2, technicolor_tg582n-telecom-italia) The same output is produced. echo tg582n-telecom-i tg582n-telecom-i echo tg582n-telecom-i tg582n-telecom-i Signed-off-by: Huangbin Zhan <zhanhb88@gmail.com> [ wrap commit description to 80 columns and improve it ] Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
This commit is contained in:
		 Huangbin Zhan
					Huangbin Zhan
				
			
				
					committed by
					
						 Christian Marangi
						Christian Marangi
					
				
			
			
				
	
			
			
			 Christian Marangi
						Christian Marangi
					
				
			
						parent
						
							88803cb0e6
						
					
				
				
					commit
					2f8ac8bcea
				
			| @@ -4,7 +4,7 @@ IMAGE_KERNEL = $(word 1,$^) | |||||||
| IMAGE_ROOTFS = $(word 2,$^) | IMAGE_ROOTFS = $(word 2,$^) | ||||||
|  |  | ||||||
| define ModelNameLimit16 | define ModelNameLimit16 | ||||||
| $(shell expr substr "$(word 2, $(subst _, ,$(1)))" 1 16) | $(shell printf %.16s "$(word 2, $(subst _, ,$(1)))") | ||||||
| endef | endef | ||||||
|  |  | ||||||
| define rootfs_align | define rootfs_align | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user