[8cc501] | 1 | # -*- mode: cmake; -*- |
---|
| 2 | ### |
---|
| 3 | ## Optionen |
---|
| 4 | ## c++ -I../include -I. -O2 -fomit-frame-pointer -fno-rtti -c ZZ_pEX.c |
---|
| 5 | ## |
---|
| 6 | project(ntl) |
---|
| 7 | cmake_minimum_required(VERSION "2.6" FATAL_ERROR) |
---|
| 8 | |
---|
| 9 | set(V_MAJOR 5) |
---|
| 10 | set(V_MINOR 5) |
---|
| 11 | set(V_PATCH RC1) |
---|
| 12 | |
---|
| 13 | set(PROJECT_DESCRIPTION "NTL -- a library for doing numbery theory") |
---|
| 14 | set(PROJECT_VENDOR "") |
---|
| 15 | set(PROJECT_COPYRIGHT "GNU General Public License") |
---|
| 16 | set(PROJECT_CONTACT "Victor Shoup (victor@shoup.net)") |
---|
| 17 | set(PROJECT_VERSION "${V_MAJOR}.${V_MINOR}.${V_PATCH}") |
---|
| 18 | set(PROJECT_README "${CMAKE_INSTALL_PREFIX}/share/doc/${PROJECT_NAME}-${V_MAJOR}.${V_MINOR}/README") |
---|
| 19 | set(PROJECT_COPYING "${CMAKE_INSTALL_PREFIX}/share/doc/${PROJECT_NAME}-${V_MAJOR}.${V_MINOR}/COPYING") |
---|
| 20 | |
---|
| 21 | # have the full monty in makefiles |
---|
| 22 | set(CMAKE_VERBOSE_MAKEFILE true) |
---|
| 23 | |
---|
| 24 | OPTION(WIZARD "Run wizard" off) |
---|
| 25 | |
---|
| 26 | ################################################################################################### |
---|
| 27 | # No user settings below |
---|
| 28 | ################################################################################################### |
---|
| 29 | set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/modules") |
---|
| 30 | |
---|
| 31 | |
---|
| 32 | |
---|
| 33 | set(CC gcc) |
---|
| 34 | set(CXX g++) |
---|
| 35 | set(NTL_GMP_LIP On) |
---|
| 36 | set(NTL_STD_CXX On) |
---|
| 37 | set(GMP_PREFIX /) |
---|
| 38 | |
---|
| 39 | set(CMAKE_C_FLAGS "-O2 -fomit-frame-pointer") |
---|
| 40 | set(CMAKE_CXX_FLAGS "-O2 -fomit-frame-pointer -fno-rtti") |
---|
| 41 | set(CMAKE_CXX_FLAGS "-W -Wall -Wextra -Wno-non-virtual-dtor -Wno-unknown-pragma") |
---|
| 42 | |
---|
| 43 | link_libraries(m) |
---|
| 44 | set(CMAKE_INSTALL_PREFIX "/usr/local") |
---|
| 45 | |
---|
| 46 | set(GMP_PREFIX ${CMAKE_INSTALL_PREFIX}) |
---|
| 47 | set(GMP_INCDIR ${CMAKE_INSTALL_PREFIX}/include) |
---|
| 48 | set(GMP_LIBDIR ${CMAKE_INSTALL_PREFIX}/lib) |
---|
| 49 | |
---|
| 50 | set(GF2X_PREFIX ${CMAKE_INSTALL_PREFIX}) |
---|
| 51 | set(GF2X_INCDIR ${CMAKE_INSTALL_PREFIX}/include) |
---|
| 52 | set(GF2X_LIBDIR ${CMAKE_INSTALL_PREFIX}/lib) |
---|
| 53 | |
---|
| 54 | set(NTL_STD_CXX on) |
---|
| 55 | set(NTL_PSTD_NNS off) |
---|
| 56 | set(NTL_PSTD_NHF off) |
---|
| 57 | set(NTL_PSTD_NTN off) |
---|
| 58 | |
---|
| 59 | set(NTL_GMP_LIP on) |
---|
| 60 | set(NTL_GMP_HACK off) |
---|
| 61 | |
---|
| 62 | set(NTL_GF2X_LIB off) |
---|
| 63 | set(NTL_GF2X_NOINLINE off) |
---|
| 64 | set(NTL_GF2X_ALTCODE off) |
---|
| 65 | set(NTL_GF2X_ALTCODE1 off) |
---|
| 66 | |
---|
| 67 | set(NTL_CXX_ONLY off) |
---|
| 68 | set(NTL_X86_FIX off) |
---|
| 69 | set(NTL_NO_X86_FIX off) |
---|
| 70 | set(NTL_AVOID_FLOAT off) |
---|
| 71 | set(NTL_LONG_LONG off) |
---|
| 72 | |
---|
| 73 | set(NTL_SPMM_ULL off) |
---|
| 74 | set(NTL_SPMM_UL off) |
---|
| 75 | set(NTL_SPMM_ASM off) |
---|
| 76 | |
---|
| 77 | set(NTL_AVOID_BRANCHING off) |
---|
| 78 | set(NTL_TBL_REM off) |
---|
| 79 | set(NTL_NO_INIT_TRANS off) |
---|
| 80 | set(NTL_CLEAN_INT off) |
---|
| 81 | set(NTL_CLEAN_PTR off) |
---|
| 82 | set(NTL_RANGE_CHECK off) |
---|
| 83 | set(NTL_LONG_LONG_TYPE 0) |
---|
| 84 | set(NTL_UNSIGNED_LONG_LONG_TYPE 0) |
---|
| 85 | |
---|
| 86 | if(${NTL_GMP_LIP}) |
---|
| 87 | include(FindGMP) |
---|
| 88 | endif(${NTL_GMP_LIP}) |
---|
| 89 | |
---|
| 90 | if(${NTL_GF2X_LIB}) |
---|
| 91 | include(FindGF2X) |
---|
| 92 | endif() |
---|
| 93 | |
---|
| 94 | # copy file DoCOnfig |
---|
| 95 | configure_file(${CMAKE_CURRENT_SOURCE_DIR}/src/cfile |
---|
| 96 | ${CMAKE_CURRENT_BINARY_DIR}/cfile COPYONLY |
---|
| 97 | ) |
---|
| 98 | configure_file(${CMAKE_CURRENT_SOURCE_DIR}/src/DoConfig |
---|
| 99 | ${CMAKE_CURRENT_BINARY_DIR}/DoConfig COPYONLY |
---|
| 100 | ) |
---|
| 101 | |
---|
| 102 | #add_custom_command( |
---|
| 103 | execute_process( |
---|
| 104 | # OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/cfileout |
---|
| 105 | COMMAND perl ${CMAKE_CURRENT_BINARY_DIR}/DoConfig NTL_GMP_LIP=on GMP_PREFIX=/ CFLAGS=" -O2 -fomit-frame-pointer" CXXFLAGS=" -O2 -fomit-frame-pointer -fno-rtti" LDFLAGS="" NTL_STD_CXX=off |
---|
| 106 | COMMAND mkdir -p ${CMAKE_CURRENT_BINARY_DIR}/include/NTL |
---|
| 107 | COMMAND cp cfileout ${CMAKE_CURRENT_BINARY_DIR}/include/NTL/config.h |
---|
| 108 | WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} |
---|
| 109 | # COMMENT "Creating cfileout" |
---|
| 110 | ) |
---|
| 111 | #configure_file(${CMAKE_CURRENT_BINARY_DIR}/src/cfileout |
---|
| 112 | # ${CMAKE_CURRENT_BINARY_DIR}/include/NTL/config.hss COPYONLY |
---|
| 113 | #) |
---|
| 114 | |
---|
| 115 | #configure_file(${CMAKE_CURRENT_BINARY_DIR}/cfileout |
---|
| 116 | # ${CMAKE_CURRENT_BINARY_DIR}/include/NTL/config.h) |
---|
| 117 | |
---|
| 118 | #execute_process(COMMAND <cmd1> [args1...]] |
---|
| 119 | # [COMMAND <cmd2> [args2...] [...]] |
---|
| 120 | # [WORKING_DIRECTORY <directory>] |
---|
| 121 | # [TIMEOUT <seconds>] |
---|
| 122 | # [RESULT_VARIABLE <variable>] |
---|
| 123 | # [OUTPUT_VARIABLE <variable>] |
---|
| 124 | # [ERROR_VARIABLE <variable>] |
---|
| 125 | # [INPUT_FILE <file>] |
---|
| 126 | # [OUTPUT_FILE <file>] |
---|
| 127 | # [ERROR_FILE <file>] |
---|
| 128 | # [OUTPUT_QUIET] |
---|
| 129 | # [ERROR_QUIET] |
---|
| 130 | # [OUTPUT_STRIP_TRAILING_WHITESPACE] |
---|
| 131 | # [ERROR_STRIP_TRAILING_WHITESPACE]) |
---|
| 132 | |
---|
| 133 | include_directories(${CMAKE_CURRENT_SOURCE_DIR}/include) |
---|
| 134 | include_directories(${CMAKE_CURRENT_BINARY_DIR}/include) |
---|
| 135 | add_subdirectory(src) |
---|
| 136 | |
---|
| 137 | |
---|