/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. # Wrapper for brain-damaged compilers that don't understand -o and -c together.
  40. #
  41. CXX=`echo $1 | sed -e "s|'||g" -e 's|"||g'`
  42. shift
  43. DUMMY="XxxXxxX"
  44. DASH_C=0
  45. DASH_O=0
  46. GET_OBJECT=0
  47. C_SRC="${DUMMY}"
  48. CC_SRC="${DUMMY}"
  49. CPP_SRC="${DUMMY}"
  50. S_SRC="${DUMMY}"
  51. OBJECT="${DUMMY}"
  52. NEW_i="${DUMMY}"
  53. PLATFORM=`uname -s`
  54. for i in $*
  55. do
  56. [ ${GET_OBJECT} -eq 1 ] && {
  57. case $i in
  58. ./*/*.o) OBJECT="$i"
  59. OPTS="${OPTS} -o"
  60. DASH_O=1
  61. ;;
  62. ./*.o) OBJECT="`basename $i`"
  63. i=""
  64. DASH_O=1
  65. ;;
  66. *.o) if [ $i = `basename $i` ]
  67. then
  68. i=""
  69. else
  70. OPTS="${OPTS} -o"
  71. DASH_O=1
  72. fi
  73. ;;
  74. *) OPTS="${OPTS} -o $i"
  75. DASH_O=1
  76. i=""
  77. ;;
  78. esac
  79. GET_OBJECT=0
  80. }
  81. case $i in
  82. -c)
  83. DASH_C=1
  84. OPTS="${OPTS} -c"
  85. ;;
  86. -o)
  87. GET_OBJECT=1
  88. ;;
  89. *.c)
  90. C_SRC="$i"
  91. OPTS="${OPTS} $i"
  92. # cc always creates the .o from the .c name
  93. OBJ=`basename ${C_SRC} .c`.o
  94. ;;
  95. +.*)
  96. OPTS="${OPTS} $i"
  97. ;;
  98. *.cpp)
  99. CPP_SRC="$i"
  100. if [ "${PLATFORM}" = "SCO_SV" ]; then
  101. OPTS="${OPTS} +.cpp $i"
  102. elif [ "${PLATFORM}" = "IRIX" ]; then
  103. NEW_i=`basename ${CPP_SRC} .cpp`.C
  104. rm -f ${NEW_i}
  105. cp $i ${NEW_i}
  106. OPTS="${OPTS} ${NEW_i}"
  107. else
  108. OPTS="${OPTS} $i"
  109. fi
  110. # cc always creates the .o from the .cpp name
  111. OBJ=`basename ${CPP_SRC} .cpp`.o
  112. ;;
  113. *.cc)
  114. CC_SRC="$i"
  115. OPTS="${OPTS} $i"
  116. # cc always creates the .o from the .cc name
  117. OBJ=`basename ${CC_SRC} .cc`.o
  118. ;;
  119. *.s)
  120. S_SRC="$i"
  121. OPTS="${OPTS} $i"
  122. # cc always creates the .o from the .s name
  123. OBJ=`basename ${S_SRC} .s`.o
  124. ;;
  125. *.o) OBJECT=$i
  126. OPTS="${OPTS} $i"
  127. ;;
  128. *) OPTS="${OPTS} $i"
  129. ;;
  130. esac
  131. done
  132. ${CXX} ${OPTS} || exit $?
  133. rm -f ${NEW_i}
  134. # Really only needed for NSPR now.
  135. if [ "${PLATFORM}" = "IRIX" -a "$OBJ" != "$OBJECT" ]; then
  136. OBJ=$OBJECT
  137. fi
  138. # LAME!!!
  139. if [ -f -O ]; then
  140. mv -f -- -O ${OBJECT}
  141. fi
  142. # if there was no -c and -o we're done
  143. [ ${DASH_C} -eq 1 -a ${DASH_O} -eq 1 ] || exit 0
  144. # if $OBJ and $OBJECT are the same we're done
  145. [ $OBJ = $OBJECT ] && exit 0
  146. [ -f $OBJ ] && mv -f $OBJ $OBJECT