Kernel MakefileMakefile: *** mieszane niejawne i normalne zasady
# Modules
/%/: prepare scripts FORCE
$(cmd_crmodverdir)
$(Q)$(MAKE) KBUILD_MODULES=$(if $(CONFIG_MODULES),1) \
$(build)=$(build-dir)
%.ko: prepare scripts FORCE
$(cmd_crmodverdir)
$(Q)$(MAKE) KBUILD_MODULES=$(if $(CONFIG_MODULES),1) \
$(build)=$(build-dir) $(@:.ko=.o)
$(Q)$(MAKE) -f $(srctree)/scripts/Makefile.modpost
wystąpienie błędu Makefile mieszane zasady niejawne i normalne. (do pierwszego ciągu pod podanym kodem)
Myślę, że coś nie tak z składnią /%/, jak mogę to naprawić?
tej pory myślę o oddzielenie Wyklucza to sposób:
# Modules
/: prepare scripts FORCE
$(cmd_crmodverdir)
$(Q)$(MAKE) KBUILD_MODULES=$(if $(CONFIG_MODULES),1) \
$(build)=$(build-dir)
%/: prepare scripts FORCE
$(cmd_crmodverdir)
$(Q)$(MAKE) KBUILD_MODULES=$(if $(CONFIG_MODULES),1) \
$(build)=$(build-dir)
%.ko: prepare scripts FORCE
$(cmd_crmodverdir)
$(Q)$(MAKE) KBUILD_MODULES=$(if $(CONFIG_MODULES),1) \
$(build)=$(build-dir) $(@:.ko=.o)
$(Q)$(MAKE) -f $(srctree)/scripts/Makefile.modpost
Ale to mylące dla mnie.
Dobra, ale czy moje rozwiązanie jest poprawne? O ile rozumiem, muszę to oddzielić w ten sposób, ale wykonanie tej samej 2-krotnie wygląda dla mnie dziwnie. – Cynede
Tak; oddzielenie będzie konieczne. Tak, dwukrotne wypisanie tych samych zasad nie jest wspaniałe. Może utwórz makro dla akcji, a następnie użyj tego w regułach. 'DIRECTORY_BUILD_RULES = $ (cmd_crmodverdir); $ (Q) $ (MAKE) KBUILD_MODULES = $ (jeśli $ (CONFIG_MODULES), 1) $ (kompilacja) = $ (katalog-build) ', następnie:' /: przygotuj skrypty FORCE; $ (DIRECTORY_BUILD_RULES) 'i'% s: przygotowuje skrypty FORCE; $ (DIRECTORY_BUILD_RULES) '. Możesz nawet uczynić listę zależności innym makrem ... –
teraz mówi: zmienna rekursywna 'DIRECTORY_BUILD_RULES 'odwołuje się (ostatecznie). Zatrzymać. – Cynede