#!/bin/sh # Copyright (c) 2023–2024 Emma Tebibyte # SPDX-License-Identifier: FSFAP # # Copying and distribution of this file, with or without modification, are # permitted in any medium without royalty provided the copyright notice and this # notice are preserved. This file is offered as-is, without any warranty. set -e CFLAGS='-Lbuild/lib -idirafter include -O3' RUSTFLAGS='-Copt-level=z -Ccodegen-units=1 -Cpanic=abort -Clto=y \ -Cstrip=symbols -Ctarget-cpu=native \ --extern sysexits=build/o/libsysexits.rlib' if [ "$1" = "clean" ]; then rm *.mk || true exit 0 fi while test -n "$1"; do case "$1" in clang) CFLAGS="$CFLAGS -Wall" ;; gcc) CFLAGS="$CFLAGS -s -Wl,-z,noseparate-code,-z,nosectionheader -flto" ;; rustc) ;; 'rustc +nightly') RUSTFLAGS="+nightly -Zlocation-detail=none $RUSTFLAGS" ;; *) printf 'Usage: %s [clean | compiler]\n' "$0" exit 64 # sysexits.h(3) EX_USAGE ;; esac shift done printf 'CFLAGS=%s\n' "$CFLAGS" >cc.mk printf 'RUSTFLAGS=%s\n' "$RUSTFLAGS" >rustc.mk