build-nginx.sh 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121
  1. apt-get install libpcre3-dev libluajit-5.1-dev libcurl4-openssl-dev libssl-dev libboost-regex1.55-dev libboost-system1.55-dev libboost-thread1.55-dev libcrypto++-dev zlib1g-dev
  2. curl -L https://github.com/RedPitaya/RedPitaya/archive/v0.95-1.tar.gz -o RedPitaya-0.95-1.tar.gz
  3. tar -zxf RedPitaya-0.95-1.tar.gz
  4. cd RedPitaya-0.95-1
  5. cat <<- EOF_CAT > patches/lua-nginx-module.patch
  6. diff -rupN lua-nginx-module.old/config lua-nginx-module.new/config
  7. --- lua-nginx-module.old/config
  8. +++ lua-nginx-module.new/config
  9. @@ -295,8 +311,8 @@ fi
  10. NGX_DTRACE_PROVIDERS="$NGX_DTRACE_PROVIDERS $ngx_addon_dir/dtrace/ngx_lua_provider.d"
  11. NGX_TAPSET_SRCS="$NGX_TAPSET_SRCS $ngx_addon_dir/tapset/ngx_lua.stp"
  12. -USE_MD5=YES
  13. -USE_SHA1=YES
  14. +USE_MD5=NO
  15. +USE_SHA1=NO
  16. CORE_INCS="$CORE_INCS $ngx_addon_dir/src/api"
  17. diff -rupN lua-nginx-module.old/src/ngx_http_lua_socket_tcp.c lua-nginx-module.new/src/ngx_http_lua_socket_tcp.c
  18. --- lua-nginx-module.old/src/ngx_http_lua_socket_tcp.c
  19. +++ lua-nginx-module.new/src/ngx_http_lua_socket_tcp.c
  20. @@ -3146,8 +3146,7 @@ ngx_http_lua_req_socket(lua_State *L)
  21. }
  22. lua_settop(L, 1);
  23. - lua_pushnil(L);
  24. - return 2;
  25. + return 1;
  26. }
  27. EOF_CAT
  28. make Bazaar/tools/libjson
  29. make Bazaar/nginx/ngx_ext_modules/ws_server/websocketpp
  30. make Bazaar/nginx/ngx_ext_modules/lua-nginx-module
  31. make Bazaar/nginx/nginx-1.5.3
  32. make -C shared
  33. patch -d Bazaar/nginx/ngx_ext_modules/ws_server/rp_sdk -p1 <<- EOF_PATCH
  34. diff -rupN rp_sdk.old/Makefile rp_sdk.new/Makefile
  35. --- rp_sdk.old/Makefile
  36. +++ rp_sdk.new/Makefile
  37. @@ -22,7 +22,7 @@ CRYPTO_DIR=../../../../tools/cryptopp
  38. CRYPTO_INSTALL_DIR=../../../../tools/build
  39. CXX=\$(CROSS_COMPILE)g++
  40. -CXXFLAGS=-c -Wall -O0 -static -std=c++11 -fPIC -I\$(LIBJSON_DIR) -I\$(CRYPTO_INSTALL_DIR)/include/cryptopp -DNDEBUG
  41. +CXXFLAGS=-c -Wall -O0 -static -std=c++11 -fPIC -I\$(LIBJSON_DIR) -I/usr/include/crypto++ -DNDEBUG
  42. ifeq (\$(ALWAYS_PURCHASED),true)
  43. CXXFLAGS+=-DALWAYS_PURCHASED
  44. endif
  45. @@ -51,9 +51,7 @@ \$(CRYPTO_LIB):
  46. make -C \$(CRYPTO_DIR) CXX=\${CROSS_COMPILE}g++ PREFIX=../build install
  47. \$(LIB): \$(OBJECTS)
  48. - mkdir -p \$(OBJDIR)/cryptopp
  49. - cd \$(OBJDIR)/cryptopp; ar -x \$(CURRENT_DIR)/\$(CRYPTO_LIB)
  50. - ar rc \$(LIB) objs/cryptopp/*.o \$(OBJECTS)
  51. + ar rc \$(LIB) \$(OBJECTS)
  52. \$(SDKOBJDIR)/%.o: %.cpp
  53. mkdir -p \$(dir \$@)
  54. EOF_PATCH
  55. make -C Bazaar/nginx/ngx_ext_modules/ws_server/rp_sdk librp_sdk.a
  56. patch -d Bazaar/nginx/ngx_ext_modules/ws_server/websocketpp/websocketpp -p1 <<- EOF_PATCH
  57. diff -rupN websocketpp.old/transport/asio/endpoint.hpp websocketpp.new/transport/asio/endpoint.hpp
  58. --- websocketpp.old/transport/asio/endpoint.hpp
  59. +++ websocketpp.new/transport/asio/endpoint.hpp
  60. @@ -95,7 +95,7 @@ public:
  61. explicit endpoint()
  62. : m_io_service(NULL)
  63. , m_external_io_service(false)
  64. - , m_listen_backlog(0)
  65. + , m_listen_backlog(boost::asio::socket_base::max_connections)
  66. , m_reuse_addr(false)
  67. , m_state(UNINITIALIZED)
  68. {
  69. EOF_PATCH
  70. make -C Bazaar/nginx/ngx_ext_modules/ws_server
  71. cd Bazaar/nginx/nginx-1.5.3
  72. ./configure `cat ../configure_withouts.txt` --add-module=../ngx_ext_modules/lua-nginx-module --add-module=../ngx_ext_modules/ngx_http_rp_module
  73. make
  74. cp objs/nginx /opt/redpitaya/sbin/nginx
  75. strip /opt/redpitaya/sbin/nginx
  76. cd -
  77. patch -d Applications/scopegenpro/src -p1 <<- EOF_PATCH
  78. diff -rupN src.old/Makefile src.new/Makefile
  79. --- src.old/Makefile
  80. +++ src.new/Makefile
  81. @@ -3,7 +3,7 @@ RM=rm
  82. CXXSOURCES=main.cpp
  83. -RP_API=../../../api/lib
  84. +RP_API=/opt/redpitaya/lib
  85. RP_SDK=../../../Bazaar/nginx/ngx_ext_modules/ws_server/rp_sdk
  86. INCLUDE = -I\$(RP_SDK)
  87. @@ -14,7 +14,7 @@ COMMON_FLAGS+=-Wall -fPIC -lstdc++ -Os -s
  88. CXXFLAGS+=\$(COMMON_FLAGS) -std=c++11 \$(INCLUDE)
  89. LDFLAGS =-shared \$(COMMON_FLAGS) -L\$(RP_SDK)/lib
  90. LDFLAGS+= -Wl,--whole-archive
  91. -LDFLAGS+=-L\$(RP_SDK) -lrp_sdk
  92. +LDFLAGS+=-L\$(RP_SDK) -lrp_sdk -lcryptopp
  93. LDFLAGS+=-L\$(RP_API) -lrpapp -lrp
  94. LDFLAGS+= -Wl,--no-whole-archive
  95. EOF_PATCH
  96. make -C Applications/scopegenpro/src
  97. cp Applications/scopegenpro/controllerhf.so /opt/redpitaya/www/apps/scopegenpro/controllerhf.so