~ubuntu-branches/debian/squeeze/erlang/squeeze

« back to all changes in this revision

Viewing changes to erts/etc/win32/cygwin_tools/vc/emu_cc.sh

  • Committer: Bazaar Package Importer
  • Author(s): Erlang Packagers, Sergei Golovan
  • Date: 2006-12-03 17:07:44 UTC
  • mfrom: (2.1.11 feisty)
  • Revision ID: james.westby@ubuntu.com-20061203170744-rghjwupacqlzs6kv
Tags: 1:11.b.2-4
[ Sergei Golovan ]
Fixed erlang-base and erlang-base-hipe prerm scripts.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#! /bin/sh
 
2
TOOLDIR=$ERL_TOP/erts/etc/win32/cygwin_tools/vc
 
3
COFFIX=$TOOLDIR/coffix
 
4
WTOOLDIR=`(cygpath -d $TOOLDIR 2>/dev/null || cygpath -w $TOOLDIR)`
 
5
 
 
6
# Do primitive 'make'
 
7
newer_exe=`find $TOOLDIR -newer $COFFIX.c -name coffix.exe -print`
 
8
if [ -z $newer_exe ]; then
 
9
    echo recompiling $COFFIX.exe
 
10
    cl.exe -Fe${WTOOLDIR}\\coffix.exe ${WTOOLDIR}\\coffix.c
 
11
    rm -f $COFFIX.obj coffix.obj $COFFIX.pdb coffix.pdb
 
12
fi
 
13
 
 
14
# Try to find out the output filename and remove it from command line
 
15
CMD=""
 
16
OUTFILE=""
 
17
INFILE=""
 
18
SKIP_COFFIX=false
 
19
while test -n "$1" ; do
 
20
    x="$1"
 
21
    case "$x" in
 
22
        -o/*)
 
23
            OUTFILE=`echo $x | sed 's,^-[Io]\(/.*\),\1,g'`;;
 
24
        -o)
 
25
            shift
 
26
            OUTFILE=$1;;
 
27
        -MM)
 
28
            SKIP_COFFIX=true
 
29
            CMD="$CMD \"$x\"";;
 
30
        *.c)
 
31
            INFILE="$INFILE $x";
 
32
            CMD="$CMD \"$x\"";;
 
33
        *)
 
34
            CMD="$CMD \"$x\"";;
 
35
    esac
 
36
    shift
 
37
done
 
38
if [ -z "$INFILE" ]; then
 
39
    echo 'emu_cc.sh: please give an input filename for the compiler' >&2
 
40
    exit 1
 
41
fi    
 
42
if [ -z "$OUTFILE" ]; then
 
43
    OUTFILE=`echo $INFILE | sed 's,\.c$,.o,'`
 
44
fi
 
45
 
 
46
if [ $SKIP_COFFIX = false ]; then
 
47
    n=`echo $INFILE | wc -w`;
 
48
    if [ $n -gt 1 ]; then
 
49
        echo "emu_cc.sh:Error, multiple sources, one object output.";
 
50
        exit 1;
 
51
    fi
 
52
    TEMPFILE=/tmp/tmp_emu_cc$$.o
 
53
    if [ "X$EMU_CC_SH_DEBUG_LOG" != "X" ]; then
 
54
        echo "gcc -o $TEMPFILE -D__WIN32__ -DWIN32 -DWINDOWS -fomit-frame-pointer $CMD" >> $EMU_CC_SH_DEBUG_LOG 2>&1
 
55
    fi
 
56
    eval gcc -o $TEMPFILE -D__WIN32__ -DWIN32 -DWINDOWS -fomit-frame-pointer $CMD
 
57
    RES=$?
 
58
    if [ $RES = 0 ]; then
 
59
        $COFFIX.exe -e `(cygpath -d $TEMPFILE 2>/dev/null || cygpath -w $TEMPFILE)`
 
60
        RES=$?
 
61
        if [ $RES = 0 ]; then
 
62
            cp $TEMPFILE $OUTFILE
 
63
        else
 
64
            echo "emu_cc.sh: fatal: coffix failed!" >&2
 
65
        fi
 
66
    fi
 
67
    rm -f $TEMPFILE
 
68
    exit $RES
 
69
else
 
70
    eval gcc -D__WIN32__ -DWIN32 -DWINDOWS -fomit-frame-pointer $CMD 2>/dev/null
 
71
    exit $?
 
72
fi