Ubuntu 16.04.2編譯環境 arm-linux3.4.5 linux-2.6.22.6
在編譯linux-2.6.22.6版本內核源碼時,根據自己板子需要patch打補丁之後,進行默認配置,即運行
myroot@myroot:~/system/kernel/linux-2.6.22.6$:~/system/kernel/linux-2.6.22.6$ make s3c2410_defconfig
時,出現如下錯誤提示:
Makefile:416: *** mixed implicit and normal rules: deprecated syntax
Makefile:1449: *** mixed implicit and normal rules: deprecated syntax
google了一下,得知是因爲所用版本linux-2.6.22.6算比較舊的版本,而我使用的make使用-v參數可以看到
GNU Make 4.1
是屬於新版本,對於舊版本內核源碼的make的一些規則做了修改,所以出現了這種錯誤提示,所以需要對內核源碼的主Makefile做出如下修改:
首先是第一個錯誤,按照提示定位到416行,看到如下代碼:
config %config: scripts_basic outputmakefile FORCE
這裏需要修改爲
%config %config: scripts_basic outputmakefile FORCE
然後是提示的1449行,代碼如下:
/ %/: prepare scripts FORCE
這裏需要修改爲
%/: prepare scripts FORCE
完成後再次執行make s3c2410_defconfig,即可看到配置順利進行
#
# configuration written to .config
#
由於學習階段使用舊版本的源碼會比較多,而使用的編譯環境和相關工具又是比較新的,這個問題在目前遇到的其他舊版本源碼的Makefile也有遇見過,可以進行類似方法解決。
歡迎交流、討論或者指正!共同進步!