The scripts now allow one to pass in CC=foo. If a path is specified it'll use that path (for instance in case you want a different version or because in macOS /usr/bin/gcc is actually clang); otherwise the shell will try working it out. If one does not do CC=foo then it'll default to 'cc'. Both try.sh and compile.sh allow this and try.sh will pass CC to compile.sh before running the commands. The CSILENCE variable in the Makefile has been updated as well. It is not possible to silence all warnings with clang but most of them are, at least in macOS clang (not tested linux yet).
129 lines
3.2 KiB
Bash
Executable File
129 lines
3.2 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
#
|
|
# Script to automate the try commands of 1989/westley.
|
|
#
|
|
# If you need to pass a different compiler, say because your compiler is clang,
|
|
# you can use the CC environmental variable like:
|
|
#
|
|
# CC=gcc ./try.sh
|
|
#
|
|
# This will be passed to compile.sh.
|
|
#
|
|
# If CC is empty (not specified) it defaults to 'cc'. After it is set to either
|
|
# 'cc' or the compiler specified it will use 'compile.sh' with the passed in (or
|
|
# default 'cc') CC var to make use of it.
|
|
#
|
|
# If CC is a path it will use that; otherwise it will let the script find the
|
|
# path via the shell. This is useful for this entry in particular because in
|
|
# macOS /usr/bin/gcc is actually clang and some of the versions of this entry
|
|
# will not compile with clang due to defects. Getting any version to compile
|
|
# with clang was an incredible challenge and it seems impossible to get all the
|
|
# versions to compile with clang but if you only have access to clang (for
|
|
# example in macOS /usr/bin/gcc is actually clang) you can at least get some
|
|
# entries to work.
|
|
#
|
|
# But if you have gcc installed, say with MacPorts, you could do something like:
|
|
#
|
|
# CC=/opt/local/bin/gcc-mp-13 ./try.sh
|
|
#
|
|
|
|
# get the compiler using default cc if not specified in the command line
|
|
if [[ -z "$CC" ]]; then
|
|
CC="cc"
|
|
fi
|
|
|
|
# first compile everything or at least try to with the $CC var.
|
|
CC="$CC" ./compile.sh >/dev/null 2>&1
|
|
|
|
# clear the screen after compilation
|
|
|
|
if [[ -e "./westley" ]]; then
|
|
echo "$ echo IOCCC | ./westley" 1>&2
|
|
echo IOCCC | ./westley
|
|
echo
|
|
|
|
echo "$ echo IOCCC | ./westley 1" 1>&2
|
|
echo IOCCC | ./westley 1
|
|
echo
|
|
|
|
echo "$ echo IOCCC | ./westley 1 2" 1>&2
|
|
echo IOCCC | ./westley 1 2
|
|
echo
|
|
|
|
echo "$ echo IOCCC | ./westley 1 2 3" 1>&2
|
|
echo IOCCC | ./westley 1 2 3
|
|
echo
|
|
fi
|
|
|
|
if [[ -e "./ver0" ]]; then
|
|
echo "$ echo IOCCC | ./ver0" 1>&2
|
|
echo IOCCC | ./ver0
|
|
echo
|
|
|
|
echo "$ echo IOCCC | ./ver0 1" 1>&2
|
|
echo IOCCC | ./ver0 1
|
|
echo
|
|
|
|
echo "$ echo IOCCC | ./ver0 1 2" 1>&2
|
|
echo IOCCC | ./ver0 1 2
|
|
echo
|
|
|
|
echo "$ echo IOCCC | ./ver0 1 2 3" 1>&2
|
|
echo IOCCC | ./ver0 1 2 3
|
|
echo
|
|
fi
|
|
|
|
if [[ -e "./ver1" ]]; then
|
|
echo "$ echo Version 1 | ./ver1" 1>&2
|
|
echo Version 1 | ./ver1
|
|
echo
|
|
|
|
echo "$ echo Version 1 | ./ver1 1" 1>&2
|
|
echo Version 1 | ./ver1 1
|
|
echo
|
|
|
|
echo "$ echo Version 1 | ./ver1 1 2" 1>&2
|
|
echo Version 1 | ./ver1 1 2
|
|
echo
|
|
|
|
echo "$ echo Version 1 | ./ver1 1 2 3" 1>&2
|
|
echo Version 1 | ./ver1 1 2 3
|
|
echo
|
|
fi
|
|
|
|
if [[ -e "./ver2" ]]; then
|
|
echo "$ echo Version 2 | ./ver2" 1>&2
|
|
echo Version 2 | ./ver2
|
|
echo
|
|
|
|
echo "$ echo Version 2 | ./ver2 1" 1>&2
|
|
echo Version 2 | ./ver2 1
|
|
echo
|
|
|
|
echo "$ echo Version 2 | ./ver2 1 2" 1>&2
|
|
echo Version 2 | ./ver2 1 2
|
|
echo
|
|
|
|
echo "$ echo Version 2 | ./ver2 1 2 3" 1>&2
|
|
echo Version 2 | ./ver2 1 2 3
|
|
echo
|
|
fi
|
|
|
|
if [[ -e "./ver3" ]]; then
|
|
echo "$ echo Version 3 | ./ver3" 1>&2
|
|
echo Version 3 | ./ver3
|
|
echo
|
|
|
|
echo "$ echo Version 3 | ./ver3 1" 1>&2
|
|
echo Version 3 | ./ver3 1
|
|
echo
|
|
|
|
echo "$ echo Version 3 | ./ver3 1 2" 1>&2
|
|
echo Version 3 | ./ver3 1 2
|
|
echo
|
|
|
|
echo "$ echo Version 3 | ./ver3 1 2 3" 1>&2
|
|
echo Version 3 | ./ver3 1 2 3
|
|
fi
|
|
echo 1>&2
|