# SPDX-License-Identifier: Apache-2.0
# SchOS ports — third-party software, one directory per port.
# All ports are permissive-licensed (MIT, BSD, 0BSD, Apache 2.0).
#
#   ports/musl/    libc — installs headers/libs to build/ports/musl/prefix
#   ports/mksh/    MirBSD Korn Shell — installed as sysroot/bin/sh
#   ports/toybox/  core utilities — installed as sysroot/bin/<applet>
#
# A port directory holds only a Makefile and optional patches/. Everything
# generated lives in build/ports/<name>/ — see mk/port.mk for the contract.
# Tarballs are cached in dist/ and are never removed by 'clean'.
#
# Order matters: musl must be built before anything that links against it.

# Ports that live in this directory but are deliberately not built by `make`.
# Empty for now; the filter stays because the reason it existed will recur --
# a port whose licence cannot be combined with Apache-2.0 can be kept here for
# local testing but must never be built into a SchOS image.
NOTPORTS :=
PORTS := $(filter-out $(NOTPORTS), \
           $(patsubst %/,%,$(sort $(dir $(wildcard */Makefile)))))

.PHONY: all $(PORTS) clean distclean

all: $(PORTS)

mksh:   musl
toybox: musl

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

clean distclean:
	for p in $(PORTS); do $(MAKE) -C $$p $@; done
