# Compile the library and call the Makefile of each sub-directory. #
export # export all variable to sub-Makefile
CC	= mipsel-unknown-elf-gcc
AS	= mipsel-unknown-elf-as
LD	= mipsel-unknown-elf-ld
DU	= mipsel-unknown-elf-objdump

CFLAGS = -Wall -ffreestanding -mno-gpopt -mips32 -g

TRASH= /dev/null||true

LIB_COMPILE+= stdio.o
LIB_COMPILE+= mwmr.o
LIB_COMPILE+= common.o

SOFT_PATH  	= $(cd ..; shell pwd)/

SYS_PATH    = $(SOFT_PATH)sys/
BOOT_PATH   = $(SOFT_PATH)boot/
MAP_PATH    = $(SOFT_PATH)xml/
LIBS_PATH   = $(SOFT_PATH)libs/
BUILD_PATH 	= $(SOFT_PATH)build/
ELF_PATH	= $(SOFT_PATH)build/

INCLUDE		= -I$(LIBS_PATH) -I$(SOFT_PATH) -I$(SYS_PATH) -I$(MAP_PATH)

DIRS=$(shell ls -d */ ) #list all directorys

.PHONY: prepare

all: test prepare $(LIB_COMPILE) 
	set -e; for d in $(DIRS); do $(MAKE)  -C $$d ; echo "Compiling $$d";  done

prepare:
	@mkdir $(BUILD_PATH) 2>$(TRASH)
	@mkdir $(ELF_PATH) 2>$(TRASH)

%.o : $(LIBS_PATH)/%.c
	$(CC) $(CFLAGS) $(INCLUDE) -c -o $(BUILD_PATH)/$@ $<

clean:
	rm -f *.o 
	set -e; for d in $(DIRS); do $(MAKE) clean -C $$d ; done
