[cmake-commits] alex committed Generic-ADSP-ASM.cmake NONE 1.1 Generic-ADSP-C.cmake NONE 1.1 Generic-ADSP-CXX.cmake NONE 1.1 Generic-ADSP-Common.cmake NONE 1.1

cmake-commits at cmake.org cmake-commits at cmake.org
Thu Jul 12 13:41:02 EDT 2007


Update of /cvsroot/CMake/CMake/Modules/Platform
In directory public:/mounts/ram/cvs-serv30988/Platform

Added Files:
	Generic-ADSP-ASM.cmake Generic-ADSP-C.cmake 
	Generic-ADSP-CXX.cmake Generic-ADSP-Common.cmake 
Log Message:

ENH: add support for the ADSP toolchains for Blackfin, Shark and TigerShark
DSPs, patch from Raphael Cotty

Alex


--- NEW FILE: Generic-ADSP-ASM.cmake ---
INCLUDE(Platform/Generic-ADSP-Common)

SET(CMAKE_ASM_SOURCE_FILE_EXTENSIONS asm)
SET(CMAKE_ASM_OUTPUT_EXTENSION ".doj" )
SET(CMAKE_ASM_COMPILE_OBJECT
    "<CMAKE_ASM_COMPILER> <FLAGS> -proc ${ADSP_PROCESSOR} -si-revision ${ADSP_PROCESSOR_SILICIUM_REVISION} -o <OBJECT> <SOURCE>")


--- NEW FILE: Generic-ADSP-Common.cmake ---
# support for the Analog Devices toolchain for their DSPs
# Raphael Cotty" <raphael.cotty (AT) googlemail.com>
#
# it supports three architectures:
# Blackfin
# TS (TigerShark)
# 21k (Sharc 21xxx)

