From baa78f8bcde717359d11188a641101722bfa2748 Mon Sep 17 00:00:00 2001 From: Cameron Katri Date: Fri, 8 Apr 2022 18:39:23 -0400 Subject: Initial --- .gitignore | 1 + Makefile | 12 ++++++++++++ cc-run.sh | 35 +++++++++++++++++++++++++++++++++++ 3 files changed, 48 insertions(+) create mode 100644 .gitignore create mode 100644 Makefile create mode 100755 cc-run.sh diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..ea1c5b2 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +cc-run diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..494575c --- /dev/null +++ b/Makefile @@ -0,0 +1,12 @@ +PREFIX ?= ~/.local +DESTDIR?= + +all: cc-run + +install: cc-run + install -d ${DESTDIR}${PREFIX}/bin/ + install -m755 cc-run ${DESTDIR}${PREFIX}/bin/cc-run + ln -sf cc-run ${DESTDIR}${PREFIX}/bin/c++-run + +clean: + rm -f cc-run diff --git a/cc-run.sh b/cc-run.sh new file mode 100755 index 0000000..6d58170 --- /dev/null +++ b/cc-run.sh @@ -0,0 +1,35 @@ +#!/bin/sh +compiler=$(basename "$0" | sed 's|-run$||') +exe=$(mktemp -t cc-run) || exit 1 +src="" +args="" +exeargs="" + +if ! command -v $compiler >/dev/null 2>&1; then + echo "$(basename "$0"): error: can't find compiler: '$compiler'" >&2 + exit 1 +fi + +for arg in "$@"; do + if [ -e "$arg" ] && [ "$src" = "" ]; then + src=$arg + elif [ "$src" != "" ]; then + exeargs="$exeargs $arg" + else + args="$args $arg" + fi +done + +case $compiler in + cc|gcc|gcc-*|clang|clang-*) + args="$args $CPPFLAGS $CFLAGS $LDFLAGS";; + c++|g++|g++-*|clang++|clang++-*) + args="$args $CPPFLAGS $CXXFLAGS $LDFLAGS" +esac + +$compiler $args $src -o $exe || exit 1 + +$exe $exeargs +ret=$? +rm -f $exe +exit $ret -- cgit v1.2.3-56-ge451