LINUX.ORG.RU

Проблемма с Makefile'ом.


0

0

Проблемма такая:

dell ldd # make
make: Цель `default' не требует выполнения команд.
dell ldd # cat Makefile
ifneq ($(KERNELRELEASE),)
obj-m:= hello.o
#skull-objs := skull_init.o skull_clean.o

else
KDIR:= /lib/modules/$(shell uname -r)/build
PWD:= $(shell pwd)

default:
$(MAKE) -C $(KDIR) SUBDIRS=$(PWD) modules

#clean:
#  rm -f *.o *~ core
endifdell ldd # mc

А если раскоментировать часть с clean, то получаю вот что:

dell ldd # make
Makefile:13: *** пропущен разделитель.  Останов.

Вот что в дире:

dell ldd # ls
hello.c  Makefile

Собсно вопрос, как бороться с 

Makefile:13: *** пропущен разделитель.  Останов.

и с 

make: Цель `default' не требует выполнения команд.

Заранее спасибо!!!
★★★★★

Скорее что-то вроде

obj-m:= hello.o
KDIR:= /lib/modules/$(shell uname -r)/build
PWD:= $(shell pwd)

default:
           $(MAKE) -C $(KDIR) SUBDIRS=$(PWD) modules
clean:
           rm -f *.o *.ko

Murr ★★
()
Ответ на: комментарий от Murr

dell ldd # make
Makefile:8: *** пропущен разделитель.  Останов.
dell ldd # cat Makefile
obj-m:= hello.o
KDIR:= /lib/modules/$(shell uname -r)/build
PWD:= $(shell pwd)

default:
    $(MAKE) -C $(KDIR) SUBDIRS=$(PWD) modules
clean:
    rm -f *.o *.ko

таже шняга :(

cyclon ★★★★★
() автор топика
Ответ на: комментарий от cyclon

а ты в курсе, что после цели, в следущей строке где описывается
правило надо первым символом ставить табуляцию?

anonymous
()

У тебя переменные типа $(MAKE) точно установлены? это макефайл связанный с 2.6.x ядром да?
Там разве ничего импортить не нужно чтобы у тебя $(MAKE) и прочее прогрузилось?

Глянь лучще макефайл любого модуля для 2.6.x должно помочь.

godexsoft
()

>#clean: ># rm -f *.o *~ core

возможно у тебя после core стоит лишний пробел или таб. незнаю чей глюк но нелья в makefile между концом строки и последним непробельным символом в строке помещать пробельные символы

только что у себя полечил точно такойже глюк именно таким образом

cvv ★★★★★
()
Ответ на: комментарий от cyclon

cyclon:

а как ты таб ставишь? Если в mc, то при однократном нажатии он ставит пробелы. Чтобы получить таб, нужно на него нажать дважды(и он подсветится).

Murr ★★
()
Ответ на: комментарий от Murr

>Если в mc, то при однократном нажатии он ставит пробелы.

помоемому ето зависит от настроек. если заполнение табов пробелами выключено то он туда вписывает какието управляющие последовательности.

cvv ★★★★★
()
Ответ на: комментарий от cvv

cvv:

может быть. я вроде свой mc не сильно ковырял. должны быть настройки по умолчанию. так вот за ним замечено(и не только на моей машине), что по одному табу он ставит пробелы. по сообщению об ошибке очень похоже на этот самый случай.

Murr ★★
()
Ответ на: комментарий от cvv

Спасибо всем, особенно cvv, я и вправду юзал редактор mc и таб нажимал только один раз, после двукратного нажатия всё стало как надо, ещё раз сенкс :)

cyclon ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.