install_ffead-cpp-framework.sh 3.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. #!/bin/bash
  2. #From https://github.com/TechEmpower/FrameworkBenchmarks/blob/master/frameworks/C%2B%2B/ulib/setup_json.sh
  3. MAX_THREADS=$(( 3 * `nproc` / 2 ))
  4. WRIT_THREADS=$(( $MAX_THREADS / 3 ))
  5. SERV_THREADS=$(( $MAX_THREADS - $WRIT_THREADS ))
  6. cd $IROOT
  7. wget -q https://github.com/efficient/libcuckoo/archive/master.zip
  8. unzip master.zip
  9. rm -f master.zip
  10. cd libcuckoo-master
  11. cmake -DCMAKE_INSTALL_PREFIX=/usr .
  12. make install
  13. cd $IROOT
  14. rm -rf libcuckoo-master
  15. cd $IROOT
  16. wget -q https://github.com/sumeetchhetri/ffead-cpp/archive/master.zip
  17. unzip master.zip
  18. mv ffead-cpp-master ffead-cpp-src
  19. mv ${TROOT}/ffead-cpp-src ffead-cpp-src
  20. cd ffead-cpp-src/
  21. chmod 755 *.sh resources/*.sh rtdcf/autotools/*.sh
  22. rm -rf web/te-benchmark
  23. cp -f ${TROOT}/server.sh script/
  24. cp -rf ${TROOT}/te-benchmark web/
  25. sed -i 's|THRD_PSIZ=6|THRD_PSIZ='${SERV_THREADS}'|g' resources/server.prop
  26. sed -i 's|W_THRD_PSIZ=2|W_THRD_PSIZ='${WRIT_THREADS}'|g' resources/server.prop
  27. sed -i 's|LOGGING_ENABLED=true|LOGGING_ENABLED=false|g' resources/server.prop
  28. rm -rf web/default web/oauthApp web/flexApp web/markers
  29. sed -i 's|localhost|tfb-database|g' web/te-benchmark/config/sdorm.xml
  30. sed -i 's|localhost|tfb-database|g' web/te-benchmark/config/sdormmongo.xml
  31. sed -i 's|localhost|tfb-database|g' web/te-benchmark/config/sdormmysql.xml
  32. sed -i 's|localhost|tfb-database|g' web/te-benchmark/config/sdormpostgresql.xml
  33. sed -i 's|127.0.0.1|tfb-database|g' resources/sample-odbcinst.ini
  34. sed -i 's|127.0.0.1|tfb-database|g' resources/sample-odbc.ini
  35. sed -i 's|add_subdirectory(${PROJECT_SOURCE_DIR}/web/default)||g' CMakeLists.txt
  36. sed -i 's|add_subdirectory(${PROJECT_SOURCE_DIR}/web/flexApp)||g' CMakeLists.txt
  37. sed -i 's|add_subdirectory(${PROJECT_SOURCE_DIR}/web/oauthApp)||g' CMakeLists.txt
  38. sed -i 's|add_subdirectory(${PROJECT_SOURCE_DIR}/web/markers)||g' CMakeLists.txt
  39. sed -i 's|install(FILES ${PROJECT_SOURCE_DIR}/web/default/libdefault${CMAKE_SHARED_LIBRARY_SUFFIX} DESTINATION ${PROJECT_NAME}-bin/lib)||g' CMakeLists.txt
  40. sed -i 's|install(FILES ${PROJECT_SOURCE_DIR}/web/flexApp/libflexApp${CMAKE_SHARED_LIBRARY_SUFFIX} DESTINATION ${PROJECT_NAME}-bin/lib)||g' CMakeLists.txt
  41. sed -i 's|install(FILES ${PROJECT_SOURCE_DIR}/web/oauthApp/liboauthApp${CMAKE_SHARED_LIBRARY_SUFFIX} DESTINATION ${PROJECT_NAME}-bin/lib)||g' CMakeLists.txt
  42. sed -i 's|install(FILES ${PROJECT_SOURCE_DIR}/web/markers/libmarkers${CMAKE_SHARED_LIBRARY_SUFFIX} DESTINATION ${PROJECT_NAME}-bin/lib)||g' CMakeLists.txt
  43. sed -i 's|web/default/src/autotools/Makefile||g' configure.ac
  44. sed -i 's|web/flexApp/src/autotools/Makefile||g' configure.ac
  45. sed -i 's|web/oauthApp/src/autotools/Makefile||g' configure.ac
  46. sed -i 's|web/markers/src/autotools/Makefile||g' configure.ac
  47. #./autogen.sh
  48. #./configure --enable-debug=no --enable-apachemod=yes --enable-nginxmod=yes --enable-mod_sdormmongo=yes --enable-mod_sdormsql=yes --enable-mod_rediscache=yes --enable-mod_memcached=yes CPPFLAGS="$CPPFLAGS -I${IROOT}/include/libmongoc-1.0 -I${IROOT}/include/libbson-1.0 -I${IROOT}/include/" LDFLAGS="$LDFLAGS -L${IROOT} -L${IROOT}/lib"
  49. #make install
  50. cmake -DMOD_APACHE=on -DMOD_NGINX=on -DMOD_MEMCACHED=on -DMOD_REDIS=on -DMOD_SDORM_MONGO=on .
  51. #make install -j4
  52. cp resources/sample-odbcinst.ini ${IROOT}/odbcinst.ini
  53. cp resources/sample-odbc.ini ${IROOT}/odbc.ini
  54. cd ${IROOT}/ffead-cpp-src/
  55. make install -j4
  56. cd ffead-cpp-3.0-bin
  57. chmod 755 *.sh resources/*.sh rtdcf/autotools/*.sh
  58. ./server.sh &
  59. while [ ! -f lib/libinter.so ]
  60. do
  61. sleep 1
  62. done
  63. while [ ! -f lib/libdinter.so ]
  64. do
  65. sleep 1
  66. done
  67. pkill ffead-cpp
  68. cd ${IROOT}/ffead-cpp-src/
  69. cp -rf ffead-cpp-3.0-bin ${IROOT}/ffead-cpp-3.0
  70. rm -rf ffead-cpp-3.0-bin
  71. cd ${IROOT}/ffead-cpp-3.0
  72. cp -f ${TROOT}/run_ffead.sh ./
  73. chmod 755 *.sh resources/*.sh rtdcf/autotools/*.sh
  74. chmod 755 $FFEAD_CPP_PATH/*.sh
  75. rm -f $FFEAD_CPP_PATH/*.cntrl
  76. rm -f $FFEAD_CPP_PATH/tmp/*.sess
  77. #cache related dockerfiles will add the cache.xml accordingly whenever needed
  78. rm -f web/te-benchmark/config/cache.xml