2013-05-01 2 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. 

에 손 전에 메이크업 파일

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) –

답변

0

수정이 버전이이어야한다 커널 빌드가 Makefile 라인에서

생성 변화 :

$(all) %/: all 
    @: 

사람 :이

$(all) : all 

을 이보다 더 나은 이유를 설명 할 수있는 other answers입니다.