#!/bin/sh usage() { cat < Set the install path EOF exit 0 } echo () { printf "%s\n" "$*" ; } cmdexists () { type "$1" >/dev/null 2>&1 ; } trycc () { test -z "$CC" && cmdexists "$1" && CC=$1 ; } prefix=/usr/bin/ CFLAGS="-Wall -Wextra -O2 --std=c23 -Wpedantic -Wformat=2" LDFLAGS= CC= printf "checking for C compiler... " trycc gcc trycc cc trycc clang printf "%s\n" "$CC" for arg ; do case "$arg" in --help|h) usage ;; --prefix=*) prefix=${arg#*=} ;; CFLAGS=*) CFLAGS=${arg#*=} ;; LDFLAGS=*) LDFLAGS=${arg#*=} ;; CC=*) CC=${arg#*=} ;; esac done printf "checking weather C compiler works... " status="fail" tmpc="$(mktemp -d)/test.c" echo "typedef int x;" > "$tmpc" if output=$($CC $CFLAGS -c -o /dev/null "$tmpc" 2>&1) ; then printf "yes\n" else printf "no; %s\n" "$output" exit 1 fi printf "creating config.mak... " printf "PREFIX=%s\n" "$prefix" > config.mak printf "CFLAGS=%s\n" "$CFLAGS" >> config.mak printf "LDFLAGS=%s\n" "$LDFLAGS" >> config.mak printf "CC=%s\n" "$CC" >> config.mak printf "done\n"