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 | |
---|