Вы сможете использовать свою оригинальную версию, которая использовала EXTRA_CFLAGS
, но просто замените EXTRA_CFLAGS
на ccflags-y
:
debug:
$(MAKE) -C $(KDIR) M=$(PWD) ccflags-y="-DDEBUG" modules
или замените его на CFLAGS_main.o
, чтобы применить CFLAGS к одному объекту:
debug:
$(MAKE) -C $(KDIR) M=$(PWD) CFLAGS_main.o="-DDEBUG" modules
EDIT
Как упоминалось в OP Roger Dueck, установка переменных в командной строке make
имеет глобальный эффект. Он переопределяет любую настройку тех же переменных в make-файлах, что может быть нежелательно, особенно для глобально используемой переменной, такой как ccflags-y
. Чтобы избежать этого, используйте вашу собственную переменную makefile. В «нормальной» части Makefile, которая вызывает $(MAKE)
в части «KBuild», измените цель debug:
на следующую, используя произвольную переменную по вашему выбору (я использовал FOO_CFLAGS
здесь):
debug:
$(MAKE) -C $(KDIR) M=$(PWD) FOO_CFLAGS="-DDEBUG" modules
В части "KBuild" файла Makefile, вызываемого по вышеуказанному правилу, используйте следующее для добавления пользовательских CFLAGS от FOO_CFLAGS
до ccflags-y
:
ccflags-y += $(FOO_CFLAGS)