all:
	#System
	make -C libc pre
	make -C librtl
	make -C posix pthreadlib
	make -C libc
	make -C posix
	make -C sdk
	make -C system

	#Applications
	make -C linker
	make -C burn
	make -C fruity
	make -C makefs
	make -C xynth
	make ports

PORTS = `tr "\n" " " < portlist`

ports:
	touch portlist # Create if not created already.
	for dir in $(PORTS); do \
		$(MAKE) -C $$dir; \
	done;

$(PORTS):
	$(MAKE) -C $@

.PHONY: ports $(PORTS)

ports_install:
	for dir in $(PORTS); do \
		$(MAKE) -C $$dir install; \
	done;

.PHONY: ports_install

ports_clean:
	for dir in $(PORTS); do \
		$(MAKE) -C $$dir clean; \
	done;

install:
	#System
	make -C librtl install
	make -C libc install
	make -C linker install
	make -C sdk install
	make -C posix install
	make -C system install

	#Applications
	make -C burn install
	make -C fruity install
	make -C makefs install
	make -C xynth install
	make ports_install

clean:
	make -C librtl clean
	make -C libc clean
	make -C linker clean
	make -C burn clean
	make -C fruity clean
	make -C posix clean
	make -C makefs clean
	make -C sdk clean
	make -C xynth clean
	make -C system clean
	make ports_clean