IF(NOT ADSP)

  SET(ADSP TRUE)

  SET(CMAKE_STATIC_LIBRARY_SUFFIX ".dlb")
  SET(CMAKE_SHARED_LIBRARY_SUFFIX "")
  SET(CMAKE_EXECUTABLE_SUFFIX ".dxe")

  # if ADSP_PROCESSOR has not been set, but CMAKE_SYSTEM_PROCESSOR has, 
  # assume that this is the processor name to use for the compiler
  IF(CMAKE_SYSTEM_PROCESSOR AND NOT ADSP_PROCESSOR)
    SET(ADSP_PROCESSOR ${CMAKE_SYSTEM_PROCESSOR})
  ENDIF(CMAKE_SYSTEM_PROCESSOR AND NOT ADSP_PROCESSOR)

  # if ADSP_PROCESSOR_SILICIUM_REVISION has not been set, use "none"
  IF(NOT ADSP_PROCESSOR_SILICIUM_REVISION)
    SET(ADSP_PROCESSOR_SILICIUM_REVISION "none")
  ENDIF(NOT ADSP_PROCESSOR_SILICIUM_REVISION)

  # this file is included from the C and CXX files, so handle both here

  GET_FILENAME_COMPONENT(_ADSP_DIR "${CMAKE_C_COMPILER}" PATH)
  IF(NOT _ADSP_DIR)
    GET_FILENAME_COMPONENT(_ADSP_DIR "${CMAKE_CXX_COMPILER}" PATH)
  ENDIF(NOT _ADSP_DIR)
  IF(NOT _ADSP_DIR)
    GET_FILENAME_COMPONENT(_ADSP_DIR "${CMAKE_ASM_COMPILER}" PATH)
  ENDIF(NOT _ADSP_DIR)

  # detect architecture

  IF(CMAKE_C_COMPILER MATCHES ccblkfn OR CMAKE_CXX_COMPILER MATCHES ccblkfn OR CMAKE_ASM_COMPILER MATCHES easmBLKFN)
    IF(NOT ADSP_PROCESSOR)
      SET(ADSP_PROCESSOR "ADSP-BF561")
    ENDIF(NOT ADSP_PROCESSOR)
    SET(ADSP_BLACKFIN TRUE)
    SET(_ADSP_FAMILY_DIR "${_ADSP_DIR}/Blackfin")
  ENDIF(CMAKE_C_COMPILER MATCHES ccblkfn OR CMAKE_CXX_COMPILER MATCHES ccblkfn OR CMAKE_ASM_COMPILER MATCHES easmBLKFN)

  IF(CMAKE_C_COMPILER MATCHES ccts OR CMAKE_CXX_COMPILER MATCHES ccts OR CMAKE_ASM_COMPILER MATCHES easmTS)
    IF(NOT ADSP_PROCESSOR)
      SET(ADSP_PROCESSOR "ADSP-TS101")
    ENDIF(NOT ADSP_PROCESSOR)
    SET(ADSP_TS TRUE)
    SET(_ADSP_FAMILY_DIR "${_ADSP_DIR}/TS")
  ENDIF(CMAKE_C_COMPILER MATCHES ccts OR CMAKE_CXX_COMPILER MATCHES ccts OR CMAKE_ASM_COMPILER MATCHES easmTS)

  IF(CMAKE_C_COMPILER MATCHES cc21k OR CMAKE_CXX_COMPILER MATCHES cc21k OR CMAKE_ASM_COMPILER MATCHES easm21k)
    IF(NOT ADSP_PROCESSOR)
      SET(ADSP_PROCESSOR "ADSP-21060")
    ENDIF(NOT ADSP_PROCESSOR)
    SET(ADSP_21K TRUE)

    SET(_ADSP_FAMILY_DIR "${_ADSP_DIR}/21k")  # default if nothing matches
    IF   (ADSP_PROCESSOR MATCHES "210..$")
      SET(_ADSP_FAMILY_DIR "${_ADSP_DIR}/21k")
    ENDIF(ADSP_PROCESSOR MATCHES "210..$")

    IF   (ADSP_PROCESSOR MATCHES "211..$")
      SET(_ADSP_FAMILY_DIR "${_ADSP_DIR}/211k")
    ENDIF(ADSP_PROCESSOR MATCHES "211..$")

    IF   (ADSP_PROCESSOR MATCHES "212..$")
      SET(_ADSP_FAMILY_DIR "${_ADSP_DIR}/212k")
    ENDIF(ADSP_PROCESSOR MATCHES "212..$")

    IF   (ADSP_PROCESSOR MATCHES "213..$")
      SET(_ADSP_FAMILY_DIR "${_ADSP_DIR}/213k")
    ENDIF(ADSP_PROCESSOR MATCHES "213..$")

    SET(_ADSP_FAMILY_DIR "${_ADSP_DIR}/21k")
  ENDIF(CMAKE_C_COMPILER MATCHES cc21k OR CMAKE_CXX_COMPILER MATCHES cc21k OR CMAKE_ASM_COMPILER MATCHES easm21k)


  LINK_DIRECTORIES("${_ADSP_FAMILY_DIR}/lib")

  # vdk support
  FIND_PROGRAM( ADSP_VDKGEN_EXECUTABLE vdkgen "${_ADSP_FAMILY_DIR}/vdk" )

  MACRO(ADSP_GENERATE_VDK VDK_GENERATED_HEADER VDK_GENERATED_SOURCE VDK_KERNEL_SUPPORT_FILE)
    ADD_CUSTOM_COMMAND(
      OUTPUT ${VDK_GENERATED_HEADER} ${VDK_GENERATED_SOURCE}
      COMMAND ${ADSP_VDKGEN_EXECUTABLE} ${VDK_KERNEL_SUPPORT_FILE} -proc ${ADSP_PROCESSOR} -si-revision ${ADSP_PROCESSOR_SILICIUM_REVISION} -MM
      DEPENDS ${VDK_KERNEL_SUPPORT_FILE}
      )
  ENDMACRO(ADSP_GENERATE_VDK VDK_GENERATED_HEADER VDK_GENERATED_SOURCE VDK_KERNEL_SUPPORT_FILE)

  # loader support
  FIND_PROGRAM( ADSP_ELFLOADER_EXECUTABLE elfloader "${_ADSP_FAMILY_DIR}" )

  # BOOT_MODE: prom, flash, spi, spislave, UART, TWI, FIFO
  # FORMAT: hex, ASCII, binary, include
  # WIDTH: 8, 16
  MACRO(ADSP_CREATE_LOADER_FILE TARGET_NAME BOOT_MODE FORMAT WIDTH)
    ADD_CUSTOM_COMMAND(
      TARGET ${TARGET_NAME}
      POST_BUILD
      COMMAND ${ADSP_ELFLOADER_EXECUTABLE} ${EXECUTABLE_OUTPUT_PATH}/${TARGET_NAME}.dxe -proc ${ADSP_PROCESSOR} -si-revision ${ADSP_PROCESSOR_SILICIUM_REVISION} -b ${BOOT_MODE} -f ${FORMAT} -width ${WIDTH} -o ${EXECUTABLE_OUTPUT_PATH}/${TARGET_NAME}.ldr
      COMMENT "Building the loader file"
      )
  ENDMACRO(ADSP_CREATE_LOADER_FILE TARGET_NAME BOOT_MODE FORMAT WIDTH)

  MACRO(ADSP_CREATE_LOADER_FILE_INIT TARGET_NAME BOOT_MODE FORMAT WIDTH INITIALIZATION_FILE)
    ADD_CUSTOM_COMMAND(
      TARGET ${TARGET_NAME}
      POST_BUILD
      COMMAND ${ADSP_ELFLOADER_EXECUTABLE} ${EXECUTABLE_OUTPUT_PATH}/${TARGET_NAME}.dxe -proc ${ADSP_PROCESSOR} -si-revision ${ADSP_PROCESSOR_SILICIUM_REVISION} -b ${BOOT_MODE} -f ${FORMAT} -width ${WIDTH} -o ${EXECUTABLE_OUTPUT_PATH}/${TARGET_NAME}.ldr -init ${INITIALIZATION_FILE}
      COMMENT "Building the loader file"
      )
  ENDMACRO(ADSP_CREATE_LOADER_FILE_INIT TARGET_NAME BOOT_MODE FORMAT WIDTH INITIALIZATION_FILE)

