SchOS/ports/Makefile
Nexoniarz d0f7acf9eb Initial commit: Schunix as it stands before the SchOS rename
An x86-64 operating system built from xv6, now largely rewritten: SMP,
a copy-on-write root filesystem (SchFS), PCI/USB/virtio drivers, a TTF
rasteriser, and a Linux-numbered syscall ABI.

No history before this point -- the tree was never under version control.
This commit exists so the rename that follows has something to undo to.
2026-08-09 13:47:01 +02:00

34 lines
1.2 KiB
Makefile

# SPDX-License-Identifier: Apache-2.0
# Schunix 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 Schunix 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