59 lines
1.1 KiB
Bash
Executable File
59 lines
1.1 KiB
Bash
Executable File
#!/bin/sh
|
|
|
|
usage() {
|
|
cat <<EOF
|
|
Usage: $0 [OPTION]... [VAR=VALUE]...
|
|
|
|
To assign environment variables (e.g., CC, CFLAGS...), specify them as
|
|
VAR=VALUE.
|
|
|
|
CC C compiler command [detected]
|
|
CFLAGS C compiler flags [-g, ...]
|
|
|
|
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"
|
|
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 ;;
|
|
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"
|