| From a2f0669fac1f8e7183b15cf7d14f0e99a2d8b012 Mon Sep 17 00:00:00 2001 |
| From: Samuel Martin <s.martin49@gmail.com> |
| Date: Sat, 11 Jan 2014 21:47:39 +0100 |
| Subject: [PATCH 3/6] cmake: do not try to run arithchk when cross-compiling to |
| generate sources |
| |
| Instead, use a predefined arith.h if provided, or generate a default one. |
| |
| The arithchk binary is still built (but not installed) to allow the user to |
| run it on its target and use it; so then allowing to build an optimized |
| blas library. |
| |
| Signed-off-by: Samuel Martin <s.martin49@gmail.com> |
| --- |
| F2CLIBS/libf2c/CMakeLists.txt | 38 ++++++++++++++++++++++++++++---------- |
| 1 file changed, 28 insertions(+), 10 deletions(-) |
| |
| diff --git a/F2CLIBS/libf2c/CMakeLists.txt b/F2CLIBS/libf2c/CMakeLists.txt |
| index f98d66a..45a0804 100644 |
| --- a/F2CLIBS/libf2c/CMakeLists.txt |
| +++ b/F2CLIBS/libf2c/CMakeLists.txt |
| @@ -38,17 +38,35 @@ set(TIME dtime_.c etime_.c) |
| |
| # For INTEGER*8 support (which requires system-dependent adjustments to |
| # f2c.h), add ${QINT} to the OFILES assignment below... |
| -add_executable(arithchk arithchk.c) |
| -if(UNIX) |
| - target_link_libraries(arithchk m) |
| +if(CMAKE_CROSSCOMPILING) |
| + if(ARITH_H) |
| + message(STATUS "Using the user-defined '${ARITH_H}' as arith.h header.") |
| + configure_file("${ARITH_H}" "${CMAKE_CURRENT_BINARY_DIR}/arith.h" COPYONLY) |
| + else() |
| + message(STATUS "No user-defined arith.h header.") |
| + if(NOT EXISTS "${CMAKE_CURRENT_BINARY_DIR}/arith.h") |
| + message(WARNING "Generating the default non-optimized 'arith.h' header. |
| + |
| +To generate and provide a custom arith.h header: |
| +run the cross-compiled arithchk binary on your target, |
| +and use its output to fill your custom arith.h header.") |
| + file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/arith.h" |
| + "/* default, not optimized arith.h */") |
| + endif() |
| + endif() |
| +else() |
| + add_executable(arithchk arithchk.c) |
| + if(UNIX) |
| + target_link_libraries(arithchk m) |
| + endif() |
| + set_target_properties(arithchk PROPERTIES COMPILE_DEFINITIONS |
| + "NO_FPINIT;NO_LONG_LONG") |
| + ADD_CUSTOM_COMMAND( |
| + OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/arith.h |
| + COMMAND arithchk > ${CMAKE_CURRENT_BINARY_DIR}/arith.h |
| + DEPENDS arithchk |
| + ) |
| endif() |
| -set_target_properties(arithchk PROPERTIES COMPILE_DEFINITIONS |
| - "NO_FPINIT;NO_LONG_LONG") |
| -ADD_CUSTOM_COMMAND( |
| - OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/arith.h |
| - COMMAND arithchk > ${CMAKE_CURRENT_BINARY_DIR}/arith.h |
| - DEPENDS arithchk |
| - ) |
| |
| |
| set(OFILES ${MISC} ${POW} ${CX} ${DCX} ${REAL} ${DBL} ${INT} |
| -- |
| 1.8.5.3 |
| |