• To define which C and C++ compilers to use, you can define the CC  and CXX  environment variables. For example: 

shell> CC=gcc shell> CXX=g++ shell> export CC CXX 

To specify your own C and C++ compiler flags, use the CMAKE_C_FLAGS  and CMAKE_CXX_FLAGS CMake options. See Compiler Flags. 

To see what flags you might need to specify, invoke mysql_config  with the --cflags  and -- cxxflags  options. 

•To see what commands are executed during the compile stage, after using CMake  to configure MySQL, run make VERBOSE=1  rather than just make . 

•If compilation fails, check whether the MYSQL_MAINTAINER_MODE  option is enabled. This mode causes compiler warnings to become errors, so disabling it may enable compilation to proceed. 

•If your compile fails with errors such as any of the following, you must upgrade your version of make  to GNU make : 

make: Fatal error in reader: Makefile, line 18: Badly formed macro assignment 

Or: 

make: file ‘Makefile’ line 18: Must be a separator (: 

Or: 

pthread.h: No such file or directory 

Solaris and FreeBSD are known to have troublesome make  programs. 

GNU make 3.75 is known to work. 

•The sql_yacc.cc  file is generated from sql_yacc.yy . Normally, the build process does not need to create sql_yacc.cc  because MySQL comes with a pregenerated copy. However, if you do need to re- create it, you might encounter this error: 

"sql_yacc.yy", line xxx  fatal: default action causes potential... 

This is a sign that your version of yacc  is deficient. You probably need to install a recent version of bison  (the GNU version of yacc ) and use that instead. 

Versions of bison  older than 1.75 may report this error: 

sql_yacc.yy:#####: fatal error: maximum table size (32767) exceeded 

The maximum table size is not actually exceeded; the error is caused by bugs in older versions of bison . 

For information about acquiring or updating tools, see the system requirements in Section 2.9, “Installing MySQL from Source” . 

## 2.9.9 MySQL Configuration and Third-Party Tools 

