diff --git a/cmake_targets/CMakeLists.txt b/cmake_targets/CMakeLists.txt
new file mode 100644
index 0000000000000000000000000000000000000000..a4bedfbea215b0e6cef1f9558ba04074b6944cc3
--- /dev/null
+++ b/cmake_targets/CMakeLists.txt
@@ -0,0 +1,1147 @@
+################################################################################
+#   OpenAirInterface
+#   Copyright(c) 1999 - 2014 Eurecom
+#
+#   OpenAirInterface is free software: you can redistribute it and/or modify
+#   it under the terms of the GNU General Public License as published by
+#   the Free Software Foundation, either version 3 of the License, or
+#   (at your option) any later version.
+#
+#   OpenAirInterface is distributed in the hope that it will be useful,
+#   but WITHOUT ANY WARRANTY; without even the implied warranty of
+#   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#   GNU General Public License for more details.
+#
+#   You should have received a copy of the GNU General Public License
+#   along with OpenAirInterface.The full GNU General Public License is
+#  included in this distribution in the file called "COPYING". If not,
+#  see <http://www.gnu.org/licenses/>.
+#
+# Contact Information
+# OpenAirInterface Admin: openair_admin@eurecom.fr
+# OpenAirInterface Tech : openair_tech@eurecom.fr
+# OpenAirInterface Dev  : openair4g-devel@eurecom.fr
+#
+# Address      : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06904 Biot Sophia Antipolis cedex, FRANCE
+# Author: laurent THOMAS
+###############################################################################
+
+cmake_minimum_required (VERSION 2.8)
+
+
+# Base directories, compatible with legacy OAI building
+################################################
+set (OPENAIR_DIR     $ENV{OPENAIR_DIR})
+set (OPENAIR1_DIR    ${OPENAIR_DIR}/openair1)
+set (OPENAIR2_DIR    ${OPENAIR_DIR}/openair2)
+set (OPENAIR3_DIR    ${OPENAIR_DIR}/openair3)
+set (OPENAIR_TARGETS ${OPENAIR_DIR}/targets)
+set (OPENAIRCN_DIR   ${OPENAIR_DIR}/openair-cn)
+set (OPENAIR_CMAKE   ${OPENAIR_DIR}/cmake_targets)
+set (OPENAIR_BIN_DIR ${CMAKE_CURRENT_BINARY_DIR}${CMAKE_FILES_DIRECTORY})
+
+project (OpenAirInterface)
+
+# compilation flags
+# added CMAKER conditional compilation to not bother legacy building system
+#############################################
+if(NOT CMAKE_BUILD_TYPE)
+set(CMAKE_BUILD_TYPE "RelWithDebInfo" CACHE STRING "Choose the type of build, options are: None(CMAKE_CXX_FLAGS or CMAKE_C_FLAGS used) Debug Release RelWithDebInfo MinSizeRel." FORCE)
+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_DEBUG "${CMAKE_C_FLAGS_DEBUG} -ggdb -DMALLOC_CHECK_=3")
+set(CMAKE_C_FLAGS_RELWITHDEBINFO "${CMAKE_C_FLAGS_RELWITHDEBINFO} -ggdb -DMALLOC_CHECK_=3 -O3")
+
+find_package(Subversion)
+if(SUBVERSION_FOUND)
+  Subversion_WC_INFO(${OPENAIR_DIR} openair)
+  set (FIRMWARE_VERSION "${openair_WC_REVISION} - ${openair_WC_LAST_CHANGED_DATE}")
+  Subversion_WC_LOG(${OPENAIR_DIR} Project)
+  message("Last changed log is ${Project_LAST_CHANGED_LOG}")
+else()
+  set (FIRMWARE_VERSION "No svn information")
+endif()
+add_definitions("-DFIRMWARE_VERSION=\"${FIRMWARE_VERSION}\"")
+
+# Define options for compilation
+################################################
+function(add_boolean_option name val helpstr)
+  if(DEFINED ${name})
+    set(value ${${name}})
+  else(DEFINED ${name})
+    set(value ${val})
+  endif()
+  set(${name} ${value} CACHE STRING "${helpstr}")
+  set_property(CACHE ${name} PROPERTY TYPE BOOL)
+  if (${value})
+    add_definitions("-D${name}")
+  endif (${value})
+endfunction(add_boolean_option)
+
+function(add_integer_option name val helpstr)
+  if(DEFINED ${name})
+    set(value ${${name}})
+  else(DEFINED ${name})
+    set(value ${val})
+  endif()
+  set(${name} ${value} CACHE STRING "${helpstr}")
+  add_definitions("-D${name}=${value}")
+endfunction(add_integer_option)
+
+# Debug related options
+#########################################
+add_boolean_option(MSG_PRINT  False "print debug messages")
+add_boolean_option(DISABLE_XER_PRINT True "print XER Format")
+add_boolean_option(RRC_MSG_PRINT False "print RRC messages")
+add_boolean_option(PDCP_MSG_PRINT False "print PDCP messages")
+add_boolean_option(DEBUG_PHY False "for unitary tests with dlsim")
+
+add_boolean_option(XFORMS True "This adds the possibility to see the signal oscilloscope")
+if (${XFORMS})
+  include_directories ("/usr/include/X11")
+  set(XFORMS_SOURCE ${OPENAIR1_DIR}/PHY/TOOLS/lte_phy_scope.c)
+  set(option_lib_xforms "forms")
+endif (${XFORMS})
+  
+# to be documented options
+###################
+#set(LOCALIZATION  False)
+add_boolean_option(LOCALIZATION  True "???")
+add_boolean_option(LINUX_LIST True "???")
+add_boolean_option(SPECTRA True "???")
+add_boolean_option(HARD_RT False "???")
+add_boolean_option(ENABLE_SECURITY True "???")
+add_boolean_option(SECU True "???")
+add_boolean_option(JUMBO_FRAME True "???")
+add_boolean_option(ENABLE_USE_MME True "???")
+add_boolean_option(LINK_PDCP_TO_GTPV1U True "????")
+add_boolean_option(USER_MODE True "????")
+add_boolean_option(LOG_NO_THREAD True "Disable thread for log, seems always set to true")
+add_boolean_option(ENABLE_NAS_UE_LOGGING True "????")
+add_boolean_option(ENABLE_USE_CPU_EXECUTION_TIME True "????")
+add_boolean_option(OPENAIR2 True "????")
+add_boolean_option(NO_RRM True "????")
+add_boolean_option(PUCCH True "????")
+add_boolean_option(NEW_FFT True "????")
+add_boolean_option(PHYSIM True "????")
+add_boolean_option(PC_TARGET True "????")
+add_boolean_option(PC_DSP True "????")
+add_boolean_option(OPENAIR_LTE True "Seems legacy: keep it to true")
+add_boolean_option(ENABLE_FXP True "????")
+add_boolean_option(OPENAIR1 True "????")
+add_boolean_option(DRIVER2013 True "????")
+add_boolean_option(ENABLE_RAL True "????")
+add_boolean_option(MIH_C_MEDIEVAL_EXTENSIONS True "????")
+add_boolean_option(SMBV False "Rohde&Schwarz SMBV100A vector signal generator")
+add_boolean_option(UE_BUILD True "????")
+add_boolean_option(NAS_UE True "????")
+add_boolean_option(PHYSIM False "for L1 simulators (dlsim, ulsim, ...)")
+add_boolean_option(PHY_EMUL False "not clear: must remain False for dlsim")
+add_boolean_option(MU_RECEIVER False "????")
+add_boolean_option(RANDOM_BF False "????")
+add_boolean_option(PBS_SIM False "????")
+add_boolean_option(PERFECT_CE False "????")
+
+add_boolean_option(EMOS False "????")
+if(${EMOS})
+  add_definitions("-D_FILE_OFFSET_BITS=64")
+  add_library(gps)
+endif(${EMOS})
+
+add_integer_option(MAX_NUM_CCs 1 "????")
+add_integer_option(MAX_CONTEXT 1 "????")
+add_integer_option(PHY_CONTEXT 1 "????")
+
+add_boolean_option(ENABLE_ITTI True "ITTI is internal messaging, should remain enabled")
+set (ITTI_DIR ${OPENAIR_DIR}/common/utils/itti)
+if (${ENABLE_ITTI})
+  add_library(ITTI 
+    # add .h files if depend on (this one is generated)
+    ${ITTI_DIR}/intertask_interface.h
+    ${ITTI_DIR}/intertask_interface.c
+    ${ITTI_DIR}/intertask_interface_dump.c
+    ${ITTI_DIR}/backtrace.c
+    ${ITTI_DIR}/memory_pools.c
+    ${ITTI_DIR}/signals.c
+    ${ITTI_DIR}/timer.c
+    )
+  set(option_ITTI ITTI)
+  set(EXMIMO_IOT)
+endif (${ENABLE_ITTI})
+
+add_boolean_option(RTAI False "Use RTAI")
+if (${RTAI})
+  set(ENABLE_RTAI_CLOCK)
+  set(CONFIG_RTAI_LXRT_INLINE)
+  include_directories ("/usr/realtime/include")
+  include_directories ("/usr/realtime/include/asm")
+  set(RTAI_SOURCE sched_dlsch.c sched_rx_pdsch.c rt_wrapper.c vcd_signal_dumper.c log.c)
+endif (${RTAI})
+
+#############################
+# ASN.1 grammar C code generation & dependancies
+################################
+# A difficulty: asn1c generates C code of a un-predictable list of files
+# so, generate the c from asn1c once at cmake run time
+# So, if someone modify the asn.1 source file in such as way that it will create
+# (so creating new asn.1 objects instead of modifying the object attributes)
+# New C code source file, cmake must be re-run (instead of re-running make only) 
+#############
+set(asn1c_call "${OPENAIR_CMAKE}/generate_asn1.bash")
+set(asn1_generated_dir ${OPENAIR_BIN_DIR})
+
+# RRC
+######
+if (DEFINED RRC_ASN1_VERSION)
+  set(RRC_ASN1_VERSION ${RRC_ASN1_VERSION} CACHE STRING "ASN.1 version of RRC interface")
+else(DEFINED RRC_ASN1_VERSION)
+  set(RRC_ASN1_VERSION "Rel10" CACHE STRING "ASN.1 version of RRC interface")
+endif()
+
+set_property(CACHE RRC_ASN1_VERSION PROPERTY STRINGS "Rel8" "Rel10" "CBA")
+
+if (${RRC_ASN1_VERSION} STREQUAL "Rel8")
+  set (RRC_GRAMMAR ${OPENAIR2_DIR}/RRC/LITE/MESSAGES/asn1c/ASN1_files/EUTRA-RRC-Definitions-86.asn)
+elseif (${RRC_ASN1_VERSION} STREQUAL "Rel10")
+  set (RRC_GRAMMAR ${OPENAIR2_DIR}/RRC/LITE/MESSAGES/asn1c/ASN1_files/EUTRA-RRC-Definitions-a20.asn)
+endif  (${RRC_ASN1_VERSION} STREQUAL "Rel8")
+
+set (RRC_FULL_DIR ${asn1_generated_dir}/${RRC_ASN1_VERSION})
+if(NOT EXISTS ${asn1c_call})
+  message( FATAL_ERROR "The script ${asn1c_call} must be present" )
+endif(NOT EXISTS ${asn1c_call})
+execute_process(COMMAND ${asn1c_call}  ${RRC_FULL_DIR} ${RRC_GRAMMAR})
+add_definitions("-D${RRC_ASN1_VERSION}")
+file(GLOB rrc_source ${RRC_FULL_DIR}/*.c)
+set(rrc_source  ${rrc_source} ${OPENAIR2_DIR}/RRC/LITE/MESSAGES/asn1_msg.c)
+file(GLOB rrc_h ${RRC_FULL_DIR}/*.h)
+set(rrc_h ${rrc_h} ${RRC_FULL_DIR}/asn1_constants.h)
+add_library(rrc_asn1 ${rrc_h} ${rrc_source})
+include_directories ("${RRC_FULL_DIR}")
+
+# add the command to generate the source code
+# Warning: if you modify ASN.1 source file to generate new C files, cmake should be re-run instead of make
+add_custom_command (
+  OUTPUT ${RRC_FULL_DIR}/asn1_constants.h
+  COMMAND ${asn1c_call}  ${RRC_FULL_DIR} ${RRC_GRAMMAR}
+  DEPENDS ${RRC_GRAMMAR}
+  )
+
+# S1AP
+# Same limitation as described in RRC: unknown generated file list
+# so we generate it at cmake time
+##############
+if (DEFINED USE_MME)
+  set(USE_MME ${USE_MME} CACHE HELPSTRING "MME version")
+else (DEFINED USE_MME)
+  set(USE_MME "R10" CACHE HELPSTRING "MME version")
+endif (DEFINED USE_MME)
+
+set_property(CACHE USE_MME PROPERTY STRINGS False R8 R10)
+
+if (NOT ${USE_MME} STREQUAL "False")
+  add_definitions("-DUSE_MME=${USE_MME}")
+  set(S1AP_DIR ${OPENAIRCN_DIR}/S1AP)
+  if (${USE_MME} STREQUAL "R10")
+    set (ASN1RELDIR R10.5)
+    add_definitions("-DUPDATE_RELEASE_9 -DUPDATE_RELEASE_10")
+  elseif (${USE_MME} STREQUAL "R9")
+    set (ASN1RELDIR R9.8)
+    add_definitions("-DUPDATE_RELEASE_9")
+  else(${USE_MME} STREQUAL "R8")
+    set (ASN1RELDIR R8.10)
+  endif(${USE_MME} STREQUAL "R10")
+  set(S1AP_ASN_DIR ${S1AP_DIR}/MESSAGES/ASN1/${ASN1RELDIR})
+  set(S1AP_ASN_FILES
+    ${S1AP_ASN_DIR}/S1AP-CommonDataTypes.asn 
+    ${S1AP_ASN_DIR}/S1AP-Constants.asn 
+    ${S1AP_ASN_DIR}/S1AP-IEs.asn 
+    ${S1AP_ASN_DIR}/S1AP-PDU.asn
+    )
+  set(S1AP_C_DIR ${asn1_generated_dir}/${ASN1RELDIR})
+  
+  execute_process(COMMAND ${asn1c_call} ${S1AP_C_DIR} ${S1AP_ASN_FILES})
+  file(GLOB S1AP_source ${S1AP_C_DIR}/*.c)
+  set(S1AP_OAI_SRC
+    ${S1AP_DIR}/s1ap_common.c
+    ${S1AP_DIR}/s1ap_eNB.c
+    ${S1AP_DIR}/s1ap_eNB_context_management_procedures.c
+    ${S1AP_DIR}/s1ap_eNB_decoder.c
+    ${S1AP_DIR}/s1ap_eNB_encoder.c
+    ${S1AP_DIR}/s1ap_eNB_handlers.c
+    ${S1AP_DIR}/s1ap_eNB_itti_messaging.c
+    ${S1AP_DIR}/s1ap_eNB_management_procedures.c
+    ${S1AP_DIR}/s1ap_eNB_nas_procedures.c
+    ${S1AP_DIR}/s1ap_eNB_nnsf.c
+    ${S1AP_DIR}/s1ap_eNB_overload.c
+    ${S1AP_DIR}/s1ap_eNB_trace.c
+    ${S1AP_DIR}/s1ap_eNB_ue_context.c
+    )
+  set(S1AP_OAI_generated 
+    ${S1AP_C_DIR}/s1ap_decoder.c
+    ${S1AP_C_DIR}/s1ap_encoder.c
+    ${S1AP_C_DIR}/s1ap_xer_print.c
+    ${S1AP_C_DIR}/s1ap_ies_defs.h
+    )
+  file(GLOB s1ap_h ${S1AP_C_DIR}/*.h)
+  set(s1ap_h ${s1ap_h} ${S1AP_C_DIR}/s1ap_ies_defs.h)
+  add_custom_command (
+    OUTPUT ${S1AP_OAI_generated}
+    COMMAND ${asn1c_call} ${S1AP_C_DIR} ${S1AP_ASN_FILES}
+    COMMAND python ${S1AP_DIR}/MESSAGES/ASN1/asn1tostruct.py -f${S1AP_ASN_DIR}/S1AP-PDU-Contents.asn -o${S1AP_C_DIR}
+    DEPENDS ${S1AP_ASN_FILES} 
+    )
+  add_library(s1ap_asn1 ${S1AP_OAI_SRC} ${S1AP_OAI_generated} ${S1AP_source})
+  include_directories ("${S1AP_C_DIR}")
+  include_directories ("${S1AP_DIR}")
+endif(NOT ${USE_MME} STREQUAL "False")
+
+
+# Hardware dependant options
+###################################
+if(DEFINED NB_ANTENNAS_RX)
+  set(NB_ANTENNAS_RX ${NB_ANTENNAS_RX} CACHE HELPSTRING "Number of antennas in reception")
+else(DEFINED NB_ANTENNAS_RX)
+  set(NB_ANTENNAS_RX 2 CACHE HELPSTRING "Number of antennas in reception")
+endif(DEFINED NB_ANTENNAS_RX)
+set_property(CACHE NB_ANTENNAS_RX PROPERTY STRINGS 1 2 4)
+add_definitions("-DNB_ANTENNAS_RX=${NB_ANTENNAS_RX}")
+
+if(DEFINED NB_ANTENNAS_TX)
+  set(NB_ANTENNAS_TX ${NB_ANTENNAS_TX} CACHE HELPSTRING "Number of antennas in transmission")
+else(DEFINED NB_ANTENNAS_TX)
+  set(NB_ANTENNAS_TX 2 CACHE HELPSTRING "Number of antennas in transmission")
+endif(DEFINED NB_ANTENNAS_TX)
+set_property(CACHE NB_ANTENNAS_TX PROPERTY STRINGS 1 2 4)
+add_definitions("-DNB_ANTENNAS_TX=${NB_ANTENNAS_TX}")
+
+if(DEFINED NB_ANTENNAS_TXRX)
+  set(NB_ANTENNAS_TXRX ${NB_ANTENNAS_TXRX} CACHE HELPSTRING "Number of antennas in ????")
+else(DEFINED NB_ANTENNAS_TXRX)
+  set(NB_ANTENNAS_TXRX 2 CACHE HELPSTRING "Number of antennas in ????")
+endif(DEFINED NB_ANTENNAS_TXRX)
+set_property(CACHE NB_ANTENNAS_TXRX PROPERTY STRINGS 1 2 4)
+add_definitions("-DNB_ANTENNAS_TXRX=${NB_ANTENNAS_TXRX}")
+
+if(DEFINED RF_BOARD)
+  set(RF_BOARD ${RF_BOARD} CACHE HELPSTRING "RF head type")
+else(DEFINED RF_BOARD)
+  set(RF_BOARD EXMIMO CACHE HELPSTRING "RF head type")
+endif(DEFINED RF_BOARD)
+set_property(CACHE RF_BOARD PROPERTY STRINGS None EXMIMO USRP ETHERNET)
+add_definitions("-D${RF_BOARD}=1")
+
+if (${RF_BOARD} STREQUAL EXMIMO)
+  set(LOWLATENCY_KERNEL True)
+  set(ENABLE_VCD_FIFO True)
+  set(DRIVER2013)
+  include_directories ("${OPENAIR_TARGETS}/ARCH/EXMIMO/USERSPACE/LIB/")
+  include_directories ("${OPENAIR_TARGETS}/ARCH/EXMIMO/DEFS/")
+  set(HW_SOURCE ${HW_SOURCE} 
+    ${OPENAIR_TARGETS}/ARCH/EXMIMO/USERSPACE/LIB/openair0_lib.c 
+    ${OPENAIR_TARGETS}/ARCH/EXMIMO/USERSPACE/LIB/gain_control.c)   
+elseif (${RF_BOARD} STREQUAL USRP)
+  include_directories("/opt/include/uhd")
+  LINK_DIRECTORIES("/opt/lib")
+  set(option_USRP "uhd")
+elseif (${RF_BOARD} STREQUAL ETHERNET)
+  include_directories ("${OPENAIR_TARGETS}/ARCH/ETHERNET/USERSPACE/LIB")
+endif (${RF_BOARD} STREQUAL EXMIMO)
+ 
+include_directories ("${OPENAIR_TARGETS}/ARCH/COMMON")
+
+ # add the binary tree to the search path for include files
+#######################################################
+# We will find ConfigOAI.h after generation in target directory
+include_directories("${OPENAIR_BIN_DIR}")
+# add directories to find all include files
+# the internal rule is to use generic names such as defs.h 
+# but to make it uniq name as adding the relative path in the include directtive
+# example: #include "RRC/LITE/defs.h"
+#find_path (include_dirs_all *.h ${OPENAIR_DIR})
+#find_path (include_dirs_all *.h PATHS /usr/include NO_CMAKE_PATH)
+#include_directories("${include_dirs_all}")
+
+# Legacy exact order
+include_directories("${OPENAIR1_DIR}")
+include_directories("${OPENAIR2_DIR}/NAS")
+include_directories("${OPENAIR2_DIR}")
+include_directories("${OPENAIR2_DIR}/COMMON")
+include_directories("${OPENAIR2_DIR}/LAYER2/RLC")
+include_directories("${OPENAIR2_DIR}/LAYER2/RLC/AM_v9.3.0")
+include_directories("${OPENAIR2_DIR}/LAYER2/RLC/UM_v9.3.0")
+include_directories("${OPENAIR2_DIR}/LAYER2/RLC/TM_v9.3.0")
+include_directories("${OPENAIR2_DIR}/LAYER2/PDCP_v10.1.0")
+include_directories("${OPENAIR2_DIR}/RRC/LITE/MESSAGES")
+include_directories("${OPENAIR2_DIR}/RRC/LITE")
+include_directories("${OPENAIR3_DIR}/RAL-LTE/INTERFACE-802.21/INCLUDE")
+include_directories("${OPENAIR3_DIR}/RAL-LTE/LTE_RAL_ENB/INCLUDE")
+include_directories("${OPENAIR3_DIR}/RAL-LTE/LTE_RAL_UE/INCLUDE")
+include_directories("${OPENAIR_DIR}/common/utils")
+include_directories("${OPENAIR_DIR}/common/utils/collection/hashtable")
+include_directories("${OPENAIR_DIR}/common/utils/itti")
+include_directories("${OPENAIRCN_DIR}/NAS/EURECOM-NAS/src/api/network")
+include_directories("${OPENAIRCN_DIR}/NAS/EURECOM-NAS/src/include")
+include_directories("${OPENAIRCN_DIR}/NAS/EURECOM-NAS/src/ies")
+include_directories("${OPENAIRCN_DIR}/NAS/EURECOM-NAS/src/emm/msg")
+include_directories("${OPENAIRCN_DIR}/NAS/EURECOM-NAS/src/esm/msg")
+include_directories("${OPENAIRCN_DIR}/NAS/EURECOM-NAS/src/util")
+include_directories("${OPENAIRCN_DIR}/SECU")
+include_directories("${OPENAIRCN_DIR}/SCTP")
+include_directories("${OPENAIR2_DIR}/X2AP")
+include_directories("${OPENAIRCN_DIR}/S1AP")
+include_directories("${OPENAIRCN_DIR}/UDP")
+include_directories("${OPENAIRCN_DIR}/GTPV1-U")
+include_directories("${OPENAIR_DIR}/targets/COMMON")
+include_directories("${OPENAIR_DIR}/targets/ARCH/COMMON")
+include_directories("${OPENAIR_DIR}/targets/ARCH/EXMIMO/USERSPACE/LIB/")
+include_directories("${OPENAIR_DIR}/targets/ARCH/EXMIMO/DEFS")
+include_directories("${OPENAIR2_DIR}/ENB_APP")
+include_directories("${OPENAIR2_DIR}/UTIL")
+include_directories("${OPENAIR2_DIR}/UTIL/OSA")
+include_directories("${OPENAIR2_DIR}/UTIL/LFDS/liblfds6.1.1/liblfds611/inc")
+include_directories("${OPENAIR2_DIR}/UTIL/MEM")
+include_directories("${OPENAIR2_DIR}/UTIL/LISTS")
+include_directories("${OPENAIR2_DIR}/UTIL/FIFO")
+include_directories("${OPENAIR2_DIR}/UTIL/OCG")
+include_directories("${OPENAIR2_DIR}/UTIL/LOG")
+include_directories("${OPENAIR2_DIR}/UTIL/MATH")
+include_directories("${OPENAIR2_DIR}/UTIL/TIMER")
+include_directories("${OPENAIR2_DIR}/UTIL/OMG")
+include_directories("${OPENAIR2_DIR}/UTIL/OTG")
+include_directories("${OPENAIR2_DIR}/UTIL/CLI")
+include_directories("${OPENAIR2_DIR}/UTIL/OPT")
+include_directories("${OPENAIR2_DIR}/UTIL/OMV")
+include_directories("${OPENAIR2_DIR}/RRC/LITE/MESSAGES")
+include_directories("${OPENAIRCN_DIR}/COMMON")
+include_directories("${OPENAIRCN_DIR}/UTILS")
+include_directories("${OPENAIRCN_DIR}/NAS")
+include_directories("${OPENAIRCN_DIR}/GTPV1-U/nw-gtpv1u/shared")
+include_directories("${OPENAIRCN_DIR}/GTPV1-U/nw-gtpv1u/include")
+
+# trial for modernisation of include directories to be done
+#include_directories("${ITTI_DIR}")
+#include_directories("${OPENAIR_DIR}/common/utils/collection/hashtable")
+#include_directories("${OPENAIR1_DIR}")
+#include_directories("${OPENAIR1_DIR}/PHY")
+#include_directories("${OPENAIR2_DIR}/")
+#include_directories("${OPENAIR2_DIR}/ENB_APP")
+#include_directories("${OPENAIR2_DIR}/COMMON")
+#include_directories("${OPENAIR2_DIR}/UTIL/LOG")
+#include_directories("${OPENAIR2_DIR}/UTIL/LISTS")
+#include_directories("${OPENAIR2_DIR}/UTIL/MEM")
+#include_directories("${OPENAIR2_DIR}/LAYER2/RLC")
+#include_directories("${OPENAIR2_DIR}/LAYER2/RLC/AM_v9.3.0")
+#include_directories("${OPENAIR2_DIR}/LAYER2/RLC/TM_v9.3.0")
+#include_directories("${OPENAIR2_DIR}/LAYER2/RLC/UM_v9.3.0")
+#include_directories("${OPENAIR3_DIR}")
+#include_directories("${OPENAIRCN_DIR}")
+ 
+# define where are the source files
+##################################
+#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} -I${ITTI_DIR}
+  COMMAND gcc -MM ${ITTI_H} | sed -e 's/.*://' -e 's/\\$$//' ${ITTI_H}.tmp  | fmt -1 | sed -e 's/^ *//' -e 's/$$/:/' > ${OPENAIR_BIN_DIR}/intertask_interface_types.d 
+  #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)
+  file(GLOB mylist ${dir})
+  add_library(${lib_name} ${mylist})
+  set (EXTRA_LIBS ${EXTRA_LIBS} ${lib_name} PARENT_SCOPE)
+endfunction(add_whole_dir)
+
+function(add_whole_tree dir lib_name)
+  file(GLOB_RECURSE mylist "${dir}/*.c")
+  add_library(${lib_name} ${mylist})
+  set (EXTRA_LIBS ${EXTRA_LIBS} ${lib_name} PARENT_SCOPE)
+endfunction(add_whole_tree)
+
+# Utilities Library
+################
+set(UTIL_SRC 
+  ${OPENAIR_DIR}/common/utils/collection/hashtable/hashtable.c
+  ${OPENAIR_DIR}/common/utils/collection/hashtable/obj_hashtable.c
+  ${OPENAIR2_DIR}/UTIL/CLI/cli.c
+  ${OPENAIR2_DIR}/UTIL/CLI/cli_cmd.c
+  ${OPENAIR2_DIR}/UTIL/CLI/cli_server.c
+  ${OPENAIR2_DIR}/UTIL/FIFO/pad_list.c
+  ${OPENAIR2_DIR}/UTIL/LISTS/list.c
+  ${OPENAIR2_DIR}/UTIL/LISTS/list2.c
+  ${OPENAIR2_DIR}/UTIL/LOG/log.c
+  ${OPENAIR2_DIR}/UTIL/LOG/vcd_signal_dumper.c
+  ${OPENAIR2_DIR}/UTIL/MATH/oml.c
+  ${OPENAIR2_DIR}/UTIL/MEM/mem_block.c
+  ${OPENAIR2_DIR}/UTIL/OCG/OCG.c
+  ${OPENAIR2_DIR}/UTIL/OCG/OCG_create_dir.c
+  ${OPENAIR2_DIR}/UTIL/OCG/OCG_detect_file.c
+  ${OPENAIR2_DIR}/UTIL/OCG/OCG_generate_report.c
+  ${OPENAIR2_DIR}/UTIL/OCG/OCG_parse_filename.c
+  ${OPENAIR2_DIR}/UTIL/OCG/OCG_parse_XML.c
+  ${OPENAIR2_DIR}/UTIL/OCG/OCG_save_XML.c
+  ${OPENAIR2_DIR}/UTIL/OMG/client_traci_OMG.c
+  ${OPENAIR2_DIR}/UTIL/OMG/common.c
+  ${OPENAIR2_DIR}/UTIL/OMG/grid.c
+  ${OPENAIR2_DIR}/UTIL/OMG/id_manager.c
+  ${OPENAIR2_DIR}/UTIL/OMG/job.c
+  ${OPENAIR2_DIR}/UTIL/OMG/mobility_parser.c
+  ${OPENAIR2_DIR}/UTIL/OMG/omg.c
+  ${OPENAIR2_DIR}/UTIL/OMG/omg_hashtable.c
+  ${OPENAIR2_DIR}/UTIL/OMG/rwalk.c
+  ${OPENAIR2_DIR}/UTIL/OMG/rwp.c
+  ${OPENAIR2_DIR}/UTIL/OMG/socket_traci_OMG.c
+  ${OPENAIR2_DIR}/UTIL/OMG/static.c
+  ${OPENAIR2_DIR}/UTIL/OMG/steadystaterwp.c
+  ${OPENAIR2_DIR}/UTIL/OMG/storage_traci_OMG.c
+  ${OPENAIR2_DIR}/UTIL/OMG/trace.c
+  ${OPENAIR2_DIR}/UTIL/OMG/trace_hashtable.c
+  ${OPENAIR2_DIR}/UTIL/OPT/probe.c
+  ${OPENAIR2_DIR}/UTIL/OTG/otg_tx.c
+  ${OPENAIR2_DIR}/UTIL/OTG/otg.c
+  ${OPENAIR2_DIR}/UTIL/OTG/otg_rx.c
+  ${OPENAIR2_DIR}/UTIL/OTG/otg_kpi.c
+  ${OPENAIR2_DIR}/UTIL/OTG/otg_form.c
+  ${OPENAIR2_DIR}/UTIL/OTG/otg_models.c
+  )
+add_library(UTIL ${UTIL_SRC})
+
+set(SECU_OSA_SRC
+  ${OPENAIR2_DIR}/UTIL/OSA/osa_key_deriver.c
+  ${OPENAIR2_DIR}/UTIL/OSA/osa_rijndael.c
+  ${OPENAIR2_DIR}/UTIL/OSA/osa_snow3g.c
+  ${OPENAIR2_DIR}/UTIL/OSA/osa_stream_eea.c
+  ${OPENAIR2_DIR}/UTIL/OSA/osa_stream_eia.c
+  )
+add_library(SECU_OSA ${SECU_OSA_SRC})
+
+set(SECU_CN_SRC
+  ${OPENAIRCN_DIR}/SECU/kdf.c
+  ${OPENAIRCN_DIR}/SECU/rijndael.c
+  ${OPENAIRCN_DIR}/SECU/snow3g.c
+  ${OPENAIRCN_DIR}/SECU/key_nas_deriver.c
+  ${OPENAIRCN_DIR}/SECU/nas_stream_eea1.c
+  ${OPENAIRCN_DIR}/SECU/nas_stream_eia1.c
+  ${OPENAIRCN_DIR}/SECU/nas_stream_eea2.c
+  ${OPENAIRCN_DIR}/SECU/nas_stream_eia2.c
+  )
+add_library(SECU_CN ${SECU_CN_SRC})
+
+# Scheduler
+################################"
+add_whole_dir(${OPENAIR1_DIR}/SCHED/*.c sched)
+
+# Layer 1
+#############################
+set(PHY_SRC 
+  # depend on code generation from asn1c
+  ${RRC_FULL_DIR}/asn1_constants.h
+  # actual source
+  ${OPENAIR1_DIR}/PHY/LTE_TRANSPORT/pss.c
+  ${OPENAIR1_DIR}/PHY/LTE_TRANSPORT/sss.c
+  ${OPENAIR1_DIR}/PHY/LTE_TRANSPORT/pilots.c
+  ${OPENAIR1_DIR}/PHY/LTE_TRANSPORT/pilots_mbsfn.c
+  ${OPENAIR1_DIR}/PHY/LTE_TRANSPORT/dlsch_coding.c
+  ${OPENAIR1_DIR}/PHY/LTE_TRANSPORT/dlsch_modulation.c
+  ${OPENAIR1_DIR}/PHY/LTE_TRANSPORT/dlsch_demodulation.c
+  ${OPENAIR1_DIR}/PHY/LTE_TRANSPORT/dlsch_llr_computation.c
+  ${OPENAIR1_DIR}/PHY/LTE_TRANSPORT/power_control.c
+  ${OPENAIR1_DIR}/PHY/LTE_TRANSPORT/dlsch_decoding.c
+  ${OPENAIR1_DIR}/PHY/LTE_TRANSPORT/dlsch_scrambling.c
+  ${OPENAIR1_DIR}/PHY/LTE_TRANSPORT/dci_tools.c
+  ${OPENAIR1_DIR}/PHY/LTE_TRANSPORT/uci_tools.c
+  ${OPENAIR1_DIR}/PHY/LTE_TRANSPORT/lte_mcs.c
+  ${OPENAIR1_DIR}/PHY/LTE_TRANSPORT/pbch.c
+  ${OPENAIR1_DIR}/PHY/LTE_TRANSPORT/dci.c
+  ${OPENAIR1_DIR}/PHY/LTE_TRANSPORT/phich.c
+  ${OPENAIR1_DIR}/PHY/LTE_TRANSPORT/pcfich.c
+  ${OPENAIR1_DIR}/PHY/LTE_TRANSPORT/pucch.c
+  ${OPENAIR1_DIR}/PHY/LTE_TRANSPORT/prach.c
+  ${OPENAIR1_DIR}/PHY/LTE_TRANSPORT/pmch.c
+  ${OPENAIR1_DIR}/PHY/LTE_TRANSPORT/group_hopping.c
+  ${OPENAIR1_DIR}/PHY/LTE_TRANSPORT/srs_modulation.c
+  ${OPENAIR1_DIR}/PHY/LTE_TRANSPORT/drs_modulation.c
+  ${OPENAIR1_DIR}/PHY/LTE_TRANSPORT/ulsch_modulation.c
+  ${OPENAIR1_DIR}/PHY/LTE_TRANSPORT/ulsch_demodulation.c
+  ${OPENAIR1_DIR}/PHY/LTE_TRANSPORT/ulsch_coding.c
+  ${OPENAIR1_DIR}/PHY/LTE_TRANSPORT/ulsch_decoding.c
+  ${OPENAIR1_DIR}/PHY/LTE_TRANSPORT/rar_tools.c
+  ${OPENAIR1_DIR}/PHY/LTE_TRANSPORT/print_stats.c
+  ${OPENAIR1_DIR}/PHY/LTE_TRANSPORT/initial_sync.c
+  ${OPENAIR1_DIR}/PHY/MODULATION/ofdm_mod.c
+  ${OPENAIR1_DIR}/PHY/MODULATION/slot_fep.c
+  ${OPENAIR1_DIR}/PHY/MODULATION/slot_fep_mbsfn.c
+  ${OPENAIR1_DIR}/PHY/MODULATION/slot_fep_ul.c
+  ${OPENAIR1_DIR}/PHY/MODULATION/ul_7_5_kHz.c
+  ${OPENAIR1_DIR}/PHY/LTE_ESTIMATION/freq_equalization.c
+  ${OPENAIR1_DIR}/PHY/LTE_ESTIMATION/lte_sync_time.c
+  ${OPENAIR1_DIR}/PHY/LTE_ESTIMATION/lte_sync_timefreq.c
+  ${OPENAIR1_DIR}/PHY/LTE_ESTIMATION/lte_adjust_sync.c
+  ${OPENAIR1_DIR}/PHY/LTE_ESTIMATION/lte_dl_channel_estimation.c
+  ${OPENAIR1_DIR}/PHY/LTE_ESTIMATION/lte_dl_mbsfn_channel_estimation.c
+  ${OPENAIR1_DIR}/PHY/LTE_ESTIMATION/lte_ul_channel_estimation.c
+  ${OPENAIR1_DIR}/PHY/LTE_ESTIMATION/lte_est_freq_offset.c
+  ${OPENAIR1_DIR}/PHY/LTE_ESTIMATION/lte_ue_measurements.c
+  ${OPENAIR1_DIR}/PHY/LTE_ESTIMATION/lte_eNB_measurements.c
+  ${OPENAIR1_DIR}/PHY/LTE_ESTIMATION/adjust_gain.c
+  ${OPENAIR1_DIR}/PHY/LTE_REFSIG/lte_dl_cell_spec.c
+  ${OPENAIR1_DIR}/PHY/LTE_REFSIG/lte_dl_uespec.c
+  ${OPENAIR1_DIR}/PHY/LTE_REFSIG/lte_gold.c
+  ${OPENAIR1_DIR}/PHY/LTE_REFSIG/lte_gold_mbsfn.c
+  ${OPENAIR1_DIR}/PHY/LTE_REFSIG/lte_dl_mbsfn.c
+  ${OPENAIR1_DIR}/PHY/LTE_REFSIG/lte_ul_ref.c
+  ${OPENAIR1_DIR}/PHY/CODING/lte_segmentation.c
+  ${OPENAIR1_DIR}/PHY/CODING/ccoding_byte.c
+  ${OPENAIR1_DIR}/PHY/CODING/ccoding_byte_lte.c
+  ${OPENAIR1_DIR}/PHY/CODING/3gpplte_sse.c
+  ${OPENAIR1_DIR}/PHY/CODING/crc_byte.c
+  ${OPENAIR1_DIR}/PHY/CODING/3gpplte_turbo_decoder_sse_8bit.c
+  ${OPENAIR1_DIR}/PHY/CODING/3gpplte_turbo_decoder_sse_16bit.c
+  ${OPENAIR1_DIR}/PHY/CODING/lte_rate_matching.c
+  ${OPENAIR1_DIR}/PHY/CODING/rate_matching.c
+  ${OPENAIR1_DIR}/PHY/CODING/viterbi.c
+  ${OPENAIR1_DIR}/PHY/CODING/viterbi_lte.c
+  ${OPENAIR1_DIR}/PHY/INIT/lte_init.c
+  ${OPENAIR1_DIR}/PHY/INIT/lte_parms.c
+  ${OPENAIR1_DIR}/PHY/INIT/init_top.c
+  ${OPENAIR1_DIR}/PHY/TOOLS/file_output.c
+  ${OPENAIR1_DIR}/PHY/TOOLS/fft.c
+  ${OPENAIR1_DIR}/PHY/TOOLS/lte_dfts.c
+  ${OPENAIR1_DIR}/PHY/TOOLS/log2_approx.c
+  ${OPENAIR1_DIR}/PHY/TOOLS/cmult_sv.c
+  ${OPENAIR1_DIR}/PHY/TOOLS/cmult_vv.c
+  ${OPENAIR1_DIR}/PHY/TOOLS/cadd_vv.c
+  ${OPENAIR1_DIR}/PHY/TOOLS/cdot_prod.c
+  ${OPENAIR1_DIR}/PHY/TOOLS/signal_energy.c
+  ${OPENAIR1_DIR}/PHY/TOOLS/dB_routines.c
+  ${OPENAIR1_DIR}/PHY/TOOLS/sqrt.c
+  ${OPENAIR1_DIR}/PHY/TOOLS/time_meas.c
+  ${OPENAIR1_DIR}/PHY/TOOLS/lut.c
+  )
+if (${SMBV})
+  set(PHY_SRC "${PHY_SRC} ${OPENAIR1_DIR}/PHY/TOOLS/smbv.c")
+endif  (${SMBV})
+add_library(PHY ${PHY_SRC})
+
+#Layer 2 library
+#####################
+set(MAC_DIR ${OPENAIR2_DIR}/LAYER2/MAC)
+set(RLC_DIR ${OPENAIR2_DIR}/LAYER2/RLC)
+set(RLC_UM_DIR ${OPENAIR2_DIR}/LAYER2/RLC/UM_v9.3.0)
+set(RLC_AM_DIR ${OPENAIR2_DIR}/LAYER2/RLC/AM_v9.3.0)
+set(RLC_TM_DIR ${OPENAIR2_DIR}/LAYER2/RLC/TM_v9.3.0)
+set(RRC_DIR ${OPENAIR2_DIR}/RRC/LITE)
+set(PDCP_DIR  ${OPENAIR2_DIR}/LAYER2/PDCP_v10.1.0)
+set(L2_SRC
+  ${OPENAIR2_DIR}/LAYER2/openair2_proc.c
+  ${PDCP_DIR}/pdcp.c
+  ${PDCP_DIR}/pdcp_fifo.c
+  ${PDCP_DIR}/pdcp_sequence_manager.c
+  ${PDCP_DIR}/pdcp_primitives.c
+  ${PDCP_DIR}/pdcp_util.c
+  ${PDCP_DIR}/pdcp_security.c
+  ${PDCP_DIR}/pdcp_netlink.c
+  ${RLC_AM_DIR}/rlc_am.c
+  ${RLC_AM_DIR}/rlc_am_init.c
+  ${RLC_AM_DIR}/rlc_am_timer_poll_retransmit.c
+  ${RLC_AM_DIR}/rlc_am_timer_reordering.c
+  ${RLC_AM_DIR}/rlc_am_timer_status_prohibit.c
+  ${RLC_AM_DIR}/rlc_am_segment.c
+  ${RLC_AM_DIR}/rlc_am_segments_holes.c
+  ${RLC_AM_DIR}/rlc_am_in_sdu.c
+  ${RLC_AM_DIR}/rlc_am_receiver.c
+  ${RLC_AM_DIR}/rlc_am_retransmit.c
+  ${RLC_AM_DIR}/rlc_am_windows.c
+  ${RLC_AM_DIR}/rlc_am_rx_list.c
+  ${RLC_AM_DIR}/rlc_am_reassembly.c
+  ${RLC_AM_DIR}/rlc_am_status_report.c
+  ${RLC_TM_DIR}/rlc_tm.c
+  ${RLC_TM_DIR}/rlc_tm_init.c
+  ${RLC_UM_DIR}/rlc_um.c
+  ${RLC_UM_DIR}/rlc_um_fsm.c
+  ${RLC_UM_DIR}/rlc_um_control_primitives.c
+  ${RLC_UM_DIR}/rlc_um_segment.c
+  ${RLC_UM_DIR}/rlc_um_reassembly.c
+  ${RLC_UM_DIR}/rlc_um_receiver.c
+  ${RLC_UM_DIR}/rlc_um_dar.c
+  ${RLC_DIR}/rlc_mac.c
+  ${RLC_DIR}/rlc.c
+  ${RLC_DIR}/rlc_rrc.c
+  ${RLC_DIR}/rlc_mpls.c
+  ${RRC_DIR}/rrc_UE.c
+  ${RRC_DIR}/rrc_eNB.c
+  ${RRC_DIR}/rrc_eNB_S1AP.c
+  ${RRC_DIR}/rrc_common.c
+  ${RRC_DIR}/L2_interface.c
+  )
+set (MAC_SRC
+  ${MAC_DIR}/lte_transport_init.c
+  ${MAC_DIR}/main.c
+  ${MAC_DIR}/ue_procedures.c
+  ${MAC_DIR}/ra_procedures.c
+  ${MAC_DIR}/l1_helpers.c
+  ${MAC_DIR}/rar_tools.c
+  ${MAC_DIR}/eNB_scheduler.c
+  ${MAC_DIR}/eNB_scheduler_dlsch.c
+  ${MAC_DIR}/eNB_scheduler_ulsch.c
+  ${MAC_DIR}/eNB_scheduler_mch.c
+  ${MAC_DIR}/eNB_scheduler_bch.c
+  ${MAC_DIR}/eNB_scheduler_primitives.c
+  ${MAC_DIR}/eNB_scheduler_RA.c
+  ${MAC_DIR}/pre_processor.c
+  ${MAC_DIR}/config.c
+  )
+
+set (ENB_APP_SRC
+  ${OPENAIR2_DIR}/ENB_APP/enb_app.c
+  ${OPENAIR2_DIR}/ENB_APP/enb_config.c
+  )
+
+if (${ENABLE_RAL})
+  set(L2_SRC ${L2_SRC}
+    ${RRC_DIR}/rrc_UE_ral.c
+    ${RRC_DIR}/rrc_eNB_ral.c)
+endif(${ENABLE_RAL})
+
+if (NOT ${USE_MME} STREQUAL "False")
+  set(L2_SRC ${L2_SRC}
+    ${RRC_DIR}/rrc_eNB_GTPV1U.c)
+endif(NOT ${USE_MME} STREQUAL "False")
+
+add_library(L2 
+  ${L2_SRC} 
+  ${MAC_SRC} 
+  ${ENB_APP_SRC}
+  ${OPENAIR2_DIR}/RRC/L2_INTERFACE/openair_rrc_L2_interface.c)
+
+# L3 Libs
+##########################
+
+set(RAL_LTE_DIR ${OPENAIR3_DIR}/RAL-LTE/)
+set(RAL_LTE_SRC
+  ${RAL_LTE_DIR}INTERFACE-802.21/C/MIH_C_header_codec.c
+  ${RAL_LTE_DIR}INTERFACE-802.21/C/MIH_C_msg_codec.c
+  ${RAL_LTE_DIR}INTERFACE-802.21/C/MIH_C_primitive_codec.c
+  ${RAL_LTE_DIR}INTERFACE-802.21/C/MIH_C_F1_basic_data_types_codec.c
+  ${RAL_LTE_DIR}INTERFACE-802.21/C/MIH_C_F2_general_data_types_codec.c
+  ${RAL_LTE_DIR}INTERFACE-802.21/C/MIH_C_F3_data_types_for_address_codec.c
+  ${RAL_LTE_DIR}INTERFACE-802.21/C/MIH_C_F4_data_types_for_links_codec.c
+  ${RAL_LTE_DIR}INTERFACE-802.21/C/MIH_C_F9_data_types_for_qos_codec.c
+  ${RAL_LTE_DIR}INTERFACE-802.21/C/MIH_C_F13_data_types_for_information_elements_codec.c
+  ${RAL_LTE_DIR}INTERFACE-802.21/C/MIH_C_L2_type_values_for_tlv_encoding.c
+  ${RAL_LTE_DIR}INTERFACE-802.21/C/MIH_C_Medieval_extensions.c
+  ${RAL_LTE_DIR}INTERFACE-802.21/C/MIH_C_bit_buffer.c
+  ${RAL_LTE_DIR}INTERFACE-802.21/C/MIH_C.c
+  ${RAL_LTE_DIR}LTE_RAL_ENB/SRC/lteRALenb_action.c
+  ${RAL_LTE_DIR}LTE_RAL_ENB/SRC/lteRALenb_main.c
+  ${RAL_LTE_DIR}LTE_RAL_ENB/SRC/lteRALenb_mih_msg.c
+  ${RAL_LTE_DIR}LTE_RAL_ENB/SRC/lteRALenb_parameters.c
+  ${RAL_LTE_DIR}LTE_RAL_ENB/SRC/lteRALenb_process.c
+  ${RAL_LTE_DIR}LTE_RAL_ENB/SRC/lteRALenb_rrc_msg.c
+  ${RAL_LTE_DIR}LTE_RAL_ENB/SRC/lteRALenb_subscribe.c
+  ${RAL_LTE_DIR}LTE_RAL_ENB/SRC/lteRALenb_thresholds.c
+  ${RAL_LTE_DIR}LTE_RAL_UE/SRC/lteRALue_action.c
+  ${RAL_LTE_DIR}LTE_RAL_UE/SRC/lteRALue_main.c
+  ${RAL_LTE_DIR}LTE_RAL_UE/SRC/lteRALue_mih_msg.c
+  ${RAL_LTE_DIR}LTE_RAL_UE/SRC/lteRALue_parameters.c
+  ${RAL_LTE_DIR}LTE_RAL_UE/SRC/lteRALue_process.c
+  ${RAL_LTE_DIR}LTE_RAL_UE/SRC/lteRALue_rrc_msg.c
+  ${RAL_LTE_DIR}LTE_RAL_UE/SRC/lteRALue_subscribe.c
+  ${RAL_LTE_DIR}LTE_RAL_UE/SRC/lteRALue_thresholds.c
+  )
+add_library(RAL_LTE ${RAL_LTE_SRC})
+
+# CN libs
+##########################
+set(GTPV1U_SRC ${OPENAIRCN_DIR}/GTPV1-U)
+set (libgtpv1u_SRC
+  ${GTPV1U_SRC}/nw-gtpv1u/src/NwGtpv1uTunnelEndPoint.c
+  ${GTPV1U_SRC}/nw-gtpv1u/src/NwGtpv1uTrxn.c
+  ${GTPV1U_SRC}/nw-gtpv1u/src/NwGtpv1uMsg.c
+  ${GTPV1U_SRC}/nw-gtpv1u/src/NwGtpv1u.c
+  ${GTPV1U_SRC}/gtpv1u_eNB.c
+  ${GTPV1U_SRC}/gtpv1u_teid_pool.c
+)
+add_library(GTPV1U ${libgtpv1u_SRC})
+
+set(SCTP_SRC
+  ${OPENAIRCN_DIR}/SCTP/sctp_common.c
+  ${OPENAIRCN_DIR}/SCTP/sctp_eNB_task.c
+  ${OPENAIRCN_DIR}/SCTP/sctp_eNB_itti_messaging.c
+)
+add_library(SCTP ${SCTP_SRC})
+
+add_library(UDP ${OPENAIRCN_DIR}/UDP/udp_eNB_task.c)
+
+set(NAS_SRC ${OPENAIRCN_DIR}/NAS/EURECOM-NAS/src/)
+
+set(libnas_api_OBJS
+  ${NAS_SRC}api/mme/mme_api.c
+  ${NAS_SRC}api/network/nas_message.c
+  )
+
+set(libnas_emm_OBJS
+  ${NAS_SRC}emm/Attach.c
+  ${NAS_SRC}emm/Authentication.c
+  ${NAS_SRC}emm/Detach.c
+  ${NAS_SRC}emm/EmmCommon.c
+  ${NAS_SRC}emm/emm_data_ctx.c
+  ${NAS_SRC}emm/emm_main.c
+  ${NAS_SRC}emm/EmmStatusHdl.c
+  ${NAS_SRC}emm/Identification.c
+  ${NAS_SRC}emm/IdleMode.c
+  ${NAS_SRC}emm/LowerLayer.c
+  ${NAS_SRC}emm/SecurityModeControl.c
+  ${NAS_SRC}emm/ServiceRequestHdl.c
+  ${NAS_SRC}emm/TrackingAreaUpdate.c
+  )
+  
+set(libnas_emm_msg_OBJS
+  ${NAS_SRC}emm/msg/AttachAccept.c
+  ${NAS_SRC}emm/msg/AuthenticationFailure.c
+  ${NAS_SRC}emm/msg/CsServiceNotification.c
+  ${NAS_SRC}emm/msg/ExtendedServiceRequest.c
+  ${NAS_SRC}emm/msg/IdentityResponse.c
+  ${NAS_SRC}emm/msg/EmmInformation.c
+  ${NAS_SRC}emm/msg/ServiceReject.c
+  ${NAS_SRC}emm/msg/TrackingAreaUpdateReject.c
+  ${NAS_SRC}emm/msg/AttachComplete.c
+  ${NAS_SRC}emm/msg/AuthenticationReject.c
+  ${NAS_SRC}emm/msg/DetachAccept.c
+  ${NAS_SRC}emm/msg/GutiReallocationCommand.c
+  ${NAS_SRC}emm/msg/emm_msg.c
+  ${NAS_SRC}emm/msg/SecurityModeCommand.c
+  ${NAS_SRC}emm/msg/ServiceRequest.c
+  ${NAS_SRC}emm/msg/TrackingAreaUpdateRequest.c
+  ${NAS_SRC}emm/msg/AttachReject.c
+  ${NAS_SRC}emm/msg/AuthenticationRequest.c
+  ${NAS_SRC}emm/msg/DetachRequest.c
+  ${NAS_SRC}emm/msg/GutiReallocationComplete.c
+  ${NAS_SRC}emm/msg/SecurityModeComplete.c
+  ${NAS_SRC}emm/msg/TrackingAreaUpdateAccept.c
+  ${NAS_SRC}emm/msg/UplinkNasTransport.c
+  ${NAS_SRC}emm/msg/AttachRequest.c
+  ${NAS_SRC}emm/msg/AuthenticationResponse.c
+  ${NAS_SRC}emm/msg/DownlinkNasTransport.c
+  ${NAS_SRC}emm/msg/EmmStatus.c
+  ${NAS_SRC}emm/msg/IdentityRequest.c
+  ${NAS_SRC}emm/msg/SecurityModeReject.c
+  ${NAS_SRC}emm/msg/TrackingAreaUpdateComplete.c
+)
+
+set(libnas_emm_sap_OBJS
+  ${NAS_SRC}emm/sap/emm_as.c
+  ${NAS_SRC}emm/sap/emm_cn.c
+  ${NAS_SRC}emm/sap/EmmDeregisteredNoImsi.c
+  ${NAS_SRC}emm/sap/emm_reg.c
+  ${NAS_SRC}emm/sap/EmmRegisteredUpdateNeeded.c
+  ${NAS_SRC}emm/sap/EmmDeregisteredNormalService.c
+  ${NAS_SRC}emm/sap/emm_sap.c
+  ${NAS_SRC}emm/sap/EmmDeregisteredPlmnSearch.c
+  ${NAS_SRC}emm/sap/emm_esm.c
+  ${NAS_SRC}emm/sap/EmmRegisteredAttemptingToUpdate.c
+  ${NAS_SRC}emm/sap/emm_send.c
+  ${NAS_SRC}emm/sap/EmmCommonProcedureInitiated.c
+  ${NAS_SRC}emm/sap/EmmRegistered.c
+  ${NAS_SRC}emm/sap/EmmDeregisteredAttachNeeded.c
+  ${NAS_SRC}emm/sap/EmmRegisteredImsiDetachInitiated.c
+  ${NAS_SRC}emm/sap/EmmServiceRequestInitiated.c
+  ${NAS_SRC}emm/sap/EmmDeregisteredAttemptingToAttach.c
+  ${NAS_SRC}emm/sap/emm_fsm.c
+  ${NAS_SRC}emm/sap/EmmRegisteredInitiated.c
+  ${NAS_SRC}emm/sap/EmmTrackingAreaUpdatingInitiated.c
+  ${NAS_SRC}emm/sap/EmmDeregistered.c
+  ${NAS_SRC}emm/sap/EmmRegisteredLimitedService.c
+  ${NAS_SRC}emm/sap/EmmDeregisteredInitiated.c
+  ${NAS_SRC}emm/sap/EmmNull.c
+  ${NAS_SRC}emm/sap/EmmRegisteredNoCellAvailable.c
+  ${NAS_SRC}emm/sap/EmmDeregisteredLimitedService.c
+  ${NAS_SRC}emm/sap/emm_recv.c
+  ${NAS_SRC}emm/sap/EmmRegisteredNormalService.c
+  ${NAS_SRC}emm/sap/EmmDeregisteredNoCellAvailable.c
+  ${NAS_SRC}emm/sap/EmmRegisteredPlmnSearch.c
+)
+
+set (libnas_esm_OBJS
+  ${NAS_SRC}esm/esm_ebr_context.c
+  ${NAS_SRC}esm/PdnConnectivity.c
+  ${NAS_SRC}esm/esm_ebr.c
+  ${NAS_SRC}esm/EpsBearerContextDeactivation.c
+  ${NAS_SRC}esm/DefaultEpsBearerContextActivation.c
+  ${NAS_SRC}esm/DedicatedEpsBearerContextActivation.c
+  ${NAS_SRC}esm/PdnDisconnect.c
+  ${NAS_SRC}esm/EsmStatusHdl.c
+  ${NAS_SRC}esm/esm_main.c
+  ${NAS_SRC}esm/esm_pt.c
+  ${NAS_SRC}esm/esm_ip.c
+)
+
+set(libnas_esm_msg_OBJS
+  ${NAS_SRC}esm/msg/ModifyEpsBearerContextRequest.c
+  ${NAS_SRC}esm/msg/DeactivateEpsBearerContextRequest.c
+  ${NAS_SRC}esm/msg/BearerResourceAllocationReject.c
+  ${NAS_SRC}esm/msg/BearerResourceModificationRequest.c
+  ${NAS_SRC}esm/msg/ActivateDedicatedEpsBearerContextRequest.c
+  ${NAS_SRC}esm/msg/EsmInformationResponse.c
+  ${NAS_SRC}esm/msg/PdnDisconnectReject.c
+  ${NAS_SRC}esm/msg/ActivateDedicatedEpsBearerContextAccept.c
+  ${NAS_SRC}esm/msg/PdnDisconnectRequest.c
+  ${NAS_SRC}esm/msg/BearerResourceModificationReject.c
+  ${NAS_SRC}esm/msg/ActivateDefaultEpsBearerContextAccept.c
+  ${NAS_SRC}esm/msg/ActivateDedicatedEpsBearerContextReject.c
+  ${NAS_SRC}esm/msg/ModifyEpsBearerContextAccept.c
+  ${NAS_SRC}esm/msg/DeactivateEpsBearerContextAccept.c
+  ${NAS_SRC}esm/msg/esm_msg.c
+  ${NAS_SRC}esm/msg/EsmInformationRequest.c
+  ${NAS_SRC}esm/msg/ActivateDefaultEpsBearerContextRequest.c
+  ${NAS_SRC}esm/msg/ModifyEpsBearerContextReject.c
+  ${NAS_SRC}esm/msg/EsmStatus.c
+  ${NAS_SRC}esm/msg/PdnConnectivityReject.c
+  ${NAS_SRC}esm/msg/ActivateDefaultEpsBearerContextReject.c
+  ${NAS_SRC}esm/msg/PdnConnectivityRequest.c
+  ${NAS_SRC}esm/msg/BearerResourceAllocationRequest.c
+)
+  
+set(libnas_esm_sap_OBJS
+  ${NAS_SRC}esm/sap/esm_recv.c
+  ${NAS_SRC}esm/sap/esm_send.c
+  ${NAS_SRC}esm/sap/esm_sap.c
+)
+
+set(libnas_ies_OBJS
+  ${NAS_SRC}ies/UeSecurityCapability.c
+  ${NAS_SRC}ies/SecurityHeaderType.c
+  ${NAS_SRC}ies/RadioPriority.c
+  ${NAS_SRC}ies/EpsAttachResult.c
+  ${NAS_SRC}ies/ImeisvRequest.c
+  ${NAS_SRC}ies/EmergencyNumberList.c
+  ${NAS_SRC}ies/SupportedCodecList.c
+  ${NAS_SRC}ies/EsmCause.c
+  ${NAS_SRC}ies/NetworkName.c
+  ${NAS_SRC}ies/AuthenticationResponseParameter.c
+  ${NAS_SRC}ies/Cli.c
+  ${NAS_SRC}ies/AccessPointName.c
+  ${NAS_SRC}ies/DaylightSavingTime.c
+  ${NAS_SRC}ies/LcsIndicator.c
+  ${NAS_SRC}ies/PagingIdentity.c
+  ${NAS_SRC}ies/EpsMobileIdentity.c
+  ${NAS_SRC}ies/GutiType.c
+  ${NAS_SRC}ies/NasKeySetIdentifier.c
+  ${NAS_SRC}ies/CsfbResponse.c
+  ${NAS_SRC}ies/PacketFlowIdentifier.c
+  ${NAS_SRC}ies/ApnAggregateMaximumBitRate.c
+  ${NAS_SRC}ies/EpsBearerContextStatus.c
+  ${NAS_SRC}ies/MobileIdentity.c
+  ${NAS_SRC}ies/AuthenticationFailureParameter.c
+  ${NAS_SRC}ies/EpsUpdateResult.c
+  ${NAS_SRC}ies/TimeZone.c
+  ${NAS_SRC}ies/MessageType.c
+  ${NAS_SRC}ies/EmmCause.c
+  ${NAS_SRC}ies/MobileStationClassmark2.c
+  ${NAS_SRC}ies/AuthenticationParameterRand.c
+  ${NAS_SRC}ies/PdnAddress.c
+  ${NAS_SRC}ies/MobileStationClassmark3.c
+  ${NAS_SRC}ies/ServiceType.c
+  ${NAS_SRC}ies/NasRequestType.c
+  ${NAS_SRC}ies/PlmnList.c
+  ${NAS_SRC}ies/EpsQualityOfService.c
+  ${NAS_SRC}ies/NasMessageContainer.c
+  ${NAS_SRC}ies/EsmInformationTransferFlag.c
+  ${NAS_SRC}ies/TrafficFlowTemplate.c
+  ${NAS_SRC}ies/LinkedEpsBearerIdentity.c
+  ${NAS_SRC}ies/NasSecurityAlgorithms.c
+  ${NAS_SRC}ies/LlcServiceAccessPointIdentifier.c
+  ${NAS_SRC}ies/ShortMac.c
+  ${NAS_SRC}ies/TrafficFlowAggregateDescription.c
+  ${NAS_SRC}ies/PTmsiSignature.c
+  ${NAS_SRC}ies/ProtocolDiscriminator.c
+  ${NAS_SRC}ies/EpsBearerIdentity.c
+  ${NAS_SRC}ies/TimeZoneAndTime.c
+  ${NAS_SRC}ies/TrackingAreaIdentityList.c
+  ${NAS_SRC}ies/QualityOfService.c
+  ${NAS_SRC}ies/EpsUpdateType.c
+  ${NAS_SRC}ies/PdnType.c
+  ${NAS_SRC}ies/UeRadioCapabilityInformationUpdateNeeded.c
+  ${NAS_SRC}ies/AuthenticationParameterAutn.c
+  ${NAS_SRC}ies/EpsAttachType.c
+  ${NAS_SRC}ies/IdentityType2.c
+  ${NAS_SRC}ies/LcsClientIdentity.c
+  ${NAS_SRC}ies/DetachType.c
+  ${NAS_SRC}ies/LocationAreaIdentification.c
+  ${NAS_SRC}ies/TrackingAreaIdentity.c
+  ${NAS_SRC}ies/CipheringKeySequenceNumber.c
+  ${NAS_SRC}ies/MsNetworkCapability.c
+  ${NAS_SRC}ies/UeNetworkCapability.c
+  ${NAS_SRC}ies/ProtocolConfigurationOptions.c
+  ${NAS_SRC}ies/AdditionalUpdateType.c
+  ${NAS_SRC}ies/TmsiStatus.c
+  ${NAS_SRC}ies/EsmMessageContainer.c
+  ${NAS_SRC}ies/Nonce.c
+  ${NAS_SRC}ies/ProcedureTransactionIdentity.c
+  ${NAS_SRC}ies/TransactionIdentifier.c
+  ${NAS_SRC}ies/AdditionalUpdateResult.c
+  ${NAS_SRC}ies/GprsTimer.c
+  ${NAS_SRC}ies/EpsNetworkFeatureSupport.c
+  ${NAS_SRC}ies/SsCode.c
+  ${NAS_SRC}ies/DrxParameter.c
+  ${NAS_SRC}ies/KsiAndSequenceNumber.c
+  ${NAS_SRC}ies/VoiceDomainPreferenceAndUeUsageSetting.c
+)
+
+set (libnas_utils_OBJS
+  ${NAS_SRC}util/device.c
+  ${NAS_SRC}util/memory.c
+  ${NAS_SRC}util/nas_log.c
+  ${NAS_SRC}util/nas_timer.c
+  ${NAS_SRC}util/socket.c
+  ${NAS_SRC}util/stty.c
+  ${NAS_SRC}util/TLVEncoder.c
+  ${NAS_SRC}util/TLVDecoder.c
+  ${NAS_SRC}util/OctetString.c
+)
+
+set (libnas_user_OBJS
+  ${NAS_SRC}api/user/user_api.c
+  ${NAS_SRC}api/user/user_indication.c
+  ${NAS_SRC}api/user/at_command.c
+  ${NAS_SRC}api/user/at_error.c
+  ${NAS_SRC}api/user/at_response.c
+)
+    
+set(libnas_usim_OBJS
+  ${NAS_SRC}api/usim/aka_functions.c
+  ${NAS_SRC}api/usim/usim_api.c
+)
+
+set(libnas_OBJS
+  ${OPENAIRCN_DIR}/NAS/nas_ue_task.c
+  ${OPENAIRCN_DIR}/NAS/nas_itti_messaging.c
+  ${NAS_SRC}nas_parser.c
+  ${NAS_SRC}nas_proc.c
+  ${NAS_SRC}nas_user.c
+  ${libnas_utils_OBJS}
+  ${libnas_user_OBJS}
+  ${libnas_usim_OBJS}
+  ${libnas_emm_OBJS}
+  ${libnas_emm_msg_OBJS}
+  ${libnas_emm_sap_OBJS}
+  ${libnas_esm_OBJS}
+  ${libnas_esm_msg_OBJS}
+  ${libnas_esm_sap_OBJS}
+  ${libnas_ies_OBJS}
+  ${libnas_api_OBJS}
+  )
+add_library(NAS ${libnas_OBJS})
+include_directories(${NAS_SRC})
+include_directories(${NAS_SRC}/api/user)
+include_directories(${NAS_SRC}/esm)
+include_directories(${NAS_SRC}/esm/sap)
+include_directories(${NAS_SRC}/emm)
+include_directories(${NAS_SRC}/emm/sap)
+include_directories(${NAS_SRC}/api/usim)
+include_directories(${NAS_SRC}/api/mme)
+
+# Make lfds as a own source code (even if it is a outside library)
+# For better intergration with compilation flags & structure of cmake
+###################################################################
+set(lfds ${OPENAIR2_DIR}/UTIL/LFDS/liblfds6.1.1/liblfds611/src/)
+file(GLOB lfds_queue ${lfds}/lfds611_queue/*.c)
+file(GLOB lfds_ring ${lfds}/lfds611_ringbuffer/*.c)
+file(GLOB lfds_slist ${lfds}/lfds611_slist/*.c)
+file(GLOB lfds_stack ${lfds}/lfds611_stack/*.c/)
+file(GLOB lfds_freelist ${lfds}/lfds611_freelist/*.c)
+
+include_directories(${lfds})
+add_library(LFDS 
+  ${lfds_queue} ${lfds_ring} ${lfds_slist} ${lfds_stack} ${lfds_freelist}
+  ${lfds}/lfds611_liblfds/lfds611_liblfds_abstraction_test_helpers.c
+  ${lfds}/lfds611_liblfds/lfds611_liblfds_aligned_free.c
+  ${lfds}/lfds611_liblfds/lfds611_liblfds_aligned_malloc.c
+  ${lfds}/lfds611_abstraction/lfds611_abstraction_free.c
+  ${lfds}/lfds611_abstraction/lfds611_abstraction_malloc.c
+)
+
+# Simulation library
+##########################
+add_library(SIMU
+${OPENAIR1_DIR}/SIMULATION/TOOLS/random_channel.c
+${OPENAIR1_DIR}/SIMULATION/TOOLS/rangen_double.c
+${OPENAIR1_DIR}/SIMULATION/TOOLS/taus.c
+${OPENAIR1_DIR}/SIMULATION/TOOLS/multipath_channel.c
+${OPENAIR1_DIR}/SIMULATION/TOOLS/abstraction.c
+${OPENAIR1_DIR}/SIMULATION/TOOLS/multipath_tv_channel.c
+${OPENAIR1_DIR}/SIMULATION/RF/rf.c
+${OPENAIR1_DIR}/USERSPACE_TOOLS/SCOPE/lte_scope.c
+)
+
+# System packages that are required
+# the modules definition for cmake, in ubuntu are in: /usr/share/cmake*/Modules/
+###################################
+find_package(LibXml2 REQUIRED)
+include_directories(${LIBXML2_INCLUDE_DIR})
+
+if (${RF_BOARD} STREQUAL "USRP")
+  find_package(Boost REQUIRED)
+  include_directories(${LIBBOOST_INCLUDE_DIR})
+  target_link_libraries (lte-softmodem ${LIBBOOST_LIBRARIES})
+endif (${RF_BOARD} STREQUAL "USRP")
+
+# add executables
+
+add_executable(lte-softmodem 
+${rrc_h}
+${s1ap_h}
+${OPENAIR_BIN_DIR}/messages_xml.h
+${OPENAIR_TARGETS}/RT/USER/sched_dlsch.c
+${OPENAIR_TARGETS}/RT/USER/sched_rx_pdsch.c
+${OPENAIR_TARGETS}/RT/USER/rt_wrapper.c
+${OPENAIR_TARGETS}/RT/USER/stats.c
+${OPENAIR_TARGETS}/RT/USER/lte-ue.c
+${OPENAIR_TARGETS}/RT/USER/lte-softmodem.c
+${OPENAIR1_DIR}/SIMULATION/TOOLS/taus.c
+${OPENAIR_TARGETS}/SIMU/USER/init_lte.c
+${OPENAIR_TARGETS}/COMMON//create_tasks.c
+${OPENAIR1_DIR}/SIMULATION/ETH_TRANSPORT/netlink_init.c
+${HW_SOURCE}
+${RTAI_SOURCE}
+${XFORMS_SOURCE}
+)
+
+target_link_libraries (lte-softmodem 
+  -Wl,--start-group 
+  rrc_asn1 s1ap_asn1 GTPV1U SECU_CN SECU_OSA UTIL SCTP UDP sched PHY LFDS L2 RAL_LTE NAS ${option_ITTI}  
+  -Wl,--end-group )
+target_link_libraries (lte-softmodem ${LIBXML2_LIBRARIES})
+target_link_libraries (lte-softmodem pthread m config rt crypt crypto ssl nettle sctp ${option_USRP} ${option_lib_xforms} )
+
+foreach(myExe dlsim ulsim pbchsim scansim mbmssim pdcchsim pucchsim prachsim syncsim)
+add_executable(${myExe}
+  ${OPENAIR1_DIR}/SIMULATION/LTE_PHY/${myExe}.c
+  ${XFORMS_SOURCE} 
+  )
+target_link_libraries (${myExe}
+  -Wl,--start-group SIMU UTIL sched PHY LFDS  ${option_ITTI} -Wl,--end-group 
+  pthread m config rt blas ${option_lib_xforms}
+)
+endforeach(myExe)
+
+# add the install targets
+#install (TARGETS Tutorial DESTINATION bin)
+#install (FILES "${PROJECT_BIN_DIR}/TutorialConfig.h"        DESTINATION include)
diff --git a/cmake_targets/generate_asn1.bash b/cmake_targets/generate_asn1.bash
new file mode 100755
index 0000000000000000000000000000000000000000..2b04ca591f7419b84163b83d32fed43c03724b48
--- /dev/null
+++ b/cmake_targets/generate_asn1.bash
@@ -0,0 +1,28 @@
+
+mkdir -p $1
+cd $1
+shift
+
+asn1c -gen-PER -fcompound-names  $* 2>&1 | grep -v -- '->' | grep -v '^Compiled' |grep -v sample
+
+awk ' 
+  BEGIN { 
+     print "#ifndef __ASN1_CONSTANTS_H__"
+     print "#define __ASN1_CONSTANTS_H__"
+  }  
+  /INTEGER ::=/ { 
+     gsub("INTEGER ::=","")
+     gsub("--","//")
+     gsub("-1","_minus_1")
+     gsub("-","_")
+     printf("#define %s\n",$0)
+  } 
+  /::=.*INTEGER.*[(]/ {
+     nb_fields=split($0,val,"[:=().]+");
+     gsub("-","_",val[1]);
+     printf("#define min_val_%s %s\n",val[1],val[nb_fields-2]);
+     printf("#define max_val_%s %s\n",val[1],val[nb_fields-1]);
+  }
+  END {
+     print "#endif ";
+  } ' $1  > asn1_constants.h
diff --git a/cmake_targets/lte-r10-exmimo/CMakeLists.txt b/cmake_targets/lte-r10-exmimo/CMakeLists.txt
new file mode 100644
index 0000000000000000000000000000000000000000..9b1d616167048558fe19b36c9fb032daba1325fe
--- /dev/null
+++ b/cmake_targets/lte-r10-exmimo/CMakeLists.txt
@@ -0,0 +1,2 @@
+cmake_minimum_required(VERSION 2.8)
+include(${CMAKE_CURRENT_SOURCE_DIR}/../CMakeLists.txt)
diff --git a/cmake_targets/lte-r10-usrp/CMakeLists.txt b/cmake_targets/lte-r10-usrp/CMakeLists.txt
new file mode 100644
index 0000000000000000000000000000000000000000..09e2d540da0c810ae4e6b558b5f69eaaba70cb30
--- /dev/null
+++ b/cmake_targets/lte-r10-usrp/CMakeLists.txt
@@ -0,0 +1,3 @@
+cmake_minimum_required(VERSION 2.8)
+set(RF_BOARD "USRP")
+include(${CMAKE_CURRENT_SOURCE_DIR}/../CMakeLists.txt)
diff --git a/cmake_targets/lte-r8/CMakeLists.txt b/cmake_targets/lte-r8/CMakeLists.txt
new file mode 100644
index 0000000000000000000000000000000000000000..063d56c767758de2d5397f7604b5c96f2a220773
--- /dev/null
+++ b/cmake_targets/lte-r8/CMakeLists.txt
@@ -0,0 +1,3 @@
+cmake_minimum_required(VERSION 2.8)
+set(RRC_ASN1_VERSION "Rel8")
+include(${CMAKE_CURRENT_SOURCE_DIR}/../CMakeLists.txt)
diff --git a/cmake_targets/lte-simulators/CMakeLists.txt b/cmake_targets/lte-simulators/CMakeLists.txt
new file mode 100644
index 0000000000000000000000000000000000000000..8c7b296321433a5cca3020796e6779f39bb34838
--- /dev/null
+++ b/cmake_targets/lte-simulators/CMakeLists.txt
@@ -0,0 +1,12 @@
+cmake_minimum_required(VERSION 2.8)
+set(PHYSIM True)
+set(RF_BOARD None)
+set(XFORMS False)
+
+set(DEBUG_PHY False)
+set(MU_RECIEVER Flase)
+set(RANDOM_BF False)
+set(PBS_SIM False)
+set(PERFECT_CE False)
+
+include(${CMAKE_CURRENT_SOURCE_DIR}/../CMakeLists.txt)