if (NOT DEFINED KDIR) set(KDIR "/usr/src/linux") endif (NOT DEFINED KDIR) # Try to figure out the kernel release once so we can show it before building. execute_process( COMMAND make -s -C ${KDIR} kernelrelease RESULT_VARIABLE IPOE_KERNEL_RELEASE_RESULT OUTPUT_VARIABLE IPOE_KERNEL_RELEASE OUTPUT_STRIP_TRAILING_WHITESPACE ERROR_QUIET ) if (NOT IPOE_KERNEL_RELEASE_RESULT STREQUAL "0" OR IPOE_KERNEL_RELEASE STREQUAL "") find_program(UNAME_EXECUTABLE uname) if (UNAME_EXECUTABLE) execute_process( COMMAND ${UNAME_EXECUTABLE} -r OUTPUT_VARIABLE IPOE_KERNEL_RELEASE OUTPUT_STRIP_TRAILING_WHITESPACE ) else() set(IPOE_KERNEL_RELEASE "unknown") endif() endif() ADD_CUSTOM_COMMAND(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/driver/ipoe.ko COMMAND rm -rf ${CMAKE_CURRENT_BINARY_DIR}/driver COMMAND mkdir ${CMAKE_CURRENT_BINARY_DIR}/driver COMMAND ln -sf ${CMAKE_CURRENT_SOURCE_DIR}/* ${CMAKE_CURRENT_BINARY_DIR}/driver COMMAND ln -sf ${CMAKE_BINARY_DIR}/version.h ${CMAKE_CURRENT_BINARY_DIR}/driver COMMAND ${CMAKE_COMMAND} -E echo "[ 99%] Generating driver/ipoe.ko for kernel ${IPOE_KERNEL_RELEASE}" COMMAND make -C ${KDIR} M=${CMAKE_CURRENT_BINARY_DIR}/driver modules DEPENDS ipoe.c ipoe.h ) ADD_CUSTOM_TARGET(ipoe_drv ALL DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/driver/ipoe.ko ) IF (NOT DEFINED CPACK_TYPE) INSTALL(CODE "EXECUTE_PROCESS(COMMAND make -C ${KDIR} M=${CMAKE_CURRENT_BINARY_DIR}/drivers/ipoe modules_install)") ENDIF()