# our default target
.PHONY: all
all:

include $(TOPDIR)/config.mk

LIB := $(obj)built-in.o
LIBGCC = $(obj)libgcc.o
SRCS :=

include Makefile

# Backward compatible: obj-y is preferable
COBJS := $(sort $(COBJS) $(COBJS-y))
SOBJS := $(sort $(SOBJS) $(SOBJS-y))

# Going forward use the following
obj-y := $(sort $(obj-y))
extra-y := $(sort $(extra-y))
lib-y := $(sort $(lib-y))

subdir-y 	:= $(patsubst %/,%,$(filter %/, $(obj-y)))
obj-y		:= $(patsubst %/, %/built-in.o, $(obj-y))
subdir-obj-y	:= $(filter %/built-in.o, $(obj-y))
subdir-obj-y	:= $(addprefix $(obj),$(subdir-obj-y))

SRCS	+= $(COBJS:.o=.c) $(SOBJS:.o=.S) \
 $(wildcard $(obj-y:.o=.c) $(obj-y:.o=.S) $(lib-y:.o=.c) $(lib-y:.o=.S) $(extra-y:.o=.c) $(extra-y:.o=.S))
OBJS	:= $(addprefix $(obj),$(COBJS) $(SOBJS) $(obj-y))

LGOBJS := $(addprefix $(obj),$(sort $(GLSOBJS) $(GLCOBJS)) $(lib-y))

all: $(LIB) $(addprefix $(obj),$(extra-y))

$(LIB):	$(obj).depend $(OBJS)
	$(call cmd_link_o_target, $(OBJS))

ifneq ($(strip $(lib-y)),)
all: $(LIBGCC)

$(LIBGCC): $(obj).depend $(LGOBJS)
	$(call cmd_link_o_target, $(LGOBJS))
endif

ifneq ($(subdir-obj-y),)
# Descending
$(subdir-obj-y): $(subdir-y)

$(subdir-y): FORCE
	$(MAKE) -C $@ -f $(TOPDIR)/scripts/Makefile.build
endif

#########################################################################

# defines $(obj).depend target

include $(TOPDIR)/rules.mk

sinclude $(obj).depend

#########################################################################

.PHONY: FORCE
