blob: c55181ed2eaa5da047aa0f2ace93ae097b3970cb [file] [log] [blame]
Compilation has a few phases:
1. Generate the header and dispatch source files that have to match the GL api.
These read in a description of the GL api in the form of XML files. In
addition, generate the GLSL parser and lexer using flex and bison. These
sources are needed for step 2. Generated mesa sources can be generated by
including 'mesa_gensrc.gypi' in mesa.gyp, running 'gclient runhooks' and
running the gyp target 'generate_mesa_sources'. The mesa.gyp file should
not be checked in to include mesa_gensrc.gypi so we do not generate these
files during a regular build. The generated files should be checked in.
2. Compile everything in src/glsl into a library. This step uses the parser and
lexer output.
3. Compile the compiler (executable) that can create the builtin functions'
source file. Note that this step uses builtin_stubs.cpp because we haven't
generated the actual builtin functions' source file yet.
4. Invoke the compiler that we just built to create
gen/mesa/builtin_function.cpp
5. Compile the rest of mesa, using the builtins that we created in step 4. In
addition, link in all the files that we've previously compiled in step 2.