############################################################################
#                  Makefile for the ALMOS-MKH "mini-libc"                  #
############################################################################

-include ../../params-soft.mk
ifeq ($(ARCH_NAME),)
$(error Please define in ARCH_NAME parameter in params-soft.mk!)
endif

SRCS = ctype.c  dirent.c  fcntl.c  signal.c  stdio.c  stdlib.c  string.c  strings.c  sys/mman.c  sys/stat.c  sys/time.c  sys/wait.c  unistd.c
OBJS = $(addprefix build/, $(SRCS:.c=.o)) \
       $(HAL_ARCH)/build/core/hal_user.o

INCLUDES = -I. -I$(HAL)/generic -I$(LIBPTHREAD_INCLUDE) -I$(LIBALMOSMKH_INCLUDE) -I$(SHARED_INCLUDE)

libs : build/lib/libc.a headers

build :
	@mkdir build
	@mkdir build/sys
	@mkdir build/lib
	@mkdir build/include
	@mkdir build/include/sys

$(HAL_ARCH)/build/core/hal_user.o :
	$(MAKE) -C $(HAL_ARCH)


build/%.o : %.c %.h
	$(CC) $(INCLUDES) $(CFLAGS) -c -o  $@ $<
	$(DU) -D $@ > $@.txt

headers: build
	cp $(SRCS:.c=.h) assert.h build/include/.
	cp sys/*.h build/include/sys/.

build/lib/libc.a: build $(OBJS)
	$(AR) rc $@ $(OBJS)
	ranlib $@
	$(RANLIB) $@

.PHONY = build clean headers


clean:
	rm -rf build/