ENDIF(NOT ADSP)

--- NEW FILE: Generic-ADSP-C.cmake ---

INCLUDE(Platform/Generic-ADSP-Common)


SET(CMAKE_C_OUTPUT_EXTENSION ".doj")

SET(CMAKE_C_FLAGS_DEBUG_INIT "-g")
SET(CMAKE_C_FLAGS_MINSIZEREL_INIT "")
SET(CMAKE_C_FLAGS_RELEASE_INIT "")
SET(CMAKE_C_FLAGS_RELWITHDEBINFO_INIT "")

SET(CMAKE_C_CREATE_STATIC_LIBRARY 
    "<CMAKE_C_COMPILER> -build-lib -proc ${ADSP_PROCESSOR} -si-revision ${ADSP_PROCESSOR_SILICIUM_REVISION} -o <TARGET> <CMAKE_C_LINK_FLAGS> <OBJECTS>")

SET(CMAKE_C_LINK_EXECUTABLE
    "<CMAKE_C_COMPILER> <FLAGS> <CMAKE_C_LINK_FLAGS> <LINK_FLAGS> <OBJECTS> -o <TARGET> <LINK_LIBRARIES>")

SET(CMAKE_C_CREATE_SHARED_LIBRARY)
SET(CMAKE_C_CREATE_MODULE_LIBRARY)


--- NEW FILE: Generic-ADSP-CXX.cmake ---
INCLUDE(Platform/Generic-ADSP-Common)

SET(CMAKE_CXX_OUTPUT_EXTENSION ".doj")

SET(CMAKE_CXX_FLAGS_DEBUG_INIT "-g")
SET(CMAKE_CXX_FLAGS_MINSIZEREL_INIT "")
SET(CMAKE_CXX_FLAGS_RELEASE_INIT "")
SET(CMAKE_CXX_FLAGS_RELWITHDEBINFO_INIT "")

SET(CMAKE_CXX_CREATE_STATIC_LIBRARY 
     "<CMAKE_CXX_COMPILER> -build-lib -proc ${ADSP_PROCESSOR} -si-revision ${ADSP_PROCESSOR_SILICIUM_REVISION} -o <TARGET> <CMAKE_CXX_LINK_FLAGS> <OBJECTS>")

SET(CMAKE_CXX_LINK_EXECUTABLE
     "<CMAKE_CXX_COMPILER> <FLAGS> <CMAKE_CXX_LINK_FLAGS> <LINK_FLAGS> <OBJECTS> -o <TARGET> <LINK_LIBRARIES>")

SET(CMAKE_CXX_CREATE_SHARED_LIBRARY)
SET(CMAKE_CXX_CREATE_MODULE_LIBRARY)




More information about the Cmake-commits mailing list