diff --git a/.gitignore b/.gitignore index ef34ab163699ede25ec1b4a8717e6f4a33bce0a9..7971d6a8438c30c46b56412178f598b1af6942f5 100644 --- a/.gitignore +++ b/.gitignore @@ -58,3 +58,14 @@ dkms.conf /.cproject /kelvin-node_logs.txt /build/ + +# Autogenerated CMake files +CMakeCache.txt +CMakeFiles/ +CPackConfig.cmake +CPackSourceConfig.cmake +Makefile +cmake_install.cmake + +# Editor's temp files +*~ \ No newline at end of file diff --git a/CMakeLists.txt b/CMakeLists.txt index 70f49eb55bf902cefc45d3cbe286109c6ddbd0c1..176fb7584218b6830c82eff97e879040f1829493 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -35,7 +35,6 @@ set(CMAKE_COLOR_MAKEFILE ON) set(CMAKE_C_STANDARD 11) set(SUBMODULES_NO_BUILD ON) - add_definitions ("-DDAP_SERVER") add_definitions ("-DNODE_NETNAME=\"kelvin\"") @@ -82,10 +81,10 @@ if(UNIX) add_definitions ("-DDAP_OS_LINUX") endif() -set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS}") +set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall") #if(BUILD_PROFILE) - SET(CMAKE_C_FLAGS "${CMAKE_CXX_FLAGS} -pg") + SET(CMAKE_C_FLAGS "${CMAKE_CXX_FLAGS} -Wall -pg") SET(CMAKE_LINKER_FLAGS "${CMAKE_LINKER_FLAGS} -pg") SET(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -pg") #endif() @@ -101,7 +100,7 @@ target_link_libraries(${PROJECT_NAME} dap_core dap_crypto dap_crypto dap_server_ dap_chain_net dap_chain_net_srv dap_chain_net_srv_app dap_chain_net_srv_app_db dap_chain_net_srv_datum dap_chain_net_srv_datum_pool dap_chain_net_srv_vpn dap_chain_wallet dap_chain_global_db dap_chain_mempool dap_chain_gdb m pthread magic dap_server_http_db_auth) -target_link_libraries(${PROJECT_NAME}-cli m dap_chain_net curl) +target_link_libraries(${PROJECT_NAME}-cli m dap_chain_net curl) target_link_libraries(${PROJECT_NAME}-tool dap_core dap_crypto dap_server_core dap_enc_server dap_udp_server dap_session dap_enc_server dap_stream dap_stream_ch_vpn dap_stream_ch_chain dap_stream_ch_chain_net dap_stream_ch_chain_net_srv dap_chain dap_chain_crypto dap_client @@ -118,5 +117,6 @@ INSTALL(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/dist/ DESTINATION ${CMAKE_INSTALL_ INSTALL(TARGETS ${PROJECT_NAME} DESTINATION ${CMAKE_INSTALL_PREFIX}/bin ) INSTALL(TARGETS ${PROJECT_NAME}-cli DESTINATION ${CMAKE_INSTALL_PREFIX}/bin ) INSTALL(TARGETS ${PROJECT_NAME}-tool DESTINATION ${CMAKE_INSTALL_PREFIX}/bin ) -INSTALL(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/scripts/ DESTINATION ${CMAKE_INSTALL_PREFIX}/bin FILES_MATCHING PATTERN "*" PATTERN "*" PERMISSIONS OWNER_EXECUTE;OWNER_READ;OWNER_WRITE;WORLD_READ;GROUP_READ ) +INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/dist/share/configs/kelvin-node.cfg.tpl DESTINATION ${CMAKE_INSTALL_PREFIX}/etc/ RENAME kelvin-node.cfg PERMISSIONS OWNER_WRITE;OWNER_READ;GROUP_READ;WORLD_READ) +#INSTALL(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/scripts/ DESTINATION ${CMAKE_INSTALL_PREFIX}/bin FILES_MATCHING PATTERN "*" PATTERN "*" PERMISSIONS OWNER_EXECUTE;OWNER_READ;OWNER_WRITE;WORLD_READ;GROUP_READ ) INCLUDE(CPack) diff --git a/README.md b/README.md index 242edcd52284c0b578f90d7b179b482fac7167bc..69fb3acc68ae696217e8efcb58839a92c4d3abb4 100644 --- a/README.md +++ b/README.md @@ -4,3 +4,21 @@ Kelvin Blockchain node [](https://travis-ci.com/cellframe/kelvin-node) [Kelvin node manual](https://github.com/cellframe/kelvin-node/wiki/Kelvin-Node) + +## Build + +The project uses CMake. To generate a Makefile run in the project root directory `git submodule init && git submodule update --remote && cmake -S . -B build && cd ./build && make`. +Or if you don't clone the project yet, run `git clone --recursive <repo>` to clone it with all submodules. Then build the project as a regular CMake project with command `cmake -S . -B build && cd ./build && make`. + +### Prerequsites + +To successfully complete of the build, you must have following prerequisites preinstalled (packages are named as in Debian GNU/Linux 10 "buster", please found the corresponding packages for your distribution): + +* libjson-c-dev +* libmemcached-dev (for libdap-server-core submodule) +* libev-dev (for libdap-server-core submodule) +* libmagic-dev (for libdap-server submodule) +* libcurl4-openssl-dev | libcurl4-nss-dev | libcurl4-gnutls-dev (for libdap-server submodule) +* libldb-dev +* libtalloc-dev +* libtevent-dev diff --git a/debian/postinst b/debian/postinst index f68aaceb220c32cc468e639507926765b6c4e33d..ba0a488596ea9c269fcc4e9d4dfdfc1ba70b67d8 100755 --- a/debian/postinst +++ b/debian/postinst @@ -19,8 +19,9 @@ else fi cat $DAP_CFG_TPL > $DAP_CFG || true -mkdir $DAP_PREFIX/var/lib/network/kelvin-testnet/zerochain/ || true -mkdir $DAP_PREFIX/var/lib/network/kelvin-testnet/plasma/ || true +mkdir -p $DAP_PREFIX/var/lib/network/kelvin-testnet/zerochain/ || true +mkdir -p $DAP_PREFIX/var/lib/network/kelvin-testnet/plasma/ || true +mkdir -p $DAP_PREFIX/var/run || true # Init testnet if [ -e "$DAP_CFG_TESTNET" ]; then