今天在编译h3520d SDK的时候,编译到busybox的时候,出现这样的情况:
/itc_work/hi3520D_SDK_V1.0.4.0/osdrv/busybox/busybox-1.16.1/Makefile:431: *** mixed implicit and normal rules: deprecated syntax
/itc_work/hi3520D_SDK_V1.0.4.0/osdrv/busybox/busybox-1.16.1/Makefile:1279: *** mixed implicit and normal rules: deprecated syntax
后来查资料发现:是我目前系统(ubuntu16.04.3)系统的make工具太新导致,而busybox里面的makefile目前的无法兼容新版本,改呗:
root@ubuntu:/itc_work/hi3520D_SDK_V1.0.4.0/osdrv/busybox/busybox-1.16.1# vi Makefile
431 config %config: scripts_basic outputmakefile FORCE 改成
431 %config: scripts_basic outputmakefile FORCE
还有是:
1279 /%/: prepare scripts FORCE 改成
1279 %/: prepare scripts FORCE
不过我修改完上面的还是编译部通过,分析一下osdrv顶层的Makefile才知道:
##########################################################################################
214 #task [4] build busybox
215 ##########################################################################################
216 hibusybox:
217 @echo "---------task [4] build busybox"
218 # rm $(OSDRV_DIR)/busybox/busybox-1.16.1 -rf
219 # tar xzf $(OSDRV_DIR)/busybox/busybox-1.16.1.tgz -C $(OSDRV_DIR)/busybox
220 find $(OSDRV_DIR)/busybox/busybox-1.16.1 | xargs touch
221 cp $(OSDRV_DIR)/busybox/busybox-1.16.1/$(BUSYBOX_CFG) $(OSDRV_DIR)/busybox/busybox-1.16.1/.config
222 pushd $(OSDRV_DIR)/busybox/busybox-1.16.1/;make -j 20 >/dev/null;popd
223 make -C $(OSDRV_DIR)/busybox/busybox-1.16.1 install
224 cp -af $(OSDRV_DIR)/busybox/busybox-1.16.1/_install/* $(OSDRV_DIR)/pub/$(PUB_ROOTFS)
225
226 hibusybox_clean:
227 rm $(OSDRV_DIR)/busybox/busybox-1.16.1 -rf
后来我把上面的两行注释掉了,编译才通过