PageRenderTime 12ms CodeModel.GetById 1ms app.highlight 5ms RepoModel.GetById 4ms app.codeStats 0ms

/js/lib/Socket.IO-node/support/expresso/deps/jscoverage/js/build/hcpp

http://github.com/onedayitwillmake/RealtimeMultiplayerNodeJs
Shell | 155 lines | 110 code | 4 blank | 41 comment | 3 complexity | ca03f7eba2f2736a245b0c8f988a59c1 MD5 | raw file
  1#!/bin/sh
  2#
  3# ***** BEGIN LICENSE BLOCK *****
  4# Version: MPL 1.1/GPL 2.0/LGPL 2.1
  5#
  6# The contents of this file are subject to the Mozilla Public License Version
  7# 1.1 (the "License"); you may not use this file except in compliance with
  8# the License. You may obtain a copy of the License at
  9# http://www.mozilla.org/MPL/
 10#
 11# Software distributed under the License is distributed on an "AS IS" basis,
 12# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
 13# for the specific language governing rights and limitations under the
 14# License.
 15#
 16# The Original Code is mozilla.org code.
 17#
 18# The Initial Developer of the Original Code is
 19# Netscape Communications Corporation.
 20# Portions created by the Initial Developer are Copyright (C) 1998
 21# the Initial Developer. All Rights Reserved.
 22#
 23# Contributor(s):
 24#
 25# Alternatively, the contents of this file may be used under the terms of
 26# either of the GNU General Public License Version 2 or later (the "GPL"),
 27# or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
 28# in which case the provisions of the GPL or the LGPL are applicable instead
 29# of those above. If you wish to allow use of your version of this file only
 30# under the terms of either the GPL or the LGPL, and not to allow others to
 31# use your version of this file under the terms of the MPL, indicate your
 32# decision by deleting the provisions above and replace them with the notice
 33# and other provisions required by the GPL or the LGPL. If you do not delete
 34# the provisions above, a recipient may use your version of this file under
 35# the terms of any one of the MPL, the GPL or the LGPL.
 36#
 37# ***** END LICENSE BLOCK *****
 38
 39#
 40# Wrapper for brain-damaged compilers that don't understand -o and -c together.
 41#
 42CXX=`echo $1 | sed -e "s|'||g" -e 's|"||g'`
 43shift
 44DUMMY="XxxXxxX"
 45DASH_C=0
 46DASH_O=0
 47GET_OBJECT=0
 48C_SRC="${DUMMY}"
 49CC_SRC="${DUMMY}"
 50CPP_SRC="${DUMMY}"
 51S_SRC="${DUMMY}"
 52OBJECT="${DUMMY}"
 53NEW_i="${DUMMY}"
 54PLATFORM=`uname -s`
 55
 56for i in $*
 57do
 58	[ ${GET_OBJECT} -eq 1 ]  && {
 59	case $i in
 60		./*/*.o)	OBJECT="$i"
 61			OPTS="${OPTS} -o"
 62   			DASH_O=1
 63			;;
 64		./*.o)	OBJECT="`basename $i`"
 65			i=""
 66   			DASH_O=1
 67			;;
 68		*.o)	if [ $i = `basename $i` ]
 69			then
 70				i=""
 71			else
 72				OPTS="${OPTS} -o"
 73   				DASH_O=1
 74			fi
 75			;;
 76		*)	OPTS="${OPTS} -o $i"
 77   			DASH_O=1
 78			i=""
 79			;;
 80	esac
 81	GET_OBJECT=0
 82	}
 83	case $i in
 84		-c)
 85			DASH_C=1
 86			OPTS="${OPTS} -c"
 87			;;
 88		-o)
 89			GET_OBJECT=1
 90			;;
 91		*.c)
 92			C_SRC="$i"
 93			OPTS="${OPTS} $i"
 94# cc always creates the .o from the .c name
 95			OBJ=`basename ${C_SRC} .c`.o
 96			;;
 97		+.*)
 98			OPTS="${OPTS} $i"
 99			;;
100		*.cpp)
101			CPP_SRC="$i"
102			if [ "${PLATFORM}" = "SCO_SV" ]; then
103				OPTS="${OPTS} +.cpp $i"
104			elif [ "${PLATFORM}" = "IRIX" ]; then
105				NEW_i=`basename ${CPP_SRC} .cpp`.C
106				rm -f ${NEW_i}
107				cp $i ${NEW_i}
108				OPTS="${OPTS} ${NEW_i}"
109			else
110				OPTS="${OPTS} $i"
111			fi
112# cc always creates the .o from the .cpp name
113			OBJ=`basename ${CPP_SRC} .cpp`.o
114			;;
115		*.cc)
116			CC_SRC="$i"
117			OPTS="${OPTS} $i"
118# cc always creates the .o from the .cc name
119			OBJ=`basename ${CC_SRC} .cc`.o
120			;;
121		*.s)
122			S_SRC="$i"
123			OPTS="${OPTS} $i"
124# cc always creates the .o from the .s name
125			OBJ=`basename ${S_SRC} .s`.o
126			;;
127   		*.o)    OBJECT=$i
128			OPTS="${OPTS} $i"
129			;;
130   		*) 	OPTS="${OPTS} $i"
131			;;
132	esac
133done
134
135${CXX} ${OPTS} || exit $?
136rm -f ${NEW_i}
137
138# Really only needed for NSPR now.
139if [ "${PLATFORM}" = "IRIX" -a "$OBJ" != "$OBJECT" ]; then
140	OBJ=$OBJECT
141fi
142
143# LAME!!!
144if [ -f -O ]; then
145	mv -f -- -O ${OBJECT}
146fi
147
148# if there was no -c and -o we're done
149[ ${DASH_C} -eq 1 -a ${DASH_O} -eq 1 ] || exit 0
150
151# if $OBJ and $OBJECT are the same we're done
152[ $OBJ = $OBJECT ] && exit 0
153
154[ -f $OBJ ] && mv -f $OBJ $OBJECT
155