INIT-$(CONFIG_HALT) += halt.o
INIT-$(CONFIG_INIT) += init.o
INIT-$(CONFIG_MESG) += mesg.o
-INIT-$(CONFIG_POWEROFF) += poweroff.o
-INIT-$(CONFIG_REBOOT) += reboot.o
-ifeq ($(CONFIG_HALT), y)
+ifeq ($(strip $(CONFIG_HALT)),y)
CONFIG_INIT_SHARED=y
else
-ifeq ($(CONFIG_INIT), y)
-CONFIG_INIT_SHARED=y
-else
-ifeq ($(CONFIG_POWEROFF), y)
-CONFIG_INIT_SHARED=y
-else
-ifeq ($(CONFIG_REBOOT), y)
+ifeq ($(strip $(CONFIG_INIT)),y)
CONFIG_INIT_SHARED=y
else
CONFIG_INIT_SHARED=n
endif
endif
-endif
-endif
-ifeq ($(CONFIG_INIT_SHARED), y)
INIT-$(CONFIG_INIT_SHARED) += init_shared.o
-endif
+ifneq ($(strip $(INIT-y)),)
libraries-y+=$(INIT_DIR)$(INIT_AR)
+endif
+
+INIT_SRC-y:=$(patsubst %.o,$(srcdir)/%.c,$(INIT-y))
+INIT_SRC-a:=$(wildcard $(srcdir)/*.c)
+APPLET_SRC-y+=$(INIT_SRC-y)
+APPLET_SRC-a+=$(INIT_SRC-a)
$(INIT_DIR)$(INIT_AR): $(patsubst %,$(INIT_DIR)%, $(INIT-y))
- $(AR) $(ARFLAGS) $@ $(patsubst %,$(INIT_DIR)%, $(INIT-y))
+ $(do_ar)
$(INIT_DIR)%.o: $(srcdir)/%.c
- $(CC) $(CFLAGS) $(EXTRA_CFLAGS) -c -o $@ $<
-
+ $(compile.c)