function(_rdma_sbin_interp INTERP IFN OFN) configure_file("${IFN}" "${CMAKE_CURRENT_BINARY_DIR}/${OFN}" @ONLY) file(WRITE "${BUILD_BIN}/${OFN}" "#!${INTERP}\nexec ${INTERP} ${CMAKE_CURRENT_BINARY_DIR}/${OFN} \"$@\"\n") execute_process(COMMAND "chmod" "a+x" "${BUILD_BIN}/${OFN}") install(FILES "${CMAKE_CURRENT_BINARY_DIR}/${OFN}" DESTINATION "${CMAKE_INSTALL_SBINDIR}" PERMISSIONS OWNER_WRITE OWNER_READ GROUP_READ WORLD_READ OWNER_EXECUTE GROUP_EXECUTE WORLD_EXECUTE) endfunction() function(_rdma_sbin_interp_link INTERP IFN OFN) file(WRITE "${BUILD_BIN}/${OFN}" "#!${INTERP}\nexec ${INTERP} ${CMAKE_CURRENT_SOURCE_DIR}/${IFN} \"$@\"\n") execute_process(COMMAND "chmod" "a+x" "${BUILD_BIN}/${OFN}") install(FILES "${IFN}" DESTINATION "${CMAKE_INSTALL_SBINDIR}" RENAME "${OFN}" PERMISSIONS OWNER_WRITE OWNER_READ GROUP_READ WORLD_READ OWNER_EXECUTE GROUP_EXECUTE WORLD_EXECUTE) endfunction() function(rdma_sbin_shell_program) foreach(IFN ${ARGN}) if (IFN MATCHES "\\.sh\\.in") if (DISTRO_FLAVOUR STREQUAL Debian) string(REGEX REPLACE "^(.+)\\.sh\\.in$" "\\1" OFN "${IFN}") else() string(REGEX REPLACE "^(.+)\\.in$" "\\1" OFN "${IFN}") endif() _rdma_sbin_interp("/bin/bash" "${IFN}" "${OFN}") elseif (IFN MATCHES "\\.in") string(REGEX REPLACE "^(.+)\\.in$" "\\1" OFN "${IFN}") _rdma_sbin_interp("/bin/bash" "${IFN}" "${OFN}") elseif (IFN MATCHES "\\.sh") if (DISTRO_FLAVOUR STREQUAL Debian) string(REGEX REPLACE "^(.+)\\.sh$" "\\1" OFN "${IFN}") else() set(OFN "${IFN}") endif() _rdma_sbin_interp_link("/bin/bash" "${IFN}" "${OFN}") else() _rdma_sbin_interp_link("/bin/bash" "${IFN}" "${IFN}") endif() endforeach() endfunction() function(rdma_sbin_perl_program) foreach(IFN ${ARGN}) if (IFN MATCHES "\\.pl\\.in") if (DISTRO_FLAVOUR STREQUAL Debian) string(REGEX REPLACE "^(.+)\\.pl\\.in$" "\\1" OFN "${IFN}") else() string(REGEX REPLACE "^(.+)\\.in$" "\\1" OFN "${IFN}") endif() _rdma_sbin_interp("/usr/bin/perl" "${IFN}" "${OFN}") elseif (IFN MATCHES "\\.pl") if (DISTRO_FLAVOUR STREQUAL Debian) string(REGEX REPLACE "^(.+)\\.pl$" "\\1" OFN "${IFN}") else() set(OFN "${IFN}") endif() _rdma_sbin_interp_link("/usr/bin/perl" "${IFN}" "${OFN}") endif() endforeach() endfunction() set(IBSCRIPTPATH "${CMAKE_INSTALL_FULL_SBINDIR}") rdma_sbin_shell_program( dump_lfts.sh.in dump_mfts.sh.in ibhosts.in ibnodes.in ibrouters.in ibstatus ibswitches.in ) rdma_sbin_perl_program( check_lft_balance.pl ibfindnodesusing.pl ibidsverify.pl ) install(FILES "IBswcountlimits.pm" DESTINATION "${CMAKE_INSTALL_PERLDIR}") if (ENABLE_IBDIAGS_COMPAT) rdma_sbin_shell_program( ibcheckerrors.in ibcheckerrs.in ibchecknet.in ibchecknode.in ibcheckport.in ibcheckportstate.in ibcheckportwidth.in ibcheckstate.in ibcheckwidth.in ibclearcounters.in ibclearerrors.in ibdatacounters.in ibdatacounts.in set_nodedesc.sh ) rdma_sbin_perl_program( ibdiscover.pl iblinkinfo.pl.in ibprintca.pl ibprintrt.pl ibprintswitch.pl ibqueryerrors.pl.in ibswportwatch.pl ) endif()