44#
55# Hang Tsi (tsihang@asterfusion.com)
66#
7- # Belowing shows how to build bf-bsp-lts via CMake.
8- #
9- # cd bf-bsp-lts
10- # ./autogen.sh
11- # mkdir build && cd build
12- # cmake .. -DCMAKE_MODULE_PATH=`pwd`/../cmake -DCMAKE_INSTALL_PREFIX=$SDE_INSTALL
13- # make -j4 install
14- #
15- #
167
178cmake_minimum_required (VERSION 3.5)
189
19- option (STANDALONE "Build outside of pkgsrc" ON )
20- option (FORCE32 "Force a 32bit compile on 64bit" OFF )
10+ option (LASER_ON "Force default laser enabled when modules plugged-in" OFF )
2111option (THRIFT-DRIVER "Build with thrift support" ON )
22- option (COVERAGE "Build with gcov" OFF )
23- option (TOFINO "Build for TOFINO" ON )
24- option (TOFINO2 "Build for TOFINO2" OFF )
2512option (ASTERFUSION-DIAGS "Build Asterfusion Diags" OFF )
13+ option (FORCE32 "Force a 32bit compile on 64bit" OFF )
14+ option (COVERAGE "Build with gcov" OFF )
2615
16+ #
2717# Pass OS_NAME/OS_VERSION/SDE_VERSION by cmake CLI. Take belowing as an example:
2818# cmake .. -DCMAKE_MODULE_PATH=`pwd`/../cmake -DCMAKE_INSTALL_PREFIX=$SDE_INSTALL \
2919# -DOS_NAME=(Debian|Ubuntu) \
30- # -DOS_VERSION=[(8|9|10|11|12),(14.04|16.04|18.04|20.04|22.04)] \
31- # -DSDE_VERSION=(900|911|933|954|975|991|9112|9133)
20+ # -DOS_VERSION=[(8|9|10|11|12),(1404|1604|1804|2004|2204)] \
21+ # -DSDE_VERSION=(900|911|933|954|975|991|9112|9133) \
22+ # -DTRIFT-DRIVER=on \
23+ # -DLASER_ON=off
24+ #
25+ # The defaut value of variables listed below if none of them passed by cmake CLI:
26+ # OS_NAME=Debian, OS_VERSION=9, SDE_VERSION=9133, THRIFT-DRIVER=on, LASER_ON=off.
3227#
3328message (STATUS "Supported -DOS_NAME=(Debian|Ubuntu)" )
34- message (STATUS "Supported -DOS_VERSION=[(8|9|10|11|12),(14.04|16.04|18.04|20.04|22.04 )]" )
29+ message (STATUS "Supported -DOS_VERSION=[(8|9|10|11|12),(1404|1604|1804|2004|2204 )]" )
3530message (STATUS "Supported -DSDE_VERSION=(900|911|933|954|975|991|9112|9133)" )
3631cmake_host_system_information (RESULT HOST_NAME QUERY HOSTNAME)
3732message (STATUS "${HOST_NAME} " )
3833
3934if (NOT DEFINED SDE_VERSION)
4035 # Default SDE_VERSION
41- set (SDE_VERSION 9130 )
36+ set (SDE_VERSION 9133 )
4237endif ()
4338
4439if (NOT DEFINED OS_VERSION)
@@ -61,13 +56,23 @@ endif()
6156message (STATUS "Giving -DOS_NAME=${OS_NAME} " )
6257message (STATUS "Giving -DOS_VERSION=${OS_VERSION} " )
6358message (STATUS "Giving -DSDE_VERSION=${SDE_VERSION} " )
59+ message (STATUS "Giving -DTHRIFT_ENABLED=${THRIFT-DRIVER}" )
60+ message (STATUS "Giving -DDEFAULT_LASER_ON=${LASER_ON} " )
61+ message (STATUS "Giving -DASTERFUSION-DIAGS=${ASTERFUSION-DIAGS}" )
62+ message (STATUS "Giving -DCOVERAGE=${COVERAGE} " )
6463
65- # Please see drivers/include/bf_pltfm_types/bf_pltfm_types.h +34
64+ # Please see drivers/include/bf_pltfm_types/bf_pltfm_types.h +34 for reference.
6665add_definitions (-DOS_NAME=${OS_NAME} )
6766add_definitions (-DOS_VERSION=${OS_VERSION} )
6867add_definitions (-DSDE_VERSION=${SDE_VERSION} )
6968# Unused
7069add_definitions (-DDEVICE_IS_ASIC)
70+ if (LASER_ON)
71+ # Please see drivers/include/bf_qsfp/bf_qsfp.h +45 for reference.
72+ add_definitions (-DDEFAULT_LASER_ON)
73+ #set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DDEFAULT_LASER_ON")
74+ #set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DDEFAULT_LASER_ON")
75+ endif ()
7176
7277if (${SDE_VERSION} LESS 990)
7378 set (bfutils_lib "bfutils" )
@@ -78,6 +83,18 @@ else()
7883endif ()
7984message (STATUS "Linking ${bfutils_lib} ${bfsys_lib} " )
8085
86+ set (private_lib "cgos" )
87+
88+ # to avoid empty variable.
89+ set (i2c_lib "m" )
90+ if ((${OS_NAME} STREQUAL "Debian" ) AND (${OS_VERSION} GREATER 9))
91+ set (i2c_lib "i2c" )
92+ endif ()
93+ if ((${OS_NAME} STREQUAL "Ubuntu" ) AND (${OS_VERSION} GREATER 1604))
94+ set (i2c_lib "i2c" )
95+ endif ()
96+ message (STATUS "Linking ${i2c_lib} " )
97+
8198if (FORCE32)
8299 set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -m32" )
83100 set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -m32" )
@@ -100,10 +117,7 @@ set(C_CXX_FLAGS "-Wall -Wextra -Werror -Wundef -Wshadow -Wno-missing-field-initi
100117if (COVERAGE)
101118 set (C_CXX_FLAGS "${C_CXX_FLAGS} --coverage" )
102119endif ()
103- if (FORCE32)
104- set (CMAKE_C_FLAGS "-m32" )
105- set (CMAKE_CXX_FLAGS "-m32" )
106- endif ()
120+
107121set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${C_CXX_FLAGS} " )
108122set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${C_CXX_FLAGS} " )
109123
@@ -197,7 +211,7 @@ add_library(asterfusionbf_driver_o OBJECT
197211)
198212add_library (asterfusionbf_driver SHARED $<TARGET_OBJECTS:asterfusionbf_driver_o>)
199213set_target_properties (asterfusionbf_driver PROPERTIES VERSION 0.0.0 SOVERSION 0)
200- target_link_libraries (asterfusionbf_driver ${bfsys_lib} curl usb-1.0 ${bfutils_lib} cgos )
214+ target_link_libraries (asterfusionbf_driver ${bfsys_lib} curl usb-1.0 ${bfutils_lib} ${private_lib} )
201215add_library (pltfm_driver_o OBJECT
202216 drivers/src/bf_bd_cfg/bf_bd_cfg_intf.c
203217 drivers/src/bf_bd_cfg/bf_bd_cfg_intf_ucli.c
@@ -233,9 +247,9 @@ set_target_properties(pltfm_mgr PROPERTIES VERSION 0.0.0 SOVERSION 0)
233247#thrift
234248if (THRIFT-DRIVER)
235249 add_subdirectory (platforms/asterfusion-bf/thrift)
236- target_link_libraries (pltfm_mgr PUBLIC pltfm_mgr_thrift ${bfsys_lib} curl usb-1.0)
250+ target_link_libraries (pltfm_mgr PUBLIC pltfm_mgr_thrift ${bfsys_lib} curl usb-1.0 ${private_lib} )
237251else ()
238- target_link_libraries (pltfm_mgr PUBLIC ${bfsys_lib} curl usb-1.0)
252+ target_link_libraries (pltfm_mgr PUBLIC ${bfsys_lib} curl usb-1.0 ${private_lib} )
239253endif ()
240254
241255add_library (asterfusion_bin_srcs_o OBJECT
@@ -254,22 +268,22 @@ add_executable(spi_i2c_util
254268 platforms/asterfusion-bf/tofino_spi_util/tofino_porting_spi.c
255269 $<TARGET_OBJECTS:asterfusion_bin_srcs_o>
256270)
257- target_link_libraries (spi_i2c_util ${bfsys_lib} usb-1.0 curl m ${bfutils_lib} cgos )
271+ target_link_libraries (spi_i2c_util ${bfsys_lib} usb-1.0 curl m ${bfutils_lib} ${private_lib} ${i2c_lib} )
258272install (PROGRAMS ${CMAKE_CURRENT_BINARY_DIR} /spi_i2c_util DESTINATION bin)
259273
260274add_executable (cp2112_util
261275 platforms/asterfusion-bf/cp2112_util/cp2112_util.c
262276 $<TARGET_OBJECTS:asterfusion_bin_srcs_o>
263277)
264- target_link_libraries (cp2112_util ${bfsys_lib} usb-1.0 curl m ${bfutils_lib} cgos )
278+ target_link_libraries (cp2112_util ${bfsys_lib} usb-1.0 curl m ${bfutils_lib} ${private_lib} ${i2c_lib} )
265279target_compile_options (cp2112_util PRIVATE -Wno-implicit-function-declaration -Wno-sign-compare)
266280install (PROGRAMS ${CMAKE_CURRENT_BINARY_DIR} /cp2112_util DESTINATION bin)
267281
268282add_executable (uart_util
269283 platforms/asterfusion-bf/uart_util/uart_util.c
270284 $<TARGET_OBJECTS:asterfusion_bin_srcs_o>
271285)
272- target_link_libraries (uart_util ${bfsys_lib} usb-1.0 curl m ${bfutils_lib} cgos )
286+ target_link_libraries (uart_util ${bfsys_lib} usb-1.0 curl m ${bfutils_lib} ${private_lib} ${i2c_lib} )
273287target_compile_options (uart_util PRIVATE -Wno-implicit-function-declaration -Wno-sign-compare)
274288install (PROGRAMS ${CMAKE_CURRENT_BINARY_DIR} /uart_util DESTINATION bin)
275289
@@ -280,7 +294,7 @@ add_executable(syseeprom_util
280294 $<TARGET_OBJECTS:asterfusion_bin_srcs_o>
281295)
282296set_target_properties (syseeprom_util PROPERTIES COMPILE_FLAGS -DNO_MAIN)
283- target_link_libraries (syseeprom_util ${bfsys_lib} usb-1.0 curl m ${bfutils_lib} cgos )
297+ target_link_libraries (syseeprom_util ${bfsys_lib} usb-1.0 curl m ${bfutils_lib} ${private_lib} ${i2c_lib} )
284298target_compile_options (syseeprom_util PRIVATE -Wno-error)
285299install (PROGRAMS ${CMAKE_CURRENT_BINARY_DIR} /syseeprom_util DESTINATION bin)
286300
0 commit comments