include $(TOPDIR)/Make.defs
BIN ?= libbuiltin$(LIBEXT)
BINDIR ?= bin
KBIN = libkbuiltin$(LIBEXT)
KBINDIR = kbin
include compiler-rt/Make.defs
include libgcc/Make.defs
AOBJS = $(addprefix $(BINDIR)$(DELIM), $(ASRCS:.S=$(OBJEXT)))
COBJS = $(addprefix $(BINDIR)$(DELIM), $(CSRCS:.c=$(OBJEXT)))
CXXOBJS = $(addprefix $(BINDIR)$(DELIM), $(CXXSRCS:.cxx=$(OBJEXT)))
CPPOBJS = $(addprefix $(BINDIR)$(DELIM), $(CPPSRCS:.cpp=$(OBJEXT)))
SRCS = $(ASRCS) $(CSRCS) $(CXXSRCS) $(CPPSRCS)
OBJS = $(AOBJS) $(COBJS) $(CXXOBJS) $(CPPOBJS)
all: $(BIN)
.PHONY: depend clean distclean context
$(AOBJS): $(BINDIR)$(DELIM)%$(OBJEXT): %.S
$(call ASSEMBLE, $<, $@)
$(COBJS): $(BINDIR)$(DELIM)%$(OBJEXT): %.c
$(call COMPILE, $<, $@)
$(CXXOBJS): $(BINDIR)$(DELIM)%$(OBJEXT): %.cxx
$(call COMPILEXX, $<, $@)
$(CPPOBJS): $(BINDIR)$(DELIM)%$(OBJEXT): %.cpp
$(call COMPILEXX, $<, $@)
bin:
$(Q) mkdir $@
kbin:
$(Q) mkdir $@
context:: bin kbin
.depend: Makefile $(SRCS) $(TOPDIR)$(DELIM).config
$(Q) touch $@
depend:: .depend
$(BIN): $(OBJS)
$(call ARCHIVE, $@, $(OBJS))
ifneq ($(BIN),$(KBIN))
$(KBIN): $(OBJS)
$(Q) $(MAKE) $(KBIN) BIN=$(KBIN) BINDIR=$(KBINDIR) EXTRAFLAGS="$(EXTRAFLAGS)"
endif
clean:
$(call CLEAN)
$(call DELFILE, $(BIN))
$(call DELFILE, $(KBIN))
distclean:: clean
$(call DELDIR, bin)
$(call DELDIR, kbin)
$(call DELDIR, .depend)