summaryrefslogtreecommitdiffstats
path: root/CMakeLists.txt
diff options
context:
space:
mode:
authorSebastian2016-02-11 10:11:33 +0100
committerSebastian2016-02-11 14:42:53 +0100
commit5d74f48e9a89699367d37a3378a4773abc7ee7c8 (patch)
tree2ff5c363daa0fa4971eb4c20a578844fe2217d58 /CMakeLists.txt
parentrunning FreeBSD sendfile (diff)
downloaddnbd3-5d74f48e9a89699367d37a3378a4773abc7ee7c8.tar.gz
dnbd3-5d74f48e9a89699367d37a3378a4773abc7ee7c8.tar.xz
dnbd3-5d74f48e9a89699367d37a3378a4773abc7ee7c8.zip
Cmake tuning; move cfg folder
Diffstat (limited to 'CMakeLists.txt')
-rw-r--r--CMakeLists.txt81
1 files changed, 46 insertions, 35 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 13f5e80..940909e 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -10,6 +10,13 @@ ENDIF()
message( "Build Type selected: ${CMAKE_BUILD_TYPE}" )
+SET(MAKE_KERNEL_MODULE True)
+IF(CMAKE_SYSTEM_NAME MATCHES "BSD")
+ message("Detected *BSD System: disable build of Kernel Module.")
+ SET(CMAKE_INSTALL_PREFIX "/usr/local")
+ SET(MAKE_KERNEL_MODULE False)
+ENDIF()
+
if(CMAKE_C_COMPILER MATCHES "clang")
message( "Using clang flags." )
SET(CMAKE_C_FLAGS_DEBUG "-std=c99 -fsanitize=address -O1 -fno-omit-frame-pointer -g -Wall -Wno-unused-result -D_GNU_SOURCE -D_DEBUG -Wno-multichar -fno-strict-aliasing")
@@ -83,12 +90,13 @@ ADD_CUSTOM_TARGET(
# CLIENT #
################################################################################
-FILE(GLOB_RECURSE CLIENT_SRCS src/client/*.c)
-ADD_EXECUTABLE(dnbd3-client ${CLIENT_SRCS})
-TARGET_LINK_LIBRARIES(dnbd3-client)
-ADD_DEPENDENCIES(dnbd3-client version)
-INSTALL(TARGETS dnbd3-client RUNTIME DESTINATION sbin)
-
+if(MAKE_KERNEL_MODULE)
+ FILE(GLOB_RECURSE CLIENT_SRCS src/client/*.c)
+ ADD_EXECUTABLE(dnbd3-client ${CLIENT_SRCS})
+ TARGET_LINK_LIBRARIES(dnbd3-client)
+ ADD_DEPENDENCIES(dnbd3-client version)
+ INSTALL(TARGETS dnbd3-client RUNTIME DESTINATION sbin)
+ENDIF()
################################################################################
@@ -126,48 +134,51 @@ endif()
# MODULE #
################################################################################
-SET(MODULE_NAME dnbd3)
-SET(MODULE_FILE ${MODULE_NAME}.ko)
-FILE(GLOB MODULE_SOURCE_FILES src/kernel/*.c src/serialize.c)
-FILE(GLOB MODULE_HEADER_FILES src/kernel/*.h src/*.h)
+IF(MAKE_KERNEL_MODULE)
+ SET(MODULE_NAME dnbd3)
+ SET(MODULE_FILE ${MODULE_NAME}.ko)
+ FILE(GLOB MODULE_SOURCE_FILES src/kernel/*.c src/serialize.c)
+ FILE(GLOB MODULE_HEADER_FILES src/kernel/*.h src/*.h)
-SET(KERNEL_DIR "/lib/modules/${CMAKE_SYSTEM_VERSION}/build")
+ SET(KERNEL_DIR "/lib/modules/${CMAKE_SYSTEM_VERSION}/build")
-SET(KBUILD_COMMAND ${CMAKE_MAKE_PROGRAM} -C ${KERNEL_DIR}
- M=${CMAKE_BINARY_DIR} modules
-)
+ SET(KBUILD_COMMAND ${CMAKE_MAKE_PROGRAM} -C ${KERNEL_DIR}
+ M=${CMAKE_BINARY_DIR} modules
+ )
-CONFIGURE_FILE(Kbuild.in ${CMAKE_BINARY_DIR}/Kbuild)
+ CONFIGURE_FILE(Kbuild.in ${CMAKE_BINARY_DIR}/Kbuild)
-FOREACH(MODULE_SOURCE_FILE ${MODULE_SOURCE_FILES})
- CONFIGURE_FILE(${MODULE_SOURCE_FILE} ${CMAKE_BINARY_DIR} COPYONLY)
-ENDFOREACH( MODULE_SOURCE_FILE )
+ FOREACH(MODULE_SOURCE_FILE ${MODULE_SOURCE_FILES})
+ CONFIGURE_FILE(${MODULE_SOURCE_FILE} ${CMAKE_BINARY_DIR} COPYONLY)
+ ENDFOREACH( MODULE_SOURCE_FILE )
-FOREACH(MODULE_HEADER_FILE ${MODULE_HEADER_FILES})
- CONFIGURE_FILE(${MODULE_HEADER_FILE} ${CMAKE_BINARY_DIR} COPYONLY)
-ENDFOREACH( MODULE_HEADER_FILE )
+ FOREACH(MODULE_HEADER_FILE ${MODULE_HEADER_FILES})
+ CONFIGURE_FILE(${MODULE_HEADER_FILE} ${CMAKE_BINARY_DIR} COPYONLY)
+ ENDFOREACH( MODULE_HEADER_FILE )
-ADD_CUSTOM_COMMAND(
- OUTPUT ${CMAKE_BINARY_DIR}/${MODULE_FILE}
- COMMAND ${KBUILD_COMMAND}
- WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
- DEPENDS ${MODULE_SOURCE_FILES} Kbuild.in
- VERBATIM
-)
+ ADD_CUSTOM_COMMAND(
+ OUTPUT ${CMAKE_BINARY_DIR}/${MODULE_FILE}
+ COMMAND ${KBUILD_COMMAND}
+ WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
+ DEPENDS ${MODULE_SOURCE_FILES} Kbuild.in
+ VERBATIM
+ )
-ADD_CUSTOM_TARGET(${MODULE_NAME} ALL DEPENDS ${CMAKE_BINARY_DIR}/${MODULE_FILE})
+ ADD_CUSTOM_TARGET(${MODULE_NAME} ALL DEPENDS ${CMAKE_BINARY_DIR}/${MODULE_FILE})
-INSTALL(FILES ${CMAKE_BINARY_DIR}/${MODULE_NAME}.ko
- DESTINATION /lib/modules/${CMAKE_SYSTEM_VERSION}/kernel/drivers/block
- PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
-)
+ INSTALL(FILES ${CMAKE_BINARY_DIR}/${MODULE_NAME}.ko
+ DESTINATION /lib/modules/${CMAKE_SYSTEM_VERSION}/kernel/drivers/block
+ PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
+ )
-INSTALL(CODE "EXECUTE_PROCESS(COMMAND depmod -a)")
+ INSTALL(CODE "EXECUTE_PROCESS(COMMAND depmod -a)")
+ENDIF()
#
# Other install files
#
-INSTALL(FILES server.conf.example client.conf.example DESTINATION /etc/dnbd3/)
+FILE(GLOB conf_files "${CMAKE_CURRENT_SOURCE_DIR}/conf/*.sample" "${CMAKE_CURRENT_SOURCE_DIR}/conf/README.*")
+INSTALL(FILES ${conf_files} DESTINATION etc/dnbd3/)