diff --git a/cmake_targets/CMakeLists.txt b/cmake_targets/CMakeLists.txt index 305ca31dfba4ef12eb2e0d417dac74f41a9e44ef..e98872daaea1b118aac019d304996249a549984e 100644 --- a/cmake_targets/CMakeLists.txt +++ b/cmake_targets/CMakeLists.txt @@ -51,7 +51,10 @@ endif() set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS Debug Release RelWithDebInfo MinSizeRel) # -set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -msse4.2 -std=gnu99 -Wall -Wstrict-prototypes -fno-strict-aliasing -rdynamic -funroll-loops -Wno-packed-bitfield-compat -DCMAKER") +set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -msse4.2 -std=gnu99 -Wall -Wstrict-prototypes -fno-strict-aliasing -rdynamic -funroll-loops -Wno-packed-bitfield-compat") +# set a flag for changes in the source code +# these changes are related to hardcoded path to include .h files +add_definitions("-DCMAKER") set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -ggdb -DMALLOC_CHECK_=3") set(CMAKE_C_FLAGS_RELWITHDEBINFO "${CMAKE_C_FLAGS_RELWITHDEBINFO} -ggdb -DMALLOC_CHECK_=3 -O3") @@ -444,22 +447,6 @@ include_directories("${OPENAIRCN_DIR}/GTPV1-U/nw-gtpv1u/include") ################################## #add_subdirectory (${OPENAIR_DIR} .) -# Generated code need to declare explicit dependancy -############################################### - -set (ITTI_H ${ITTI_DIR}/intertask_interface_types.h) -add_custom_command ( - OUTPUT ${OPENAIR_BIN_DIR}/messages.xml - COMMAND gccxml -fxml=${OPENAIR_BIN_DIR}/messages.xml ${ITTI_H} ${module_compiler_options} - #COMMAND rm ${ITTI_H}.tmp - ) - -add_custom_command ( - OUTPUT ${OPENAIR_BIN_DIR}/messages_xml.h - COMMAND sed -e 's/ *//' -e 's/\"/\\\\\"/g' -e 's/^/\"/' -e 's/$$/\\\\n\"/' ${OPENAIR_BIN_DIR}/messages.xml > ${OPENAIR_BIN_DIR}/messages_xml.h - DEPENDS ${OPENAIR_BIN_DIR}/messages.xml - ) - # define libraries #add_library(MathFunctions mysqrt.cxx) function(add_whole_dir dir lib_name) @@ -1141,27 +1128,62 @@ target_link_libraries (${myExe} ) endforeach(myExe) + + +################################################## +# Generated specific cases is not regular code +############################################### + +##################"" +# itti symbolic debug print require to generate a specific include file +######################################## + +# retrieve the compiler options to send it to gccxml +get_directory_property( DirDefs COMPILE_DEFINITIONS ) +foreach( d ${DirDefs} ) + list(APPEND itti_compiler_options "-D${d}") +endforeach() +get_directory_property( DirDefs INCLUDE_DIRECTORIES ) +foreach( d ${DirDefs} ) + list(APPEND itti_compiler_options "-I${d}") +endforeach() + +set (ITTI_H ${ITTI_DIR}/intertask_interface_types.h) +add_custom_command ( + OUTPUT ${OPENAIR_BIN_DIR}/messages.xml + COMMAND gccxml ${itti_compiler_options} -fxml=${OPENAIR_BIN_DIR}/messages.xml ${ITTI_H} + DEPENDS ${S1AP_OAI_generated} ${RRC_FULL_DIR}/asn1_constants.h + ) + +add_custom_command ( + OUTPUT ${OPENAIR_BIN_DIR}/messages_xml.h + COMMAND sed -e 's/ *//' -e 's/\"/\\\\\"/g' -e 's/^/\"/' -e 's/$$/\\\\n\"/' ${OPENAIR_BIN_DIR}/messages.xml > ${OPENAIR_BIN_DIR}/messages_xml.h + DEPENDS ${OPENAIR_BIN_DIR}/messages.xml ${RRC_FULL_DIR}/asn1_constants.h + ) + +################ +# Kernel modules +############### # Set compiler options for kernel modules # we need to get out cmake to use the regular Linux Kernel process # this is documented as https://www.kernel.org/doc/Documentation/kbuild/modules.txt ###################################### -# Common to all modules -######################## +# retrieve the compiler options to send it to gccxml get_directory_property( DirDefs COMPILE_DEFINITIONS ) foreach( d ${DirDefs} ) if(NOT ${d} STREQUAL "USER_MODE") - set(module_compile_options "${module_compile_options} -D${d}") + list(APPEND itti_compiler_options "-I${d}") endif() endforeach() get_directory_property( DirDefs INCLUDE_DIRECTORIES ) foreach( d ${DirDefs} ) - set(module_compile_options "${module_compile_options} -I${d}") + set(module_cc_opt "${module_cc_opt} -I${d}") endforeach() EXECUTE_PROCESS(COMMAND uname -r - OUTPUT_VARIABLE os_release - OUTPUT_STRIP_TRAILING_WHITESPACE) + OUTPUT_VARIABLE os_release + OUTPUT_STRIP_TRAILING_WHITESPACE) SET(module_build_path /lib/modules/${os_release}/build) message("Kernel build path = ${module_build_path}") @@ -1186,9 +1208,9 @@ endfunction(make_driver name dir src) # nashmesh module ################ list(APPEND nasmesh_src device.c common.c ioctl.c classifier.c tool.c mesh.c) -set(module_compile_options "${module_compile_options} -DNAS_NETLINK") +set(module_cc_opt "${module_cc_opt} -DNAS_NETLINK") make_driver(nasmesh ${OPENAIR2_DIR}/NAS/DRIVER/MESH ${nasmesh_src}) - + # Next module #################### diff --git a/cmake_targets/Kbuild.cmake b/cmake_targets/Kbuild.cmake index 6c3e228a1e1bbd8175e92b3511192c0908332704..7403cd04df670a6fbb720d9221365a95a90f4d78 100644 --- a/cmake_targets/Kbuild.cmake +++ b/cmake_targets/Kbuild.cmake @@ -1,4 +1,4 @@ src=${dir} obj-m += ${name}.o -${name}-y := ${objs} -ccflags-y += ${module_compile_options} +${name}-y += ${objs} +ccflags-y += ${module_cc_opt}