2013-05-01 53 views
0

我剛剛更新make錯誤:混合隱和正常規則

GNU Make 3.82 
Built for x86_64-pc-linux-gnu 
Copyright (C) 2010 Free Software Foundation, Inc. 
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> 
This is free software: you are free to change and redistribute it. 
There is NO WARRANTY, to the extent permitted by law. 

和手在此之前make文件工作

MODULE_NAME = module 
$(MODULE_NAME)-objs := Charset.o Connector.o Fpga.o FpgaBus.o FpgaFlash.o I2c.o Key.o Module.o \ 
        Oled.o PhoneAudio.o Splash.o AudioCodecIO.o Connection.o Server.o 
EXTRA_CFLAGS=-I./include2 -I./include -DALLOW_LOWER_CASE 

ifneq ($(KERNELRELEASE),) 

obj-m := $(MODULE_NAME).o 

else 

KDIR := ./build/ 
PWD := $(shell pwd) 

all: 
ARCH=arm CROSS_COMPILE=/usr/bin/arm-softfloat-linux-uclibceabi- $(MAKE) -C $(KDIR) M=$(PWD) modules 

clean: 
ARCH=arm CROSS_COMPILE=/usr/bin/arm-softfloat-linux-uclibceabi- $(MAKE) -C $(KDIR) M=$(PWD) clean 

install: 
ARCH=arm CROSS_COMPILE=/usr/bin/arm-softfloat-linux-uclibceabi- $(MAKE) -C $(KDIR) M=$(PWD) modules_install 

endif 

現在它不與此錯誤

ARCH=arm CROSS_COMPILE=/usr/bin/arm-softfloat-linux-uclibceabi- make -C ./build/ M=/home/liam/Dev/driver modules 
Makefile:23: *** mixed implicit and normal rules. Stop. 
make[1]: Entering directory `/home/shared/firmware/atmel/kernel' 
make: *** [all] Error 2 
make[1]: Leaving directory `/home/shared/firmware/atmel/kernel' 

任何想法是什麼導致這個問題?

編輯:

好吧,我現在有更多的信息。一個自動生成的Makefile從./build/目錄拉入,看起來像這樣。

# Automatically generated by /home/shared/firmware/src/linux/scripts/mkmakefile: don't edit 

VERSION = 2 
PATCHLEVEL = 6 

lastword = $(word $(words $(1)),$(1)) 
makedir := $(dir $(call lastword,$(MAKEFILE_LIST))) 

MAKEARGS := -C /home/shared/firmware/src/linux 
MAKEARGS += O=$(if $(patsubst /%,,$(makedir)),$(CURDIR)/)$(patsubst %/,%,$(makedir)) 

MAKEFLAGS += --no-print-directory 

.PHONY: all $(MAKECMDGOALS) 

all := $(filter-out all Makefile,$(MAKECMDGOALS)) 

all: 
    $(MAKE) $(MAKEARGS) $(all) 

Makefile:; 

$(all) %/: all 
    @: 

看着它,看着其他帖子,這可能現在是一個重複的問題。最後幾行不應該與此版本的make

+0

可能重複的[使混合隱式和正常規則的錯誤](http://stackoverflow.com/questions/13945091/make-error-of-mixed-implicit-and-normal-rules) – 2013-05-18 22:06:38

回答

0

的修復是這種情況正在改變內核編譯生成Makefile

來源:

$(all) %/: all 
    @: 

要:

$(all) : all 

有是other answers,可以解釋這個背後的原因,然後我可以更好地解釋。