cmake: fix libnl issue
[netsniff-ng.git] / src / trafgen / CMakeLists.txt
blob4044f103ba0e4f798ecad63f3de37e04f630c041
1 project(trafgen C)
3 set(BUILD_STRING "generic")
5 find_package(FLEX)
6 find_package(BISON)
7 find_package(Libnl)
8 include(Pod2Man)
10 if(FLEX_FOUND AND BISON_FOUND AND LIBNL_FOUND)
11   flex_target(
12     BPF_LEXER ../trafgen_lexer.l
13     ${CMAKE_CURRENT_BINARY_DIR}/trafgen_lex.yy.c
14   )
16   bison_target(
17     BPF_PARSER ../trafgen_parser.y
18     ${CMAKE_CURRENT_BINARY_DIR}/trafgen_parser.tab.c
19   )
21   add_executable(
22     ${PROJECT_NAME}
23     ../xmalloc.c
24     ../xio.c
25     ../xutils.c
26     ../mtrand.c
27     ../mac80211.c
28     ../ring_tx.c
29     ${FLEX_BPF_LEXER_OUTPUTS}
30     ${BISON_BPF_PARSER_OUTPUT_SOURCE}
31     ../trafgen.c
32   )
34   add_definitions(
35     -DPROGNAME_STRING="${PROJECT_NAME}"
36     -DVERSION_STRING="${VERSION}"
37     -DBUILD_STRING="${BUILD_STRING}"
38   )
40   if(HAVE_HWTSTAMP)
41     add_definitions(
42       -D__WITH_HARDWARE_TIMESTAMPING
43     )
44   endif(HAVE_HWTSTAMP)
46   target_link_libraries(
47     ${PROJECT_NAME}
48     ${LIBNL_LIBRARIES}
49     ${LIBNL_GENL_LIBRARY}\r
50   )
52   pod2man(
53     ${CMAKE_SOURCE_DIR}/../Documentation/Manpages/${PROJECT_NAME}.8
54     ${PROJECT_NAME} 8
55   )
57   install(
58     TARGETS ${PROJECT_NAME}
59     DESTINATION ${EXECUTABLE_INSTALL_PATH}
60   )
62   install(
63     FILES ../../Documentation/Trafgen
64     DESTINATION ${DOC_INSTALL_PATH}
65   )
66 else(FLEX_FOUND AND BISON_FOUND AND LIBNL_FOUND)
67   if(NOT FLEX_FOUND)
68     message("flex is missing on target. Skipping ${PROJECT_NAME} build.")
69   endif(NOT FLEX_FOUND)
71   if(NOT BISON_FOUND)
72     message("bison is missing on target. Skipping ${PROJECT_NAME} build.")
73   endif(NOT BISON_FOUND)
75   if(NOT LIBNL_FOUND)
76     message("libnl is missing on target. Skipping ${PROJECT_NAME} build.")
77   endif(NOT LIBNL_FOUND)
78 endif(FLEX_FOUND AND BISON_FOUND AND LIBNL_FOUND)