emu_cc.sh

来自「OTP是开放电信平台的简称」· Shell 代码 · 共 73 行

SH
73
字号
#! /bin/shTOOLDIR=$ERL_TOP/erts/etc/win32/cygwin_tools/vcCOFFIX=$TOOLDIR/coffixWTOOLDIR=`(cygpath -d $TOOLDIR 2>/dev/null || cygpath -w $TOOLDIR)`# Do primitive 'make'newer_exe=`find $TOOLDIR -newer $COFFIX.c -name coffix.exe -print`if [ -z $newer_exe ]; then    echo recompiling $COFFIX.exe    cl.exe -Fe${WTOOLDIR}\\coffix.exe ${WTOOLDIR}\\coffix.c    rm -f $COFFIX.obj coffix.obj $COFFIX.pdb coffix.pdbfi# Try to find out the output filename and remove it from command lineCMD=""OUTFILE=""INFILE=""SKIP_COFFIX=falsewhile test -n "$1" ; do    x="$1"    case "$x" in	-o/*)	    OUTFILE=`echo $x | sed 's,^-[Io]\(/.*\),\1,g'`;;	-o)	    shift	    OUTFILE=$1;;	-MM)	    SKIP_COFFIX=true	    CMD="$CMD \"$x\"";;	*.c)	    INFILE="$INFILE $x";	    CMD="$CMD \"$x\"";;	*)	    CMD="$CMD \"$x\"";;    esac    shiftdoneif [ -z "$INFILE" ]; then    echo 'emu_cc.sh: please give an input filename for the compiler' >&2    exit 1fi    if [ -z "$OUTFILE" ]; then    OUTFILE=`echo $INFILE | sed 's,\.c$,.o,'`fiif [ $SKIP_COFFIX = false ]; then    n=`echo $INFILE | wc -w`;    if [ $n -gt 1 ]; then	echo "emu_cc.sh:Error, multiple sources, one object output.";	exit 1;    fi    TEMPFILE=/tmp/tmp_emu_cc$$.o    if [ "X$EMU_CC_SH_DEBUG_LOG" != "X" ]; then	echo "gcc -o $TEMPFILE -D__WIN32__ -DWIN32 -DWINDOWS -fomit-frame-pointer $CMD" >> $EMU_CC_SH_DEBUG_LOG 2>&1    fi    eval gcc -o $TEMPFILE -D__WIN32__ -DWIN32 -DWINDOWS -fomit-frame-pointer $CMD    RES=$?    if [ $RES = 0 ]; then	$COFFIX.exe -e `(cygpath -d $TEMPFILE 2>/dev/null || cygpath -w $TEMPFILE)`	RES=$?	if [ $RES = 0 ]; then	    cp $TEMPFILE $OUTFILE	else	    echo "emu_cc.sh: fatal: coffix failed!" >&2	fi    fi    rm -f $TEMPFILE    exit $RESelse    eval gcc -D__WIN32__ -DWIN32 -DWINDOWS -fomit-frame-pointer $CMD 2>/dev/null    exit $?fi

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?