summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: 57e6491)
raw | patch | inline | side by side (parent: 57e6491)
author | Wendy Liang <jliang@xilinx.com> | |
Mon, 15 Aug 2016 22:49:54 +0000 (15:49 -0700) | ||
committer | Wendy Liang <jliang@xilinx.com> | |
Thu, 13 Oct 2016 05:01:48 +0000 (22:01 -0700) |
This patch is to enable to build OpenAMP for Linux
userspace.
Signed-off-by: Wendy Liang <jliang@xilinx.com>
userspace.
Signed-off-by: Wendy Liang <jliang@xilinx.com>
12 files changed:
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 33717c821a6fc209e06feb78d5d9cbaf15edbbcf..dda88a6bf0ace1c3d9c850327cff70363f9df5e4 100644 (file)
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
"${CMAKE_SOURCE_DIR}/cmake/modules"
"${CMAKE_SOURCE_DIR}/cmake/platforms")
-project (OpenAMP)
+project (open_amp)
enable_language(C ASM)
include (CheckIncludeFiles)
diff --git a/apps/CMakeLists.txt b/apps/CMakeLists.txt
index c160063e412d09c039b9e23c9fd62a9bc890deb9..1c87a53d2fd74843d8d46b2b47c2adc540e568c5 100644 (file)
--- a/apps/CMakeLists.txt
+++ b/apps/CMakeLists.txt
collector_create (APP_COMMON_SOURCES "")
collector_create (APP_LIB_DIRS "")
collector_create (APP_INC_DIRS "")
+collector_create (APP_LIB_DEPS "")
-set_property (GLOBAL PROPERTY APP_LIB_DEPS "-lopen_amp")
-set_property (GLOBAL APPEND PROPERTY APP_LIB_DEPS "-lmetal")
set (APPS_ROOT_DIR "${CMAKE_CURRENT_SOURCE_DIR}")
set (APPS_SHARE_DIR "${CMAKE_CURRENT_BINARY_DIR}/share")
add_subdirectory (echo_test)
add_subdirectory (matrix_multiply)
-if (WITH_PROXY)
+if (WITH_PROXY_APPS)
if (NOT WITH_REMOTEPROC_MASTER)
add_subdirectory (rpc_demo)
endif (NOT WITH_REMOTEPROC_MASTER)
-endif (WITH_PROXY)
+endif (WITH_PROXY_APPS)
if (WITH_FUNCTION_TEST_SUITE)
add_subdirectory (func_test_suite)
index d58bdbf846ebe8c1ac02fa866dcf148ccfdf845a..8d76d5ad1a5cddcf108b968073922a0be2a2c1c6 100644 (file)
-set (_app "echo_testd")
set (_cflags "${CMAKE_C_FLAGS} ${APP_EXTRA_C_FLAGS}")
set (_fw_dir "${APPS_SHARE_DIR}")
collector_list (_app_list APP_LIB_DIRS)
link_directories (${_list} ${_app_list})
-collector_list (_list APP_COMMON_SOURCES)
-if (WITH_REMOTEPROC_MASTER)
-list (APPEND _list "${CMAKE_CURRENT_SOURCE_DIR}/echo_testd_remoteproc_master.c")
-set (_cflags "${_cflags} -DBAREMETAL_MASTER=1")
-else (WITH_REMOTEPROC_MASTER)
-list (APPEND _list "${CMAKE_CURRENT_SOURCE_DIR}/echo_testd.c")
-endif (WITH_REMOTEPROC_MASTER)
-add_executable (${_app}.out ${_list})
-
-set_source_files_properties(${_list} PROPERTIES COMPILE_FLAGS "${_cflags}")
-
get_property (_linker_script GLOBAL PROPERTY APP_LINKER_SCRIPT)
-get_property (_deps GLOBAL PROPERTY APP_LIB_DEPS)
-set (_deps "${_deps} ${PLATFORM_LIB_DEPS}")
-string (STRIP "${_deps}" _deps)
-
-if (WITH_REMOTEPROC_MASTER)
-target_link_libraries(${_app}.out -Wl,-Map=${_app}.map -Wl,--gc-sections -T\"${_linker_script}\" -Wl,--start-group ${_fw_dir}/firmware1.o ${_fw_dir}/firmware2.o ${_deps} -Wl,--end-group)
-add_custom_target (${_app}.bin ALL
- ${CROSS_PREFIX}objcopy -O binary ${_app}.out ${_app}.bin
- DEPENDS ${_app}.out)
-
-add_dependencies (${_app}.out ${_fw_dir}/firmware1.o ${_fw_dir}/firmware2.o)
-
-install (FILES "${CMAKE_CURRENT_BINARY_DIR}/${_app}.bin" DESTINATION bin)
-else (WITH_REMOTEPROC_MASTER)
-target_link_libraries(${_app}.out -Wl,-Map=${_app}.map -Wl,--gc-sections -T\"${_linker_script}\" -Wl,--start-group ${_deps} -Wl,--end-group)
+collector_list (_deps PROJECT_LIB_DEPS)
-install (TARGETS ${_app}.out RUNTIME DESTINATION bin)
-endif (WITH_REMOTEPROC_MASTER)
+set (OPENAMP_LIB open_amp)
+foreach (_app echo_test echo_testd)
+ collector_list (_sources APP_COMMON_SOURCES)
+ set (build_app 1)
+ if (WITH_REMOTEPROC_MASTER)
+ if (EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/${_app}_remoteproc_master.c")
+ list (APPEND _sources "${CMAKE_CURRENT_SOURCE_DIR}/${_app}_remoteproc_master.c")
+ set (_cflags "${_cflags} -DBAREMETAL_MASTER=1")
+ else ()
+ set (build_app 0)
+ endif ()
+ else (WITH_REMOTEPROC_MASTER)
+ list (APPEND _sources "${CMAKE_CURRENT_SOURCE_DIR}/${_app}.c")
+ endif (WITH_REMOTEPROC_MASTER)
+
+ if (${build_app} EQUAL "1")
+ if (WITH_SHARED_LIB)
+ add_executable (${_app}-shared ${_sources})
+ target_link_libraries (${_app}-shared ${OPENAMP_LIB}-shared ${_deps})
+ install (TARGETS ${_app}-shared RUNTIME DESTINATION bin)
+ endif (WITH_SHARED_LIB)
+
+ if (WITH_STATIC_LIB)
+ if (${PROJECT_SYSTEM} STREQUAL "linux")
+ add_executable (${_app}-static ${_sources})
+ target_link_libraries (${_app}-static ${OPENAMP_LIB}-static ${_deps})
+ install (TARGETS ${_app}-static RUNTIME DESTINATION bin)
+ else (${PROJECT_SYSTEM})
+ add_executable (${_app}.out ${_sources})
+ set_source_files_properties(${_sources} PROPERTIES COMPILE_FLAGS "${_cflags}")
+
+ if (WITH_REMOTEPROC_MASTER)
+ target_link_libraries(${_app}.out -Wl,-Map=${_app}.map -Wl,--gc-sections -T\"${_linker_script}\" -Wl,--start-group ${_fw_dir}/firmware1.o ${_fw_dir}/firmware2.o ${OPENAM__LIB}-static ${_deps} -Wl,--end-group)
+ add_custom_target (${_app}.bin ALL
+ ${CROSS_PREFIX}objcopy -O binary ${_app}.out ${_app}.bin
+ DEPENDS ${_app}.out)
+
+ add_dependencies (${_app}.out ${_fw_dir}/firmware1.o ${_fw_dir}/firmware2.o)
+
+ install (FILES "${CMAKE_CURRENT_BINARY_DIR}/${_app}.bin" DESTINATION bin)
+
+ else (WITH_REMOTEPROC_MASTER)
+
+ target_link_libraries(${_app}.out -Wl,-Map=${_app}.map -Wl,--gc-sections -T\"${_linker_script}\" -Wl,--start-group ${OPENAMP_LIB}-static ${_deps} -Wl,--end-group)
+
+ install (TARGETS ${_app}.out RUNTIME DESTINATION bin)
+ endif (WITH_REMOTEPROC_MASTER)
+ endif (${PROJECT_SYSTEM} STREQUAL "linux" )
+ endif (WITH_STATIC_LIB)
+ endif (${build_app} EQUAL "1")
+endforeach(_app)
index adf1684864228c200f7d2fc2187a1f5d611bf460..d7ada392744e7923ce16cca2b1085c1fe1a5acc5 100644 (file)
-
-set (_app "matrix_multiplyd")
set (_cflags "${CMAKE_C_FLAGS} ${APP_EXTRA_C_FLAGS}")
set (_fw_dir "${APPS_SHARE_DIR}")
collector_list (_app_list APP_LIB_DIRS)
link_directories (${_list} ${_app_list})
-collector_list (_list APP_COMMON_SOURCES)
-if (WITH_REMOTEPROC_MASTER)
-list (APPEND _list "${CMAKE_CURRENT_SOURCE_DIR}/matrix_multiplyd_remoteproc_master.c")
-set (_cflags "${_cflags} -DBAREMETAL_MASTER=1")
-else (WITH_REMOTEPROC_MASTER)
-list (APPEND _list "${CMAKE_CURRENT_SOURCE_DIR}/matrix_multiplyd.c")
-endif (WITH_REMOTEPROC_MASTER)
-add_executable (${_app}.out ${_list})
-
-set_source_files_properties(${_list} PROPERTIES COMPILE_FLAGS "${_cflags}")
-
get_property (_linker_script GLOBAL PROPERTY APP_LINKER_SCRIPT)
-get_property (_deps GLOBAL PROPERTY APP_LIB_DEPS)
-set (_deps "${_deps} ${PLATFORM_LIB_DEPS}")
-string (STRIP "${_deps}" _deps)
-
-if (WITH_REMOTEPROC_MASTER)
-target_link_libraries(${_app}.out -Wl,-Map=${_app}.map -Wl,--gc-sections -T\"${_linker_script}\" -Wl,--start-group ${_fw_dir}/firmware1.o ${_fw_dir}/firmware2.o ${_deps} -Wl,--end-group)
-add_custom_target (${_app}.bin ALL
- ${CROSS_PREFIX}objcopy -O binary ${_app}.out ${_app}.bin
- DEPENDS ${_app}.out)
-
-add_dependencies (${_app}.out ${_fw_dir}/firmware1.o ${_fw_dir}/firmware2.o)
-
-install (FILES "${CMAKE_CURRENT_BINARY_DIR}/${_app}.bin" DESTINATION bin)
-else (WITH_REMOTEPROC_MASTER)
-target_link_libraries(${_app}.out -Wl,-Map=${_app}.map -Wl,--gc-sections -T\"${_linker_script}\" -Wl,--start-group ${_deps} -Wl,--end-group)
+collector_list (_deps PROJECT_LIB_DEPS)
-install (TARGETS ${_app}.out RUNTIME DESTINATION bin)
-endif (WITH_REMOTEPROC_MASTER)
+set (OPENAMP_LIB open_amp)
+foreach (_app matrix_multiply matrix_multiplyd)
+ collector_list (_sources APP_COMMON_SOURCES)
+ set (build_app 1)
+ if (WITH_REMOTEPROC_MASTER)
+ if (EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/${_app}_remoteproc_master.c")
+ list (APPEND _sources "${CMAKE_CURRENT_SOURCE_DIR}/${_app}_remoteproc_master.c")
+ set (_cflags "${_cflags} -DBAREMETAL_MASTER=1")
+ else ()
+ set (build_app 0)
+ endif ()
+ else (WITH_REMOTEPROC_MASTER)
+ list (APPEND _sources "${CMAKE_CURRENT_SOURCE_DIR}/${_app}.c")
+ endif (WITH_REMOTEPROC_MASTER)
+
+ if (${build_app} EQUAL "1")
+ if (WITH_SHARED_LIB)
+ add_executable (${_app}-shared ${_sources})
+ target_link_libraries (${_app}-shared ${OPENAMP_LIB}-shared ${_deps})
+ install (TARGETS ${_app}-shared RUNTIME DESTINATION bin)
+ endif (WITH_SHARED_LIB)
+
+ if (WITH_STATIC_LIB)
+ if (${PROJECT_SYSTEM} STREQUAL "linux")
+ add_executable (${_app}-static ${_sources})
+ target_link_libraries (${_app}-static ${OPENAMP_LIB}-static ${_deps})
+ install (TARGETS ${_app}-static RUNTIME DESTINATION bin)
+ else (${PROJECT_SYSTEM})
+ add_executable (${_app}.out ${_sources})
+ set_source_files_properties(${_sources} PROPERTIES COMPILE_FLAGS "${_cflags}")
+
+ if (WITH_REMOTEPROC_MASTER)
+ target_link_libraries(${_app}.out -Wl,-Map=${_app}.map -Wl,--gc-sections -T\"${_linker_script}\" -Wl,--start-group ${_fw_dir}/firmware1.o ${_fw_dir}/firmware2.o ${OPENAM__LIB}-static ${_deps} -Wl,--end-group)
+ add_custom_target (${_app}.bin ALL
+ ${CROSS_PREFIX}objcopy -O binary ${_app}.out ${_app}.bin
+ DEPENDS ${_app}.out)
+
+ add_dependencies (${_app}.out ${_fw_dir}/firmware1.o ${_fw_dir}/firmware2.o)
+
+ install (FILES "${CMAKE_CURRENT_BINARY_DIR}/${_app}.bin" DESTINATION bin)
+
+ else (WITH_REMOTEPROC_MASTER)
+
+ target_link_libraries(${_app}.out -Wl,-Map=${_app}.map -Wl,--gc-sections -T\"${_linker_script}\" -Wl,--start-group ${OPENAMP_LIB}-static ${_deps} -Wl,--end-group)
+
+ install (TARGETS ${_app}.out RUNTIME DESTINATION bin)
+ endif (WITH_REMOTEPROC_MASTER)
+ endif (${PROJECT_SYSTEM} STREQUAL "linux" )
+ endif (WITH_STATIC_LIB)
+ endif (${build_app} EQUAL "1")
+endforeach(_app)
index ea8f446388f9358542415bc09d7a1d8938b158ab..1103a173fbf31936a36b0dcfb1cf8e8bf3d8ab58 100644 (file)
-set (_app "rpc_demo")
set (_cflags "${CMAKE_C_FLAGS} ${APP_EXTRA_C_FLAGS}")
+set (_fw_dir "${APPS_SHARE_DIR}")
collector_list (_list PROJECT_INC_DIRS)
collector_list (_app_list APP_INC_DIRS)
collector_list (_app_list APP_LIB_DIRS)
link_directories (${_list} ${_app_list})
-collector_list (_list APP_COMMON_SOURCES)
-list (APPEND _list "${CMAKE_CURRENT_SOURCE_DIR}/rpc_demo.c")
-add_executable (${_app}.out ${_list})
+get_property (_linker_script GLOBAL PROPERTY APP_LINKER_SCRIPT)
+collector_list (_deps PROJECT_LIB_DEPS)
-set_source_files_properties(${_list} PROPERTIES COMPILE_FLAGS "${_cflags}")
+set (OPENAMP_LIB open_amp)
-get_property (_linker_script GLOBAL PROPERTY APP_LINKER_SCRIPT)
-get_property (_deps GLOBAL PROPERTY APP_LIB_DEPS)
-set (_deps "${_deps} ${PLATFORM_LIB_DEPS}")
-string (STRIP "${_deps}" _deps)
-target_link_libraries(${_app}.out -Wl,-Map=echo_test.map -Wl,--gc-sections -T\"${_linker_script}\" -Wl,--start-group ${_deps} -Wl,--end-group)
+if (${PROJECT_SYSTEM} STREQUAL "linux")
+ set (app_list rpc_demod)
+else (${PROJECT_SYSTEM})
+ set (app_list rpc_demo)
+endif (${PROJECT_SYSTEM} STREQUAL "linux")
+
+foreach (_app ${app_list})
+ collector_list (_sources APP_COMMON_SOURCES)
+ list (APPEND _sources "${CMAKE_CURRENT_SOURCE_DIR}/${_app}.c")
+
+ if (WITH_SHARED_LIB)
+ add_executable (${_app}-shared ${_sources})
+ target_link_libraries (${_app}-shared ${OPENAMP_LIB}-shared ${_deps})
+ install (TARGETS ${_app}-shared RUNTIME DESTINATION bin)
+ endif (WITH_SHARED_LIB)
+
+ if (WITH_STATIC_LIB)
+ if (${PROJECT_SYSTEM} STREQUAL "linux")
+ add_executable (${_app}-static ${_sources})
+ target_link_libraries (${_app}-static ${OPENAMP_LIB}-static ${_deps})
+ install (TARGETS ${_app}-static RUNTIME DESTINATION bin)
+ else (${PROJECT_SYSTEM})
+ add_executable (${_app}.out ${_sources})
+ set_source_files_properties(${_sources} PROPERTIES COMPILE_FLAGS "${_cflags}")
-install (TARGETS ${_app}.out RUNTIME DESTINATION bin)
+ target_link_libraries(${_app}.out -Wl,-Map=${_app}.map -Wl,--gc-sections -T\"${_linker_script}\" -Wl,--start-group ${OPENAMP_LIB}-static ${_deps} -Wl,--end-group)
+ install (TARGETS ${_app}.out RUNTIME DESTINATION bin)
+ endif (${PROJECT_SYSTEM} STREQUAL "linux" )
+ endif (WITH_STATIC_LIB)
+endforeach(_app)
diff --git a/apps/system/generic/machine/zynqmp_r5/CMakeLists.txt b/apps/system/generic/machine/zynqmp_r5/CMakeLists.txt
index 0a7222383caa925e52ce254ee6de4200f05f4bfe..d7a5775b86c01936eaf263b2d258cae5ce862ea3 100644 (file)
find_library(LIBXIL_LIB NAMES xil PATHS ${CMAKE_FIND_ROOT_PATH})
get_filename_component(LIBXIL_LIB_DIR ${LIBXIL_LIB} DIRECTORY)
collect(PROJECT_LIB_DIRS ${LIBXIL_LIB_DIR})
+
+collect(PROJECT_LIB_DEPS xil)
+collect(PROJECT_LIB_DEPS c)
+collect(PROJECT_LIB_DEPS m)
diff --git a/cmake/collect.cmake b/cmake/collect.cmake
index 60d12e698adb5c1ab8fb1dd1a071968cccd41491..d1bd17814cb994b34673ce155e800a39f7f9ddd6 100644 (file)
--- a/cmake/collect.cmake
+++ b/cmake/collect.cmake
string(COMPARE NOTEQUAL "${_base}" "" _is_rel)
set (_list)
foreach (s IN LISTS ARGN)
- get_filename_component (s "${s}" ABSOLUTE)
if (_is_rel)
+ get_filename_component (s "${s}" ABSOLUTE)
file (RELATIVE_PATH s "${_base}" "${s}")
+ else (_is_rel)
+ get_filename_component (ts "${s}" ABSOLUTE)
+ if (EXISTS "${ts}")
+ set (s "${ts}")
+ endif (EXISTS "${ts}")
endif (_is_rel)
list (APPEND _list "${s}")
endforeach ()
diff --git a/cmake/depends.cmake b/cmake/depends.cmake
index d8dddac9001313e5355652a76890b5e70fd6d925..477d90340bf52e1f8c524215c6b9d042cb081048 100644 (file)
--- a/cmake/depends.cmake
+++ b/cmake/depends.cmake
find_package (Libmetal REQUIRED)
collect (PROJECT_INC_DIRS "${LIBMETAL_INCLUDE_DIR}")
collect (PROJECT_LIB_DIRS "${LIBMETAL_LIB_DIR}")
+collect (PROJECT_LIB_DEPS "${LIBMETAL_LIB}")
if ("${CMAKE_SYSTEM_NAME}" STREQUAL "Linux")
check_include_files (stdatomic.h HAVE_STDATOMIC_H)
+
else ("${CMAKE_SYSTEM_NAME}" STREQUAL "Linux")
set (_saved_cmake_required_flags ${CMAKE_REQUIRED_FLAGS})
set (CMAKE_REQUIRED_FLAGS "-c")
index 32a945259859334a74bdf7db12c40d1e95259fb1..08666b902bbdffc21de887b113c389aeeee0477f 100644 (file)
find_library(LIBMETAL_LIB NAMES metal PATHS ${CMAKE_FIND_ROOT_PATH})
get_filename_component(LIBMETAL_LIB_DIR ${LIBMETAL_LIB} DIRECTORY)
-mark_as_advanced (LIBMETAL_INCLUDE_DIR LIBMETAL_LIB_DIR)
+# handle the QUIETLY and REQUIRED arguments and set HUGETLBFS_FOUND to TRUE if
+# all listed variables are TRUE
+include (FindPackageHandleStandardArgs)
+FIND_PACKAGE_HANDLE_STANDARD_ARGS (LIBMETAL DEFAULT_MSG LIBMETAL_LIB LIBMETAL_INCLUDE_DIR)
+
+if (LIBMETAL_FOUND)
+ set (LIBMETAL_LIBS ${LIBMEAL_LIB})
+endif (LIBMETAL_FOUND)
+
+mark_as_advanced (LIBMETAL_LIB LIBMETAL_INCLUDE_DIR LIBMETAL_LIB_DIR)
diff --git a/cmake/options.cmake b/cmake/options.cmake
index 1a747fa9be5268e37c081ede19af744791ef5bb7..358d8508bb1464929b2352e808007a983ab7cffb 100644 (file)
--- a/cmake/options.cmake
+++ b/cmake/options.cmake
# Select which components are in the openamp lib
option (WITH_PROXY "Build with proxy(access device controlled by other processor)" ON)
option (WITH_APPS "Build with sample applicaitons" OFF)
+option (WITH_PROXY_APPS "Build with proxy sample applicaitons" OFF)
if (WITH_APPS)
+ if (WITH_PROXY)
+ set (WITH_PROXY_APPS ON)
+ elseif ("${PROJECT_SYSTEM}" STREQUAL "linux")
+ set (WITH_PROXY_APPS ON)
+ endif (WITH_PROXY)
option (WITH_BENCHMARK "Build benchmark app" OFF)
endif (WITH_APPS)
option (WITH_OBSOLETE "Build obsolete system libs" OFF)
set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DOPENAMP_BENCHMARK_ENABLE")
endif (WITH_BENCHMARK)
+option (WITH_STATIC_LIB "Build with a static library" ON)
+
+if ("${PROJECT_SYSTEM}" STREQUAL "linux")
+ option (WITH_SHARED_LIB "Build with a shared library" ON)
+endif ("${PROJECT_SYSTEM}" STREQUAL "linux")
+
message ("-- C_FLAGS : ${CMAKE_C_FLAGS}")
# vim: expandtab:ts=2:sw=2:smartindent
index 9800a6bbf75ede151bdc192171004b0775e239ea..0546f71ce23ada5a2cfe2ed840c2ea01593ebf63 100644 (file)
set (CMAKE_SYSTEM_PROCESSOR "arm64")
set (CROSS_PREFIX "aarch64-linux-gnu-")
+set (MACHINE "zynqmp_a53" CACHE STRING "")
include (cross-linux-gcc)
diff --git a/lib/CMakeLists.txt b/lib/CMakeLists.txt
index e72b722e4d61f44067f994815843e5e12e43a036..143053625bf3fec04f5925d4ad153f22180363d2 100644 (file)
--- a/lib/CMakeLists.txt
+++ b/lib/CMakeLists.txt
collect (PROJECT_INC_DIRS "${CMAKE_CURRENT_SOURCE_DIR}/include/openamp/machine/${PROJECT_MACHINE}")
collect (PROJECT_INC_DIRS "${CMAKE_CURRENT_SOURCE_DIR}/include/openamp/system/${PROJECT_SYSTEM}/machine/${PROJECT_MACHINE}")
+
add_subdirectory (common)
add_subdirectory (virtio)
add_subdirectory (rpmsg)
set (OPENAMP_LIB open_amp)
-collector_list (_list PROJECT_INC_DIRS)
+collector_list (_include PROJECT_INC_DIRS)
+include_directories (${_include})
-include_directories (${_list} ${LIBMETAL_INCLUDE_DIR})
+collector_list (_deps PROJECT_LIB_DEPS)
get_property (_ecflags GLOBAL PROPERTY "PROJECT_LIB_EXTRA_CFLAGS")
-collector_list (_list PROJECT_LIB_SOURCES)
-set_property (SOURCE ${_list}
+collector_list (_sources PROJECT_LIB_SOURCES)
+set_property (SOURCE ${_sources}
APPEND_STRING PROPERTY COMPILE_FLAGS " ${_ecflags}")
-add_library (${OPENAMP_LIB} STATIC ${_list})
-install (TARGETS ${OPENAMP_LIB} ARCHIVE DESTINATION lib)
+# Build a shared library if so configured.
+if (WITH_SHARED_LIB)
+ set (_lib ${OPENAMP_LIB}-shared)
+ add_library (${_lib} SHARED ${_sources})
+ target_link_libraries (${_lib} ${_deps})
+ install (TARGETS ${_lib} LIBRARY DESTINATION lib)
+ set_target_properties (${_lib} PROPERTIES
+ OUTPUT_NAME "${OPENAMP_LIB}"
+ VERSION "${PROJECT_VER}"
+ SOVERSION "${PROJECT_VER_MAJOR}"
+ )
+endif (WITH_SHARED_LIB)
+
+if (WITH_STATIC_LIB)
+ set (_lib ${OPENAMP_LIB}-static)
+ add_library (${_lib} STATIC ${_sources})
+ install (TARGETS ${_lib} ARCHIVE DESTINATION lib)
+ set_target_properties (${_lib} PROPERTIES
+ OUTPUT_NAME "${OPENAMP_LIB}"
+ )
+endif (WITH_STATIC_LIB)
+
install (DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/include/openamp" DESTINATION include)
# vim: expandtab:ts=2:sw=2:smartindent