@@ -45,22 +45,30 @@ target_include_directories(memflux_core PUBLIC include)
4545target_link_libraries (memflux_core PUBLIC Threads::Threads bpf )
4646
4747# eBPF : l'objet est compilé si clang est disponible (optionnel au runtime)
48+ find_package (PkgConfig QUIET )
4849find_program (CLANG_BPF clang )
49- if (CLANG_BPF)
50+ if (PKG_CONFIG_FOUND)
51+ pkg_check_modules (LIBBPF libbpf )
52+ endif ()
53+ if (CLANG_BPF AND LIBBPF_FOUND)
5054 add_custom_command (
5155 OUTPUT ${CMAKE_BINARY_DIR } /ebpf_access.bpf.o
5256 COMMAND ${CLANG_BPF} -O2 -g -target bpf -D__TARGET_ARCH_x86
53- -I/usr/include -c ${CMAKE_SOURCE_DIR } /src/kern/ebpf_access.bpf.c
57+ -I/usr/include/x86_64-linux-gnu -I/usr/include
58+ -c ${CMAKE_SOURCE_DIR } /src/kern/ebpf_access.bpf.c
5459 -o ${CMAKE_BINARY_DIR } /ebpf_access.bpf.o
5560 DEPENDS src/kern/ebpf_access.bpf.c
5661 COMMENT "clang -target bpf: ebpf_access" )
5762 add_custom_target (ebpf_obj ALL
5863 DEPENDS ${CMAKE_BINARY_DIR } /ebpf_access.bpf.o )
64+ target_include_directories (memflux_core PUBLIC ${LIBBPF_INCLUDE_DIRS} )
65+ target_link_directories (memflux_core PUBLIC ${LIBBPF_LIBRARY_DIRS} )
5966 target_compile_definitions (memflux_core PUBLIC
6067 EbpfObjectPath= "${CMAKE_BINARY_DIR } /ebpf_access.bpf.o" )
6168else ()
62- target_compile_definitions (memflux_core PUBLIC
63- EbpfObjectPath= "" )
69+ # backend eBPF désactivé au runtime (EbpfObjectPath vide)
70+ add_library (ebpf_stub OBJECT src/kern/ebpf_stub.cpp )
71+ target_compile_definitions (memflux_core PUBLIC EbpfObjectPath= "" )
6472endif ()
6573
6674# ---------------------------------------------------------------------------
0 commit comments