33
44include_directories (${CMAKE_CURRENT_BINARY_DIR } )
55include_directories (${CMAKE_CURRENT_SOURCE_DIR } )
6- # to be removed
7- include_directories (${CMAKE_CURRENT_BINARY_DIR } /frontends/b )
8- include_directories (${CMAKE_CURRENT_SOURCE_DIR } /frontends/b )
6+
97include_directories (${CMAKE_CURRENT_SOURCE_DIR } /frontends/clang )
108include_directories (${LLVM_INCLUDE_DIRS} )
119include_directories (${LIBELF_INCLUDE_DIRS} )
@@ -15,6 +13,7 @@ endif(LIBLZMA_FOUND)
1513if (LIBDEBUGINFOD_FOUND AND ENABLE_LIBDEBUGINFOD)
1614 include_directories (${LIBDEBUGINFOD_INCLUDE_DIRS} )
1715endif (LIBDEBUGINFOD_FOUND AND ENABLE_LIBDEBUGINFOD )
16+
1817# todo: if check for kernel version
1918if (CMAKE_USE_LIBBPF_PACKAGE AND LIBBPF_FOUND)
2019 include_directories (${LIBBPF_INCLUDE_DIRS} )
@@ -44,7 +43,8 @@ if (NOT HAVE_REALLOCARRAY_SUPPORT)
4443 set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS } -DCOMPAT_NEED_REALLOCARRAY" )
4544endif ()
4645
47- include (static_libstdc++ )
46+ string (REGEX MATCH "^([0-9]+).*" _ ${LLVM_PACKAGE_VERSION} )
47+ set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS } -DLLVM_MAJOR_VERSION=${CMAKE_MATCH_1} " )
4848
4949if (LIBBPF_INCLUDE_DIR)
5050 # Add user libbpf include and notify compilation
@@ -88,11 +88,13 @@ if(LIBBPF_FOUND)
8888endif ()
8989
9090if (ENABLE_CLANG_JIT)
91- add_library (bcc-shared SHARED
92- link_all.cc ${bcc_common_sources} ${bcc_table_sources} ${bcc_sym_sources}
93- ${bcc_util_sources} )
94- set_target_properties (bcc-shared PROPERTIES VERSION ${REVISION_LAST} SOVERSION 0)
95- set_target_properties (bcc-shared PROPERTIES OUTPUT_NAME bcc)
91+ if (ENABLE_SHARED)
92+ add_library (bcc-shared SHARED
93+ link_all.cc ${bcc_common_sources} ${bcc_table_sources} ${bcc_sym_sources}
94+ ${bcc_util_sources} )
95+ set_target_properties (bcc-shared PROPERTIES VERSION ${REVISION_LAST} SOVERSION 0)
96+ set_target_properties (bcc-shared PROPERTIES OUTPUT_NAME bcc)
97+ endif (ENABLE_SHARED )
9698
9799if (ENABLE_USDT)
98100 add_definitions (-DEXPORT_USDT )
@@ -112,6 +114,8 @@ set(bpf_sources libbpf.c perf_reader.c ${libbpf_sources} ${bcc_sym_sources} ${bc
112114add_library (bpf-static STATIC ${bpf_sources} )
113115set_target_properties (bpf-static PROPERTIES OUTPUT_NAME bcc_bpf)
114116target_link_libraries (bpf-static elf z )
117+
118+ if (ENABLE_SHARED)
115119add_library (bpf-shared SHARED ${bpf_sources} )
116120set_target_properties (bpf-shared PROPERTIES VERSION ${REVISION_LAST} SOVERSION 0)
117121set_target_properties (bpf-shared PROPERTIES OUTPUT_NAME bcc_bpf)
@@ -125,6 +129,7 @@ endif(LIBDEBUGINFOD_FOUND)
125129if (CMAKE_USE_LIBBPF_PACKAGE AND LIBBPF_FOUND)
126130 target_link_libraries (bpf-shared ${LIBBPF_LIBRARIES} )
127131endif ()
132+ endif (ENABLE_SHARED )
128133
129134include (clang_libs )
130135set (CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS } ${clang_lib_exclude_flags} " )
@@ -175,15 +180,25 @@ add_subdirectory(frontends)
175180target_sources (bcc-static PRIVATE $<TARGET_OBJECTS :clang_frontend -objects >)
176181
177182# Link against LLVM libraries
178- target_link_libraries (bcc-shared ${bcc_common_libs_for_s} )
183+ if (ENABLE_SHARED)
184+ target_link_libraries (bcc-shared ${bcc_common_libs_for_s} )
185+ endif (ENABLE_SHARED )
186+
179187target_link_libraries (bcc-static ${bcc_common_libs_for_a} bcc-loader-static )
180188set (bcc-lua-static ${bcc-lua-static} ${bcc_common_libs_for_lua} )
181189
182- install (TARGETS bcc-shared bcc- static bcc-loader-static bpf-static LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} )
190+ install (TARGETS bcc-static bcc-loader-static bpf-static LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} )
183191install (FILES ${bcc_table_headers} DESTINATION include/bcc)
184192install (FILES ${bcc_api_headers} DESTINATION include/bcc)
185193install (DIRECTORY ${libbpf_uapi} DESTINATION include/bcc/compat/linux FILES_MATCHING PATTERN "*.h" )
186194install (FILES ${CMAKE_CURRENT_BINARY_DIR } /libbcc.pc DESTINATION ${CMAKE_INSTALL_LIBDIR} /pkgconfig)
195+ if (ENABLE_SHARED)
196+ install (TARGETS bcc-shared LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} )
197+ endif (ENABLE_SHARED )
198+
187199endif (ENABLE_CLANG_JIT )
188200install (FILES ${bcc_common_headers} DESTINATION include/bcc)
189- install (TARGETS bpf-shared LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} )
201+
202+ if (ENABLE_SHARED)
203+ install (TARGETS bpf-shared LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} )
204+ endif (ENABLE_SHARED )
0 commit comments