include $(TOPDIR)/Make.defs
include mm_heap/Make.defs
include umm_heap/Make.defs
include kmm_heap/Make.defs
include mm_gran/Make.defs
include shm/Make.defs
include iob/Make.defs
include mempool/Make.defs
include kasan/Make.defs
include ubsan/Make.defs
include tlsf/Make.defs
include map/Make.defs
include kmap/Make.defs
include pool_heap/Make.defs
BINDIR ?= bin
ifeq ($(CONFIG_WINDOWS_NATIVE),y)
DELIMS = $(DELIM)$(DELIM)
else
DELIMS = $(DELIM)
endif
CFLAGS += ${INCDIR_PREFIX}$(TOPDIR)$(DELIM)mm
CFLAGS += ${INCDIR_PREFIX}$(TOPDIR)$(DELIM)sched
AOBJS = $(patsubst %.S, $(BINDIR)$(DELIMS)%$(OBJEXT), $(ASRCS))
COBJS = $(patsubst %.c, $(BINDIR)$(DELIMS)%$(OBJEXT), $(CSRCS))
SRCS = $(ASRCS) $(CSRCS)
OBJS = $(AOBJS) $(COBJS)
KBIN = libkmm$(LIBEXT)
BIN ?= libmm$(LIBEXT)
all: $(BIN)
.PHONY: context depend clean distclean
$(AOBJS): $(BINDIR)$(DELIMS)%$(OBJEXT): %.S
$(call ASSEMBLE, $<, $@)
$(COBJS): $(BINDIR)$(DELIMS)%$(OBJEXT): %.c
$(call COMPILE, $<, $@)
$(BIN): $(OBJS)
$(call ARCHIVE, $@, $(OBJS))
ifneq ($(BIN),$(KBIN))
$(KBIN): $(OBJS)
$(Q) $(MAKE) $(KBIN) BIN=$(KBIN) EXTRAFLAGS="$(EXTRAFLAGS)"
endif
bin:
$(Q) mkdir $@
kbin:
$(Q) mkdir $@
context:: bin kbin
makedepfile: $(CSRCS:.c=.ddc) $(ASRCS:.S=.dds)
$(call CATFILE, bin/Make.dep, $^)
$(call DELFILE, $^)
makekdepfile: $(CSRCS:.c=.ddc) $(ASRCS:.S=.dds)
$(call CATFILE, kbin/Make.dep, $^)
$(call DELFILE, $^)
.depend: Makefile $(SRCS) $(TOPDIR)$(DELIM).config
$(Q) $(MAKE) makedepfile OBJPATH="bin"
ifneq ($(CONFIG_BUILD_FLAT),y)
$(Q) $(MAKE) makekdepfile CFLAGS="$(CFLAGS) $(KDEFINE)" OBJPATH="kbin"
endif
$(Q) touch $@
depend: .depend
clean:
$(call DELFILE, $(BIN))
$(call DELFILE, $(KBIN))
$(call CLEAN)
distclean:: clean
$(call DELDIR, bin)
$(call DELDIR, kbin)
$(call DELFILE, .depend)
-include bin$(DELIM)Make.dep
-include kbin$(DELIM)Make.dep