make: make inst && rm as function
[netsniff-ng.git] / src / bpfc / CMakeLists.txt
blob17f26a932d35d46624894eb525f4e561f9cef3ce
1 project(bpfc C)
3 set(BUILD_STRING "generic")
5 find_package(FLEX)
6 find_package(BISON)
7 include(Pod2Man)
9 if(FLEX_FOUND AND BISON_FOUND)
10   flex_target(
11     BPF_LEXER ../bpf_lexer.l
12     ${CMAKE_CURRENT_BINARY_DIR}/bpf_lex.yy.c
13     COMPILE_FLAGS "-P yy"
14   )
16   bison_target(
17     BPF_PARSER ../bpf_parser.y
18     ${CMAKE_CURRENT_BINARY_DIR}/bpf_parser.tab.c
19     COMPILE_FLAGS "-p yy"
20   )
22   flex_target(
23     BPF_HLA_LEXER ../bpf_hla_lexer.l
24     ${CMAKE_CURRENT_BINARY_DIR}/bpf_hla_lex.yy.c
25     COMPILE_FLAGS "-P zz"
26   )
28   bison_target(
29     BPF_HLA_PARSER ../bpf_hla_parser.y
30     ${CMAKE_CURRENT_BINARY_DIR}/bpf_hla_parser.tab.c
31     COMPILE_FLAGS "-p zz"
32   )
34   add_executable(
35     ${PROJECT_NAME}
36     ../xmalloc.c
37     ../xutils.c
38     ../bpf.c
39     ../bpf_symtab.c
40     ${FLEX_BPF_LEXER_OUTPUTS}
41     ${BISON_BPF_PARSER_OUTPUT_SOURCE}
42     ${FLEX_BPF_HLA_LEXER_OUTPUTS}
43     ${BISON_BPF_HLA_PARSER_OUTPUT_SOURCE}
44     ../bpfc.c
45   )
47   add_definitions(
48     -DPROGNAME_STRING="${PROJECT_NAME}"
49     -DVERSION_STRING="${VERSION}"
50     -DBUILD_STRING="${BUILD_STRING}"
51   )
53   pod2man(
54     ${CMAKE_SOURCE_DIR}/../Documentation/Manpages/${PROJECT_NAME}.8
55     ${PROJECT_NAME} 8
56   )
58   install(
59     TARGETS ${PROJECT_NAME}
60     DESTINATION ${EXECUTABLE_INSTALL_PATH}
61   )
63   install(
64     FILES ../../Documentation/Bpfc
65     DESTINATION ${DOC_INSTALL_PATH}
66   )
67 else(FLEX_FOUND AND BISON_FOUND)
68   if(NOT FLEX_FOUND)
69     message("flex is missing on target. Skipping ${PROJECT_NAME} build.")
70   endif(NOT FLEX_FOUND)
72   if(NOT BISON_FOUND)
73     message("bison is missing on target. Skipping ${PROJECT_NAME} build.")
74   endif(NOT BISON_FOUND)
75 endif(FLEX_FOUND AND BISON_FOUND)