# 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) rm -rf $@ $(PORTDIR)/mksh tar -xzf $< -C $(PORTDIR) mv $(PORTDIR)/mksh $@ touch $@ # 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)