PROJECT(trafgen C)

FIND_PACKAGE(FLEX)
FIND_PACKAGE(BISON)
FIND_PACKAGE(LibCLI)
FIND_PACKAGE(Libnl)
INCLUDE(Pod2Man)

SET(BUILD_STRING "generic")

IF(LIBCLI_FOUND AND FLEX_FOUND AND BISON_FOUND AND LIBNL_FOUND)
        FLEX_TARGET(BPF_LEXER ../trafgen_lexer.l ${CMAKE_CURRENT_BINARY_DIR}/trafgen_lex.yy.c)
        BISON_TARGET(BPF_PARSER ../trafgen_parser.y ${CMAKE_CURRENT_BINARY_DIR}/trafgen_parser.tab.c)
	ADD_EXECUTABLE(${PROJECT_NAME} 	../xmalloc.c
					../xio.c
					../xutils.c
					../mtrand.c
					../mac80211.c
					../ring_tx.c
					${FLEX_BPF_LEXER_OUTPUTS}
					${BISON_BPF_PARSER_OUTPUT_SOURCE}
					../trafgen_cli.c
					../trafgen.c)
	ADD_DEFINITIONS(-DPROGNAME_STRING="${PROJECT_NAME}"
			-DVERSION_STRING="${VERSION}"
			-DBUILD_STRING="${BUILD_STRING}")
	TARGET_LINK_LIBRARIES(trafgen ${LIBCLI_LIBRARY} ${LIBNL_LIBRARIES})
	POD2MAN(${CMAKE_SOURCE_DIR}/trafgen.c trafgen 8)
	INSTALL(TARGETS ${PROJECT_NAME} DESTINATION ${EXECUTABLE_INSTALL_PATH})
ELSE(LIBCLI_FOUND AND FLEX_FOUND AND BISON_FOUND AND LIBNL_FOUND)
	MESSAGE("libcli-dev or libnl is missing on target. Skipping ${PROJECT_NAME} build.")
ENDIF(LIBCLI_FOUND AND FLEX_FOUND AND BISON_FOUND AND LIBNL_FOUND)
