64 lines
1.7 KiB
CMake
Executable File
64 lines
1.7 KiB
CMake
Executable File
CMAKE_MINIMUM_REQUIRED(VERSION 3.9)
|
|
PROJECT(dpdk C)
|
|
|
|
LIST(APPEND CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}")
|
|
LIST(APPEND CMAKE_PREFIX_PATH "${CMAKE_SOURCE_DIR}")
|
|
|
|
INCLUDE(ProcessorCount)
|
|
PROCESSORCOUNT(PROCS)
|
|
|
|
#ARCH can be: i686, x86_64, ppc_64, arm64
|
|
#MACHINE can be: native, power8, armv8a
|
|
#EXECENV can be: linuxapp, bsdapp
|
|
#TOOLCHAIN can be: gcc, icc
|
|
|
|
SET(ARCH x86_64)
|
|
SET(MACHINE native)
|
|
SET(EXECENV linuxapp)
|
|
SET(TOOLCHAIN gcc)
|
|
|
|
IF (CMAKE_SYSTEM_PROCESSOR MATCHES "^i.86$")
|
|
SET(ARCH "i686")
|
|
ELSEIF (CMAKE_SYSTEM_PROCESSOR MATCHES "^arm")
|
|
SET(MACHINE arm8a)
|
|
ELSEIF (CMAKE_SYSTEM_PROCESSOR MATCHES "^(powerpc|ppc)64")
|
|
SET(MACHINE power8)
|
|
SET(ARCH ppc_64)
|
|
ENDIF ()
|
|
|
|
IF (CMAKE_SYSTEM_NAME STREQUAL "FreeBSD")
|
|
SET(EXECENV bsdapp)
|
|
ENDIF ()
|
|
|
|
FIND_PACKAGE(Numa REQUIRED)
|
|
FIND_PROGRAM(MAKE make)
|
|
|
|
SET(DPDK_CFLAGS "-fPIC")
|
|
IF (CMAKE_BUILD_TYPE STREQUAL Debug)
|
|
STRING(APPEND ${DPDK_CFLAGS} "-O0 -g")
|
|
ENDIF ()
|
|
|
|
SET(DPDK_TARGET ${ARCH}-${MACHINE}-${EXECENV}-${TOOLCHAIN})
|
|
#SET(DPDK_CONFIG O=${CMAKE_BUILD_TYPE}/build T=${DPDK_TARGET})
|
|
SET(DPDK_CONFIG "T=${DPDK_TARGET}")
|
|
|
|
IF (SOURCE_PATH)
|
|
SET(CMAKE_SOURCE_DIR ${SOURCE_PATH})
|
|
ENDIF ()
|
|
|
|
ADD_CUSTOM_TARGET(dpdk-configure
|
|
COMMAND ${MAKE} config ${DPDK_CONFIG}
|
|
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/
|
|
VERBATIM
|
|
)
|
|
|
|
ADD_CUSTOM_TARGET(dpdk ALL
|
|
COMMAND ${MAKE} EXTRA_CFLAGS=\"${DPDK_CFLAGS}\" MAKEFLAGS=\"${DPDK_CONFIG} -j ${PROCS}\"
|
|
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/
|
|
)
|
|
|
|
ADD_DEPENDENCIES(dpdk dpdk-configure)
|
|
|
|
INSTALL(DIRECTORY ${CMAKE_SOURCE_DIR}/build/lib
|
|
DESTINATION ${CMAKE_SOURCE_DIR}/${CMAKE_BUILD_TYPE}/)
|