#!/bin/sh program="$0" prefix="@PREFIX@" libfix="@PREFIX@" config="" cc="@CC@" infile="" outfile="" idopts="" ccopts="" ldobjs="" idtype="program" idmain="false" cckill="true" _p="" fatal () { echo "$@" >&2 exit 1 } checkarg () { [ $# -gt 1 ] || fatal "option '$1' requires an argument" } banner () { echo "Id Compiler version 1.1" echo "Copyright (c) 2005, 2006, 2007 Ian Piumarta" } copyright () { banner echo "All rights reserved" cat <> .id.ldobjs ;; *) [ -z "$infile" ] || fatal "multiple input files"; infile="$1";; esac shift; done case "$config" in "arch") echo "@SYSARCH@"; exit;; "os") echo "@SYSOS@"; exit;; "TARGET") echo "@TARGET@"; exit;; "PREFIX") echo "@PREFIX@"; exit;; "CC") echo "@CC@"; exit;; "CFLAGS") echo "@CFLAGS@"; exit;; "MFLAGS") echo "@MFLAGS@"; exit;; "OFLAGS") echo "@OFLAGS@"; exit;; "O3FLAGS") echo "@O3FLAGS@"; exit;; "CCFLAGS") echo "@CCFLAGS@"; exit;; "CCFLAGS_O") echo "@CCFLAGS_O@"; exit;; "CCFLAGS_SO") echo "@CCFLAGS_SO@"; exit;; "LDFLAGS") echo "@LDFLAGS@"; exit;; "LDFLAGS_O") echo "@LDFLAGS_O@"; exit;; "LDFLAGS_SO") echo "@LDFLAGS_SO@"; exit;; "LDLIBS") echo "@LDLIBS@"; exit;; "LDLIBS_O") echo "@LDLIBS_O@"; exit;; "LDLIBS_SO") echo "@LDLIBS_SO@"; exit;; "OBJEXT") echo "@OBJEXT@"; exit;; "OBJEXT_O") echo "@OBJEXT_O@"; exit;; "OBJEXT_SO") echo "@OBJEXT_SO@"; exit;; "GCDIR") echo "@GCDIR@"; exit;; "SYSARCH") echo "@SYSARCH@"; exit;; "SYSOS") echo "@SYSOS@"; exit;; ?*) echo "unknown config parameter: $config" >&2; exit 1;; esac case $idtype in program) idflags="-m" ccflags="@CFLAGS@ @MFLAGS@ @CCFLAGS@" ldflags="@LDFLAGS@" idlibs="libid$_p.o gc.a" ldlibs="@LDLIBS@ -lm" soext="@OBJEXT@" ;; object) idflags="-c" ccflags="@CFLAGS@ @MFLAGS@ @CCFLAGS_O@" ldflags="@LDFLAGS_O@" ldlibs="@LDLIBS_O@" soext="@OBJEXT_O@" ;; shared) idflags="" ccflags="@CFLAGS@ @MFLAGS@ @CCFLAGS_SO@" ldflags="@LDFLAGS_SO@" idlibs="" ldlibs="@LDLIBS_SO@" soext="@OBJEXT_SO@" ;; *) echo "this cannot happen" >&2 exit 1 ;; esac if test -s .id.ldobjs; then while read file; do ldobjs="$ldobjs `nm $file | fgrep __id__init__ | awk '{print \"-u\", $3}'`" done < .id.ldobjs fi rm -f .id.ldobjs $idmain && idflags="-m" if [ -z "$infile" ]; then [ -z "$outfile" ] && fatal "no output file specified" else [ -z "$outfile" ] && outfile=${infile%.st}$soext [ "$infile" = "$outfile" ] && fatal "input and output files are the same" ccfile="${outfile}.c" fi if $cckill; then cckill="rm -f" else cckill="true" fi trap "$run $cckill $ccfile; exit 1" 2 3 5 6 10 13 15 for lib in $idlibs; do plibs="${plibs} ${prefix}${lib}" done idlibs="$plibs" ccflags="$ccflags -I${prefix}" [ -z "$prefix" ] || { libfix=${prefix} expr "//$libfix" : '///' >/dev/null || libfix="$PWD/$libfix" LD_LIBRARY_PATH=${LD_LIBRARY_PATH:-${libfix}} export LD_LIBRARY_PATH IDC_LIBDIR=${IDC_LIBDIR:-${libfix}} export IDC_LIBDIR } if [ ! -z "$infile" ]; then $verbose $run ${prefix}idc1 -I$prefix $idopts $idflags $infile -o $ccfile && $run $cc -I$prefix/include $ccflags $ccopts $ccfile -o $outfile $ldflags $ldobjs $idlibs $ldlibs && $run $cckill $ccfile else $verbose $run $cc -I$prefix/include $ccflags $ccopts -o $outfile $ldflags $ldobjs $idlibs $ldlibs fi