# Makefile for uClibc
#
# Copyright (C) 2002-2003  NEC Electronics Corporation
# Copyright (C) 2002-2003  Miles Bader <miles@gnu.org>
# Copyright (C) 2000-2008 Erik Andersen <andersen@uclibc.org>
#
# Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
#

subdirs += libc/stdlib/malloc

CSRC-y :=	malloc.c calloc.c free.c realloc.c memalign.c \
	heap_alloc.c heap_alloc_at.c heap_free.c

# Turn on malloc debugging if requested
CSRC-$(UCLIBC_MALLOC_DEBUGGING) += malloc_debug.c heap_debug.c
ifeq ($(UCLIBC_MALLOC_DEBUGGING),y)
CFLAGS += -DMALLOC_DEBUGGING -DHEAP_DEBUGGING
ifeq ($(UCLIBC_UCLINUX_BROKEN_MUNMAP),y)
CFLAGS += -DMALLOC_MMB_DEBUGGING
endif
endif

STDLIB_MALLOC_DIR := $(top_srcdir)libc/stdlib/malloc
STDLIB_MALLOC_OUT := $(top_builddir)libc/stdlib/malloc

STDLIB_MALLOC_SRC := $(patsubst %.c,$(STDLIB_MALLOC_DIR)/%.c,$(CSRC-y))
STDLIB_MALLOC_OBJ := $(patsubst %.c,$(STDLIB_MALLOC_OUT)/%.o,$(CSRC-y))

libc-$(MALLOC) += $(STDLIB_MALLOC_OBJ)

objclean-y += CLEAN_libc/stdlib/malloc

CLEAN_libc/stdlib/malloc:
	$(do_rm) $(addprefix $(STDLIB_MALLOC_OUT)/*., o os)

malloc.o free.o realloc.o memalign.o: malloc.h
# Depend on uClinux_config.h to cache changes in __UCLIBC_MALLOC_DEBUGGING__
$(STDLIB_MALLOC_OBJ): $(STDLIB_MALLOC_DIR)/heap.h $(top_builddir)include/bits/uClibc_config.h