kbuild: Allow to specify composite modules with modname-m
This allows to write drm-$(CONFIG_AGP) += drm_agpsupport.o without having to handle CONFIG_AGP=y vs. CONFIG_AGP=m. Only support this syntax for modules, since built-in code depending on something modular cannot work and init/Makefile actually relies on the current semantics. There are a few drivers which adapted to the current semantics out of necessity; these are fixed to also work when the respective subsystem is modular. Acked-by: Peter Chen <peter.chen@freescale.com> [chipidea] Signed-off-by: Michal Marek <mmarek@suse.com>
This commit is contained in:
parent
0046a46a8f
commit
cf4f21938e
@ -211,7 +211,7 @@ void ibmasmfs_unregister(void);
|
||||
void ibmasmfs_add_sp(struct service_processor *sp);
|
||||
|
||||
/* uart */
|
||||
#ifdef CONFIG_SERIAL_8250
|
||||
#if IS_ENABLED(CONFIG_SERIAL_8250)
|
||||
void ibmasm_register_uart(struct service_processor *sp);
|
||||
void ibmasm_unregister_uart(struct service_processor *sp);
|
||||
#else
|
||||
|
@ -62,7 +62,7 @@
|
||||
/* SSEND time before SRP */
|
||||
#define TB_SSEND_SRP (1500) /* minimum 1.5 sec, section:5.1.2 */
|
||||
|
||||
#ifdef CONFIG_USB_OTG_FSM
|
||||
#if IS_ENABLED(CONFIG_USB_OTG_FSM)
|
||||
|
||||
int ci_hdrc_otg_fsm_init(struct ci_hdrc *ci);
|
||||
int ci_otg_fsm_work(struct ci_hdrc *ci);
|
||||
|
@ -485,7 +485,7 @@ static inline int logfs_get_sb_bdev(struct logfs_super *s,
|
||||
#endif
|
||||
|
||||
/* dev_mtd.c */
|
||||
#ifdef CONFIG_MTD
|
||||
#if IS_ENABLED(CONFIG_MTD)
|
||||
int logfs_get_sb_mtd(struct logfs_super *s, int mtdnr);
|
||||
#else
|
||||
static inline int logfs_get_sb_mtd(struct logfs_super *s, int mtdnr)
|
||||
|
@ -372,10 +372,14 @@ endif
|
||||
# <composite-object>-objs := <list of .o files>
|
||||
# or
|
||||
# <composite-object>-y := <list of .o files>
|
||||
# or
|
||||
# <composite-object>-m := <list of .o files>
|
||||
# The -m syntax only works if <composite object> is a module
|
||||
link_multi_deps = \
|
||||
$(filter $(addprefix $(obj)/, \
|
||||
$($(subst $(obj)/,,$(@:.o=-objs))) \
|
||||
$($(subst $(obj)/,,$(@:.o=-y)))), $^)
|
||||
$($(subst $(obj)/,,$(@:.o=-y))) \
|
||||
$($(subst $(obj)/,,$(@:.o=-m)))), $^)
|
||||
|
||||
quiet_cmd_link_multi-y = LD $@
|
||||
cmd_link_multi-y = $(LD) $(ld_flags) -r -o $@ $(link_multi_deps) $(cmd_secanalysis)
|
||||
@ -390,7 +394,7 @@ $(call multi_depend, $(multi-used-y), .o, -objs -y)
|
||||
$(multi-used-m): FORCE
|
||||
$(call if_changed,link_multi-m)
|
||||
@{ echo $(@:.o=.ko); echo $(link_multi_deps); } > $(MODVERDIR)/$(@F:.o=.mod)
|
||||
$(call multi_depend, $(multi-used-m), .o, -objs -y)
|
||||
$(call multi_depend, $(multi-used-m), .o, -objs -y -m)
|
||||
|
||||
targets += $(multi-used-y) $(multi-used-m)
|
||||
|
||||
|
@ -48,7 +48,7 @@ subdir-ym := $(sort $(subdir-y) $(subdir-m))
|
||||
|
||||
# if $(foo-objs) exists, foo.o is a composite object
|
||||
multi-used-y := $(sort $(foreach m,$(obj-y), $(if $(strip $($(m:.o=-objs)) $($(m:.o=-y))), $(m))))
|
||||
multi-used-m := $(sort $(foreach m,$(obj-m), $(if $(strip $($(m:.o=-objs)) $($(m:.o=-y))), $(m))))
|
||||
multi-used-m := $(sort $(foreach m,$(obj-m), $(if $(strip $($(m:.o=-objs)) $($(m:.o=-y)) $($(m:.o=-m))), $(m))))
|
||||
multi-used := $(multi-used-y) $(multi-used-m)
|
||||
single-used-m := $(sort $(filter-out $(multi-used-m),$(obj-m)))
|
||||
|
||||
@ -67,7 +67,7 @@ obj-dirs := $(dir $(multi-objs) $(obj-y))
|
||||
|
||||
# Replace multi-part objects by their individual parts, look at local dir only
|
||||
real-objs-y := $(foreach m, $(filter-out $(subdir-obj-y), $(obj-y)), $(if $(strip $($(m:.o=-objs)) $($(m:.o=-y))),$($(m:.o=-objs)) $($(m:.o=-y)),$(m))) $(extra-y)
|
||||
real-objs-m := $(foreach m, $(obj-m), $(if $(strip $($(m:.o=-objs)) $($(m:.o=-y))),$($(m:.o=-objs)) $($(m:.o=-y)),$(m)))
|
||||
real-objs-m := $(foreach m, $(obj-m), $(if $(strip $($(m:.o=-objs)) $($(m:.o=-y)) $($(m:.o=-m))),$($(m:.o=-objs)) $($(m:.o=-y)) $($(m:.o=-m)),$(m)))
|
||||
|
||||
# Add subdir path
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user