forked from rose-compiler/rose
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtup.config
314 lines (251 loc) · 11.9 KB
/
tup.config
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
# This file contains various settings that the user might want to adjust before building ROSE. All non-comment lines
# start with "CONFIG_" and are accessed in other tup files (like Tupfile) as either $(CONFIG_foo) or @foo.
#
# Note that parsing of this file is quite strict. In particular, there should be no extraneous white space unless it is
# intended to be part of the value. This includes white space around the '=' and at the ends of lines!
#
# This file is the input for certain configuration steps which generate a tup.config file in the build directory. The
# values you supply here are only defaults.
########################################################################################################################
# Paths
########################################################################################################################
# Path where ROSE is ultimately installed. The "bin", "include", "lib", etc. directories are created under the
# directory specified here.
CONFIG_INSTALLATION_PREFIX=/usr/local/rose
########################################################################################################################
# Compilers
########################################################################################################################
# Command for running the C++ compiler.
# CXX -- C++ compiler executable
# CXX_O_SWITCH -- the switch to specify the output name, as in GCC's "-o" switch.
# CXX_C_SWITCH -- the switch to specify that the input should be compiled but not linked, as in GCC's "-c"
# CXX_LIBDIR_SWITCH -- switch to add a library directory, as in GCC's "-L"
# CXX_RPATH_SWITCH -- switch to add a directory as an rpath, as in GCC's "-Wl,-rpath,"
# CXX_LIB_SWITCH -- switch to link with a particular library, as in GCC's "-l"
#
# To add a space after the switch, use four single quotes with a space between them, as in '' ''. This is a kludge
# based on the fact that the shell script will treat each pair of quotes as an empty string in the command and
# prevents editors from removing white space at the ends of lines.
CONFIG_CXX=c++
CONFIG_CXX_O_SWITCH=-o'' ''
CONFIG_CXX_C_SWITCH=-c'' ''
CONFIG_CXX_LIBDIR_SWITCH=-L
CONFIG_CXX_RPATH_SWITCH=-Wl,-rpath,
CONFIG_CXX_LIB_SWITCH=-l
# Command for running the C compiler.
CONFIG_CC=cc
CONFIG_CC_O_SWITCH=-o'' ''
CONFIG_CC_C_SWITCH=-c'' ''
CONFIG_CC_INCDIR_SWITCH=-I
CONFIG_CC_LIBDIR_SWITCH=-L
CONFIG_CC_RPATH_SWITCH=-Wl,-rpath,
CONFIG_CC_LIB_SWITCH=-l
# Command for running for Fortran compiler. This is used only if ROSE is configured to support Fortran analysis.
CONFIG_FC=fc
# Whether ('yes') or not ('no') to build an LLVM-style compilation database. If yes, then "jq" version 1.5 or later
# must be in the $PATH.
CONFIG_COMPILATION_DATABASE=no
# Whether to build static or shared libraries and executables. The value should be one of the words "shared", "static",
# or "both".
CONFIG_LINKAGE=shared
# C/C++ preprocessor and switches
# CPPFLAGS -- command-line switches for all invocations of the preprocessor
# CPP_INCDIR_SWITCH -- command-line switch to add an include directory, as in GCC's "-I"
# CPP_DEFINE_SWITCH -- command-line switch to define a variable, as in GCC's "-D"
CONFIG_CPPFLAGS=
CONFIG_CPP_INCDIR_SWITCH=-I
CONFIG_CPP_DEFINE_SWITCH=-D
# Debug switches. The "C_CXX" switches are those which are common to both the C and C++ compilers and are prefixed to
# the the compiler-specific switches.
CONFIG_C_CXX_DEBUG=
CONFIG_C_DEBUG=
CONFIG_CXX_DEBUG=
# Optimization switches. Naming is similar to the DEBUG switches above.
CONFIG_C_CXX_OPTIM=
CONFIG_C_OPTIM=
CONFIG_CXX_OPTIM=
# Warning switches that controls those constructs for which the compiler emits or suppresses warning diagnostics.
CONFIG_C_CXX_WARN=
CONFIG_C_WARN=
CONFIG_CXX_WARN=
# Additional miscellaneous switches for compiling.
CONFIG_C_CXX_MISC=
CONFIG_C_MISC=
CONFIG_CXX_MISC=
# Linker command-line switches for warnings and miscellaneous libraries.
CONFIG_LD_WARN=
CONFIG_LD_MISC=-fuse-ld=gold
CONFIG_LD_STATIC=-static
CONFIG_LD_SHARED=
# In addition to the above flags, add these additional flags during the support, librose, and tool build phases. This
# is the appropriate place to enable things like address sanitizer (by adding -fsanitize=address to the LIBROSE and TOOL
# CXXFLAGS variables).
CONFIG_SUPPORT_CPPFLAGS=
CONFIG_SUPPORT_CFLAGS=
CONFIG_SUPPORT_CXXFLAGS=
CONFIG_SUPPORT_LDFLAGS_STATIC=
CONFIG_SUPPORT_LDFLAGS_SHARED=
CONFIG_LIBROSE_CPPFLAGS=
CONFIG_LIBROSE_CFLAGS=
CONFIG_LIBROSE_CXXFLAGS=
CONFIG_LIBROSE_LDFLAGS_STATIC=
CONFIG_LIBROSE_LDFLAGS_SHARED=
CONFIG_TOOL_CPPFLAGS=
CONFIG_TOOL_CFLAGS=
CONFIG_TOOL_CXXFLAGS=
CONFIG_TOOL_LDFLAGS_STATIC=
CONFIG_TOOL_LDFLAGS_SHARED=
########################################################################################################################
# Language supoprt.
########################################################################################################################
# Set these to either "yes" or "no" depending on whether you want the ROSE library to be able to analyse (e.g., parse,
# transform, etc) that language. Note that C is supported if and only if C++ is supported, therefore there's not a
# dedicated ENABLE_C_ANALYSIS symbol.
#
# Library developers: Within the Tupfiles, test for these features with any of the following:
# ifeq (@(ENABLE_ADA_ANALYSIS),yes)
# ifeq (@(ENABLE_ADA_ANALYSIS),no)
#
CONFIG_ENABLE_ADA_ANALYSIS=no
CONFIG_ENABLE_BINARY_ANALYSIS=no
CONFIG_ENABLE_COBOL_ANALYSIS=no
CONFIG_ENABLE_CUDA_ANALYSIS=no
CONFIG_ENABLE_CSHARP_ANALYSIS=no
CONFIG_ENABLE_CXX_ANALYSIS=no
CONFIG_ENABLE_FORTRAN_ANALYSIS=no
CONFIG_ENABLE_JAVA_ANALYSIS=no
CONFIG_ENABLE_JOVIAL_ANALYSIS=no
CONFIG_ENABLE_MATLAB_ANALYSIS=no
CONFIG_ENABLE_OFP_ANALYSIS=no
CONFIG_ENABLE_OPENCL_ANALYSIS=no
CONFIG_ENABLE_PHP_ANALYSIS=no
CONFIG_ENABLE_PYTHON_ANALYSIS=no
CONFIG_ENABLE_X10_ANALYSIS=no
########################################################################################################################
# Features
########################################################################################################################
# Set to "yes" or "no" depending on whether you want tests to be built and run each time you build ROSE.
CONFIG_ENABLE_TESTS=yes
########################################################################################################################
# Additional software
########################################################################################################################
# These variables define whether another software package is used when building ROSE, and if so, where that software is
# installed. The following choices are allowed:
# "no" means the softare is not to be used by ROSE.
#
# "system" means ROSE is to use the software and should expect that it's already installed in some default location
# on this system and will be found automatically by compilers and linkers.
#
# A directory name means that ROSE is to use the software and that the software has been installed under the
# specified prefix directory. The directory is the same as what you would have specified with the GNU configure
# "--prefix=DIR" or CMake "-DCMAKE_INSTALL_PREFIX=DIR" switch when you built the software. DO NOT use this form if
# the software is installed in default locations (e.g., use "system" if the prefix is /usr, /usr/local, or similarly
# well-known locations).
#
# Library developers: Within the Tupfiles, test for these features with inverted logic in order to handle having any
# prefix including the default "system" location. Example:
# ifneq (@(WITH_WT),no)
# #rules that depend on having WT
# endif
# Binwalk is a tool for searching a given binary image for embedded files and executable code.
# https://tools.kali.org/forensics/binwalk
CONFIG_WITH_BINWALK=no
# Boost is a required component, therefore "no" is not allowed.
# https://boost.org
CONFIG_WITH_BOOST=no
# BZip2 compression
CONFIG_WITH_BZIP2=no
# Capstone disassembler
# http://www.capstone-engine.org/
CONFIG_WITH_CAPSTONE=no
# Dlib is a general purpose cross-platform software library
# http://dlib.net/
CONFIG_WITH_DLIB=no
# Doxygen is a code documentation system.
CONFIG_WITH_DOXYGEN=no
# DWARF debugging info parser library. See also CONFIG_WITH_ELF
CONFIG_WITH_DWARF=no
# ELF parsing library. ROSE has it's own built-in ELF parser, but this library is needed if CONFIG_WITH_DWARF is
# anything but "no".
CONFIG_WITH_ELF=no
# Libgcrypt is a general purpose cryptographic library
# https://www.gnupg.org/related_software/libgcrypt/
CONFIG_WITH_GCRYPT=no
# libgpg-error is needed if you set CONFIG_WITH_GCRYPT=yes
CONFIG_WITH_GPG_ERROR=no
# GraphicsMagick image manipulation
CONFIG_WITH_GRAPHICSMAGICK=no
# Intel Pin
# https://software.intel.com/en-us/articles/pin-a-dynamic-binary-instrumentation-tool
CONFIG_WITH_INTEL_PIN=no
# JPEG image encoding
CONFIG_WITH_JPEG=no
# LCMS color management system
CONFIG_WITH_LCMS=no
# LZMA compression
CONFIG_WITH_LZMA=no
# Magic is a library for identifying files by their "magic" numbers
CONFIG_WITH_MAGIC=no
# PNG image encoding
CONFIG_WITH_PNG=no
# Postgresql C++ library
# http://pqxx.org/development/libpqxx
CONFIG_WITH_PQXX=no
# Python development library and version number (major and minor only). The X.Y version number is necessary because
# Python uses it in the include directory name and the library name.
CONFIG_WITH_PYTHON=no
CONFIG_PYTHON_VERSION=0.0
# Qt
# https://qt.io
CONFIG_WITH_QT=no
# Readline command-line editing library
CONFIG_WITH_READLINE=no
# SQLite database in a file
# https://sqlite.org/
CONFIG_WITH_SQLITE=no
# TIFF image encoding
CONFIG_WITH_TIFF=no
# Web toolkit for developing GUIs in a web browser
CONFIG_WITH_WT=no
# YamlCPP is a YAML parser and emitter in C++
# https://github.com/jbeder/yaml-cpp
CONFIG_WITH_YAMLCPP=no
# Yices SMT solver
CONFIG_WITH_YICES=no
# Z3 SMT solver
CONFIG_WITH_Z3=no
# Zlib compression library is required. Set it to something other than "system" if you've installed it in a special
# place.
CONFIG_WITH_ZLIB=system
########################################################################################################################
# Testing the ROSE library
########################################################################################################################
# Extra flags to pass to the $(ROSE)/scripts/rth_run.pl script. BTW, "RTH" stands for "ROSE Test Harness".
CONFIG_RTH_FLAGS=
# How long to allow a test to run before timing out and considering it to have failed. This should be an integer
# suffixed with "s", "m", or "h" for seconds, minutes, or hours. The value "none" means don't ever time out.
CONFIG_RTH_TIMEOUT=15m
########################################################################################################################
# Mr. ROSE level settings not intended for mere mortals. Don't change these unless you know what you're doing.
########################################################################################################################
# EDG C/C++ frontend version. See src/frontend/CxxFrontend/EDG.
CONFIG_EDG_VERSION=none
# Info about the hosting compiler (the one that compiles ROSE). Possible values for the vendor are "gnu", "llvm",
# "intel", and "microsoft". The version is the version number of the compiler, like "5.1.0". The language is the
# lower-case version of the language standard, such as "c++11", or "gnu++14", etc.
CONFIG_CXX_VENDOR=
CONFIG_CXX_VERSION=
CONFIG_CXX_LANGUAGE=
CONFIG_C_VENDOR=
CONFIG_C_VERSION=
CONFIG_C_LANGUAGE=
# Info about the target compiler (the one invoked as ROSE's backend). Values are the same possibilities as the hosting
# compiler above.
CONFIG_CXX_TARGET_VENDOR=
CONFIG_CXX_TARGET_VERSION=
# Where to get files that were generated by the GNU Autotools "configure" script, Used by scripts/tup/rose-configure-tup
# to hold state between runs.
CONFIG_AUTOTOOLS_STASH=
# Location of ROSE source tree. This gets filled in by the configuration command.
CONFIG_ROSE_SOURCE=
# Other local settings...