diff --git a/.gitignore b/.gitignore index 7971d6a8438c30c46b56412178f598b1af6942f5..34231f2da2796a4f1371961664b38b08c1b3209d 100644 --- a/.gitignore +++ b/.gitignore @@ -48,7 +48,6 @@ test/build # Kernel Module Compile Results *.mod* -*.cmd .tmp_versions/ modules.order Module.symvers diff --git a/CMakeLists.txt b/CMakeLists.txt index d7916e37e07548e0a37c8c65a3febf2ace15dbef..06a7895eb25b2d166af52ba49649cf6a319a406a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -5,6 +5,27 @@ if(WIN32) message(STATUS "Building for Windows") endif() +# Check whether we're on a 32-bit or 64-bit system +if(CMAKE_SIZEOF_VOID_P EQUAL "8") + set(DEFAULT_BUILD_64 ON) +else() + set(DEFAULT_BUILD_64 OFF) +endif() +option(BUILD_64 "Build for 64-bit? 'OFF' builds for 32-bit." ${DEFAULT_BUILD_64}) + +if(BUILD_64) + set(ARCH_WIDTH "64") +else() + set(ARCH_WIDTH "32") +endif() +message(STATUS "Building for a ${ARCH_WIDTH}-bit system") + +if(DAP_RELEASE) + message(STATUS "Building type RELEASE") +else() + message(STATUS "Building type DEBUG") +endif() + set(CMAKE_VERBOSE_MAKEFILE ON) set(CMAKE_COLOR_MAKEFILE ON) set(CMAKE_CXX_STANDARD 11) @@ -42,6 +63,7 @@ add_definitions ("-DDAP_SERVER") add_definitions ("-DNODE_NETNAME=\"kelvin\"") if(WIN32) + add_definitions ("-DUNDEBUG") add_definitions ("-DNDEBUG") add_definitions ("-DWIN32") @@ -49,33 +71,45 @@ if(WIN32) add_definitions ("-D__WINDOWS__") add_definitions ("-D_CRT_SECURE_NO_WARNINGS") add_definitions ("-DCURL_STATICLIB") -# add_definitions ("-DDAP_SERVER NODE_NETNAME=\"kelvin\"") - set(_CCOPT "-mconsole -static -Wall -O3 -fno-ident -ffast-math -ftree-vectorize -mfpmath=sse -mmmx -msse2 -fno-asynchronous-unwind-tables -ffunction-sections -Wl,--gc-sections -Wl,--strip-all") + + if(DAP_RELEASE) + set(_CCOPT "-mconsole -static -Wall -O3 -fno-ident -ffast-math -ftree-vectorize -mfpmath=sse -mmmx -msse2 -fno-asynchronous-unwind-tables -ffunction-sections -Wl,--gc-sections -Wl,--strip-all") + else() + set(_CCOPT "-mconsole -static -Wall -pg") + set(_LOPT "-mconsole -static -pg") + endif() + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${_CCOPT}") set(CMAKE_LINKER_FLAGS "${CMAKE_LINKER_FLAGS} ${_LOPT}") -endif() -if(UNIX) - add_definitions ("-DDAP_OS_LINUX") -endif() + include_directories(libdap/src/win32/) + include_directories(3rdparty/libmemcached/) + include_directories(3rdparty/libmemcached/win32/) + include_directories(3rdparty/wepoll/include/) + include_directories(3rdparty/uthash/src/) + include_directories(3rdparty/libjson-c/) + include_directories(3rdparty/libmagic/src/) + include_directories(3rdparty/curl/include/) + include_directories(3rdparty/libsqlite3/) -if(DAP_RELEASE) - add_definitions ("-DUNDEBUG") - add_definitions ("-DNDEBUG") + include_directories(libdap-server-http-db-auth/) + include_directories(libdap-chain-net-srv-vpn/) +endif() - if(UNIX) - set(_CCOPT "-static -Wall -O3 -fno-ident -ffast-math -ftree-vectorize -mfpmath=sse -mmmx -msse2 -fno-asynchronous-unwind-tables -ffunction-sections -Wl,--gc-sections -Wl,--strip-all") - set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${_CCOPT}") - endif() +if(UNIX) + add_definitions ("-DDAP_OS_LINUX") -else() - if(UNIX) - SET(CMAKE_C_FLAGS "${CMAKE_CXX_FLAGS} -pg") - SET(CMAKE_LINKER_FLAGS "${CMAKE_LINKER_FLAGS} -pg") + if(DAP_RELEASE) + set(_CCOPT "-Wall -O3 -fno-ident -ffast-math -ftree-vectorize -mfpmath=sse -mmmx -msse2 -fno-asynchronous-unwind-tables -ffunction-sections -Wl,--gc-sections -Wl,--strip-all") + else() + set(_CCOPT "-Wall -pg -fPIC -fno-pie -no-pie") + set(_LOPT "-pg") SET(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -pg") endif() -endif() + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${_CCOPT}") + set(CMAKE_LINKER_FLAGS "${CMAKE_LINKER_FLAGS} ${_LOPT}") +endif() add_subdirectory(libdap) add_subdirectory(libdap-crypto) @@ -123,24 +157,6 @@ if(BUILD_KELVIN_NODE_TESTS) add_subdirectory(test) endif() - -if(WIN32) - include_directories(libdap/src/win32/) - include_directories(3rdparty/libmemcached/) - include_directories(3rdparty/libmemcached/win32/) - include_directories(3rdparty/wepoll/include/) - include_directories(3rdparty/uthash/src/) - include_directories(3rdparty/libjson-c/) - include_directories(3rdparty/libmagic/src/) - include_directories(3rdparty/curl/include/) - include_directories(3rdparty/libsqlite3/) -endif() - -if(WIN32) - include_directories(libdap-server-http-db-auth/) - include_directories(libdap-chain-net-srv-vpn/) -endif() - if(UNIX) add_executable(${PROJECT_NAME} "sources/main.c" "sources/sig_unix_handler.c") add_executable(${PROJECT_NAME}-cli "sources/main_node_cli.c" "sources/main_node_cli_shell.c" "sources/main_node_cli_net.c" ) @@ -153,7 +169,40 @@ if(WIN32) add_executable(${PROJECT_NAME}-tool "sources/main_node_tool.c" ) target_link_libraries(${PROJECT_NAME}-cli dap_chain_net - ${CMAKE_CURRENT_SOURCE_DIR}/lib/[x86_64CLANG]/curl[x86_64CLANG].a + ${CMAKE_CURRENT_SOURCE_DIR}/lib/[x86_64CLANG]/libjson-c[x86_64CLANG].a + ${CMAKE_CURRENT_SOURCE_DIR}/lib/[x86_64CLANG]/libmemcached[x86_64CLANG].a + ${CMAKE_CURRENT_SOURCE_DIR}/lib/[x86_64CLANG]/wepoll[x86_64CLANG].a + ${CMAKE_CURRENT_SOURCE_DIR}/lib/[x86_64CLANG]/libmagic[x86_64CLANG].a + ${CMAKE_CURRENT_SOURCE_DIR}/lib/[x86_64CLANG]/cuttdb[x86_64CLANG].a + ${CMAKE_CURRENT_SOURCE_DIR}/lib/[x86_64CLANG]/libsqlite3[x86_64CLANG].a + ${CMAKE_CURRENT_SOURCE_DIR}/lib/[x86_64CLANG]/regex[x86_64CLANG].a + ${CMAKE_CURRENT_SOURCE_DIR}/lib/[x86_64CLANG]/libmongoc[x86_64CLANG].a + ${CMAKE_CURRENT_SOURCE_DIR}/lib/[x86_64CLANG]/libbson[x86_64CLANG].a + ${CMAKE_CURRENT_SOURCE_DIR}/lib/[x86_64CLANG]/curl[x86_64CLANG].a + ${CMAKE_CURRENT_SOURCE_DIR}/lib/[x86_64CLANG]/nghttp2[x86_64CLANG].a + ${CMAKE_CURRENT_SOURCE_DIR}/lib/[x86_64CLANG]/libssl[x86_64CLANG].a + ${CMAKE_CURRENT_SOURCE_DIR}/lib/[x86_64CLANG]/c-ares[x86_64CLANG].a + ${CMAKE_CURRENT_SOURCE_DIR}/lib/[x86_64CLANG]/misc[x86_64CLANG].a + ${CMAKE_CURRENT_SOURCE_DIR}/lib/[x86_64CLANG]/zlib[x86_64CLANG].a + ${CMAKE_CURRENT_SOURCE_DIR}/lib/[x86_64CLANG]/libssh2[x86_64CLANG].a + ${CMAKE_CURRENT_SOURCE_DIR}/lib/[x86_64CLANG]/libcrypto[x86_64CLANG].a + KERNEL32 + USER32 + SHELL32 + WINMM + GDI32 + ADVAPI32 + Ole32 + Version + Imm32 + OleAut32 + ws2_32 + ntdll + psapi + Shlwapi + Bcrypt + Crypt32 + Secur32 ) target_link_libraries(${PROJECT_NAME}-tool dap_core dap_crypto dap_server_core dap_enc_server dap_udp_server dap_session diff --git a/win_configure.cmd b/win_configure.cmd new file mode 100644 index 0000000000000000000000000000000000000000..f4867f37c056d6d73e4614660ebdfa68a93e0fde --- /dev/null +++ b/win_configure.cmd @@ -0,0 +1,6 @@ +@echo off +set CMAKE_PATH=C:/cmake +set MINGW_PATH=C:/mingw-w64/x86_64-8.1.0-posix-seh-rt_v6-rev0 + +PATH=%CMAKE_PATH%/bin;%MINGW_PATH%/mingw64/bin;%MINGW_PATH%/mingw64/x86_64-w64-mingw32/include;%MINGW_PATH%/mingw64/x86_64-w64-mingw32/lib +cmake -G "MinGW Makefiles" diff --git a/win_configure_release.cmd b/win_configure_release.cmd new file mode 100644 index 0000000000000000000000000000000000000000..e50867a67c2cee66b5a3454d85bab9e8eaf96703 --- /dev/null +++ b/win_configure_release.cmd @@ -0,0 +1,6 @@ +@echo off +set CMAKE_PATH=C:/cmake +set MINGW_PATH=C:/mingw-w64/x86_64-8.1.0-posix-seh-rt_v6-rev0 + +PATH=%CMAKE_PATH%/bin;%MINGW_PATH%/mingw64/bin;%MINGW_PATH%/mingw64/x86_64-w64-mingw32/include;%MINGW_PATH%/mingw64/x86_64-w64-mingw32/lib +cmake -G "MinGW Makefiles" -DDAP_RELEASE=1 diff --git a/wmake.cmd b/wmake.cmd new file mode 100644 index 0000000000000000000000000000000000000000..90560e021e1097ced74d1f3d09637cb32f08be54 --- /dev/null +++ b/wmake.cmd @@ -0,0 +1,7 @@ +@echo off +set CMAKE_PATH=C:/cmake +set MINGW_PATH=C:/mingw-w64/x86_64-8.1.0-posix-seh-rt_v6-rev0 + +PATH=%CMAKE_PATH%/bin;%MINGW_PATH%/mingw64/bin;%MINGW_PATH%/mingw64/x86_64-w64-mingw32/include;%MINGW_PATH%/mingw64/x86_64-w64-mingw32/lib +mingw32-make.exe +