# SPDX-License-Identifier: Apache-2.0
# mksh (MirBSD Korn Shell) — permissive: https://www.mirbsd.org/mksh.htm
# Installed as /bin/sh — SchOS standardizes on "sh" as the one shell name;
# no ksh/dash/other aliases are installed or looked up by init.

include ../mk/port.mk

MKSH_VERSION := R59c
MKSH_URL     := http://www.mirbsd.org/MirOS/dist/mir/mksh/mksh-$(MKSH_VERSION).tgz

TARBALL := $(DISTDIR)/mksh-$(MKSH_VERSION).tgz

CFLAGS  := -static -D__SCHOS__ -I$(MUSL)/include -fno-stack-protector
LDFLAGS := -static -L$(MUSL)/lib -lc

$(TARBALL): | $(DISTDIR)
	curl -fsSL --tlsv1.0 -o $@ $(MKSH_URL)

download: $(TARBALL)

$(SRCDIR): $(TARBALL)
	mkdir -p $(PORTDIR)
	tar -xzf $< -C $(PORTDIR)
	mv $(PORTDIR)/mksh $@

# Order-only (|) on $(SRCDIR): the extracted tarball never changes, so a
# directory mtime should not trigger a rebuild of an already-built shell.
$(BUILDDIR)/lksh: | $(SRCDIR)
	mkdir -p $(BUILDDIR)
	cd $(BUILDDIR) && \
		CC="$(CC)" CFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS)" \
		sh $(SRCDIR)/Build.sh -r -L

$(SYSROOT)/bin/sh: $(BUILDDIR)/lksh | $(SYSROOT)/bin
	cp $< $@
	chmod 755 $@

install: $(SYSROOT)/bin/sh


clean:
	rm -rf $(PORTDIR)

distclean: clean
	rm -f $(TARBALL)
