Guest User

Untitled

a guest
Apr 3rd, 2016
151
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 5.71 KB | None | 0 0
  1. #!/bin/bash
  2.  
  3. cc="gcc -include inc.h -I/home/r/deps"
  4. #LINK_LIBS="$(/usr/bin/curl-config --static-libs --cflags)";
  5. LINK_LIBS="$(mysql_config --cflags --libs)"
  6. STEAM_INCLUDE=""
  7. STEAM_LINK=""
  8.  
  9. info()
  10. {
  11.     cat << EOF
  12.     CoDExtended
  13.         Linux
  14.          by
  15.     riicchhaarrd
  16.  
  17.     http://github.com/riicchhaarrd/CoDExtended
  18.     http://cod1.eu/
  19. EOF
  20. }
  21.  
  22. PATCHVERSION=1
  23. uANY=false
  24. uMYSQL=false
  25. uECMASCRIPT=false
  26. DEBUG=true
  27. uPOWERED=false
  28. DEFINES=""
  29.  
  30. while getopts “hdmjp15” qo
  31. do
  32.     case $qo in
  33.     h)
  34.         info
  35.         exit 1
  36.         ;;
  37.     m)
  38.         uMYSQL=true
  39.         uANY=true
  40.         ;;
  41.     j)
  42.         uECMASCRIPT=true
  43.         uANY=true
  44.         ;;
  45.     d)
  46.         DEBUG=true
  47.         ;;
  48.     p)
  49.         uPOWERED=true
  50.         uANY=true
  51.         ;;
  52.     5)
  53.         PATCHVERSION=5
  54.         ;;
  55.     1)
  56.         PATCHVERSION=1
  57.         ;;
  58.     esac
  59. done
  60.  
  61. if [ $PATCHVERSION = 5 ]; then
  62. echo "Call of Duty Patch 1.5"
  63. else
  64. echo "Call of Duty Patch 1.1"
  65. fi
  66.  
  67. if [ $DEBUG = true ]; then
  68. echo "{ CODEXTENDED DEVELOPMENT BUILD }"
  69. else
  70. echo "{ CODEXTENDED RELEASE BUILD }"
  71. fi
  72.  
  73. if [ $uANY = true ]; then
  74. echo "Using: "
  75. fi
  76.  
  77. if [ $uMYSQL = true ]; then
  78.     echo -n "MYSQL, "
  79. fi
  80.  
  81. if [ $uECMASCRIPT = true ]; then
  82.     echo -n "ECMASCRIPT, "
  83. fi
  84.  
  85. if [ $uPOWERED = true ]; then
  86.     echo -n "BRANDED VERSION, "
  87. else
  88.     echo -n "UNBRANDED VERSION, "
  89. fi
  90.  
  91. if [ $uANY = true ]; then
  92. echo ""
  93. fi
  94.  
  95. #Compiling CoDExtended
  96.  
  97. compiler="$cc -Os -O1 -O3 -s -fvisibility=hidden -w -Wl,--exclude-libs,ALL"
  98.  
  99. if [ $DEBUG = true ]; then
  100. compiler="$cc -g -w -Wl,--exclude-libs,ALL"
  101. #compiler="$cc -DxDEBUG -DDEBUG -Os -O1 -O3 -s -fvisibility=hidden -w -Wl,--exclude-libs,ALL"
  102. fi
  103.  
  104. if [ $uMYSQL = true ]; then
  105. DEFINES+="-DuMYSQL "
  106. fi
  107.  
  108. if [ $uPOWERED = true ]; then
  109. DEFINES+="-DxPOWERED "
  110. fi
  111.  
  112. if [ $uECMASCRIPT = true ]; then
  113. DEFINES+="-DBUILD_ECMASCRIPT "
  114. fi
  115.  
  116. if [ $PATCHVERSION = 5 ]; then
  117. DEFINES+="-DCODPATCH=5 "
  118. else
  119. DEFINES+="-DCODPATCH=1 "
  120. fi
  121.  
  122. params="$DEFINES -std=c99 -I. -m32 -fPIC -Wno-write-strings -DSTEAM_SUPPORT=0"
  123. #params="-m32 -fPIC -Wno-write-strings"
  124.  
  125. mkdir -p bin
  126. mkdir -p obj
  127.  
  128. echo -e "\nCOMPILING"
  129.  
  130. #echo "[CPPP]"
  131. #for f in cppp/*.c; do
  132. #   filename=$(basename "$f")
  133. #   extension="${filename##*.}"
  134. #   filename="${filename%.*}"
  135. #   $compiler $params -c cppp/$filename.c -o obj/$filename.o
  136. #done
  137.  
  138.  
  139. echo "[ROOT]"
  140. $compiler $params -c init.c -o obj/init.o
  141. $compiler $params -c librarymodule.c -o obj/librarymodule.o
  142. $compiler $params -c codextended.c -o obj/codextended.o
  143. echo "[COMMON]"
  144. $compiler $params -c cvar.c -o obj/cvar.o
  145. $compiler $params -c files.c -o obj/files.o
  146. $compiler $params -c cmd.c -o obj/cmd.o
  147. $compiler $params -c msg.c -o obj/msg.o
  148. $compiler $params -c curl.c -o obj/curl.o
  149. $compiler $params -c util.c -o obj/util.o
  150. echo "[GAME]"
  151. $compiler $params -c shared.c -o obj/shared.o
  152. $compiler $params -c script.c -o obj/script.o
  153. $compiler $params -c bg_pmove.c -o obj/bg_pmove.o
  154. $compiler $params -c bg_misc.c -o obj/bg_misc.o
  155. $compiler $params -c g_utils.c -o obj/g_utils.o
  156. $compiler $params -c g_spawn.c -o obj/g_spawn.o
  157. $compiler $params -c g_active.c -o obj/g_active.o
  158. $compiler $params -c q_math.c -o obj/q_math.o
  159. echo "[SERVER]"
  160. nasm -f elf sv_snapshot.asm -o obj/sv_snapshot_asm.o
  161. $compiler $params -c sv_snapshot.c -o obj/sv_snapshot.o
  162. $compiler $params -c sv_commands.c -o obj/sv_commands.o
  163. $compiler $params -c sv_client.c -o obj/sv_client.o
  164. $compiler $params -c sv_world.c -o obj/sv_world.o
  165. $compiler $params -c sv_game.c -o obj/sv_game.o
  166. $compiler $params -c sv_init.c -o obj/sv_init.o
  167. $compiler $params -c net_chan.c -o obj/net_chan.o
  168. $compiler $params -c sv_main.c -o obj/sv_main.o
  169. $compiler $params -c x_clientcmds.c -o obj/x_clientcmds.o
  170. $compiler $params -c unix_net.c -o obj/unix_net.o
  171. $compiler $params -c webserver.c -o obj/webserver.o
  172. # g++ -include inc.h -Os -O1 -O3 -s -fvisibility=hidden -w -Wl,--exclude-libs,ALL -I. -m32 -fPIC -Wno-write-strings $STEAM_INCLUDE -c steam.cpp -o obj/steam.o
  173. echo "[SCRIPT]"
  174. $compiler $params -c pre.c -o obj/pre.o
  175. $compiler $params -c scr_method_player.c -o obj/scr_method_player.o
  176. $compiler $params -c scr_string.c -o obj/scr_string.o
  177. $compiler $params -c scr_fields.c -o obj/scr_fields.o
  178. $compiler $params -c scr_method_entity.c -o obj/scr_method_entity.o
  179.  
  180. if [ $uMYSQL = true ]; then
  181. $compiler $params -c scr_mysql.c -o obj/scr_mysql.o
  182. fi
  183.  
  184. if [ $uECMASCRIPT = true ]; then
  185. echo "[ECMACRIPT]"
  186. $compiler $params -c js.c -o obj/js.o
  187. nasm -f elf script.asm -o obj/script_asm.o
  188. if [ ! -f obj/duktape.o ]; then
  189. $compiler $params -c /home/r/deps/duktape/duktape.c -o obj/duktape.o
  190. fi
  191.  
  192. fi
  193.  
  194. obj="$(ls obj/*.o)"
  195.  
  196. #if [ $DEBUG = true ]; then
  197. #for f in obj/*.o; do
  198. #if [ "$f" != "duktape.o" ] && [ "$f" != "steam.o" ]; then
  199. #objcopy --keep-symbols=symbols.txt --prefix-symbols=xtn_ $f
  200. #objcopy --redefine-syms=symbs.txt $f
  201. #objcopy --prefix-symbols=`basename $f .o`_ $f
  202. #objcopy --prefix-symbols=xtn_ $f
  203. #echo "placeholder" > /dev/null
  204. #fi
  205. #done
  206. #fi
  207.  
  208. if [ $uMYSQL = true ]; then
  209. if [ $DEBUG = true ]; then
  210. $compiler -m32 -shared -L/lib32 -L/home/lib -lmysqlclient -L/usr/lib/mysql -I/usr/include/mysql -o ./bin/codextended.so $obj -Os -lz $LINK_LIBS $STEAM_LINK -ldl -lm -Wall -g
  211. else
  212. $compiler -m32 -shared -L/lib32 -L/home/lib -lmysqlclient -L/usr/lib/mysql -I/usr/include/mysql -o ./bin/codextended.so $obj -Os -s -lz $LINK_LIBS $STEAM_LINK -ldl -lm -Wall -g
  213. fi
  214. #$compiler -m32 -shared -L/lib32 `mysql_config --libs` -I/usr/include/mysql -o ./bin/codextended.so $obj -Os -s -lz $LINK_LIBS -ldl -lm -Wall
  215. else
  216. if [ $DEBUG = true ]; then
  217. $compiler -m32 -shared -L/lib32 -L./lib -o ./bin/codextended.so $obj -lz $LINK_LIBS $STEAM_LINK -ldl -lm -Wall -g
  218. else
  219. $compiler -m32 -shared -L/lib32 -L./lib -o ./bin/codextended.so $obj -Os -s -lz $LINK_LIBS $STEAM_LINK -ldl -lm -Wall -g
  220. fi
  221. fi
  222. #rm -rf ./obj
  223. find ./obj -name '*.o' ! -name 'duktape.o' -delete
  224. echo "Done."
Add Comment
Please, Sign In to add comment