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

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

SRCS = pthread.c
OBJS = $(addprefix build/, $(SRCS:.c=.o)) \
       $(HAL_ARCH)/build/core/hal_user.o
OBJS_LIBC = ../mini-libc/build/malloc.o ../mini-libc/build/stdlib.o ../mini-libc/build/stdio.o

INCLUDES = -I. -I$(KERNEL)/syscalls -I$(HAL)/generic -I../mini-libc

libs : build/lib/libpthread.a

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

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

../mini-libc/build/%.o:
	$(MAKE) -C ../libc -f Makefile.tsar

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

build/lib/libpthread.a: build $(OBJS)
	$(AR) rc $@ $(OBJS) $(OBJS_LIBC)
	$(RANLIB) $@
	cp $(SRCS:.c=.h) $(HAL)/generic/hal_user.h $(KERNEL)/syscalls/shared_syscalls.h build/include/.

.PHONY = build clean


clean:
	rm -f build/*.o build/*.txt build/include/* build/lib/*
