MkNetDistro.sh 7.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259
  1. #!/bin/sh
  2. # ===================================
  3. # This shell script creates a new distribution rooted at ./gpcp-NET
  4. # The file must be executed from $CROOT/sources/gpcp
  5. # Most of the files are recompiled from the sources of the distribution
  6. # rooted at $CROOT using the binaries in $CROOT/bin. However some
  7. # files (documentation, examples, .NET symbols files) are copied
  8. # from the existing distribution.
  9. # ===================================
  10. #tracing
  11. #set -x
  12. if [ "$CROOT" = "" ]
  13. then
  14. echo CROOT is not defined, terminating.
  15. exit 1
  16. fi
  17. echo CROOT = $CROOT
  18. HOME=`pwd`
  19. SOURCES_GPCP=$CROOT/sources/gpcp
  20. TRGT=$HOME/gpcp-NET
  21. # Check if this is being executed from $CROOT/sources/gpcp
  22. if [ "$HOME" != "$SOURCES_GPCP" ]
  23. then
  24. echo Current directory not $SOURCES_GPCP, terminating
  25. exit 2
  26. fi
  27. echo HOME = $HOME
  28. echo SOURCES_GPCP = $SOURCES_GPCP
  29. # ===================================
  30. echo Cleaning old gpcp-NET filetree
  31. # ===================================
  32. rm -rf gpcp-NET
  33. # - Make sure that JavaTarget.cp is the CLR version.
  34. # - And make sure that PeTarget.cp is the NET version.
  35. cp JavaTargetForCLR.cp JavaTarget.cp
  36. cp PeTargetForNET.cp PeTarget.cp
  37. mkdir -p gpcp-NET/bin
  38. mkdir -p gpcp-NET/sources
  39. mkdir -p gpcp-NET/symfiles
  40. mkdir -p gpcp-NET/documentation/Examples
  41. mkdir -p gpcp-NET/symfiles/NetSystem
  42. mkdir -p gpcp-NET/symfiles/HtmlBrowseFiles
  43. # ===================================
  44. echo Building C# library implementations
  45. # ===================================
  46. cd $CROOT/sources/libs/csharp
  47. csc /t:library /debug /nologo RTS.cs \
  48. && csc /t:library /r:RTS.dll /debug /nologo GPFiles.cs \
  49. && csc /t:library /r:GPFiles.dll /debug /nologo GPBinFiles.cs \
  50. && csc /t:library /r:GPFiles.dll /debug /nologo GPTextFiles.cs
  51. if [ $? -gt 0 ]
  52. then
  53. cd $HOME
  54. exit 3
  55. fi
  56. # ===================================
  57. echo moving PE files to TRGT/bin
  58. # ===================================
  59. for i in *.dll; do mv $i $TRGT/bin; done
  60. for i in *.pdb; do mv $i $TRGT/bin; done
  61. cd $HOME/libs/csharp
  62. # ===================================
  63. echo compiling MsilAsm
  64. # ===================================
  65. csc /t:library /debug /nologo MsilAsm.cs
  66. if [ $? -gt 0 ]
  67. then
  68. cd $HOME
  69. exit 4
  70. fi
  71. mv MsilAsm.dll $TRGT/bin
  72. mv MsilAsm.pdb $TRGT/bin
  73. # The source of PeToCpsUtils.cp is included.
  74. # It is required to allow PeToCps v1.4.06 to be
  75. # compiled using the gpcp v1.4.04 executables.
  76. # It is not required when re-compiling with gpcp 1.4.06
  77. # csc /t:library /debug /nologo PeToCpsUtils.cs
  78. # PeToCps PeToCpsUtils.dll
  79. # move PeToCpsUtils.dll %TRGT%\bin
  80. # move PeToCpsUtils.pdb %TRGT%\bin
  81. # move PeToCpsUtils_.cps %TRGT%\symfiles
  82. # if errorlevel 1 goto :fail
  83. # move MsilAsm.dll %TRGT%\bin
  84. # move MsilAsm.pdb %TRGT%\bin
  85. # ===================================
  86. echo Compiling CP library sources
  87. # ===================================
  88. cd $CROOT/sources/libs/cpascal
  89. mono $CROOT/bin/gpcp.exe -special -nowarn \
  90. ASCII.cp Console.cp CPmain.cp Error.cp GPFiles.cp GPBinFiles.cp \
  91. GPTextFiles.cp ProgArgs.cp RTS.cp STA.cp StdIn.cp WinMain.cp \
  92. && mono $CROOT/bin/gpcp.exe -nowarn -bindir=$TRGT/bin/ RealStr.cp StringLib.cp
  93. if [ $? -gt 0 ]
  94. then
  95. cd $HOME
  96. exit 5
  97. fi
  98. for i in *.cps; do mv $i $TRGT/symfiles; done
  99. rm -rf *.il
  100. # ===================================
  101. echo NOT Copying the PERWAPI symbol files
  102. # Have to leave this in until PERWAPI is removed from distro
  103. # ===================================
  104. # CD %CROOT%\symfiles
  105. # copy QUT_*.cps %TRGT%\symfiles
  106. # ===================================
  107. echo Copying the NetSystem symbol files
  108. # ===================================
  109. cd $CROOT/symfiles/NetSystem
  110. for i in *.cps; do cp $i $TRGT/symfiles/NetSystem; done
  111. # ===================================
  112. echo Generating html browse files for NetSystem libraries
  113. # ( -verbose removed PDR 21.12.22 )
  114. # ===================================
  115. cd $TRGT/symfiles/NetSystem
  116. echo DST=$TRGT/symfiles/HtmlBrowseFiles
  117. mono $CROOT/bin/Browse.exe -html -sort \
  118. -dst:$TRGT/symfiles/HtmlBrowseFiles *.cps
  119. if [ $? -gt 0 ]
  120. then
  121. cd $HOME
  122. exit 6
  123. fi
  124. # ===================================
  125. echo Generating html browse files for CP libraries
  126. # ===================================
  127. cd $TRGT/symfiles
  128. mono $CROOT/bin/Browse.exe -html -sort -dst:HtmlBrowseFiles *.cps
  129. if [ $? -gt 0 ]
  130. then
  131. cd $HOME
  132. exit 7
  133. fi
  134. # ===================================
  135. echo Generating index for html browse files
  136. # ( -verbose removed PDR 21.12.22 )
  137. # ===================================
  138. mono $CROOT/bin/MakeIndex.exe -dst:HtmlBrowseFiles
  139. # ===================================
  140. echo Building compiler-tools exes and dlls
  141. # ===================================
  142. cd $HOME
  143. mono $CROOT/bin/CPMake.exe -all -bindir=$TRGT/bin/ -nowarn gpcp \
  144. && mono $CROOT/bin/gpcp.exe -bindir=$TRGT/bin/ -nowarn \
  145. ModuleHandler.cp SymbolFile.cp CPMake.cp \
  146. && mono $CROOT/bin/gpcp.exe -bindir=$TRGT/bin/ -nowarn \
  147. BrowseLookup.cp BrowsePopups.cp Browse.cp \
  148. && mono $CROOT/bin/CPMake.exe -all -bindir=$TRGT/bin/ -nowarn PeToCps.cp
  149. if [ $? -gt 0 ]
  150. then
  151. cd $HOME
  152. exit 8
  153. fi
  154. # ===================================
  155. echo Building MakeIndex.exe
  156. # ===================================
  157. cd $HOME/MakeIndex
  158. mono $CROOT/bin/CPMake.exe -all -bindir=$TRGT/bin/ -nowarn MakeIndex.cp
  159. if [ $? -gt 0 ]
  160. then
  161. cd $HOME
  162. exit 9
  163. fi
  164. # ===================================
  165. # ===================================
  166. # This is only necessary until the new PeToCps
  167. # uses System.Reflection to build symbol files.
  168. # ===================================
  169. # ===================================
  170. echo NOT Copying PERWAPI to gpcp-NET/bin
  171. # ===================================
  172. # CD %CROOT%\bin
  173. # copy QUT*.* %TRGT%\bin
  174. # ===================================
  175. # ===================================
  176. echo Copying the documentation
  177. # ===================================
  178. cd $CROOT/documentation
  179. for i in *.pdf; do cp $i $TRGT/documentation; done
  180. cd examples
  181. for i in *; do cp $i $TRGT/documentation/Examples; done
  182. # ===================================
  183. echo Getting ready to copy the sources
  184. # ===================================
  185. cd $CROOT
  186. mkdir -p $TRGT/sources/gpcp/libs/java
  187. mkdir -p $TRGT/sources/gpcp/libs/csharp
  188. mkdir -p $TRGT/sources/gpcp/MakeIndex
  189. mkdir -p $TRGT/sources/libs/java
  190. mkdir -p $TRGT/sources/libs/csharp
  191. mkdir -p $TRGT/sources/libs/cpascal
  192. # ===================================
  193. echo Copying GPCP sources
  194. # ===================================
  195. cp sources/env.bat $TRGT
  196. cp sources/env.sh $TRGT
  197. for i in sources/gpcp/*.cp; do cp $i $TRGT/sources/gpcp; done
  198. cp sources/gpcp/MkNetDistro.bat $TRGT/sources/gpcp
  199. cp sources/gpcp/MkNetDistro.sh $TRGT/sources/gpcp
  200. for i in sources/gpcp/MakeIndex/*.cp; do cp $i $TRGT/sources/gpcp/MakeIndex; done
  201. cp sources/gpcp/libs/java/MsilAsm.java $TRGT/sources/gpcp/libs/java
  202. cp sources/gpcp/libs/csharp/MsilAsm.cs $TRGT/sources/gpcp/libs/csharp
  203. # ===================================
  204. echo Copy helper files for .NET bin directory
  205. # ===================================
  206. cp sources/gpcp/CopyNetLibs.bat $TRGT/bin
  207. cp sources/gpcp/_README-NET.txt $TRGT/bin
  208. cp sources/gpcp/CopyNetLibs.bat $TRGT/sources/gpcp
  209. cp sources/gpcp/_README-NET.txt $TRGT/sources/gpcp
  210. # ===================================
  211. echo Copying CP library sources
  212. # ===================================
  213. for i in sources/libs/cpascal/*.cp; do cp $i $TRGT/sources/libs/cpascal; done
  214. for i in sources/libs/cpascal/*.bat; do cp $i $TRGT/sources/libs/cpascal; done
  215. for i in sources/libs/cpascal/*.sh; do cp $i $TRGT/sources/libs/cpascal; done
  216. # ===================================
  217. echo Copying C# library sources
  218. # ===================================
  219. for i in sources/libs/csharp/*.cs; do cp $i $TRGT/sources/libs/csharp; done
  220. # ===================================
  221. echo Copying java library sources
  222. # ===================================
  223. for i in sources/libs/java/*; do cp $i $TRGT/sources/libs/java; done
  224. # ===================================
  225. echo \(No Longer\) Copying PERWAPI-project.zip to gpcp-NET/sources
  226. # ===================================
  227. # copy sources\PERWAPI-project.zip %TRGT%\sources
  228. cd $HOME