2013-05-01 46 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,可以解释这个背后的原因,然后我可以更好地解释。