$Id: makevars.html 6664 2022-09-27 10:58:14Z JohnHenning $ | Latest: www.spec.org/cpu2017/Docs/ |
---|
Contents
1. Introduction
2. Which steps use which flags?
3. Items used in Makefile.defaults
4. Order of flag application
a. No feedback
b. Feedback
This document explains the use of make variables with SPEC CPU®2017, a product of the SPEC® non-profit corporation (about SPEC).
For SPEC CPU you do not write your own Makefiles, nor do you use your platform's native make program. Instead, your config file supplies options that are sent to a SPEC-supplied copy of GNU make, known as specmake.
If you are asking questions like the following, this document is for you.
Y indicates that an option affects a particular compilation phase
Y(D) is explained in Note 1. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Build settings come from three sources:
Benchmark definition files
$SPEC/benchspec/CPU/<benchmark>/Spec/object.pm (Unix) or %SPEC%\benchspec\CPU\<benchmark>\Spec\object.pm (Microsoft Windows)
A file called Makefile.spec, which is generated from your config file. It is found in
$SPEC/benchspec/CPU/<benchmark>/build/build_<tune>_<label>.nnnn/Makefile.spec or %SPEC%\benchspec\CPU\<benchmark>\build\build_<tune>_<label>.nnnn\Makefile.spec
The overall control file which is used by all benchmarks, and which contains most of the build rules:
$SPEC/benchspec/Makefile.defaults or %SPEC%\benchspec\Makefile.defaults
The list above is in order from highest to lowest priority. That is, if a setting for a particular variable exists in object.pm, it cannot be overridden. Variables not specified in object.pm can be set by the user in the config file and thus in Makefile.spec. If a setting is needed, and does not appear in either of those two places, a reasonable default is provided by Makefile.defaults.
Do you need to worry about all three of these?
This section is addressed to such readers. The table below briefly describes nearly all the items in Makefile.defaults and classifies by type:
#linkNote = See above and section 4. Emphasis: fake is your friend.
config = If you wish, you are free to set this in your config file. bench = The benchmark sets it in Spec/object.pm. Do not attempt to touch. tools = Something computed by SPEC tools. Really do not touch. xdebug = eXtra item for debug, normally useful only during development. errata = see notes Type Item Meaning ----- ------------------- -------------------------------------------------------------------------------------------------- bench BENCHLANG Benchmark language; one of C, CXX, F, F77 tools BENCHMARK The formal benchmark name, e.g. 999.specrand bench BENCH_CFLAGS Benchmark specific C flags predefined by SPEC; cannot be changed bench BENCH_CXXFLAGS Benchmark specific C++ flags predefined by SPEC; cannot be changed bench BENCH_FFLAGS Benchmark specific Fortran flags predefined by SPEC; cannot be changed bench BENCH_FLAGS Benchmark specific flags predefined by SPEC; cannot be changed bench BENCH_FPPFLAGS Benchmark specific Fotran preprocessor flags predefined by SPEC; cannot be changed config CC How to invoke your C compiler config CLD How to invoke the linker when building C programs (default: CC) config COBJOPT Special OBJOPT for C. Defaults to same as OBJOPT. config COPTIMIZE Optimization flags to be used when compiling and when linking C programs config CPORTABILITY Portability options to be applied when compiling and when linking C programs tools CPUFLAGS Macros defined on a suite-wide basis for C, C++, and preprocessed Fortran codes config CXX How to invoke your C++ compiler tools CXXC Same as CXX. A minor coding trick uses this to help figure out how to invoke linker. config CXXLD How to invoke the linker when building C++ programs (default: CXX) config CXXOBJOPT Special OBJOPT for C++. Defaults to same as OBJOPT. config CXXOPTIMIZE Optimization flags to be used when compiling and when linking C++ programs config CXXPORTABILITY Portability options to be applied when compiling and when linking C++ programs config ECHO How to spell "echo" command. Defaults to 'echo'. bench EXEBASE Name of the base benchmark executable (without label or tuning information) config EXTRA_CFLAGS Additional flags to use when compiling C programs config EXTRA_CLIBS Additional libraries to link in to C benchmarks. config EXTRA_COPTIMIZE Additional optimization flags to pass to your C compiler [#linkNote] config EXTRA_CPORTABILITY Additional portability flags to pass to your C compiler (not used when linking) config EXTRA_CXXFLAGS Additional flags to use when compiling C++ programs config EXTRA_CXXLIBS Additional libraries to link in to C++ and mixed-language benchmarks. config EXTRA_CXXOPTIMIZE Additional optimization flags to pass to your C++ compiler [#linkNote] config EXTRA_CXXPORTABILITY Additional portability flags to pass to your C++ compiler (not used when linking) config EXTRA_FFLAGS Additional flags to use when compiling Fortran programs config EXTRA_FLIBS Additional libraries to link in to Fortran and C and Fortran mixed-language benchmarks. config EXTRA_FOPTIMIZE Additional optimization flags to pass to your Fortran compiler [#linkNote] config EXTRA_FPORTABILITY Additional portability flags to pass to your Fortran compiler (not used when linking) config EXTRA_FPPFLAGS Additional flags to pass to Fortran preprocessor config EXTRA_LDFLAGS Additional flags to pass to your linker config EXTRA_LIBS Extra libraries to appear at the end of the link command config EXTRA_OPTIMIZE Additional flags to pass to all compilers config EXTRA_PORTABILITY Additional portability flags to pass to all compilers (not used when linking) config EXTRA_RMFILES Additional files to be deleted before a build config EXTRA_SOURCES Sources to add when doing a build. Must be explained to SPEC! config FC How to invoke your Fortran-90 compiler tools FDO The current build pass number (for FDO builds only) tools FDO_COPTIMIZE Optimization flags to pass to the C compiler to do the current FDO pass tools FDO_CXXOPTIMIZE Optimization flags to pass to the C++ compiler to do the current FDO pass tools FDO_FOPTIMIZE Optimization flags to pass to the Fortran compiler to do the current FDO pass tools FDO_LDCFLAGS For the linker used with C programs, flags to pass to the linker to do the current FDO pass tools FDO_LDCXXFLAGS For the linker used with C++ programs, flags to pass to the linker to do the current FDO pass tools FDO_LDFFLAGS For the linker used with Fortran programs, flags to pass to the linker to do the current FDO pass tools FDO_LDFLAGS Flags to pass to the linker to do the current FDO pass tools FDO_OPTIMIZE Optimization flags for the current FDO pass tools FINAL_CFLAGS Full list of flags passed to C compiler tools FINAL_CXXFLAGS Full list of flags passed to C++ compiler tools FINAL_FFLAGS Full list of flags passed to F90 compiler tools FINAL_FPPFLAGS Full list of flags passed to Fortran preprocessor tools FINAL_LDOPT Full list of flags passed to linker tools FINAL_LIBS Full list of libraries tools FINAL_SOURCES Full list of source files to be used for compilation config FLD How to invoke the linker when building Fortran programs (default: FC) config FOBJOPT Special OBJOPT for f90. Defaults to same as OBJOPT. config FOPTIMIZE Optimization flags to be used when compiling and when linking Fortran programs config FPORTABILITY Portability options to be applied when compiling and when linking Fortran programs config FPPFLAGS Flags to be added to Fortran preprocessor config FPPPORTABILITY Portability flags to be added to Fortran preprocessor tools FPP_USED Does this benchmark use the Fortran preprocessor? config LABEL Desired label for the object files. Set via 'label' in config file or '--label' on command line. tools LD The name of your linker. Do not set this directly; set the language specific value (CLD, FLD, etc) config LDCFLAGS Flags to add to link lines used for C builds config LDCXXFLAGS Flags to add to link lines used for C++ builds config LDFFLAGS Flags to add to link lines used for Fortran benchmarks or benchmarks that use both Fortran and C config LDFLAGS Flags to add to link lines for all languages config LDOPTIMIZE Optimization flags for the linker config LDOPTIONS Additional options to supply to the linker tools LDOPTFLAGS Optimization flags supplied to the linker config LDOUT Linker flag used to specify an output file. Defaults to '-Fe$@' on Windows and '-o $@' elsewhere. config LDOUT_OPTIONS Flags that need to appear after LDOUT config LDOUT_EXTRA_OPTIONS More flags that need to appear after LDOUT config LDPORTABILITY Portability flags to be used when linking config LIBS Libraries to link into the final executable errata MATHLIBOPT DO NOT USE. See note below this table. tools MATH_LIBS Set of math libraries (if any) to link into the final executable (just $MATHLIBOPT again) bench NAME The benchmark name, e.g. dealII config NEEDATFILE Reduce length of command lines by using @files. (Set NEEDATFILE=1 to enable the feature.) bench NEED_MATH Flag telling whether or not the benchmark needs to be linked with the math libraries bench NUMBER The benchmark number, e.g. 447 config OBJ The file name extension for object files. Defaults to '.obj' on Windows and '.o' elsewhere tools OBJNAMES Name of a file to store the names of the object files config OBJOPT Option to compile and name an output file. Defaults to "-c -Fo$@" on Windows and "-c -o $@" elsewhere. tools OBJS List of object files needed to link the final executable config OPTIMIZATION_LIBS Libraries used for optimization purposes, to be added to all builds config OPTIMIZATION_CLIBS Libraries used for optimization purposes, to be added to C builds [#linkNote] config OPTIMIZATION_CXXLIBS Libraries used for optimization purposes, to be added to C++ builds [#linkNote] config OPTIMIZATION_FLIBS Libraries used for optimization purposes, to be added to Fortran builds [#linkNote] config OPTIMIZE Optimization flags. Typically used only for a single benchmark. tools OS Name of OS being used. Supplied automatically by specmake. config OS_LIBS List of OS-specific libs to link with tools OUTPUT_RMFILES Files to be cleaned bewteen builds config PASSn_* PASSn_ may prefixed to these, to add to that option only for the nth pass: LDOPT FLAGS OPTIMIZE LDFLAGS CFLAGS COPTIMIZE LDCFLAGS CXXFLAGS CXXOPTIMIZE LDCXXFLAGS FFLAGS FOPTIMIZE LDFFLAGS config PORTABILITY Portability options to be applied to all steps for all programs config PORTABILITY_CLIBS Portability libraries to link in with C benchmarks. config PORTABILITY_CXXLIBS Portability libraries to link in with C++ benchmarks. config PORTABILITY_FLIBS Portability libraries to link in with Fortran and mixed-language benchmarks. config PORTABILITY_LIBS Portability libraries to link in with all benchmarks. xdebug PPCFLAGS Flags that enable your C preprocessor xdebug PPCXXFLAGS Flags that enable your C++ preprocessor xdebug PPFLAGS Flags that enable your C/C++ preprocessor xdebug PP_SOURCES List of preprocessed sources tools PRIMARY_BENCHLANG Primary benchmark language; one of C, CXX, F, F77 tools RAW_FFLAGS Temporary variable, used while figuring out final flag list config RMRF The name of a program (with arguments, if necessary) that can be used to delete a directory tree. config RM_SOURCES Sources to exclude from a build. Must explained to SPEC! bench SOURCES What the benchmark/src/Makefile expects will normally be used tools TARGET Benchmarks with multiple executables use Makefile.exename.spec. runcpu sets TARGET=exename tools tmpBENCHLANG Temporary variable, used while figuring out languages tools TMP1_SOURCES Temporary variable, used while figuring out final source file list tools TMP2_SOURCES Temporary variable, used while figuring out final source file list tools TMP3_SOURCES Temporary variable, used while figuring out final source file list tools TMP_SOURCES Temporary variable, used while figuring out final source file list tools TUNE The tuning currently being used (to set in config file, use tune=)
Note regarding MATHLIBOPT: Previous versions of the above table listed MATHLIBOPT as a variable that can be set in your config file. Setting MATHLIBOPT is no longer recommended. MATHLIBOPT is automatically applied to certain C benchmarks but unfortunately it is not consistently applied within the intspeed and intrate sets, thus leading to a violation of the base same-for-all rule. For more detail, and for suggested workarounds, see the Known Problems document. MATHLIBOPT does not affect Fortran or C++ benchmarks. (Implementation detail: none of the CPU 2017 Fortran object.pm files set $need_math; and Makefile.defaults intentionally excludes C++ benchmarks from NEED_MATH.)
Sometimes, you may need more detail about flag order and presence (e.g. Is OPTIMIZE applied before or after COPTIMIZE? Is LDOPTIONS included for both FDO and non-FDO builds?) In such cases, you have several choices:
C only: Compilation: CC COBJOPT <object> -DSPEC -DNDEBUG BENCH_FLAGS BENCH_CFLAGS OPTIMIZE COPTIMIZE PORTABILITY CPORTABILITY EXTRA_CFLAGS EXTRA_OPTIMIZE EXTRA_COPTIMIZE EXTRA_PORTABILITY EXTRA_CPORTABILITY <source> Linkage: CLD(or CC) LDFLAGS LDCFLAGS EXTRA_LDFLAGS OPTIMIZE COPTIMIZE LDOPTIMIZE PORTABILITY CPORTABILITY LDPORTABILITY EXTRA_OPTIMIZE EXTRA_COPTIMIZE <objects> LIBS OS_LIBS MATH_LIBS OPTIMIZATION_LIBS OPTIMIZATION_CLIBS PORTABILITY_LIBS PORTABILITY_CLIBS EXTRA_LIBS EXTRA_CLIBS LDOPTIONS LDOUT LDOUT_OPTIONS LDOUT_EXTRA_OPTIONS C++ only: Compilation: CXX CXXOBJOPT <object> -DSPEC -DNDEBUG BENCH_FLAGS BENCH_CXXFLAGS OPTIMIZE CXXOPTIMIZE PORTABILITY CXXPORTABILITY EXTRA_CXXFLAGS EXTRA_OPTIMIZE EXTRA_CXXOPTIMIZE EXTRA_PORTABILITY EXTRA_CXXPORTABILITY <source> Linkage: CXXLD(or CXX) LDFLAGS LDCXXFLAGS EXTRA_LDFLAGS OPTIMIZE CXXOPTIMIZE LDOPTIMIZE PORTABILITY CXXPORTABILITY LDPORTABILITY EXTRA_OPTIMIZE EXTRA_CXXOPTIMIZE <objects> LIBS OS_LIBS MATH_LIBS OPTIMIZATION_LIBS OPTIMIZATION_CXXLIBS PORTABILITY_LIBS PORTABILITY_CXXLIBS EXTRA_LIBS EXTRA_CXXLIBS LDOPTIONS LDOUT LDOUT_OPTIONS LDOUT_EXTRA_OPTIONS Fortran only: FPP: specpp FPPFLAGS -DSPEC -DNDEBUG <-D & -U from BENCH_FLAGS> BENCH_FPPFLAGS <-D & -U from OPTIMIZE> <-D & -U from FOPTIMIZE> FPPOPTIMIZE <-D & -U from PORTABILITY> <-D & -U from FPORTABILITY> FPPPORTABILITY EXTRA_FPPFLAGS <-D & -U from EXTRA_OPTIMIZE> <-D & -U from EXTRA_FOPTIMIZE> EXTRA_FPPOPTIMIZE <-D & -U from EXTRA_PORTABILITY> <-D & -U from EXTRA_FPORTABILITY> EXTRA_FPPPORTABILITY <source> -o <source>.fppized.f9x Compilation: FC FOBJOPT <object> BENCH_FLAGS BENCH_FFLAGS OPTIMIZE FOPTIMIZE PORTABILITY FPORTABILITY EXTRA_FFLAGS EXTRA_OPTIMIZE EXTRA_FOPTIMIZE EXTRA_PORTABILITY EXTRA_FPORTABILITY <source> Linkage: FLD(or FC) LDFLAGS LDFFLAGS EXTRA_LDFLAGS OPTIMIZE FOPTIMIZE LDOPTIMIZE PORTABILITY FPORTABILITY LDPORTABILITY EXTRA_OPTIMIZE EXTRA_FOPTIMIZE <objects> LIBS OS_LIBS MATH_LIBS OPTIMIZATION_LIBS OPTIMIZATION_FLIBS PORTABILITY_LIBS PORTABILITY_FLIBS EXTRA_LIBS EXTRA_FLIBS LDOPTIONS LDOUT LDOUT_OPTIONS LDOUT_EXTRA_OPTIONS Mixed C++ and C: Compilation: CXX CXXOBJOPT <object> -DSPEC -DNDEBUG BENCH_FLAGS BENCH_CXXFLAGS OPTIMIZE CXXOPTIMIZE PORTABILITY CXXPORTABILITY EXTRA_CXXFLAGS EXTRA_OPTIMIZE EXTRA_CXXOPTIMIZE EXTRA_PORTABILITY EXTRA_CXXPORTABILITY <source> Compilation: CC COBJOPT <object> -DSPEC -DNDEBUG BENCH_FLAGS BENCH_CFLAGS OPTIMIZE COPTIMIZE PORTABILITY CPORTABILITY EXTRA_CFLAGS EXTRA_OPTIMIZE EXTRA_COPTIMIZE EXTRA_PORTABILITY EXTRA_CPORTABILITY <source> Linkage: CXXLD(or CXX) LDFLAGS LDCXXFLAGS EXTRA_LDFLAGS OPTIMIZE CXXOPTIMIZE LDOPTIMIZE PORTABILITY CXXPORTABILITY LDPORTABILITY EXTRA_OPTIMIZE EXTRA_CXXOPTIMIZE <objects> LIBS OS_LIBS MATH_LIBS OPTIMIZATION_LIBS OPTIMIZATION_CXXLIBS PORTABILITY_LIBS PORTABILITY_CXXLIBS EXTRA_LIBS EXTRA_CXXLIBS LDOPTIONS LDOUT LDOUT_OPTIONS LDOUT_EXTRA_OPTIONS Mixed Fortran and C: FPP: specpp FPPFLAGS -DSPEC -DNDEBUG <-D & -U from BENCH_FLAGS> BENCH_FPPFLAGS <-D & -U from OPTIMIZE> <-D & -U from FOPTIMIZE> FPPOPTIMIZE <-D & -U from PORTABILITY> <-D & -U from FPORTABILITY> FPPPORTABILITY EXTRA_FPPFLAGS <-D & -U from EXTRA_OPTIMIZE> <-D & -U from EXTRA_FOPTIMIZE> EXTRA_FPPOPTIMIZE <-D & -U from EXTRA_PORTABILITY> <-D & -U from EXTRA_FPORTABILITY> EXTRA_FPPPORTABILITY <source> -o <source>.fppized.f9x Compilation: FC FOBJOPT <object> BENCH_FLAGS BENCH_FFLAGS OPTIMIZE FOPTIMIZE PORTABILITY FPORTABILITY EXTRA_FFLAGS EXTRA_OPTIMIZE EXTRA_FOPTIMIZE EXTRA_PORTABILITY EXTRA_FPORTABILITY <source> Compilation: CC COBJOPT <object> -DSPEC -DNDEBUG BENCH_FLAGS BENCH_CFLAGS OPTIMIZE COPTIMIZE PORTABILITY CPORTABILITY EXTRA_CFLAGS EXTRA_OPTIMIZE EXTRA_COPTIMIZE EXTRA_PORTABILITY EXTRA_CPORTABILITY <source> Linkage: FLD(or FC) LDFLAGS LDFFLAGS EXTRA_LDFLAGS OPTIMIZE FOPTIMIZE LDOPTIMIZE PORTABILITY FPORTABILITY LDPORTABILITY EXTRA_OPTIMIZE EXTRA_FOPTIMIZE <objects> LIBS OS_LIBS MATH_LIBS OPTIMIZATION_LIBS OPTIMIZATION_FLIBS PORTABILITY_LIBS PORTABILITY_FLIBS EXTRA_LIBS EXTRA_FLIBS LDOPTIONS LDOUT LDOUT_OPTIONS LDOUT_EXTRA_OPTIONS Mixed C++, C, and Fortran: Compilation: CXX CXXOBJOPT <object> -DSPEC -DNDEBUG BENCH_FLAGS BENCH_CXXFLAGS OPTIMIZE CXXOPTIMIZE PORTABILITY CXXPORTABILITY EXTRA_CXXFLAGS EXTRA_OPTIMIZE EXTRA_CXXOPTIMIZE EXTRA_PORTABILITY EXTRA_CXXPORTABILITY <source> Compilation: CC COBJOPT <object> -DSPEC -DNDEBUG BENCH_FLAGS BENCH_CFLAGS OPTIMIZE COPTIMIZE PORTABILITY CPORTABILITY EXTRA_CFLAGS EXTRA_OPTIMIZE EXTRA_COPTIMIZE EXTRA_PORTABILITY EXTRA_CPORTABILITY <source> Compilation: FC FOBJOPT <object> BENCH_FLAGS BENCH_FFLAGS OPTIMIZE FOPTIMIZE PORTABILITY FPORTABILITY EXTRA_FFLAGS EXTRA_OPTIMIZE EXTRA_FOPTIMIZE EXTRA_PORTABILITY EXTRA_FPORTABILITY <source> Linkage: CXXLD(or CXX) LDFLAGS LDCXXFLAGS EXTRA_LDFLAGS OPTIMIZE CXXOPTIMIZE LDOPTIMIZE PORTABILITY CXXPORTABILITY LDPORTABILITY EXTRA_OPTIMIZE EXTRA_CXXOPTIMIZE <objects> LIBS OS_LIBS MATH_LIBS OPTIMIZATION_LIBS OPTIMIZATION_CXXLIBS PORTABILITY_LIBS PORTABILITY_CXXLIBS EXTRA_LIBS EXTRA_CXXLIBS LDOPTIONS LDOUT LDOUT_OPTIONS LDOUT_EXTRA_OPTIONS
In this section, "PASSn" indicates the pass number for FDO, where n is 1, 2, etc.
C only: Compilation: CC COBJOPT <object> -DSPEC -DNDEBUG BENCH_FLAGS BENCH_CFLAGS PASSn_FLAGS PASSn_CFLAGS OPTIMIZE COPTIMIZE PASSn_OPTIMIZE PASSn_COPTIMIZE PORTABILITY CPORTABILITY EXTRA_CFLAGS EXTRA_OPTIMIZE EXTRA_COPTIMIZE EXTRA_PORTABILITY EXTRA_CPORTABILITY <source> Linkage: CLD(or CC) LDFLAGS LDCFLAGS EXTRA_LDFLAGS PASSn_LDFLAGS PASSn_FLAGS PASSn_LDCFLAGS OPTIMIZE COPTIMIZE PASSn_OPTIMIZE PASSn_COPTIMIZE LDOPTIMIZE PORTABILITY CPORTABILITY LDPORTABILITY EXTRA_OPTIMIZE EXTRA_COPTIMIZE <objects> LIBS OS_LIBS MATH_LIBS OPTIMIZATION_LIBS OPTIMIZATION_CLIBS PORTABILITY_LIBS PORTABILITY_CLIBS EXTRA_LIBS EXTRA_CLIBS LDOPTIONS PASSn_LDOPTIONS LDOUT LDOUT_OPTIONS LDOUT_EXTRA_OPTIONS C++ only: Compilation: CXX CXXOBJOPT <object> -DSPEC -DNDEBUG BENCH_FLAGS BENCH_CXXFLAGS PASSn_FLAGS PASSn_CXXFLAGS OPTIMIZE CXXOPTIMIZE PASSn_OPTIMIZE PASSn_CXXOPTIMIZE PORTABILITY CXXPORTABILITY EXTRA_CXXFLAGS EXTRA_OPTIMIZE EXTRA_CXXOPTIMIZE EXTRA_PORTABILITY EXTRA_CXXPORTABILITY <source> Linkage: CXXLD(or CXX) LDFLAGS LDCXXFLAGS EXTRA_LDFLAGS PASSn_LDFLAGS PASSn_FLAGS PASSn_LDCXXFLAGS OPTIMIZE CXXOPTIMIZE PASSn_OPTIMIZE PASSn_CXXOPTIMIZE LDOPTIMIZE PORTABILITY CXXPORTABILITY LDPORTABILITY EXTRA_OPTIMIZE EXTRA_CXXOPTIMIZE <objects> LIBS OS_LIBS MATH_LIBS OPTIMIZATION_LIBS OPTIMIZATION_CXXLIBS PORTABILITY_LIBS PORTABILITY_CXXLIBS EXTRA_LIBS EXTRA_CXXLIBS LDOPTIONS PASSn_LDOPTIONS LDOUT LDOUT_OPTIONS LDOUT_EXTRA_OPTIONS Fortran only: FPP: specpp FPPFLAGS -DSPEC -DNDEBUG <-D & -U from BENCH_FLAGS> BENCH_FPPFLAGS PASSn_FPPFLAGS <-D & -U from OPTIMIZE> <-D & -U from FOPTIMIZE> <-D & -U from PASSn_OPTIMIZE> <-D & -U from PASSn_FOPTIMIZE> FPPOPTIMIZE <-D & -U from PORTABILITY> <-D & -U from FPORTABILITY> FPPPORTABILITY EXTRA_FPPFLAGS <-D & -U from EXTRA_OPTIMIZE> <-D & -U from EXTRA_FOPTIMIZE> EXTRA_FPPOPTIMIZE <-D & -U from EXTRA_PORTABILITY> <-D & -U from EXTRA_FPORTABILITY> EXTRA_FPPPORTABILITY <source> -o <source>.fppized.f9x Compilation: FC FOBJOPT <object> BENCH_FLAGS BENCH_FFLAGS PASSn_FLAGS PASSn_FFLAGS OPTIMIZE FOPTIMIZE PASSn_OPTIMIZE PASSn_FOPTIMIZE PORTABILITY FPORTABILITY EXTRA_FFLAGS EXTRA_OPTIMIZE EXTRA_FOPTIMIZE EXTRA_PORTABILITY EXTRA_FPORTABILITY <source> Linkage: FLD(or FC) LDFLAGS LDFFLAGS EXTRA_LDFLAGS PASSn_LDFLAGS PASSn_FLAGS PASSn_LDFFLAGS OPTIMIZE FOPTIMIZE PASSn_OPTIMIZE PASSn_FOPTIMIZE LDOPTIMIZE PORTABILITY FPORTABILITY LDPORTABILITY EXTRA_OPTIMIZE EXTRA_FOPTIMIZE <objects> LIBS OS_LIBS MATH_LIBS OPTIMIZATION_LIBS OPTIMIZATION_FLIBS PORTABILITY_LIBS PORTABILITY_FLIBS EXTRA_LIBS EXTRA_FLIBS LDOPTIONS PASSn_LDOPTIONS LDOUT LDOUT_OPTIONS LDOUT_EXTRA_OPTIONS Mixed C++ and C: Compilation: CXX CXXOBJOPT <object> -DSPEC -DNDEBUG BENCH_FLAGS BENCH_CXXFLAGS PASSn_FLAGS PASSn_CXXFLAGS OPTIMIZE CXXOPTIMIZE PASSn_OPTIMIZE PASSn_CXXOPTIMIZE PORTABILITY CXXPORTABILITY EXTRA_CXXFLAGS EXTRA_OPTIMIZE EXTRA_CXXOPTIMIZE EXTRA_PORTABILITY EXTRA_CXXPORTABILITY <source> Compilation: CC COBJOPT <object> -DSPEC -DNDEBUG BENCH_FLAGS BENCH_CFLAGS PASSn_FLAGS PASSn_CFLAGS OPTIMIZE COPTIMIZE PASSn_OPTIMIZE PASSn_COPTIMIZE PORTABILITY CPORTABILITY EXTRA_CFLAGS EXTRA_OPTIMIZE EXTRA_COPTIMIZE EXTRA_PORTABILITY EXTRA_CPORTABILITY <source> Linkage: CXXLD(or CXX) LDFLAGS LDCXXFLAGS EXTRA_LDFLAGS PASSn_LDFLAGS PASSn_FLAGS PASSn_LDCXXFLAGS OPTIMIZE CXXOPTIMIZE PASSn_OPTIMIZE PASSn_CXXOPTIMIZE LDOPTIMIZE PORTABILITY CXXPORTABILITY LDPORTABILITY EXTRA_OPTIMIZE EXTRA_CXXOPTIMIZE <objects> LIBS OS_LIBS MATH_LIBS OPTIMIZATION_LIBS OPTIMIZATION_CXXLIBS PORTABILITY_LIBS PORTABILITY_CXXLIBS EXTRA_LIBS EXTRA_CXXLIBS LDOPTIONS PASSn_LDOPTIONS LDOUT LDOUT_OPTIONS LDOUT_EXTRA_OPTIONS Mixed Fortran and C: FPP: specpp FPPFLAGS -DSPEC -DNDEBUG <-D & -U from BENCH_FLAGS> BENCH_FPPFLAGS PASSn_FPPFLAGS <-D & -U from OPTIMIZE> <-D & -U from FOPTIMIZE> <-D & -U from PASSn_OPTIMIZE> <-D & -U from PASSn_FOPTIMIZE> FPPOPTIMIZE <-D & -U from PORTABILITY> <-D & -U from FPORTABILITY> FPPPORTABILITY EXTRA_FPPFLAGS <-D & -U from EXTRA_OPTIMIZE> <-D & -U from EXTRA_FOPTIMIZE> EXTRA_FPPOPTIMIZE <-D & -U from EXTRA_PORTABILITY> <-D & -U from EXTRA_FPORTABILITY> EXTRA_FPPPORTABILITY <source> -o <source>.fppized.f9x Compilation: FC FOBJOPT <object> BENCH_FLAGS BENCH_FFLAGS PASSn_FLAGS PASSn_FFLAGS OPTIMIZE FOPTIMIZE PASSn_OPTIMIZE PASSn_FOPTIMIZE PORTABILITY FPORTABILITY EXTRA_FFLAGS EXTRA_OPTIMIZE EXTRA_FOPTIMIZE EXTRA_PORTABILITY EXTRA_FPORTABILITY <source> Compilation: CC COBJOPT <object> -DSPEC -DNDEBUG BENCH_FLAGS BENCH_CFLAGS PASSn_FLAGS PASSn_CFLAGS OPTIMIZE COPTIMIZE PASSn_OPTIMIZE PASSn_COPTIMIZE PORTABILITY CPORTABILITY EXTRA_CFLAGS EXTRA_OPTIMIZE EXTRA_COPTIMIZE EXTRA_PORTABILITY EXTRA_CPORTABILITY <source> Linkage: FLD(or FC) LDFLAGS LDFFLAGS EXTRA_LDFLAGS PASSn_LDFLAGS PASSn_FLAGS PASSn_LDFFLAGS OPTIMIZE FOPTIMIZE PASSn_OPTIMIZE PASSn_FOPTIMIZE LDOPTIMIZE PORTABILITY FPORTABILITY LDPORTABILITY EXTRA_OPTIMIZE EXTRA_FOPTIMIZE <objects> LIBS OS_LIBS MATH_LIBS OPTIMIZATION_LIBS OPTIMIZATION_FLIBS PORTABILITY_LIBS PORTABILITY_FLIBS EXTRA_LIBS EXTRA_FLIBS LDOPTIONS PASSn_LDOPTIONS LDOUT LDOUT_OPTIONS LDOUT_EXTRA_OPTIONS Mixed C++, C, and Fortran: Compilation: CXX CXXOBJOPT <object> -DSPEC -DNDEBUG BENCH_FLAGS BENCH_CXXFLAGS PASSn_FLAGS PASSn_CXXFLAGS OPTIMIZE CXXOPTIMIZE PASSn_OPTIMIZE PASSn_CXXOPTIMIZE PORTABILITY CXXPORTABILITY EXTRA_CXXFLAGS EXTRA_OPTIMIZE EXTRA_CXXOPTIMIZE EXTRA_PORTABILITY EXTRA_CXXPORTABILITY <source> Compilation: CC COBJOPT <object> -DSPEC -DNDEBUG BENCH_FLAGS BENCH_CFLAGS PASSn_FLAGS PASSn_CFLAGS OPTIMIZE COPTIMIZE PASSn_OPTIMIZE PASSn_COPTIMIZE PORTABILITY CPORTABILITY EXTRA_CFLAGS EXTRA_OPTIMIZE EXTRA_COPTIMIZE EXTRA_PORTABILITY EXTRA_CPORTABILITY <source> Compilation: FC FOBJOPT <object> BENCH_FLAGS BENCH_FFLAGS PASSn_FLAGS PASSn_FFLAGS OPTIMIZE FOPTIMIZE PASSn_OPTIMIZE PASSn_FOPTIMIZE PORTABILITY FPORTABILITY EXTRA_FFLAGS EXTRA_OPTIMIZE EXTRA_FOPTIMIZE EXTRA_PORTABILITY EXTRA_FPORTABILITY <source> Linkage: CXXLD(or CXX) LDFLAGS LDCXXFLAGS EXTRA_LDFLAGS PASSn_LDFLAGS PASSn_FLAGS PASSn_LDCXXFLAGS OPTIMIZE CXXOPTIMIZE PASSn_OPTIMIZE PASSn_CXXOPTIMIZE LDOPTIMIZE PORTABILITY CXXPORTABILITY LDPORTABILITY EXTRA_OPTIMIZE EXTRA_CXXOPTIMIZE <objects> LIBS OS_LIBS MATH_LIBS OPTIMIZATION_LIBS OPTIMIZATION_CXXLIBS PORTABILITY_LIBS PORTABILITY_CXXLIBS EXTRA_LIBS EXTRA_CXXLIBS LDOPTIONS PASSn_LDOPTIONS LDOUT LDOUT_OPTIONS LDOUT_EXTRA_OPTIONS
SPEC CPU®2017 Make Variables: Copyright © 2017-2021 Standard Performance Evaluation Corporation (SPEC®)