Mercurial > repo
changeset 8781:345fd6459206
<fizzie> ` ( cd share; bash ./configure )
author | HackBot |
---|---|
date | Sun, 10 Jul 2016 08:58:42 +0000 |
parents | 2eddfbfc5c40 |
children | b1e4c3fdb2e8 |
files | share/candide share/headers.gch |
diffstat | 2 files changed, 32 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/share/candide Sun Jul 10 08:58:42 2016 +0000 @@ -0,0 +1,32 @@ +#!/bin/bash +# compile c from stdin +# candide, kinda + +readinput () { + while read -r -e || { printf %s "$REPLY"; false; } ; do + printf '%s\n' "$REPLY" + done +} + +c=$(readinput) +if ! [[ $c ]] || ! out=$(mktemp); then + echo Error >&2 + exit 1 +fi + +# if you don't write 'main' it assumes that you're writing a full program (with free includes) +# this allows you to use other functions and stuff +# it will get false positives, but who cares? +if [[ $c != *main* ]]; then c=$(cat <<SOURCE +int main(int argc, char *argv[]) { +$c + return 0; +} +SOURCE +); fi + +# will replace -O0 with the parameters +gcc -o "$out" -x c -I /hackenv/share "${@--O0}" /dev/fd/0 <<SOURCE && { "$out" && { rm -f "$out"; true; }; } +#include "headers" /* precompiled headers */ +$c +SOURCE